Помощь - Поиск - Пользователи - Календарь
Полная версия: Что делать с отрицательными элементами?
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Excl
Вообщем-то, задача простая, но есть недоделка...
Задание: дана матрица 10х10, найти в ней максимальный элемент, в той строке, где он есть, возвести все элементы этой строки в квадрат.
Код

Program prog;
var a:array[1..10,1..10] of integer; i,j,max,s:integer;
begin
for i:=1 to 10 do for j:=1 to 10 do readln(a[i,j]);
for i:=1 to 10 do for j:=1 to 10 do begin if a[i,j]>max then max:=a[i,j]; s:=i; end;
for j:=1 to 10 do sqr(a[s,j]);
end.

Но это все не будет работать, если в матрице будут только одни отрицательные элементы. Надо присвоить max:=??? Или еще что-то?
volvo
Вообще-то всегда надо инициализировать переменные. Не полагайся на компилятор...

Program prog;
var
a: array[1 .. 10, 1 .. 10] of integer;
i, j, max, s: integer;
begin
for i:=1 to 10 do
for j:=1 to 10 do readln(a[i,j]);

max := -maxint; { минимально возможное для Integer число }
for i:=1 to 10 do
for j:=1 to 10 do begin
if a[i,j]>max then max:=a[i, j]; s:=i;
end;

for j:=1 to 10 do a[s, j] := sqr(a[s,j]); { <-- Все-таки это ФУНКЦИЯ }
end.
Гость
Цитата
for j:=1 to 10 do a[s, j] := sqr(a[s,j]); { <-- Все-таки это ФУНКЦИЯ }
Просто я торопился... smile.gif
А нельзя никак без maxint? Есть другой способ? Боюсь, информатик шуметь начнет.
volvo
Тогда делай:
max := a[1, 1]; s := 1;

присвоение в S единицы тогда обязательно, ибо если элемент a[1, 1] будет максимальным, а этого присвоения не будет - то в S сохранится некорректное значение...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.