Выяснить, какое число встречается раньше — положительное или отрицательное - 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.

Объяснение кода листинга программы

  1. В программе объявлены переменные типа arr, i, n, dv, j, k, f, b, d.
  2. Создается массив a размером n.
  3. Запускается процедура fir, которая проверяет, является ли первое число в массиве положительным или отрицательным. Если это так, выводится сообщение Раньше встречается положительное. Если нет, выводится сообщение Раньше встречается отрицательное. Если после выполнения всех проверок не было найдено ни одного числа, которое встречается раньше, выводится сообщение Возрастающая.
  4. Запускается процедура second, которая проверяет, является ли каждый следующий элемент в массиве больше предыдущего. Если это так, выводится сообщение Возрастающая. Если нет, выводится сообщение Невозрастающая.
  5. Запускается процедура three, которая проверяет, есть ли в массиве четные числа. Если это так, выводится сообщение В массиве есть чётные элементы. Если нет, выводится сообщение В массиве нет чётных элементов.
  6. Запускается процедура four, которая находит минимальный и максимальный элементы в массиве, а затем вычисляет разницу между ними. Если эта разница больше единицы, выводится сообщение Разница между минимальным и максимальным элементами больше единицы. Если разница меньше или равна единице, выводится сообщение Разница между минимальным и максимальным элементами меньше или равна единице.
  7. Запускается основной цикл программы, который включает в себя ввод размера массива, заполнение массива числами, выполнение всех процедур и вывод длины числовой оси.

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы