Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 28.02.2010, 17:08   #11
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

как я понимаю файл на самом деле не integer? а просто сплошной текст? текстовый файл?
Писано по д'Эльфийски
Лубышев вне форума
Старый 28.02.2010, 17:13   #12
Natsu
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 42
По умолчанию

угу угу спасибо босс *вытерает скупую мужскую слезу*

и еше босс тут проблемка почму вывода некакого нет?? ну как бы не выводит на екран какие где(

и нету заполнения етих фалйлов(

походу я незачту ету прогу(

Последний раз редактировалось Stilet; 01.03.2010 в 09:05.
Natsu вне форума
Старый 28.02.2010, 17:38   #13
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

короче можно сделать так: файл открываем не как числовой а как набор символов. пробегаемя по нему и если натыкаемся на цифру то добавляем во временную строку, а если натыкаемся на другой символ то прекращаем добавлять символы в строку эту и переводим эту строку в чипсловой формат и пишем ее в файл (или один или второй) в зависимости от того четное ли число или нет....
Код:
function cifra(ch:char):boolean;{проверка на числа}
const s=['0','1','2','3','4','5','6','7','8','9'];{список цифр}
begin
  if ch in s then cifra:=true else cifra:=false;
end;
var f:file of char;
g,h:file of integer;
chislo:string;{набираем сюда цифры}
ch:char;{символ}
begin
	Assign(f,'text.txt');{ассоциация переменной с файлом}
	Assign(g,'g.dat');{ассоциация переменной с файлом}
	Assign(h,'g.dat');{ассоциация переменной с файлом}
	reset(f);{открыть на чтение}
	rewrite(g);{открыть на запись}
	rewrite(h);{открыть на запись}
	while not eof(f) do{пока файл не концится}
	begin
		read(s,ch);{считываем из файла символ}
		if Cifra(ch)=true then chislo:=chislo+ch else {если символ это цифра то добавляем к строке}
		begin
			
			if chislo<>'' then if integer(chislo) mod 2 =0 then{если число четное то в один а если нет то в другой}
			begin
				write(g,integer(chislo)) else write(h,integer(chislo));
				chislo:='';
			end;
		end;

	end;
	Close(f);
	Close(g);
	Close(h);
end.
Не знаю правильно или нет паскаля под рукой нет пишу все в блокноте.
считываем мы из текстового файла а записываем в числовой
Писано по д'Эльфийски
Лубышев вне форума
Старый 28.02.2010, 17:58   #14
Natsu
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 42
По умолчанию

проблема начал подстраивать программу

Код:
var f,g,h:text;
buf,n,I:integer;
s:string;
begin
assign(f, 'f.dat');
rewrite(f);
writeln('введите кол-во записей');
readln(n);
for I:=1 to n do
Begin
readln(s);
writeln(f,s);
end;
close(f);

assign(g, 'g.dat');
assign(h, 'h.dat');
reset(f);
rewrite(g);
rewrite(h);
while not eof(f) do
begin
read(f,buf);

if buf mod 2=0 then write(g,buf) else write(h,buf);
end;
    Writeln;
    writeln('четные');
    Reset(g); 
    While not eof(g) do 
    Begin
        Readln(g,s);
        Writeln(s); 
    End;
     Writeln;
    writeln('нечетные');
    Reset(h); 
    While not eof(h) do 
    Begin
        Readln(h,s);
        Writeln(s); 
    End;
close(f);
close(g);
close(h);


end.
тут возникает одна проблемма когда выводится четные цифры к ним еше левый ноль откудато берется и еше надо сделать както так чтобы ненадо было задавать размерность скоко ввести а чисто вводить и когда надо набрать цыфру 9999 и остановится

Последний раз редактировалось Stilet; 01.03.2010 в 09:05.
Natsu вне форума
Старый 28.02.2010, 18:02   #15
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

так, че то ты меня запутал то числовой говоришь то текстовый... я не пойму ни как че то...
Писано по д'Эльфийски
Лубышев вне форума
Старый 28.02.2010, 18:04   #16
Natsu
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 42
По умолчанию

ну я просто начал эксперементировать и некак не получается я хз че делать пусть хотяб так будет без нечего но чтобы программа была уже полность готова поджскажи плз

больше всего меня заботит почему тот ноль автоматом к четным заносится я хз вводиш 5 4 5 2 5 3 3 3

Получится

четные
4
2
0
нечетные
5
5
5
3
3
3

и почму я хз

организовал проверку на четность нечетность так
if Not Odd(buf) then writeln(g,buf) else writeln(h,buf);
и нечего не изменилось откуда етот чертов ноль(

Последний раз редактировалось Stilet; 01.03.2010 в 09:05.
Natsu вне форума
Старый 28.02.2010, 18:38   #17
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

тогда сделай
Код:
if buf<>0 then
begin
  if buf mod 2=0 then write(g,buf) else write(h,buf);
end else write(h,buf);
Писано по д'Эльфийски
Лубышев вне форума
Старый 28.02.2010, 18:42   #18
Natsu
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 42
По умолчанию

Лубышев Пожалуйсто помоги в последний раз я тебе дам етот чертов код программы а то я помру там исправить надо немного я непонимаю просто как сделать так чтобы сама программа после ввода 9999 выходила к ответам ну ваше хз проверь плз

Код:
var f,g,h:text;{ôàéëîâûå ïåðåìåííûå}
buf,n,I:integer;{áóôôåð äëÿ âðåìåííîãî õðàíåíèÿ ÷èñëà}
s:string;
label m;
begin
assign(f, 'f.dat');{àññîöèàöèÿ ïåðåìåííîé ñ ôàéëîì íà äèñêå}
rewrite(f);
readln(n);
for I:=1 to 5000 do
Begin
if s='9999' then goto m;
readln(s);
writeln(f,s);
end;
close(f);

assign(g, 'g.dat');{àññîöèàöèÿ ïåðåìåííîé ñ ôàéëîì íà äèñêå}
assign(h, 'h.dat');{àññîöèàöèÿ ïåðåìåííîé ñ ôàéëîì íà äèñêå}
reset(f);{îòêðûòü íà ÷òåíèå}
rewrite(g);{îòêðûòü íà ïåðåçàïèñü}
rewrite(h);{îòêðûòü íà ïåðåçàïèñü}
while not eof(f) do{ïîêà íå äîñòèãíåì êîíöà ôàéëà}
begin
read(f,buf);{ñ÷èòûâàåì î÷åðåäíîå ÷èñëî â ïåðåìåííóþ}
{åñëè ÷åòíàÿ òî â îäèí ôàéë åñëè íåò òî â äðóãîé}
if Not Odd(buf) then writeln(g,buf) else writeln(h,buf);
end;
    Writeln;
    writeln('÷åòíûå');
    Reset(g); {îòêðûâàåì âòîðîé ôàéë äëÿ ÷òåíèÿ}
    While not eof(g) do {ïîêà íå êîíåö âòîðîãî ôàéëà}
    Begin
        Readln(g,s);{ñ÷èòûâàåì î÷åðåäíóþ ñòðîêó èç âòîðîãî ôàéëà}
        Writeln(s); {âûâîäèì ñòðîêó íà ýêðàí}
    End;
     Writeln;
    writeln('íå÷åòíûå');
    Reset(h); {îòêðûâàåì âòîðîé ôàéë äëÿ ÷òåíèÿ}
    While not eof(h) do {ïîêà íå êîíåö âòîðîãî ôàéëà}
        begin
        Readln(h,s);{ñ÷èòûâàåì î÷åðåäíóþ ñòðîêó èç âòîðîãî ôàéëà}
        Writeln(s); {âûâîäèì ñòðîêó íà ýêðàí}
    End;
close(f);{íå çàáûâàåì çàêðûâàòü ôàéëû}
close(g);{íå çàáûâàåì çàêðûâàòü ôàéëû}
close(h);{íå çàáûâàåì çàêðûâàòü ôàéëû}


end.
я сделал вот ето как ты сказал
if buf<>0 then
begin
if buf mod 2=0 then write(g,buf) else write(h,buf);
end else write(h,buf);
теперь ноль в нечетные помешает))

я хз как отладить ету программу проше расплакаться и впасть в депресняк)))

Последний раз редактировалось Stilet; 01.03.2010 в 09:06.
Natsu вне форума
Старый 28.02.2010, 18:50   #19
Natsu
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 42
По умолчанию

Лубышев а у васточно скайпа нет мож я там бы все смолг точно обьяснить(
Natsu вне форума
Старый 28.02.2010, 19:14   #20
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

не совсем понял че ты хочешь....

Код:
for I:=1 to 5000 do
Begin
if s='9999' then goto m;
readln(s);
writeln(f,s);
end;
переписываем так:
Код:
i:=0;
while (s<>'9999') or (i<5000) do
Begin
readln(s);
writeln(f,s);
inc(i);
end;
если тебе ноль вообще не надо учитывать то перепеши так:

Код:
if buf<>0 then 
begin
  if buf mod 2=0 then write(g,buf) else write(h,buf);
end;
Писано по д'Эльфийски

Последний раз редактировалось Лубышев; 28.02.2010 в 19:20.
Лубышев вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal работа с файлами A.S.W Помощь студентам 1 07.01.2010 19:01
работа с файлами (Pascal) makc101 Помощь студентам 5 26.12.2009 14:46
Работа с файлами в Pascal Fellics{новичок} Помощь студентам 1 16.12.2009 10:20
Pascal/ работа с файлами V@dlo Помощь студентам 1 14.11.2009 19:55