Помогите пожалуйста, завтра экзамен! С клавиатуры вводятся вещественные числа. Признак...

0 голосов
115 просмотров

Помогите пожалуйста, завтра экзамен!
С клавиатуры вводятся вещественные числа. Признак конца ввода - 0. Определить, является ли вводимая последовательность упорядоченной по невозрастанию или по неубыванию (PascalABC).


Информатика (15 баллов) | 115 просмотров
0

есть пример выполнения программы для проверки равенства всех членов последовательности, не совсем понятно как заставить программу сравнивать новый член последовательности с предыдущим

0

Program Lab_1_2;Var x1 : integer; x : integer; flag : boolean;BEGIN Writeln('Введите числовую последовательность. '); write('>');Readln(x1); flag:=true; x:=x1; While x<>0 do begin If x <> x1 then flag:= false; write('>');readln(x); end; if flag then Write('Все элементы последовательности равны между собой') else Write('Все элементы последовательности НЕ равны между собой'); readlnEND.

0

Помогите пожалуйста

Дано ответов: 2
0 голосов
Правильный ответ

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

Последовательность неубывающая


(142k баллов)
0

Ооо, спасибо огромное

0 голосов
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 числа в последовательности:)



(16.9k баллов)
0

Спасибо огромное!!!