zadacha330.PAS

{* Задача 330 *}

Unit ZADACHA330;
Interface
Implementation
Begin
 writeln('Дан текстовый файл f, содержащий целые числа от1 до 100. Подготовить новый файл для печати этих чисел в две колонки. В левой колонке должны быть размещены числа от 1 до 50, в правой колонке − числа от 51 до 100. Выровнять числа по левому краю. ');
End.

Program pas13488;

Uses zadacha330.pas; {* Эту строку можно удалить *}
Uses crt; {funkciya dlya vyravnivaniya po levomu krayu}
Function Zn(a : byte) : String;
Begin
  If a Div 10 > = 1 Then
    Zn := '   '{esli 4islo v 1-om stolbce 2h zna4noe, To 3 probela}
  Else Zn := '    '{esli odnozna4noe- 4e}
End;
Var {* Необходимые переменные *}
  F  : Text;
  F2 : Text;
  i  : byte;
  N  : byte;
  k1 : byte;
  k2 : byte;
  a1 : Array[1..100] Of byte;
  a2 : Array[1..100] Of byte; {soberem 4isla iz faila v 2 massiva, Do
  50 i > }

Begin
  clrscr; {* Стираем всё с экрана *}
  writeln('Fail F');
  assign(F, 'F.txt'); {svyazyvaet vneshnii fail s peremennoi F}
  assign(F2, 'F2.txt'); {* Связывание F2 с файлом 'F2.txt' *}
  rewrite(F); {sozdaet i otkryvaet novyi fail}
  randomize;
  For i := 1 To 25 Do {* Переменная i увеличивается с 1 до 25 *}
  Begin
    N := random(100) + 1;
    write(F, N, ' ');
    write(N, ' ');
  End;
  writeln; {* Пропускаем одну строку *}
  readln; {* Ждем подтверждения пользователя *}
  reset(F); {otkryvaet dly 4teniya}
  {2-ya chast programmy}
  writeln('Fail F2');
  rewrite(F2); {* Запись в файл через переменную F2 *}
  k1 := 0;
  k2 := 0;
  For i := 1 To 25 Do {* Переменная i увеличивается с 1 до 25 *}
  Begin
    read(F, N); {4itaem 4islo}
    If N 50, To vo 2 - i massiv}
    Begin
      k2 := k2 + 1;
      a2[k2] := N;
    End;
    
  End;
  close(F); {* Закрыть файл F *}
  If k1 = k2 Then {esli massivi odinakovie}
  Begin
    For i := 1 To k1 Do {* Увеличиваем i от 1 до k1 с шагом 1 *}
    Begin
      writeln(F2, a1[i], Zn(a1[i]), a2[i]); {vivodim v fail i na ekran 1-e 4islo, probely(3 ili 4), 2-e 4islo}
      writeln(a1[i], Zn(a1[i]), a2[i]);
    End;
    
  End;
  Else If k1 > k2 Then {esli 1-i massiv bolshe}
  Begin
    For i := 1 To k2 Do Do
      dliny vtorogo massiva}

      Begin
        writeln(F2, a1[i], Zn(a1[i]), a2[i]); {vyvodim takge}
        writeln(a1[i], Zn(a1[i]), a2[i]);
      End;
    For i := k2 + 1 To k1 Do {vyvodim ostatok 1go massiva}
    Begin
      writeln(F2, a1[i]);
      writeln(a1[i]);
    End;
    
  End;
  Else If k2 > k1 Then {esli 2-i dlinnee}
  Begin
    For i := 1 To k1 Do Do
      konca 1 - go}

      Begin
        writeln(F2, a1[i], Zn(a1[i]), a2[i]); {vyvodim 2 stolbca}
        writeln(a1[i], Zn(a1[i]), a2[i]);
      End;
    For i := k1 + 1 To k2 Do {ostatok 2-go vyvodim v odin stolbec}
    Begin
      writeln(F2, '     ', a2[i]); {6 probelov}
      writeln(F2, '     ', a2[i]);
    End;
    
  End;
  readln; {* Ждем подтверждения пользователя *}
  close(F2); {* Файл F2 будет закрыт *}
End.