IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> сделал програму но в конце неправильно
сообщение
Сообщение #1


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

Репутация: -  1  +


Тут в програме с файла берем все 15 чисел потом записываем в масив потом выписываем в отдельный масив однозначные числа и должны сравнить масивы с однозначными со всем масивом тут чегото немогу сравнить в с++ а надо в с++ вот


#include <iostream>
#include <fstream>
using namespace std;

#define max 14
int m[max];
int m1[max];
int a,i,j;
void skait(ifstream fff);
void atranka();
void perasimas();

int main()
{


ifstream fff("e4.txt", ios::out | ios::binary);
skait(fff);
fff.close();
atranka();
perasimas();
return 0;

}

void skait(ifstream fff)
{
for(int i=1; i<=15; i++)
{
fff>>a;
m[i]=a;

};
}
void atranka()
{
j=0;
for(int i=1; i<15; i++)
if (m[i]<=9)
{
j++;
m1[j]=m[i];
};

}


//========================tut osibka
void perasimas()
{
// ofstream ff("rez.txt", ios::in | ios::binary);
int b;
for(int z=1; z<=15; z++)

{
// b=0;
// for(int i=1; i<=j; i++)
//if (m1[i]=m[z]) b=1;
// if (b=0)
if (m[z]>9) // tak pravilno no nado s drugim masyvom sravnivat
cout << m[z] << endl;

};
// ff.close();
}




и потом записать в файл другой
а вот на паскале так все правильно идет
program Bevarde0;
var d,r:text;
i,j,a,b:integer;
mas,mas1:array [1..15] of integer;
begin
assign(d,'e4.txt');
Assign (r,'rez.txt');
reset (d);
rewrite ®;
for i:=1 to 15 do
readln(d,mas[i]);
j:=0;
for i:=1 to 15 do
if mas[i]<10 then
begin
inc(j);
mas1[j]:=mas[i];
end;

writeln ('odnoznacnije');
for i:=1 to j do
writeln(mas1[i]);
writeln('vsbrannue');

for a:=1 to 15 do
begin
b:=0 ;
for i:=1 to j do
if (mas1[i]=mas[a]) then b:=1;
if b=0 then
writeln(mas[a]);
end;

Readln;
close(d);
close®;
end.


Добавлено через 1 мин.
запутался я как в с++ сделать и чего неполучается ведь также само сравнивается

Сообщение отредактировано: volvo -


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

Репутация: -  1  +


а я понял но незнаю как исправить
// for(int i=1; i<=j; i++)
//if (m1[i]=m[z]) b=1;
// if (b=0)


тут смотрится сразу 2 if после цикла а надо чтобы один


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


В С++ сравнение не "=", а "==" smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






maksimla, у тебя ошибка - выход за пределы массива:
Цитата
#define   max   14
int m[max];
int m1[max];

и
Цитата
	for(int i=1; i<=15; i++)
{
fff>>a;
m[i]=a;
};

это показывает... В массиве m всего 14 элементов - от 0 до 13, а ты обращаешься и к 14-му и к 15-му. Потом не удивляйся, что программа вылетит с ошибкой либо будет работать неправильно.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

Репутация: -  1  +


не програма еще неразу невылетила


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

Репутация: -  1  +


Чего то запутался в файл не могу записать точнее не какой ошибки не выдает а в файл не пишет а так все исправил и с массивами
#include <iostream>
#include <fstream>
using namespace std;

#define max 15
int m[max];
int m1[max];
int a,i,j;
void skait(ifstream fff);
void atranka();
void perasimas();

int main()
{


ifstream fff("e4.txt", ios::out | ios::binary);
skait(fff);
fff.close();
atranka();
perasimas();
return 0;

}

void skait(ifstream fff)
{
for(int i=0; i<15; i++)
{
fff>>a;
m[i]=a;

};
}
void atranka()
{
j=0;
for(int i=0; i<14; i++)
if (m[i]<=9)
{
j++;
m1[j]=m[i];

};

}


//========================
void perasimas()
{
ofstream fail("rez.txt", ios::in | ios::binary);
int b;
for(int z=0; z<15; z++)

{
b=0;
for(int i=0; i<=j; i++)
if (m1[i]==m[z]) b=1;
if (b==0)
fail << m[z] << endl;

};
fail.close();
}


п.с Я болел и не мог написать


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Цитата
точнее не какой ошибки не выдает а в файл не пишет
Значит, плохой компилятор. Мой выдает. Смотри, что выдает:
D:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\ios_base.h|781|
error: `std::ios_base::ios_base(const std::ios_base&)' is private|
F:\Programs\CPP\forum_quick_test\console_cpp\main.cpp|591|error: within this context|
D:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\include\c++\3.4.5\streambuf|769|
error: `std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&)
[with _CharT = char, _Traits = std::char_traits<char>]' is private|
F:\Programs\CPP\forum_quick_test\console_cpp\main.cpp|591|error: within this context|
F:\Programs\CPP\forum_quick_test\console_cpp\main.cpp||In function `int main()':|
F:\Programs\CPP\forum_quick_test\console_cpp\main.cpp|591|error: initializing argument 1 of `void skait(std::ifstream)'|
||=== Build finished: 5 errors, 0 warnings ===|


Теперь - расшифровка: во-первых, в чем смысл - описывать файл типа istream (input stream все-таки, поток для ввода), и открывать его с флагом ios::out, и наоборот - ostream (он же output stream, поток для вывода) открывать с флагом ios::in? Все наоборот, istream открывается с ios::in, а ostream - с ios::out... Зачем файлы, которые имеют расширение TXT, открываются как бинарные (с флагом ios::binary)?

Но и это не главное. Главное- что передавать в функцию skait надо не сам поток, а ссылку на него:
void skait(ifstream& fff)


Также неплохо было бы проверять, а открылся ли файл. То, что ты его хотел открыть - это прекрасно, но он же мог и не открыться? Вот тогда ошибок не будет. Теперь можешь тестировать. Хотя я не понимаю, зачем открывать файл в основной программе, а работать с ним в функции. Ведь файл для вывода описывается и создается прямо внутри функции perasimas.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

Репутация: -  1  +


да уж какие у меня глупые ошибки
вот последнее осталась
надо записать не в строчку а в столбик а у меня чего то в строчку
void perasimas()
{
ofstream fail("rez.txt", ios::out | ios::binary);
int b;
for(int z=0; z<15; z++)

{
b=0;
for(int i=0; i<=j; i++)
if (m1[i]==m[z]) b=1;
if (b==0)
fail << m[z]; fail<< endl;

};
fail.close();
}



--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата
надо записать не в строчку а в столбик а у меня чего то в строчку
А я тебя что, просто так спрашивал:
Цитата
Зачем файлы, которые имеют расширение TXT, открываются как бинарные (с флагом ios::binary)?
? Ты ж продолжаешь делать по-своему. Вот и получай не то, что хотел. Убрал бы флажок ios::binary - было бы в столбик...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Знаток
****

Группа: Пользователи
Сообщений: 324
Пол: Мужской
Реальное имя: maksim

Репутация: -  1  +


нам так сказали что надо так
 ofstream fail("rez.txt", ios::out | ios::binary);


защита какаето будит лутшей

Добавлено через 3 мин.
void perasimas()
{
ofstream fail("rez.txt", ios::out);
int b;
for(int z=0; z<15; z++)

{
b=0;
for(int i=0; i<=j; i++)
if (m1[i]==m[z]) b=1;
if (b==0)
{
fail << m[z]; fail<< endl;
};

};
fail.close();
}



ага все так нормально делает а могбы объяснить про защиту ?


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.04.2024 3:24
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name