zadach322.PAS

{* Задача 322 *}

Unit ZADACH322;
Interface
Implementation
Begin
 writeln('В файл f записать целые числа в следующем порядке: десять положительных, десять отрицательных, десять положительных и т.д. Переписать компоненты файла f в файл g в следующем порядке: пять положительных, пять отрицательных, пять положительных и т.д. (предполагая, что число компонент файла f делится на 20).');
End.

Program zadach322;

Uses zadach322.pas; {* Эту строку можно удалить *}
Uses crt; {* Подключение модулей *}
Const {* Константы *}
  n = 40;
Var {* Объявление переменных *}
  f   : File Of integer;
  g   : File Of integer;
  i   : integer;
  j   : integer;
  ch  : integer;
  pos : integer;
  h   : integer;
Begin
  clrscr; {* Очищаем экран *}
  randomize;
  assign(f, 'C:f.txt'); {* Подключение к файлу 'C:f.txt' через переменную f *}
  assign(g, 'C:g.txt'); {* Подключение к файлу 'C:g.txt' через переменную g *}
  writeln('Запись чисел в файл');
  reset(f); {* Подготовка переменной f для чтения из файла *}
  Repeat     j := j + 1;
    For i := 1 To 10 Do {* Переменная i увеличивается с 1 до 10 *}
    Begin
      If j Mod 2 = 0 Then
        Repeat                 ch := random(20) - 13;
          textcolor(4); {* Установить Красный цвет текста *}
      Until ch0;
      write(f, ch);
      write(ch : 3);
    End;
  Until j = n / 10;
  close(f); {* Закрытие файла *}
  reset(f); {* Чтение из файла через переменную f *}
  reset(g); {* Подготовка переменной g для чтения из файла *}
  writeln; {* Пропускаем одну строку *}
  j := 0;
  Repeat     j := j + 1;
    If j Mod 20 Then
    Begin
      For i := 1 To 5 Do {* Переменная i увеличивается с 1 до 5 *}
      Begin
        textcolor(3); {* Сине-зеленый текст *}
        read(f, ch);
        write(g, ch);
        write(ch : 3);
        pos := filepos(f);
      End;
      seek(f, pos + 5);
    End;
    Else Begin
      For i := 1 To 5 Do {* Увеличиваем i от 1 до 5 с шагом 1 *}
      Begin
        textcolor(4); {* Выбрать Красный цвет текста *}
        read(f, ch);
        write(g, ch);
        write(ch : 3);
      End;
  pos := filepos(f);
  If pos20 Then
    seek(f, pos - 10);
End;
Until j = n / 5;
readkey; {* Нажмите любую клавишу *}
End....