Найти порядковый номер максимального элемента и записать его в первую строку файла, во 2-ю строку сам массив - Pascal
Формулировка задачи:
var
f, r: file of char;
c: char;
i, n,k: integer;
max:char;
x: array [1..1000] of char;
begin
assign(f, 'd:\input.txt');
assign(r, 'd:\output.txt');
reset(f);
i := 1;
while not eof(f) do
begin
read(f, c);
x[i] := c;
write(x[i], ' ');
inc(i);
n := i;
if x[i]>max then
begin
k:=i;
max:=x[i];
end;
end;Решение задачи: «Найти порядковый номер максимального элемента и записать его в первую строку файла, во 2-ю строку сам массив»
textual
Листинг программы
var
f, r: text;
i, n, k: integer;
max: integer;
x: array [1..1000] of integer;
begin
assign(r, 'input.txt');
reset(r);
i := 1;
while not eof(r) do
begin
read(r, x[i]);
inc(i);
end;
n := i;
close(r);
max := x[1];
k := 1;
for i := 1 to n do
if x[i] > max then
begin
k := i;
max := x[i];
end;
writeln('Max: ', max, ', индекс: ', k );
assign(f, 'output.txt');
rewrite(f);
writeln(f, k);
for i := 1 to n do
write(f, x[i], ' ');
writeln(f);
close(f);
end.
Объяснение кода листинга программы
- Объявляются переменные:
fиrкак текстовые файлыi,n,k,maxкак целочисленные переменныеxкак массив из 1000 целых чисел
- Открывается файл
input.txtдля чтения. - Создается цикл, в котором происходит следующее:
- Считывается значение из файла
input.txtи записывается в массивxна позициюi. - Увеличивается значение
iна 1.
- Считывается значение из файла
- Присваивается значению
nзначениеi, полученное после завершения цикла. - Файл
input.txtзакрывается. - Присваивается переменной
maxзначение первого элемента массиваx. - Присваивается переменной
kзначение 1. - Создается цикл, в котором происходит следующее:
- Если текущий элемент массива
xбольше значенияmax, то присваивается значениеkтекущему индексу и значениеmaxтекущему элементу массива.
- Если текущий элемент массива
- Выводится сообщение о максимальном значении
maxи его индексеk. - Открывается файл
output.txtдля записи. - Записывается в файл
output.txtзначение переменнойk. - Создается цикл, в котором происходит следующее:
- Записывается в файл
output.txtзначения массиваxчерез пробел.
- Записывается в файл
- В файл
output.txtдобавляется переход на новую строку. - Файл
output.txtзакрывается.