Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Я начинающий, подскажите как...(Все вопросы начинающих - постить только здесь!!!)

1
24 ноября 2007 года
kot_
7.3K / / 20.01.2000
Эта тема предназначена для вопросов начинающих в программировании. Если вы только начинаете программировать и столкнулись с тем, что ваш HelloWord (как вариант - новая суперОС) - не компилируется по непонятной причине, хотя код вы один в один взяли из книжки (интернета, придумали сами), то скорей всего ваш вопрос НУЖНО размещать только в этой теме. Перед тем как его создать - обязательно воспользоваться поиском. Только в этой теме вы не рискуете нарваться на - RTFM, иди в ЧАВО, иди в гугль и в конце концов просто иди на ... - при условии конечно что в данной теме вопрос не задавался. Или если вы не задаете вопрос типа "расскажите мне подробно что такое шаблоны в С++" - т.е. вопрос, в ответ на который проще послать в вышеуказанное. Если же вы решили что, ваш вопрос настолько нов и свеж что никто до этого не спрашивал на форуме "как мне прочесть файл с использованием потока" и создали отдельную тему - не обессудьте - в лучшем случае тема будет закрыта, в худшем удалена - и вы получите нарушение.
Страницы:
408
21 апреля 2009 года
Lei fang
265 / / 01.10.2005
System.Reflection.Assembly.GetExecutingAssembly().CodeBase вот ответ :P Green спасибо!

@pixo $oft, сборка лежит в другом каталоге :) Если я уберу имя файла из полученного пути, все равно будет ошибка
49K
21 апреля 2009 года
mbigun
1 / / 21.04.2009
Уважаемые программисты!
Нужна ваша помощь, заканчиваю написание диплома и возникла следующая проблемка:
Есть программа, которая все результаты записывает в файл txt.
Этот файл имеет следующий вид:
time 0.000 0.000 0.250 0.000 0.000 0.000 0.000 ...
time 0.050 0.000 0.250 0.000 0.000 0.000 0.000 ...
time 0.100 0.000 0.250 0.000 0.000 0.000 0.000 ...
time 0.150 0.000 0.250 0.000 0.000 0.000 0.000
time 0.200 0.000 0.249 0.000 0.000 0.000 0.000
time 0.250 0.000 0.249 0.000 0.000 0.000 0.000
time 0.300 0.000 0.249 0.000 0.000 0.000 0.000
time 0.350 0.000 0.248 0.000 0.000 0.000 0.000
time 0.400 0.000 0.248 0.000 0.000 0.000 0.000
time 0.450 0.000 0.247 0.000 0.000 0.000 0.000
....................................

то есть состоит из N строк(у меня приблизительно 1600) и M значений в каждой строке.
Далее мне необходимо построить график, который зависит от второго столбца(это значения времени) и одного из последующих столбцов (скажем четвертого)! То есть необходимо преобразовать данный файл таким оразом(или создать новый), что бы остался только второй и четвертый столбец:
0.000 0.250
0.050 0.250
0.100 0.250
0.150 0.250
0.200 0.249
0.250 0.249
0.300 0.249
исключив при этом слово "time" в начале каждой строки и остальные ненужные значения.
Нужен код такой программы! Задача сводиться к работе с файлами и строками. Когда-то это все учил, но вспоминать нет времени. Спасибо огромное!
408
22 апреля 2009 года
Lei fang
265 / / 01.10.2005
на чем пишешь-то?
49K
23 апреля 2009 года
-zum-
1 / / 23.04.2009
Помогите в выборе пути реализации!!!
Суть такая на С++ создал класс,
реализующий адаптивный алгоритм Хаффмана но это не важно ))

Подскажите как лучше скомпилировать dll включающий в себя этот класс без привязки к .net и затем использовать ее в
приложении написанном на c#

заранее благодарен ответившим :)

Код:
#pragma once

class hAd
{
     
public:

void Encode(wchar_t *,wchar_t *);
void Decode(wchar_t *,wchar_t *);
private:
     FILE *inFile;
     FILE *outFile;
     
   int sNode;
   int  byteShift;      //насколько заполненна переменная WByte
   BYTE WByte;          //переменная в которую добавляются биты
   bool ifESC;
   void InitTree();
   void AddToTree(BYTE);
   void UpdateTree(int);
   void Exchange(int,int);
   int GetNode(BYTE);
   int GetESC();
   void WriteByte(BYTE);
   void WriteBit(int);
   void WriteCode(int);
   void ReadFileDecode(BYTE);
};
49K
25 апреля 2009 года
Paranoya
1 / / 25.04.2009
Собственно весь вопрос в сабже, как cделать в строке замену всех '\n' на "<br>" (ANSI C)
7
25 апреля 2009 года
@pixo $oft
3.4K / / 20.09.2006
Минимум 2 способа:
· ищешь в строке "\n" и заменяешь на "%s",а затем подставляешь для всех %s "<Br>"
· собираешь новую строку,причём вместо "\n" пишешь "<Br>"(т.е. скопировал часть строки до 1-го вхождения "\n",затем вставил "<Br>",потом скопировал часть строки от 1-го вхождения до 2-го и т.д.)
49K
27 апреля 2009 года
Goshewich
3 / / 27.04.2009
Доброго времени суток, тем кто решил помочь! Начну с того что я начинающий в программировании на С++. Учусь самостоятельно по книге Герберта Шилдта “С++ для начинающих, второе издание”. Первый модуль книги я прошел, но заострял на 68 ст. “Тест для самоконтроля” пункт 12.

Задача : Гравитатация Луны составляет около 17% от гравитации Земли. Напашите программу, которая бы генерировала таблицу земных фунтов и эквивалентных значении, выраженных в лунном весе. Таблица должна содержать значения от 1 до 100 фунтов и включать пустые строки после каждых 25 строк результатов.

Загвостка заключается в: // Гравитатация Луны составляет около 17% от гравитации Земли. Напашите программу, которая бы генерировала таблицу земных фунтов и эквивалентных значении, выраженных в лунном весе???

В такого рода задаче я разобрался и полностью понимаю каждый оператор. Н.п. :

#include <iostream>
using namespace std;
int main () {
double f,m;
int stroka; // счетчик строк
stroka=0;

for(f=1.0; f<=100.0; f++) {
m=f/3.28;
cout<< f << " футов равно " << m << " метра.\n ";
stroka++;
if(stroka==10) {
cout<<"\n";
stroka=0;
}
}
return 0;
}

Как выше указано с такого рода операторами я разобрался, но как решить задачу??? Я даже нашел формулу всемирного тяготения Ньютона
Нужно ли вообще использовать эту формулу

Спасибо всем кто откликнулся.
С уважением, Гоша.
7
27 апреля 2009 года
@pixo $oft
3.4K / / 20.09.2006
Нет,так глубоко в физику копать не надо:)
Надо просто найти,чему равнен 1 фунт в килограммах(торговый–.45359237 кг,аптекарский и тройский(монетный)–.37324177 кг,русский–.40951241 кг;сведения из СЭС,1985 г.),а потом просто множить на ускорение свободного падения на Луне(.17g~1.667 м/с^2),ибо нужен лунный ВЕС
ИМХО,так это будет…как инженер,могу утверждать,а вы оцените:)
 
Код:
if(stroka==10) {
cout<<"\n";
stroka=0;
}
Я,конечно,не знаток C++,но
0)это было проще проверить остатком от деления(stroka%<число>,если мне не измениет память)
1)там ведь написано "через каждые 25 строк",а не через 10;)

P.S.Мы понимаем вопрос с 1-го раза:)
49K
27 апреля 2009 года
ВалВас
1 / / 16.04.2009
Здравствуйте! Я только учусь.
На http://www.taiiclub.ru/modules/phpBB2/viewtopic.php?t=142нашёл код связи с Word, создание и форматирование некоторого текста и таблицы. Попробовал его применить с небольшим усложнением - добавил вторую таблицу и их форматирование ( в смысле размеров колонок),

Код:
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "Word_2K_SRVR"
#pragma resource "*.dfm"
TForm1 *Form1;

 

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
  int dlin;
  int Start;
  AnsiString str;

}
//---------------------------------------------------------------------------
void __fastcall TForm1::TextToNext(AnsiString s)
{
          str=s;
        WordDocument1 -> Range((OleVariant)Start, (OleVariant)Start)-> InsertAfter(StringToOleStr(str));
        dlin = ++ dlin;
        dlin = dlin + str.Length();
        Start = (OleVariant)dlin;
}
//---------------------
void __fastcall TForm1::TextToNextRow(AnsiString s)
{
        str = s;
        WordDocument1 -> Range((OleVariant)Start, (OleVariant)Start)->InsertAfter(StringToOleStr(str));
        dlin = ++++dlin;
        dlin = dlin + str.Length();
        Start = (OleVariant)dlin;

}
//------------------------

   void __fastcall TForm1::Text(AnsiString s)
  {
        str = s+"\n";
        WordDocument1 -> Range((OleVariant)Start, (OleVariant)Start)-> InsertAfter(StringToOleStr(str));
        dlin = dlin + str.Length();
        Start = (OleVariant)dlin;
   }
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        OleVariant ItemIndex = 1;
                        //Связываемся с Word.
        WordApplication1 -> Connect();
                        //Создаю новый документ
      WordDocument1->ConnectTo(WordApplication1->Documents->Add());
        WordDocument1->ConnectTo(WordApplication1->Documents->Item(ItemIndex));
                       
        WordApplication1 -> set_Visible (true);
                 
        WordApplication1 -> Options -> CheckSpellingAsYouType = false;
        WordApplication1 -> Options -> CheckGrammarAsYouType = false;

                         //Ввожу заголовок

        Text("Start");


                        // Вставляю первую таблицу 3 строки 3 колонки
        WordDocument1 -> Tables -> Add (WordDocument1 -> Range((OleVariant)Start, (OleVariant)Start),3,3);
                       
        WordDocument1->Tables->Item(ItemIndex)->Borders->set_Enable(1);
                        // Форматирую первую таблицу

WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(1,1)->set_Width(280);
WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(1,2)->set_Width(50);
WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(1,3)->set_Width(170);
WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(2,1)->set_Width(280);  
WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(2,2)->set_Width(50);
WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(2,3)->set_Width(170);
WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(3,1)->set_Width(280);
WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(3,2)->set_Width(50);
WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(3,3)->set_Width(170);


                        //Заполняю ячейки текстом

  TextToNext("11");TextToNext("12");TextToNextRow("13");
  TextToNext("21");TextToNext("22");TextToNextRow("23");
  TextToNext("31");TextToNext("32");TextToNextRow("33");

        Text("End Table 1\n\n");

        Text("Table 2") ;
   
                        // Вторая таблица
WordDocument1 -> Tables -> Add (WordDocument1 -> Range((OleVariant)Start, (OleVariant)Start),2,6);
  /*WordDocument1->Tables->Item(ItemIndex)->Borders->set_Enable(1);
 WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(1,1)->set_Width(20);
 WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(1,2)->set_Width(200);
 WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(1,3)->set_Width(60);
 WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(1,4)->set_Width(60);  
 WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(1,5)->set_Width(60);
 WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(1,6)->set_Width(60);
 WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(3,1)->set_Width(20);
 WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(3,2)->set_Width(200);
 WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(3,3)->set_Width(60);
 WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(3,4)->set_Width(60);
 WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(3,5)->set_Width(60);
 WordDocument1 -> Tables ->Item(ItemIndex)-> Cell(3,6)->set_Width(60);
   */
        // Заполняю вторую табл.
 TextToNext("11");TextToNext("12");TextToNext("13"); TextToNext("14"); TextToNext("15");TextToNextRow("16");
 TextToNext("21");TextToNext("22");TextToNext("23"); TextToNext("24"); TextToNext("25");TextToNextRow("26");

       Text("Text\n\n");
   
      WordApplication1 ->Disconnect();

  }


но в результате получилось, что форматирование второй таблицы портит первую. Подскажите как от этого избавиться.
7
27 апреля 2009 года
@pixo $oft
3.4K / / 20.09.2006
2Goshewich:путём нехитрых извращений в DevC++ получил следующее
Код:
#include <iostream>
using namespace std;
int main(){
    double f;
    for(f=1;f<=100;f++){
        cout<<f<<" fts="<<f*.6<<" N\n";
        if(int(f)%25==0)cout<<"\n";
    }
    getchar();
    return 0;
}
Делал со многими ошибками–я ж писал,что не знаток C++:)
То в условии забыл написать ==0,поэтому строка НЕ переводилась,когда надо,то getchar после return'а вписал(ну это уже невнимательность:))

А так…у меня работает!Жду комментов;)

P.S.Строчки на английском,ибо в консоли вместо одних русских символов выводятся другие.Влом было с кодировкой заморачиваться:)
18K
28 апреля 2009 года
cpPLover
25 / / 30.11.2006
Здравствуйте. Где можно найти описание Rtm.h (модуль для работы с таблицей маршрутизации) или какие еще можно использовать варианты для работы с маршрутами?
14
28 апреля 2009 года
Phodopus
3.3K / / 19.06.2008
Цитата: cpPLover
Здравствуйте. Где можно найти описание Rtm.h (модуль для работы с таблицей маршрутизации) или какие еще можно использовать варианты для работы с маршрутами?


Это ищется? Гуглом пользоваться кто не разрешил?

18K
29 апреля 2009 года
cpPLover
25 / / 30.11.2006
Цитата: Phodopus
Это ищется? Гуглом пользоваться кто не разрешил?



Спасибо. Но я имел ввиду какую нибудь русскую документацию с каким нибудь примером. А то что там, тоже и в самом модуле коментариями написано - мне не оч. понятно это.

47K
04 мая 2009 года
Djotto Dibandone
3 / / 25.02.2009
Привет. У меня такая проблема... Нада в консоли посимвольно считать строку и записать её в структуру. Я делаю так:
Код:
#incude<stdio.h>
#include<conio.h>

struct student
{
   int shifr[6];
   char fam[15];
   char name[10];
   char farh[15];
   char grup[6];
   int mat;
   int phis;
   int eng;
} zek;

void main()
{
   int i = 0, in;
   cprintf ("Vvedite familiyu ->");
   while ((in = getch()) != 0x0d || i == 0)
   {
         
              zek.fam = in;
              i++;
              cprintf ("%c", in);
         
   }
}


Возникает проблема: когда вводиш меньше 15 символов, то оставшиеся ячейуи массива заполняются какимито иероглифами. Как можно исправить? Вводить нада именно посимвольно. Заранее благодарен.
294
04 мая 2009 года
Plisteron
982 / / 29.08.2003
Цитата: Djotto Dibandone
Привет. У меня такая проблема...
Возникает проблема: когда вводиш меньше 15 символов, то оставшиеся ячейуи массива заполняются какимито иероглифами.


Код:
#incude<stdio.h>
#include<conio.h>

struct student
{
   int shifr[6];
   char fam[15];
   char name[10];
   char farh[15];
   char grup[6];
   int mat;
   int phis;
   int eng;
} zek;

void main()
{
   int i = 0, in;
   cprintf ("Vvedite familiyu ->");
   while ((in = getch()) != 0x0d && i < sizeof(zek.fam)/sizeof(char) )
   {
              zek.fam = in;
              i++;
              putch(in);
   }
 [COLOR=DarkRed]  zek.fam = '\0';[/COLOR]
   sprintf("\r\n");
}
49K
05 мая 2009 года
ramzes667
1 / / 04.05.2009
Тут задачка про полиадромы...вообщем почему когда я пишу 2 слова к примеру (Негру пурген) с пробелом то пишется что это не полиадром:mad: А без пробела всё нормально,подскажите как и где пробел поставить....пожалуйста:rolleyes:
using System;
namespace Lr
{
class Program
{
public static void Main (string[]args)
{
string str=Console.ReadLine();
string s=str.Trim();
string st=str.Replace(" ","");
string nstr="";
int n=str.Length;
Console.WriteLine();
for(int i=n-1; i>=0; i--)
{
nstr+=str;
}
if(nstr==st)
{
Console.WriteLine(" полиандром ");
}
else
{
Console.WriteLine (" не полиадром ");
}
Console.ReadKey(true);
}
}
}
294
05 мая 2009 года
Plisteron
982 / / 29.08.2003
Цитата: ramzes667
Тут задачка про полиадромы...


Код:
using System;
namespace Lr
{
    class Program
    {
        public static void Main (string[]args)
        {
            string str=Console.ReadLine();
            string s=str.Trim();
            string st=str.Replace(" ","");
            string nstr="";    
[COLOR=DarkRed]            int n=st.Length;[/COLOR]
            Console.WriteLine();
            for(int i=n-1; i>=0; i--)
            {
                [COLOR=DarkRed]nstr+=st;[/COLOR]
            }
            if(nstr==st)
            {
                Console.WriteLine(" палиндром ");
            }        
            else
            {
                Console.WriteLine (" не палиндром ");
            }                
            Console.ReadKey(true);
        }
    }
}
PS. http://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D0%BB%D0%B8%D0%BD%D0%B4%D1%80%D0%BE%D0%BC
49K
09 мая 2009 года
bagdasar
1 / / 09.05.2009
Добрый день.
Прошу помощи.

Есть 2 класса и нужны ссылки в каждом друг на друга.

Код:
class A;
class B
{
    A* a;
    B()
    {
        a = new A(5);
    }
};
class A
{
    B* b;
public:
    A(int x)
    {
    }
};


Компилятор выдает следующую ошибку.
 
Код:
error C2514: 'A' : class has no constructors


Но как же нет конструктора, если он написан.
47K
14 мая 2009 года
lifeinlags
17 / / 14.05.2009
у меня такой вопрос:
как передать многомерный массив функции как аргумент?
если пишешь, например, void fn(int iArray[][]) компилятор ругается, просит размерность написать (кроме первой),
а у меня размерность считывается с файла в программе, тоесть я только знаю что она n на m
а если я пытаюсь последовать указаниям компилятора и напишу void fn(int iArray[][m]) то тоже ругается ((
в общем подскажите пож. как будет правильно
7
14 мая 2009 года
@pixo $oft
3.4K / / 20.09.2006
Моё предположение–создать массив указателей на функции и передавать его.Только функции по ссылке вызывать придётся(сам массив,естественно,не по значению,а тоже по ссылке передаётся:))
11
14 мая 2009 года
oxotnik333
2.9K / / 03.08.2007
Цитата: lifeinlags
у меня такой вопрос:
как передать многомерный массив функции как аргумент?
если пишешь, например, void fn(int iArray[][]) компилятор ругается, просит размерность написать (кроме первой),
а у меня размерность считывается с файла в программе, тоесть я только знаю что она n на m
а если я пытаюсь последовать указаниям компилятора и напишу void fn(int iArray[][m]) то тоже ругается ((
в общем подскажите пож. как будет правильно


юзай std::vector<vector<...>>
и std::vector::size() - размер массива

47K
14 мая 2009 года
lifeinlags
17 / / 14.05.2009
Цитата: oxotnik333
юзай std::vector<vector<...>>
и std::vector::size() - размер массива



можешь пож. больше объяснить
я непонимаю даже про что ты ))
у меня идёт main
{ .... тут я считываю с файла размеры массива n и m и объявляю массив
а[n][m], дальше идёт сама программа..
но у меня есть одна функция в которой надо использовать этот массив
и я не знаю как многомерные массивы вставлять в функции
пож. подробней распишы если можешь.

47K
14 мая 2009 года
Razar
2 / / 13.02.2009
нужно селать что-то вроде временного файла, temp.txt
туда на время выполнения программы будут записываться данные.
Как после успешного завершения программы удалить этот файл?
7
14 мая 2009 года
@pixo $oft
3.4K / / 20.09.2006
Цитата: Razar
нужно селать что-то вроде временного файла, temp.txt
туда на время выполнения программы будут записываться данные.
Как после успешного завершения программы удалить этот файл?

DeleteFile:)
Мы не телепаты,а автор ничего не конкретизировал.В зависимости от ситуации могут быть разные методы(и в этой ситуации тоже)

47K
14 мая 2009 года
Razar
2 / / 13.02.2009
конкретизировать, мм.
Код:
void Delete(fstream& file,fstream& temp)
{
    file.clear();
    STRUCT my;


    //Записывает во временный файл только не помеченные на удаление данные
    int i=1;
    do{
        if(Read(file,my,i))
        {
            if(my.Del==TEXT('-'))
            {
                Write(temp,my);
            }
        }
        i++;
    }while(file);


    //Записывает обратно в 1.txt, обработанную информацию
    i=1;
    do{
        if(Read(temp,my,i))
        {
                Write(file,my);
        }
        i++;
    }while(file);

    _getch();
}


Вот функция, после её выполнения в папке останется файл temp.txt, который не нужен, как можно его удалить?

Я просто не нашел способ, а как сделать слабо представляю=(
7
14 мая 2009 года
@pixo $oft
3.4K / / 20.09.2006
С сишными методами работы с файлами я не знаком,а вот с API'шными…:)
DeleteFile,пожалуйста.А если работать с файлами средствами API,то можно вообще без DeleteFile обойтись–File_Flag_Delete_On_Close
87
14 мая 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: lifeinlags
можешь пож. больше объяснить
я непонимаю даже про что ты ))
у меня идёт main
{ .... тут я считываю с файла размеры массива n и m и объявляю массив
а[n][m], дальше идёт сама программа..


он про STL говорит и он прав, если речь про C++.

Ну можно менее удобными способами решать.

Код:
void func(int *p, unsigned size)
{
    for(unsigned i = 0; i < size; ++i)
        p = i;
}

int main()
{
    enum{X = 20, Y = 10};

    int mass[X][Y] = {0};

    func(&mass[0][0], sizeof(mass) / sizeof(int));

    for(unsigned i = 0; i < X; ++i)
    {
        for(unsigned j = 0; j < Y; ++j)
            std::cout << mass[j] << ' ';
        std::cout << std::endl;
    }

    return 0;
}

Я сам таким способом не пользуюсь - может что-то напутал.
47K
15 мая 2009 года
lifeinlags
17 / / 14.05.2009
тоесть ты предлогаешь использовать указатель на массив,
я неочень-то и люблю указатели....
Цитата: Kogrom
он про STL говорит и он прав, если речь про C++..

я его не критикую, просто мои знания не настолько сильны чтобы я понял что там написано... и что такое std::vector?

у тебя в программе есть "std::cout"
это что такое? типо если функция cout написана в классе std?

47K
15 мая 2009 года
lifeinlags
17 / / 14.05.2009
решил всётаки выложить код программки
её суть, определить так называемые седловые точки матрицы
тоесть наибольшие в столбце и наименьшие в строчке
входные данные: размеры матрицы n m ну и сама матрица ))
выход: индексы седловой точки, любой. если она конечно есть )

вот то что я написал к сожалению немогу откомпилировать:
Код:
#include <cstdio>
#include <fstream>
#include <cstdlib>


using namespace std;

bool biggest (int a[][], int z2, int z1, int s);
bool smallest (int a[][], int z1, int z2, int s);

int main (int nNumberofArgs, char* pszArgs[])
{
    ifstream in;
    in.open("in.txt");
    int n, m;
    in >> n;
    in >> m;
    int a[n][m];
    n=n-1;
    m=m-1;
    int i=0;
    int j=0;
    for (i=0; i<n; i++)
    {
        for (j=0; j<m; j++)
        {
            in >> a[j];
        };
    };
    in.close();
    i=0;
    j=0;
    for (i=0; i<n; i++)
    {
        for (j=0; j<m; j++)
        {
            if (((biggest (a, j, i, m)) && (smallest (a, i, j, n)))
            {
                               ofstream out;
                               out.open("out.txt");
                               out << "Element " << a[j] << endl;
                               out << "Indexes - " << i << "  "<< endl;
                               out.close();
                               exit(0);
            };
        };
    };
}

bool biggest (int a[][], int z2, int z1, int s)
{
     for (int k=0; k<=s; k++)
     {
         if ((k==z2) && (k==s)) return 1;
         if ((k==z2) && (k<s)) k++;
         if (ar[z1][k]>=ar[z1][z2]) return 0;
         k++;
     };
     return 1;
}


bool smallest (int a[][], int z1, int z2, int s)
{
     for (int k=0; k<=s; k++)
     {
         if ((k==z1) && (k==s)) return 1;
         if ((k==z1) && (k<s)) k++;
         if (ar[k][z2]<=ar[z1][z2]) return 0;
         k++;
     };
     return 1;
}


тут есть конечно много неточностей, например возможно перепутан столбец со строкой и т.п.
но на это плевать это дело одной минуты...
вот чтобы в функцию передать массив ну никак неполучается
47K
15 мая 2009 года
Ksusha
17 / / 02.05.2009
Особо не вникая в суть программы: насколько я знаю, если вы используете для передачи массива в функцию вышеуказанный синтаксис, надо явно указывать его размерность. Вы не можете указать переменную в квадратных скобках, это должна быть либо константа, либо число.

Чтоб передать динамический массив, нужны указатели.

У меня завалялся исходничек. Примерно так:

Прототип ф-ции:
 
Код:
void myfunction(float **matrix, int m, int n)

Тело самой программы:
 
Код:
matr=new float*[x]; //выделяем память под столбцы
for (int j=0; j<y; j++)
{
matr[j]=new float[y]; //теперь под строки
}
//память выделена, далее можно творить с этим массивом что душе угодно
//ну и вызов ф-ции соответственно:
myfunction(matr, x,y);


x и у соответсвенно - переменные типа int. Могут вводиться с клавиатуры.
87
15 мая 2009 года
Kogrom
2.7K / / 02.02.2008
Цитата: lifeinlags
тоесть ты предлогаешь использовать указатель на массив,
я неочень-то и люблю указатели....



Выбор такой: либо познакомиться поближе с STL, либо с указателями. Лучше и с тем и с другим. Или придется отказываться от программирования на C++.

В любом нормальном учебнике есть и про то и про другое. Даже у Шилдта, который есть в любом книжном.

42K
17 мая 2009 года
Miredo
6 / / 15.10.2008
Есть матрица :
0 0 1 1
1 0 0 0
0 1 0 0
0 0 1 0
Написал метод чтобы поднимал матрицу в вторую степень
Цитата:

public void MatrixToDegree()
{
int sum;
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
sum = 0;
for (int m = 0; m < 4; m++)
{
sum += a[m, j] * a[i, m];
}
generator[i, j] = sum;
}
}
}


Как сделать чтобы матрицу поднять до некоторой К-степени на C#? Но матрица должна содержать 0 и 1

Спасибо

50K
20 мая 2009 года
Rybik
2 / / 20.05.2009
Код:
#include<iostream>
using namespace std;
void sort (int n);//функия сортировки
void swap (int *p1, int *p2);//функия обмена двух чисел
int a[10];
int main()
{
    int i;
    for(i=0;i<10;i++)
    {
        cout << "Enter array element #"<<i<<" :\n";
        cin >> a;//вводим масив
    }
sort(10);
cout << "Here all elements sorted\n";
for (i=0;i<10;i++)
cout << a<<" ";
return 0;

}
void sort(int n)
{
    int i,j,low;
    for(i=0;i<n-1;i++)
        {
            low=i;
            for(j=i+1;j<n;j++)
                {
                    if (a[j]<a[low])
                        low=j;
                }
            if (i!=low)
                swap(&a,&a[low]);
    }
}
void swap (int *p1, int *p2)
{
    int temp=*p1;
    *p1=*p2;
    *p2=temp;
}



Привет всем! я чего то туплю сегодня.... разложите плз по полочкам действия функции sort. заранее благодарен
1.9K
20 мая 2009 года
GreenRiver
451 / / 20.07.2008
Цитата: Rybik

Привет всем! я чего то туплю сегодня.... разложите плз по полочкам действия функции sort. заранее благодарен



Дык, сортирует :)
Берет первый элемент, находит среди оставшихся наименьшее и меняет их местами.
Берет второй, находит среди оставшихся наименьшее и меняет местами и т.д.
Сортировка выбором

50K
20 мая 2009 года
Rybik
2 / / 20.05.2009
сенкс.... очень благодарен тебе
39K
21 мая 2009 года
d1mon
8 / / 30.09.2008
Нужна ваша помощь по спискам:
допустим создаем некий список
Код:
struct list {
                        int val;
                        struct list *next;
                       };
           struct list *head=NULL;
           int i;
           for(i=0;i<n;i++) //n-количество элементов в списке
              {
               struct list *tmp=malloc(sizeof(*tmp));
               tmp->next=head;
               tmp->val=value; //value- некая полезная нагрузка
               head=tmp;
              }


Данный список линейный и выглядит так:
[ATTACH]3543[/ATTACH]

Каким образом можно сделать динамическое выделении "массивов" списков, те что то вроде:
[ATTACH]3544[/ATTACH]
????
50K
22 мая 2009 года
KocmoC11
3 / / 22.05.2009
программка должна записывать/читать в/из файл(а) структуру написал вот что но почему то не хочет нормально работать может подскажите...
код программки
Код:
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
typedef struct
       {
        char fam [40];
        char nam [40];
        char otch [40];
        char dol [40];
        char date [10];
        float zp;
        }EMPLOYEE;
EMPLOYEE cadd(int n)
{  EMPLOYEE mass[n];
  //формируем запись sotr
   for(int i=0;i<=n;i++)
  { cout<<"fam="; cin>> mass.fam;
   cout<<"nam="; cin>> mass.nam;
   cout<<"otch="; cin>> mass.otch;
   cout<<"dol="; cin>> mass.dol;
   cout<<"date="; cin>> mass.date;
   cout<<"zp="; cin>> mass.zp;
   }
   return mass[n];
}
int main()
{ FILE *fp;

  int n=0;
  cin>>n;
  EMPLOYEE sotr[]=cadd(10);

  fp = fopen("file.txt","wb");
   if (fp==NULL)
                {
                 cout<<"Error opening file: "<<ferror(fp)<<'\n';
                 return 1;
                }
   fwrite(&sotr, sizeof(EMPLOYEE),1,fp);
   fclose(fp);

      system("PAUSE");
      return 0;
}
14
22 мая 2009 года
Phodopus
3.3K / / 19.06.2008
Цитата: KocmoC11
программка должна записывать/читать в/из файл(а) структуру написал вот что но почему то не хочет нормально работать может подскажите...


Полагаю не компилируется? Массив надо создавать в куче оператором new. Записывать в файл не sizeof(EMPLOYEE) а sizeof(EMPLOYEE)*n ...

50K
22 мая 2009 года
KocmoC11
3 / / 22.05.2009
а поточнее можно... желательно с примером... с С++ не очень знаком многое еще не понятно.... при компиляции ругается вот на эту строчку
 
Код:
EMPLOYEE sotr[]=cadd(10);
47K
24 мая 2009 года
lifeinlags
17 / / 14.05.2009
ситуация такая:
надо написать программку которая бы считывала из файла большие числа
(например 123124451451451.134514715612)
переводила их с десятичной в двоичную систему исчесления
и выводила..
я начал писать её потихонечку, по частям.
написал считывание и вывод числа.
только вот что-то не компилируеццо.
чесно сказать замучался не вижу ошибок и всё.
оч. прошу чтобы кто-то мне помог устранить ошибки чтобы программка скомпилировалась.
пишу в Dev C++ 4.9.9.2
вот код программки:
Код:
#include <cstdio>
#include <fstream>
#include <cstdlib>
#include <iostream>


using namespace std;

class binary
{
      public:
// поскольку по условию работа будет с большими числами,
// то размер массивов целой и дробной части числа
// сделаем по 505 символов
// всего число сможет иметь максимально от 505 до 1010 цифр
// думаю должно хватить =)
             int mainpart[505];
             int mantissa[505];
      //(ниже) индекс последнего элемента mainpart
             int indMPRT;
      // (ниже) индекс последнего элемента mantissa            
             int indMNTS;
             void in_num (int& a1[], int& i, int& a2[], int& j);
             void out_num (int ar1[], int z1, int ar2[], int z2);
};
int main()
{
    cout<<"starting..."<<endl;
    system("pause");
    cout<<endl;
    binary num;
    num.indMPRT=0;
    num.indMNTS=0;
    //(ниже) вызываем ф-ю считывания из файла числа
    binary::in_num(num.mainpart, num.indMPRT, num.mantissa, num.indMNTS);
   
    // пока выглядит очень глупо,
    // но тут будут функции перевода
    // целой и дробной части
    // в двоичную систему исчесления
   
   
    //(ниже) вызываем ф-ю вывода на экран числа
    binary::out_num(num.mainpart, num.indMPRT, num.mantissa, num.indMNTS);
    return 0;
}

void binary::in_num (int& a1[],  int& i, int& a2[], int& j)
{
    ifstream in;
    in.open("in.txt");
    char c[510];
    // int a1[505];
    // int a2[505];
    i=0;
    while (in)
    {
        in>>c;
    // (ниже) идёт проверка на точку
        if ((c==48) || (c==49) || (c==50) || (c==51)
         || (c==52) || (c==53) || (c==54) || (c==55)
         || (c==56) || (c==57)) i++;
        else break;
    };
    i--;
    for (int k=0; k<=i; k++)
    {
        a1[k]=c[k];
        a1[k]=(a1[k]-48);
    };
    j=0;
    while (in)
    {
        in>>c[j];
    // (ниже) тут проверка не нужна,
    // но пускай будет =)
    // если что потом уберу
        if ((c[j]==48) || (c[j]==49) || (c[j]==50) || (c[j]==51)
         || (c[j]==52) || (c[j]==53) || (c[j]==54) || (c[j]==55)
         || (c[j]==56) || (c[j]==57)) j++;
        else break;
    };
    j--;
    for (int k=0; k<=j; k++)
    {
        a2[k]=c[k];
        a2[k]=(a2[k]-48);
    };
    return;
    // до точки всё сохранено в массиве a1, после точки в массиве a2
    // индексы первого и второго массива соответственно i и j
    // с помощью них запомним количество элементов в массивах
}


void out_num (int ar1[], int z1, int ar2[], int z2)
{
     for (int g1=0; g1<=z1; g1++)
     {
         cout<<ar1[g1];
     };
     for (int g2=0; g2<=z1; g2++)
     {
         cout<<"."<<ar2[g2];
     }
// вывели значение ввиде:
// [элементы первого массива без пропусков].[элементы второго массива без пропусков]
     cout<<endl;
     system("pause");
     exit(0);
}


вот что мне на этот код говорит компилятор:

------------
23 declaration of `a1' as array of references
23 declaration of `a2' as array of references
In function `int main()':
35 no matching function for call to `binary::in_num(int[505], int&, int[505], int&)'
note :23 candidates are: void binary::in_num(int&, int&)
44 cannot call member function `void binary::out_num(int*, int, int*, int)' without object
44 At global scope:
49 declaration of `a1' as array of references
49 declaration of `a2' as array of references
In member function `void binary::in_num(int&, int&)':
68 `a1' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)
86 `a2' undeclared (first use this function)
-----------

пожалуйста укажите мне что надо поменять чтобы скомпилировалось
(чуть конкретней чем пишет компилятор)
спс за внимание
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог