Я начинающий, подскажите как...(Все вопросы начинающих - постить только здесь!!!)
@pixo $oft, сборка лежит в другом каталоге :) Если я уберу имя файла из полученного пути, все равно будет ошибка
Нужна ваша помощь, заканчиваю написание диплома и возникла следующая проблемка:
Есть программа, которая все результаты записывает в файл 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" в начале каждой строки и остальные ненужные значения.
Нужен код такой программы! Задача сводиться к работе с файлами и строками. Когда-то это все учил, но вспоминать нет времени. Спасибо огромное!
Суть такая на С++ создал класс,
реализующий адаптивный алгоритм Хаффмана но это не важно ))
Подскажите как лучше скомпилировать dll включающий в себя этот класс без привязки к .net и затем использовать ее в
приложении написанном на c#
заранее благодарен ответившим :)
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);
};
· ищешь в строке "\n" и заменяешь на "%s",а затем подставляешь для всех %s "<Br>"
· собираешь новую строку,причём вместо "\n" пишешь "<Br>"(т.е. скопировал часть строки до 1-го вхождения "\n",затем вставил "<Br>",потом скопировал часть строки от 1-го вхождения до 2-го и т.д.)
Задача : Гравитатация Луны составляет около 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;
}
Как выше указано с такого рода операторами я разобрался, но как решить задачу??? Я даже нашел формулу всемирного тяготения Ньютона
Нужно ли вообще использовать эту формулу
Спасибо всем кто откликнулся.
С уважением, Гоша.
Надо просто найти,чему равнен 1 фунт в килограммах(торговый–.45359237 кг,аптекарский и тройский(монетный)–.37324177 кг,русский–.40951241 кг;сведения из СЭС,1985 г.),а потом просто множить на ускорение свободного падения на Луне(.17g~1.667 м/с^2),ибо нужен лунный ВЕС
ИМХО,так это будет…как инженер,могу утверждать,а вы оцените:)
cout<<"\n";
stroka=0;
}
0)это было проще проверить остатком от деления(stroka%<число>,если мне не измениет память)
1)там ведь написано "через каждые 25 строк",а не через 10;)
P.S.Мы понимаем вопрос с 1-го раза:)
На http://www.taiiclub.ru/modules/phpBB2/viewtopic.php?t=142нашёл код связи с Word, создание и форматирование некоторого текста и таблицы. Попробовал его применить с небольшим усложнением - добавил вторую таблицу и их форматирование ( в смысле размеров колонок),
#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();
}
но в результате получилось, что форматирование второй таблицы портит первую. Подскажите как от этого избавиться.
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;
}
То в условии забыл написать ==0,поэтому строка НЕ переводилась,когда надо,то getchar после return'а вписал(ну это уже невнимательность:))
А так…у меня работает!Жду комментов;)
P.S.Строчки на английском,ибо в консоли вместо одних русских символов выводятся другие.Влом было с кодировкой заморачиваться:)
Спасибо. Но я имел ввиду какую нибудь русскую документацию с каким нибудь примером. А то что там, тоже и в самом модуле коментариями написано - мне не оч. понятно это.
#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 символов, то оставшиеся ячейуи массива заполняются какимито иероглифами. Как можно исправить? Вводить нада именно посимвольно. Заранее благодарен.
Возникает проблема: когда вводиш меньше 15 символов, то оставшиеся ячейуи массива заполняются какимито иероглифами.
#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");
}
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);
}
}
}
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);
}
}
}
Прошу помощи.
Есть 2 класса и нужны ссылки в каждом друг на друга.
class B
{
A* a;
B()
{
a = new A(5);
}
};
class A
{
B* b;
public:
A(int x)
{
}
};
Компилятор выдает следующую ошибку.
Но как же нет конструктора, если он написан.
как передать многомерный массив функции как аргумент?
если пишешь, например, void fn(int iArray[][]) компилятор ругается, просит размерность написать (кроме первой),
а у меня размерность считывается с файла в программе, тоесть я только знаю что она n на m
а если я пытаюсь последовать указаниям компилятора и напишу void fn(int iArray[][m]) то тоже ругается ((
в общем подскажите пож. как будет правильно
как передать многомерный массив функции как аргумент?
если пишешь, например, void fn(int iArray[][]) компилятор ругается, просит размерность написать (кроме первой),
а у меня размерность считывается с файла в программе, тоесть я только знаю что она n на m
а если я пытаюсь последовать указаниям компилятора и напишу void fn(int iArray[][m]) то тоже ругается ((
в общем подскажите пож. как будет правильно
юзай std::vector<vector<...>>
и std::vector::size() - размер массива
и std::vector::size() - размер массива
можешь пож. больше объяснить
я непонимаю даже про что ты ))
у меня идёт main
{ .... тут я считываю с файла размеры массива n и m и объявляю массив
а[n][m], дальше идёт сама программа..
но у меня есть одна функция в которой надо использовать этот массив
и я не знаю как многомерные массивы вставлять в функции
пож. подробней распишы если можешь.
туда на время выполнения программы будут записываться данные.
Как после успешного завершения программы удалить этот файл?
туда на время выполнения программы будут записываться данные.
Как после успешного завершения программы удалить этот файл?
DeleteFile:)
Мы не телепаты,а автор ничего не конкретизировал.В зависимости от ситуации могут быть разные методы(и в этой ситуации тоже)
{
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, который не нужен, как можно его удалить?
Я просто не нашел способ, а как сделать слабо представляю=(
DeleteFile,пожалуйста.А если работать с файлами средствами API,то можно вообще без DeleteFile обойтись–File_Flag_Delete_On_Close
я непонимаю даже про что ты ))
у меня идёт main
{ .... тут я считываю с файла размеры массива n и m и объявляю массив
а[n][m], дальше идёт сама программа..
он про STL говорит и он прав, если речь про C++.
Ну можно менее удобными способами решать.
{
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;
}
Я сам таким способом не пользуюсь - может что-то напутал.
я неочень-то и люблю указатели....
я его не критикую, просто мои знания не настолько сильны чтобы я понял что там написано... и что такое std::vector?
у тебя в программе есть "std::cout"
это что такое? типо если функция cout написана в классе std?
её суть, определить так называемые седловые точки матрицы
тоесть наибольшие в столбце и наименьшие в строчке
входные данные: размеры матрицы n m ну и сама матрица ))
выход: индексы седловой точки, любой. если она конечно есть )
вот то что я написал к сожалению немогу откомпилировать:
#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;
}
тут есть конечно много неточностей, например возможно перепутан столбец со строкой и т.п.
но на это плевать это дело одной минуты...
вот чтобы в функцию передать массив ну никак неполучается
Чтоб передать динамический массив, нужны указатели.
У меня завалялся исходничек. Примерно так:
Прототип ф-ции:
Тело самой программы:
for (int j=0; j<y; j++)
{
matr[j]=new float[y]; //теперь под строки
}
//память выделена, далее можно творить с этим массивом что душе угодно
//ну и вызов ф-ции соответственно:
myfunction(matr, x,y);
x и у соответсвенно - переменные типа int. Могут вводиться с клавиатуры.
я неочень-то и люблю указатели....
Выбор такой: либо познакомиться поближе с STL, либо с указателями. Лучше и с тем и с другим. Или придется отказываться от программирования на C++.
В любом нормальном учебнике есть и про то и про другое. Даже у Шилдта, который есть в любом книжном.
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
Спасибо
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. заранее благодарен
Привет всем! я чего то туплю сегодня.... разложите плз по полочкам действия функции sort. заранее благодарен
Дык, сортирует :)
Берет первый элемент, находит среди оставшихся наименьшее и меняет их местами.
Берет второй, находит среди оставшихся наименьшее и меняет местами и т.д.
Сортировка выбором
допустим создаем некий список
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]
????
код программки
#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;
}
Полагаю не компилируется? Массив надо создавать в куче оператором new. Записывать в файл не sizeof(EMPLOYEE) а sizeof(EMPLOYEE)*n ...
надо написать программку которая бы считывала из файла большие числа
(например 123124451451451.134514715612)
переводила их с десятичной в двоичную систему исчесления
и выводила..
я начал писать её потихонечку, по частям.
написал считывание и вывод числа.
только вот что-то не компилируеццо.
чесно сказать замучался не вижу ошибок и всё.
оч. прошу чтобы кто-то мне помог устранить ошибки чтобы программка скомпилировалась.
пишу в Dev C++ 4.9.9.2
вот код программки:
#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)
-----------
пожалуйста укажите мне что надо поменять чтобы скомпилировалось
(чуть конкретней чем пишет компилятор)
спс за внимание