ПРОГРАММИРОВАНИЕ ПАСКАЛЬ. Проверить, все ли строки матрицы A(n×m) содержат хотя бы один...

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

ПРОГРАММИРОВАНИЕ ПАСКАЛЬ.
Проверить, все ли строки матрицы A(n×m) содержат хотя бы один отрицательный элемент, если не все, сообщить номер первой, где нет отрицательных элементов.

БЕЗ ЦИКЛА FOR, ТОЛЬКО WHILE ИЛИ REPEAT

Из этого всего мне только нужен сам КОД(АЛГОРИТМ) поиска ПЕРВОЙ строки(если она есть т.к. перед этим надо еще проверить не во всех ли строках содержатся отриц. элементов), где нет отрицательных элементов. ъ

ЖЕЛАТЕЛЬНО НАПИСАТЬ ТОЛЬКО ДВЕ ПРОЦЕДУРЫ( Т.Е. тут будет две процедуры, сначала которая проверяет на наличие отриц. элементов и выдает нам значение flag = true или false, а другая процедурa для нахождения номера первой строки без отриц элем., которая будет выполняться только в том случае, если flag = false ( к примеру))

МОЖЕТЕ ПРЕДЛОЖИТЬ ВАШ ВАРИАНТ РЕШЕНИЯ


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

Матрицу заполнять с клавиатуры или рандомом?

0

с клавиатуры

0

а сначала просто const задать для n и m 

Дан 1 ответ
0 голосов
Правильный ответ
Программа:
const
  n = 5;
  m = 5;
 
var
  a: array[1..n, 1..m] of integer;
  i, j: integer;
 
function check(i: integer): boolean;
var j: integer;
begin
  check := false;
  j := 0;
  repeat
    inc(j);
    if a[i, j] < 0 then
    begin
      check := true;
      exit;
    end;
  until j = m;
end;
 
function search: integer;
var i: integer;
begin
  search := 0;
  i := 0;
  repeat
    inc(i);
    if not(check(i)) then
    begin
      search := i;
      exit;
    end;
  until i = n;
end;
 
begin
  writeln('Введите матрицу ', n, 'x', m,': ');
  i := 0;
  repeat
    j := 0;
    inc(i);
    repeat
      inc(j);
      read(a[i, j]);
    until j = m;
  until i = n;
  writeln('Ответ: ', search);
end.
Пример работы программы:
Введите матрицу 5x5:
3 4 2 3 -2
3 -5 -7 -2 1
8 2 5 4 -4
0 1 2 3 4
1 7 2 -5 2
Ответ: 4
* Примечание: Если во всех строках есть отрицательные элементы, то ответ будет 0 (можно изменить в самой процедуре)
(13.3k баллов)
0

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

0

я вот так изменил конец

0

if (search <> 0) then writeln('Номер первой строки без отрицательных элементов = ', search)
  else writeln('Во всех строках есть отриц элементы');
end.

0

лучше занести результат search в дополнительную переменную, чтобы процедура не выполнялась 2 раза, т.к. если матрица будет большой, программа будет выполнятся еще дольше

0

ааа, понял, сделаю