Предмет: Информатика,
автор: fireRising
ПРОГРАММИРОВАНИЕ ПАСКАЛЬ.
Проверить, все ли строки матрицы 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
ааа, понял, сделаю
Похожие вопросы
Предмет: Математика,
автор: Аноним
Предмет: Информатика,
автор: zopasropa
Предмет: Алгебра,
автор: Аноним
Предмет: Математика,
автор: Bell15