Выяснить, какое число встречается раньше — положительное или отрицательное - Pascal ABC
Формулировка задачи:
Составить программу на паскале, содержащую 4 подпрограммы. Дан одномерный массив, выполнить след. действия:
1) выяснить, какое число встречается раньше - положительное или отрицательное.
2) выяснить, будет-ли этот массив возрастающим
3) создать массив из четных чисел массива, если таких нет, то вывести сообщение
4)указать наименьшую длину числовой оси, содержащую все элементы массива.
Буду очень признателен
Решение задачи: «Выяснить, какое число встречается раньше — положительное или отрицательное»
textual
Листинг программы
program pr; type arr = array [1..100] of integer; var a: arr; i, n: integer; dv: double; procedure fir(var x: arr); var j: integer; begin for j := 1 to n do if a[1] > 0 then begin writeln; writeln('Раньше встречается положительное'); break; end else if a[1] < 0 then begin writeln; writeln('Раньше встречается отрицательное'); break; end; end; procedure second(var x: arr); var j, i: integer; f: boolean; begin f := true; for j := 2 to n do if a[j] < a[j - 1] then f := false; if f then writeln('Возрастающая') else writeln('Невозрастающая'); end; procedure three(var x: arr); var f: boolean; b: arr; j: integer; begin f := false; for j := 1 to n do if a[j] mod 2 = 0 then begin f := true; end; if f = true then begin for j := 1 to n do if a[j] mod 2 = 0 then begin b[j] := a[j]; write(b[j]:3); end; end else writeln('В массиве нет чётных элементов'); end; procedure four(var x: arr; var d: double); begin var j, min, max: integer; begin max := a[1]; min := a[1]; for j := 1 to n do begin if a[j] > max then max := a[j]; if a[j] < min then min := a[j]; end; d := abs(max - min); writeln; end; end; begin writeln('Введите размер массива'); readln(n); for i := 1 to n do begin write(i, ' элемент= '); read(a[i]); end; for i := 1 to n do write(a[i]:3); fir(a); second(a); three(a); four(a, dv); writeln('Длина числовой оси =', dv ); end.
Объяснение кода листинга программы
- В программе объявлены переменные типа arr, i, n, dv, j, k, f, b, d.
- Создается массив a размером n.
- Запускается процедура fir, которая проверяет, является ли первое число в массиве положительным или отрицательным. Если это так, выводится сообщение
Раньше встречается положительное
. Если нет, выводится сообщениеРаньше встречается отрицательное
. Если после выполнения всех проверок не было найдено ни одного числа, которое встречается раньше, выводится сообщениеВозрастающая
. - Запускается процедура second, которая проверяет, является ли каждый следующий элемент в массиве больше предыдущего. Если это так, выводится сообщение
Возрастающая
. Если нет, выводится сообщениеНевозрастающая
. - Запускается процедура three, которая проверяет, есть ли в массиве четные числа. Если это так, выводится сообщение
В массиве есть чётные элементы
. Если нет, выводится сообщениеВ массиве нет чётных элементов
. - Запускается процедура four, которая находит минимальный и максимальный элементы в массиве, а затем вычисляет разницу между ними. Если эта разница больше единицы, выводится сообщение
Разница между минимальным и максимальным элементами больше единицы
. Если разница меньше или равна единице, выводится сообщениеРазница между минимальным и максимальным элементами меньше или равна единице
. - Запускается основной цикл программы, который включает в себя ввод размера массива, заполнение массива числами, выполнение всех процедур и вывод длины числовой оси.