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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2015, 17:21   #1
kostyan199731
 
Регистрация: 18.03.2015
Сообщений: 9
По умолчанию Исправте, пожалуйста, прогу. Я дно в паскале=(

Ввести файл F. Найти суммы S1, S2 четных и нечетных компонент. Если S1 больше S2,
то сформировать файл G из четных компонент файла F, иначе – из нечетных компонент.
В конец файла G дописать S1 или S2 соответственно. Файл вывести на печать
Код:
program Files;
var  
     F, G: file of integer;
     S1,S2,i,a:integer;
    begin
  Assign(F,'F.dat');
  rewrite(F);
  writeln('введите первую компоненту файла');
  readLn(i);
  while i<>1234 do
   begin
      write(F,i);
      writeln('введите следующую компоненту:');
      readln(i);
    end;
    close(f);
  S1:=0;
  reset(F);
  while not EOF(F) do
    begin
      read(F,i);
      if (i mod 2 = 0) then
      S1:=S1+i;
     end;
     S2:=0;
reset(F);
  while not EOF(F) do
    begin
      read(F,i);
       if (i mod 2 <> 0) then
      S2:=S2+i;
     end;
     close(f);
    reset (f);
     while not EOF(F) do
      begin
      if S1>S2 then
      Assign(G,'G.dat');
  rewrite(G);
  end;
  close(G);
  begin
  if (i mod 2 = 0) then
  a:=i
   else
   if (i mod 2 <> 0) then
   a:=i;
   Seek(F, FileSize(F)); 
   Write(F,S1,S2 );
   end;
   end.

Последний раз редактировалось Аватар; 16.05.2015 в 17:49.
kostyan199731 вне форума Ответить с цитированием
Старый 16.05.2015, 19:29   #2
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Это могло бы быть примерно так:
Код:
program Files;
var
F, G: file of integer;
S0, S1, S2, i, a: integer;
Begin
  Assign(F, 'F.dat');
  rewrite(F);
  writeln('Введите число целого типа. Для завершения ввода - 1234!');
  S1 := 0;
  S2 := 0;
  while i<>1234 do
  begin
     readln(i);
     if ((i mod 2) = 0) then
        S1:=S1 + i
     else
        S2 := S2 + 1;
     writeln(F, i);
  end;
  close(f);

  Assign(G,'G.dat');
  rewrite(G);
  reset (f);
  a := 0;
  S0 := S1;
  if (S1 <= S2) then
  begin
     a := 1;
     S0 := S2;
  end;
  while not EOF(F) do
  begin
    readln(f, i);
    if ((i mod 2) = a) then
       writeln(G, i)
  end;
  Writeln(F, S0);
  close(G);
  
end.

Как-то так, ...
PS: 1. Не проверял ...
2. В конце программы надо дописать вывод файла G на экран (печать)...
Как-то так, ...

Последний раз редактировалось ViktorR; 16.05.2015 в 19:34.
ViktorR вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исправте ошибки. программа в паскале по теме " Строки" Anton94.by Помощь студентам 2 27.11.2011 23:28
Исправте у меня пожалуйста если не правильно......... karazmik Общие вопросы C/C++ 2 19.12.2009 23:25
исправте прогу... Оксаночка:) Помощь студентам 12 18.12.2009 00:26
Найдите ошибки и исправте??? Пожалуйста Очень срочно VADOS2009-1 Паскаль, Turbo Pascal, PascalABC.NET 1 05.06.2009 01:09