Завтра экзамен! с клавиатуры вводятся вещественные числа. признак конца ввода - 0. определить, является ли вводимая последовательность по невозрастанию или по неубыванию (pascalabc).

Darkparadise02 Darkparadise02    1   09.06.2019 08:30    3

Ответы
HelpFox HelpFox  01.10.2020 22:58
Var
  x, x1: integer;
  BreakLoop, NonDescending: Boolean;

begin
  writeln('Вводите числовую последовательность');
  read(x);
  read(x1);
  NonDescending := (x1 >= x);
  repeat
    read(x);
    if x <> 0 then
      if NonDescending then BreakLoop := (x < x1)
      else BreakLoop := (x > x1);
    x1 := x
  until BreakLoop or (x = 0);
  if BreakLoop then writeln(#13#10, 'Последовательность неупорядочена')
  else
  if NonDescending then writeln(#13#10, 'Последовательность неубывающая')
  else writeln(#13#10, 'Последовательность невозрастающая')
end.

Тестовое решение
Вводите числовую последовательность
7
12
12
18
34
0

Последовательность неубывающая
ПОКАЗАТЬ ОТВЕТЫ
меор меор  01.10.2020 22:58
var
  a, c: boolean;
  b, b1: integer;
begin
  readln(b);
  readln(b1);
  if (b > b1) then
    a := true
  else
    if (b1 > b) then
      a := false;
  while (true) do
  begin
    readln(b1);
    if (0 in [b, b1]) then
      break;
    if a then
    begin
      if (b < b1) then
        c := true;
    end
    else
      if (b > b1) then
        c := true;
    b := b1;
  end;
  if c then
    writeln('Случайная')
  else
    if (a) then
      writeln('Невозрастающая')
    else
      writeln('Неубывающая');
end.

Само собой, должно быть минимум 2 числа в последовательности:)
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика