ПРОГРАММИРОВАНИЕ ПАСКАЛЬ.
Проверить, все ли строки матрицы A(n×m) содержат хотя бы один отрицательный элемент, если не все, сообщить номер первой, где нет отрицательных элементов.
БЕЗ ЦИКЛА FOR, ТОЛЬКО WHILE ИЛИ REPEAT
Из этого всего мне только нужен сам КОД(АЛГОРИТМ) поиска ПЕРВОЙ строки(если она есть т.к. перед этим надо еще проверить не во всех ли строках содержатся отриц. элементов), где нет отрицательных элементов. ъ
ЖЕЛАТЕЛЬНО НАПИСАТЬ ТОЛЬКО ДВЕ ПРОЦЕДУРЫ( Т.Е. тут будет две процедуры, сначала которая проверяет на наличие отриц. элементов и выдает нам значение flag = true или false, а другая процедурa для нахождения номера первой строки без отриц элем., которая будет выполняться только в том случае, если flag = false ( к примеру))
МОЖЕТЕ ПРЕДЛОЖИТЬ ВАШ ВАРИАНТ РЕШЕНИЯ
Ответы
Ответ дал:
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 (можно изменить в самой процедуре)
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 (можно изменить в самой процедуре)
Ответ дал:
0
Спасибо огромное!
Ответ дал:
0
я вот так изменил конец
Ответ дал:
0
if (search <> 0) then writeln('Номер первой строки без отрицательных элементов = ', search)
else writeln('Во всех строках есть отриц элементы');
end.
else writeln('Во всех строках есть отриц элементы');
end.
Ответ дал:
0
лучше занести результат search в дополнительную переменную, чтобы процедура не выполнялась 2 раза, т.к. если матрица будет большой, программа будет выполнятся еще дольше
Ответ дал:
0
ааа, понял, сделаю
Вас заинтересует
2 года назад
7 лет назад
10 лет назад
10 лет назад