Объяснить работу программы(написать для чего каждая строка) - Turbo Pascal (33873)
Формулировка задачи:
Задача:Дан массив целых чисел.Найти максимальный элемент среди отрицательных
Код программы:
Решение задачи: «Объяснить работу программы(написать для чего каждая строка)»
textual
Листинг программы
const n = 10; {размер массива задан константой} var a : array[1..n] of integer; {описание массива} i, max, k : integer; begin max := -32768; {изначально полагаем максимум = минимально возможному числу которое помещается в тип integer} k := 0; {счетчик количества отрицательных} writeln('вводим массив:'); for i := 1 to n do {цикл} begin write('Элемент [', i, ']: '); {вывод сообщения о вводе i элемента} readln(a[i]); {ввод элемента} {если элемент отрицательный a[i] < 0 и при этом больше или равен максимальному a[i] >= max } if (a[i] < 0) and (a[i] >= max) then {то} begin max := a[i]; {максимальным становится этот элемент} inc(k) {прибавляем +1 к счетчику отрицательных} end end; {конец цикла} writeln('Вы ввели массив:'); {вывод массива в строку} for i := 1 to n do write(a[i]:6); writeln; {перевод строки} {если количество отрицательных не 0, то выводим максимальный} if k <> 0 then writeln('максимальное из отрицательных: ', max) {иначе выводим, что их нет} else writeln('отрицательных нет'); {ожидаем нажатия enter} readln end.
Объяснение кода листинга программы
const n = 10; var a : array[1..n] of integer; i, max, k : integer; begin max := -32768; k := 0; writeln('вводим массив:'); for i := 1 to n do begin write('Элемент [', i, ']: '); readln(a[i]); {если элемент отрицательный a[i] < 0 и при этом больше или равен максимальному a[i] >= max } if (a[i] < 0) and (a[i] >= max) then begin max := a[i]; inc(k) ;прибавляем +1 к счетчику отрицательных end end; writeln('Вы ввели массив:'); for i := 1 to n do write(a[i]:6); writeln; {перевод строки} {если количество отрицательных не 0, то выводим максимальный} if k <> 0 then writeln('максимальное из отрицательных: ', max) {иначе выводим, что их нет} else writeln('отрицательных нет'); readln; end.