Консультация № 176759
18.02.2010, 09:31
0.00 руб.
0 2 1
Здравствуйте уважаемые эксперт помогите мне с такой задачкой,,,
в двухмерном массиве определить номера тех строк , знаки элиментов которых не совпадают и найти в этих строках минимальные элементы

Обсуждение

Неизвестный
18.02.2010, 10:21
общий
Я думаю, что надо пояснить фразу "номера тех строк , знаки элиментов которых не совпадают". То есть АБСОЛЮТНО ВСЕ имеют противоположные знаки?
Пример приведите, например.
Неизвестный
18.02.2010, 15:31
общий
это ответ
Здравствуйте, luba tixomirova.
Текст условия задачи допускает неоднозначное трактование.
В приложении представлен вариант решения того варианта, который показался наиболее вероятным.

Приложение:
{
в двухмерном массиве определить номера тех строк,
знаки элиментов которых не совпадают и найти в этих строках минимальные элементы
}
Uses
Crt;
Const
Rows = 5;
Columns = 5;
RndMax = 20;
Var
row, column: Byte;
Ar: Array[1..Rows, 1..Columns] of Integer;
Min: Integer; {Минимальный элемент в строке}
pf, nf: Boolean; {Флаги наличия положительных и отрицательных чисел}
begin
ClrScr;
Randomize;
{Init array items}
for row:=1 to Rows do begin
for column:=1 to Columns do begin
Ar[row, column] := Random(RndMax) - 10;
Write(Ar[row, column]:4);
end;
WriteLn;
end;

{Solving}
WriteLn;
for row:=1 to Rows do begin
pf := false; {Сбросить флаги}
nf := false;
Min := RndMax; {установить начальное минимальное значение}
for column:=1 to Columns do begin
if (Ar[row, column] > 0) then {если элемент положительный}
pf := true; {поднять флаг}
if (Ar[row, column] < 0) then {если элемент отрицательный}
nf := true; {поднять флаг}
if (Min > Ar[row, column]) then {проверить элемент на минимальность}
Min := Ar[row, column];
end;
if (pf and nf) then {если были встречены и положительные и отрицательные элементы}
WriteLn(row:2, ': ', Min); {написать отчет по строке}
end;
readkey;
end.
Форма ответа