|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Исправить программу
Добрый день. Помогите, пожалуйста, написать программу.
В строках текстового файла содержатся целые числа. Преобразовать строки файла следующим образом: вначале должны идти четные числа, упорядоченные по возрастанию, а затем нечетные, упорядоченные по убыванию. Их надо записать в другой файл. Есть программа, но она выдаёт мне ошибки. Код:
Program files; type mas= array[1..100] of integer; var f1, f2: text; a, b, d:mas; k, p, i, j: integer; procedure Readfile (f1:text; var a:mas; var k: integer); begin p:=0; k:=0; while not eof (f1) do begin readln (f1,a[k]); k:=k+1; end; end; Procedure Check (var a:mas; p: integer); var k, i, j: integer; b, d: mas; begin i:=1; j:=1; for k:=1 to p do begin if (a[k] mod 2=0) then begin b[i]:=a[k]; i:=i+1; end else begin d[j]:=a[k]; j:=j+1; end; end; end; procedure Regularise(Var b,d: mas; var i, j: integer; f2:text); var H,Y : integer; begin assign(f2, 'C:\Users\User\Desktop\f2.txt'); rewrite(f2); H:=0; Y:=0; while i<>High(b)+1 do begin if b[i]> b[i+1]then begin H:=b[i]; b[i]:=b[i+1]; b[i+1]:=H; readln (f2, b[i]); end; end; while j<>High(d)+1 do begin if d[j]< d[j+1]then begin Y:=d[j]; d[j]:=d[j+1]; d[j+1]:=Y; readln (f2, d[j]); end; end; close (f2); end; begin assign(f1, 'C:\Users\User\Desktop\f1.txt'); reset(f1); Readfile(f1, a, k); Check(a, p); assign(f2, 'C:\Users\User\Desktop\f2.txt'); rewrite(f2); Regularise(b, d, i, j, f2); closefile(f1); closefile(f2); end. lmikle: пользуемся тегами. Последний раз редактировалось lmikle, 20.12.2016 в 20:06. |