Найти и распечатать произведение максимальной и минимальной компонент файла - Pascal
Формулировка задачи:
Сформировать файл F целого типа. Найти и распечатать произведение максимальной и минимальной компонент файла. Произведением заменить все нулевые компоненты первой половины файла. Если нулевых компонент в первой половине нет, то удалить из него максимум. Исходный и файл после замены распечатать.
Я понимаю что именно от меня требуется, но написать это на Pascal не могу... не понимаю как и куда впихнуть файл...
Решение задачи: «Найти и распечатать произведение максимальной и минимальной компонент файла»
textual
Листинг программы
var f:file of integer; a,b,i,min,max,imax,p,z:integer; begin //создадим исходный файл например из 20 чисел assign(f,'file'); rewrite(f); randomize; for i:=1 to 20 do begin a:=-6+random(13); write(f,a); end; writeln('Содержание исходного файла'); reset(f); //читаем файл, ищем ноли, минимум, максимум и его индекс z:=0;//есть ли 0 в первой половине файла for i:=0 to filesize(f)-1 do begin read(f,a); write(a:4); if(a=0)and(i<filesize(f)div 2) then z:=1; if i=0 then begin min:=a; max:=a; imax:=0; end else begin if a<min then min:=a else if a>max then begin max:=a; imax:=i; end; end; end; writeln; p:=min*max; writeln('Минимальный элемент=',min); writeln('Максимальный элемент=',max,' его номер=',imax+1,' (индекс=',imax,')'); writeln('Их произведение=',p); //изменяем файл по результатам поиска нолей reset(f); if z=1 then begin writeln('В первой половине файла есть ноли, замена их на значение произведения'); for i:=0 to filesize(f) div 2-1 do begin seek(f,i); read(f,a); if a=0 then begin seek(f,i); write(f,p); end; end; end else begin writeln('В первой половине файла нет нолей, удаление максимального компонента'); for i:=imax to filesize(f)-2 do begin seek(f,i+1); read(f,a); seek(f,i); write(f,a); end; seek(f,filesize(f)-1); truncate(f); end; reset(f); writeln; writeln('Измененный файл'); while not eof(f) do begin read(f,a); write(a:4); end; close(f); end.
Объяснение кода листинга программы
- Объявлены переменные:
- f: файл целых чисел;
- a, b, i, min, max, imax, p, z: целые числа.
- Создается файл из 20 чисел от -6 до 6 с шагом 1.
- Выводится содержимое файла.
- Считывается файл, ищется ноль, минимум, максимум и его индекс.
- Если в первой половине файла есть ноль, то его заменяют на произведение минимума и максимума.
- Если в первой половине файла нет ноля, то удаляется максимум.
- Выводится измененный файл.
- Файл закрывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д