Консультация № 150686
16.11.2008, 11:48
0.00 руб.
0 4 1
Здравствуйте уважаемые эксперты! Помогите написать программу в Паскале: Дана матрица А(4х4) найти 1) сумму S отрицательных элементов на побочной диагонали; 2) найти наибольший элемент 2-го столбца и его местоположение; 3) заменить найденный максимальный элемент во 2-ом столбце на значение суммы S. Помогите плиз завтра уже здавать надо))) Ввод вывод сделал, сумму вроде находит, а вот максимум найти и его положение, никак, и заменить немогу. Заранее благодарен.

Обсуждение

Неизвестный
16.11.2008, 13:04
общий
это ответ
Здравствуйте, Мединский Е. В.!
Примерный вариант решения задачи по разделам прилагаю в приложении.

Приложение:
var
a: array[1..4, 1..4] of integer;
i, j, max, row_max, summ: integer;

begin
{формирование массива}
for i:=1 to 4 do
begin
for j:= 1 to 4 do
begin
if Odd(i+j) then a[i,j]:= (-1) * Random(10)
else a[i,j]:= Random(10);
write(a[i,j]:5);
end;
writeln;
end;
{1}
summ:= 0;
for i:=1 to 4 do
for j:=1 to 4 do
if ((i + j) = 5) and (a[i,j] < 0) then summ:= summ + a[i,j];
{2}
max:= a[1, 2];
row_max:= 1;
for i:= 2 to 4 do
if a[i, 2] > max then
begin
max:= a[i,2]; {значение максимума}
row_max:= i; {индекс строки}
end;
{3}
a[row_max, 2]:= summ; {замена}

{вывод результатов}
writeln('Summ = ', summ:5);
writeln;
writeln('max = ', max:5);
writeln;

for i:=1 to 4 do
begin
for j:= 1 to 4 do write(a[i,j]:5);
writeln;
end;
readln;

end.
Неизвестный
16.11.2008, 13:46
общий
А как он будет выводить местоположение максимума, напишет: row_max=...?
Неизвестный
16.11.2008, 15:24
общий
row_max - это номер строки в которой максимум, номер столбца -по условию второй.
Неизвестный
16.11.2008, 18:04
общий
Короч спасибо, всё работает.
Форма ответа