|
|
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. 07.08.2014 - Breakpoint - точка остановки 07.08.2014 - Топ-10 самых популярных приложений в Facebook 18.11.2013 - Панель управления и персонализация системы. Windows Vista 18.11.2013 - Логические и физические диски. Windows Vista 18.11.2013 - Удаление файлов и папок 01.11.2013 - Программирование дисковых подсистем: возможности 31.10.2013 - Windows8 или Windows7? 31.10.2013 - Windows8, игры |
|
Non-commercial fansite
|