Найти в файле наибольшее число и два числа, стоящих перед ним - Pascal
Формулировка задачи:
Решение задачи: «Найти в файле наибольшее число и два числа, стоящих перед ним»
program pr; const n=12; var f:file of integer; g:text; i,a,p,mx,imx:integer; s:real; begin randomize; assign(f,'c:\file1.txt'); rewrite(f); assign(g,'c:\file2.txt'); rewrite(g); for i:=1 to n do begin a:=random(50); write(f,a); end; reset(f); writeln('Содержание файла:'); while not eof(f) do begin read(f,a); write(a,' '); end; writeln; seek(f,0); p:=0; for i:=3 to filesize(f)-1 do begin seek(f,i); read(f,a); seek(f,p); write(f,a); p:=p+1; end; seek(f,filesize(f)-2); truncate(f); writeln('Удаление первых 3:'); seek(f,0); while not eof(f) do begin read(f,a); write(a,' '); end; writeln; seek(f,0); read(f,mx); imx:=0; for i:=1 to filesize(f)-1 do begin read(f,a); if a>mx then begin mx:=a; imx:=i; end; end; if imx<2 then begin writeln(g,'Максимальное =',mx,' его номер =',imx+1); writeln(g,'Перед ним нет 2 чисел'); end else begin s:=0; seek(f,imx); for i:=imx downto imx-2 do begin seek(f,i); read(f,a); s:=s+a; write(g,' ',a); end; writeln(g); write(g,'Cумма=',s:0:2); end; close(f); close (g); end.
Объяснение кода листинга программы
Программа начинается с определения константы n, которая определяет количество чисел, которые будут записаны в файл. Затем определяются переменные f и g, которые представляют собой файлы для чтения и записи соответственно. Далее следует цикл for, который повторяется n раз. В каждой итерации этого цикла генерируется случайное число a между 1 и 50 и записывается в файл f. После этого сбрасывается счетчик i и цикл for повторяется снова. После завершения цикла for, содержимое файла f выводится на экран. Затем файл f сбрасывается в начало и начинается цикл while, который повторяется до тех пор, пока не будет достигнут конец файла. В каждой итерации этого цикла число a считывается из файла f, записывается в переменную a и выводится на экран. После окончания цикла while, файл f сбрасывается в начало и начинается цикл for, который повторяется до тех пор, пока не будет достигнут конец файла. В каждой итерации этого цикла число a считывается из файла f, записывается в переменную a и выводится на экран. Если в процессе выполнения программы было обнаружено, что наибольшее число (mx) стоит перед двумя другими числами (imx-1 и imx-2), то выводится сообщение об этом на экран. В конце программы закрываются файлы f и g.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д