Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Сборная Домашка
+4

Помогите срочно!!!!Информатика ПАСКАЛЬ

Буду рад за помощь!
Задачу надо решить с ПАСКАЛЬ
12.141. Дан двумерный массив. Составить программу:
а) которая определяет, является ли последовательность элементов некоторой строки массива упорядоченной по неубыванию;
б) которая определяет, является ли последовательность элементов некоторого столбца массива упорядоченной по невозрастанию.
В случае отрицательного ответа в обеих задачах должны быть напечатаны
координаты первого элемента, нарушающего указанную упорядоченность.

По дате
По рейтингу
Аватар пользователя
Новичок

По неубыванию:

12345678910111213141516171819202122232425262728293031323334353637383940414243
 program CheckOrder;
var
  n, m, i, j, k, l: integer;
  a: array[1..1000, 1..1000] of integer;
  u, v: boolean;
begin
  write('Размерность массива (не менее 2x2 и не более 1000x1000) через пробел: ');
  readln(n, m);
  if (n < 2) or (n > 1000) or (m < 2) or (m > 1000) then begin
    writeln('Неправильная размерность массива');
    exit
  end;
  write('Элементы массива (', n, ' строк по ', m, ' на строке через пробел: ');
  for i := 1 to n do
    for j := 1 to m do
      read(a[i, j]);
  write('Строка и столбец для проверки: ');
  readln(k, l);
  if (k < 1) or (k > n) or (l < 1) or (l > m) then begin
    writeln('Неправильный номер строки или столбца');
    exit
  end;

  u := true;
  for j := 1 to m - 1 do begin
    if u and (a[k, j] > a[k, j + 1]) then begin
      writeln('Строка ', k, ' не упорядочена, индекс нарушителя: ', j + 1);
      u := false
    end
  end;
  if u then
    writeln('Строка ', k, ' упорядочена');

  v := true;
  for i := 1 to n - 1 do begin
    if v and (a[i, l] > a[i + 1, l]) then begin
      writeln('Столбец ', l, ' не упорядочен, индекс нарушителя: ', i + 1);
      v := false
    end
  end;
  if v then
    writeln('Столбец ', l, ' упорядочен')
end. 

Для изменения порядка сравнения меняем операторы в циклах:

123
 if u and (a[k, j] < a[k, j + 1])

if v and (a[i, l] < a[i + 1, l]) 
Удаленный ответ Ответ удалён