Задать файл из целых чисел. Найти максимальный элемент файла - Pascal ABC
Формулировка задачи:
1. Задать файл из целых чисел. Найти максимальный элемент файла.
2. Уменьшить в 2 каждый ненулевой элемент файла.
3. Найти сумму всех элементов файла, кратных числу 4.
Решение задачи: «Задать файл из целых чисел. Найти максимальный элемент файла»
textual
Листинг программы
uses crt;
var f: file of integer;
g: file of real;
i,c,max,sum: integer;
n: real;
begin
assign(f,'C:\1.dat');
assign(g,'C:\2.dat');
rewrite(f);
for i:=1 to random(11)+10 do
begin
c:=random(199)-99;
write(f,c);
end;
writeln('Файл заполнен случайным количеством случайных чисел');
reset(f);
rewrite(g);
i:=0;
while not eof(f) do
begin
read(f,c);
inc(i);
if i=1 then max:=c
else if c>max then max:=c;
if c<>0 then n:=c/2 else n:=c;
write(g,n);
if c mod 4=0 then inc(sum,c);
end;
writeln('Макс. элемент файла = ',max);
writeln('Сумма элементов, кратных 4 =',sum);
writeln('Исходный файл');
reset(f);
while not eof(f) do
begin
read(f,c);
write(c:5);
end;
writeln('');
writeln('Итоговый файл');
reset(g);
while not eof(g) do
begin
read(g,n);
write(n:5:1);
end;
readln;
close(f);
close(g);
end.
Объяснение кода листинга программы
- Объявляются переменные:
- f: файл для чтения целых чисел из файла 'C:\1.dat';
- g: файл для записи действительных чисел в файл 'C:\2.dat';
- i, c, max, sum: целочисленные переменные;
- n: действительная переменная.
- Задаются начальные значения:
- assign(f, 'C:\1.dat'); - задание файла для чтения;
- assign(g, 'C:\2.dat'); - задание файла для записи;
- rewrite(f); - очистка файла для чтения или запись заголовка;
- rewrite(g); - очистка файла для записи.
- Заполняется файл случайными целыми числами от 0 до 199:
- for i:=1 to random(11)+10 do
- begin
- c:=random(199)-99;
- write(f, c);
- end;
- writeln('Файл заполнен случайным количеством случайных чисел');
- Считывается и анализируется информация из файла:
- reset(f);
- while not eof(f) do
- begin
- read(f, c);
- inc(i);
- if i=1 then max:=c
- else if c>max then max:=c;
- if c<>0 then n:=c/2 else n:=c;
- write(g, n);
- if c mod 4=0 then inc(sum, c);
- end;
- Выводятся результаты:
- writeln('Макс. элемент файла = ', max);
- writeln('Сумма элементов, кратных 4 =', sum);
- Выводится содержимое исходного файла:
- reset(f);
- while not eof(f) do
- begin
- read(f, c);
- write(c:5);
- end;
- writeln('');
- Выводится содержимое итогового файла:
- reset(g);
- while not eof(g) do
- begin
- read(g, n);
- write(n:5:1);
- end;
- Программа завершается:
- readln;
- close(f);
- close(g);