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

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

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

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

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

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

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

вот задание если что:
В файл F записанны целые числа. Написать программу которая в файл G записывает четные числа а в файл H - нечетные.

Код:
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 автоматически прекратить запаолнение и показать четные и нечетные числа

больше всего меня заботит почему тот ноль автоматом к четным заносится я хз вводиш 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);
и нечего не изменилось откуда етот чертов ноль(

если ставлю переход через goto то вообше какаето несуразница непонимаю че делать(

Последний раз редактировалось Stilet; 01.03.2010 в 09:01.
Natsu вне форума
Старый 28.02.2010, 19:37   #2
Alt
Лжец и смутьян
Форумчанин
 
Аватар для Alt
 
Регистрация: 03.04.2009
Сообщений: 194
По умолчанию

Для начала нормально оформить код...
Помогли тебе - помоги другому.
Alt вне форума
Старый 28.02.2010, 19:41   #3
CodeExpert
Заблокирован
 
Регистрация: 30.10.2009
Сообщений: 468
По умолчанию

goto == атавизм
CodeExpert вне форума
Старый 28.02.2010, 19:44   #4
Natsu
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 42
По умолчанию

ПАРНИ Я СДЕЛАЛ ЕТО УЖЕ СПАСИБО)))

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

Вот новый код
Код:
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 456 do
         Begin
              readln(s);
              if s='9999' then goto m;
              writeln(f,s);
         end;
             close(f);
              M:
             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 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.
смотрите пишу например
5
3
4
8

показывает
четные:
4
8
0
нечетные:
5
3

откуда етот чертов ноль?

может можно както сделать так чтобы ноль просто некогда небыл виден?

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

это не чертов 0, это последняя строка всегда пустая, то есть он делит 0 на ... просто в цикле где то поставь: ограничитель-1 и все...
CodeExpert вне форума
Старый 28.02.2010, 19:52   #6
Natsu
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 42
По умолчанию

как ето сделать скажи почетче плз(((( а то яж пень(
Natsu вне форума
Старый 28.02.2010, 19:53   #7
Natsu
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 42
По умолчанию

напиши пдз код етого ограничителя и я пойду станцую над готовой прогой плз плз плз
Natsu вне форума
Старый 28.02.2010, 20:09   #8
Indian
Форумчанин
 
Регистрация: 23.02.2010
Сообщений: 107
По умолчанию

Чтобы не задавать размерность:
Код:
  while s<>'9999' do
        Begin
            readln(s);
            writeln(f,s);
        End;
Лишний 0:
Код:
While Not eof(f) Do
        Begin
            readln(f,buf);
            If buf Mod 2=0 Then write(g,buf)
            Else write(h,buf);
        End;
Indian вне форума
Старый 28.02.2010, 20:15   #9
Natsu
Пользователь
 
Регистрация: 30.10.2009
Сообщений: 42
По умолчанию

спасибо тебе огромное я люблю тебя))

тема закрыта всем спасибо что помогли!!!

Последний раз редактировалось Stilet; 01.03.2010 в 09:02.
Natsu вне форума
Старый 28.02.2010, 20:24   #10
CodeExpert
Заблокирован
 
Регистрация: 30.10.2009
Сообщений: 468
По умолчанию

Цитата:
спасибо тебе огромное я люблю тебя))
- ты вроде как бы парень, веди себя нормально.........
CodeExpert вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal. Можно ли исправить ошибку? Quezovercoatl Помощь студентам 3 09.12.2009 16:15
как исправить ошибку? aiktz Паскаль, Turbo Pascal, PascalABC.NET 3 24.09.2009 18:56
Найдите Ошибку. Работа с файлами Lord_Rufus Помощь студентам 2 03.10.2008 11:44
MySQL как исправить ошибку Dengar PHP 8 03.03.2008 03:29