Другие языки программирования и технологии
Помогите,пожалуйста,решить задачу на двумерные массивы,в паскале.(задача вн.)Спасибо.
В двухмерном массиве из n строк и n столбцов, где n — нечетное число, все элементы различны. Наибольший элемент среди стоящих на главной и побочной диагоналях поменять местами с элементом, стоящим на пересечении этих диагоналей.
const
n = 5;
var
a: array [1..n, 1..n] of integer;
mi, bi, i, j, tmp: integer;
begin
randomize;
writeln('array:');
for i := 1 to n do begin
for j := 1 to n do begin
a[i, j] := random(1000); { или read(a[i, j]); для ввода с клавиатуры }
write(a[i, j]:5);
end;
writeln;
end;
mi := 1;
bi := 1;
for i := 2 to n do begin
if a[i, i] > a[mi, mi] then
mi := i;
if a[n - i + 1, i] > a[n - bi + 1, bi] then
bi := i;
end;
if a[mi, mi] > a[n - bi + 1, bi] then begin
tmp := a[mi, mi];
a[mi, mi] := a[n div 2 + 1, n div 2 + 1];
a[n div 2 + 1, n div 2 + 1] := tmp
end
else begin
tmp := a[n - bi + 1, bi];
a[n - bi + 1, bi] := a[n div 2 + 1, n div 2 + 1];
a[n div 2 + 1, n div 2 + 1] := tmp;
end;
writeln('result:');
for i := 1 to n do begin
for j := 1 to n do
write(a[i, j]:5);
writeln;
end;
end.
n = 5;
var
a: array [1..n, 1..n] of integer;
mi, bi, i, j, tmp: integer;
begin
randomize;
writeln('array:');
for i := 1 to n do begin
for j := 1 to n do begin
a[i, j] := random(1000); { или read(a[i, j]); для ввода с клавиатуры }
write(a[i, j]:5);
end;
writeln;
end;
mi := 1;
bi := 1;
for i := 2 to n do begin
if a[i, i] > a[mi, mi] then
mi := i;
if a[n - i + 1, i] > a[n - bi + 1, bi] then
bi := i;
end;
if a[mi, mi] > a[n - bi + 1, bi] then begin
tmp := a[mi, mi];
a[mi, mi] := a[n div 2 + 1, n div 2 + 1];
a[n div 2 + 1, n div 2 + 1] := tmp
end
else begin
tmp := a[n - bi + 1, bi];
a[n - bi + 1, bi] := a[n div 2 + 1, n div 2 + 1];
a[n div 2 + 1, n div 2 + 1] := tmp;
end;
writeln('result:');
for i := 1 to n do begin
for j := 1 to n do
write(a[i, j]:5);
writeln;
end;
end.
проходить вложенным циклом по массиву
Находите максимальные элементы на главной даигонали (когда i=j) и на побочной (когда i=n-j+1)
И потом меняете их с элементом a[n div 2+1, n div 2+1]
Находите максимальные элементы на главной даигонали (когда i=j) и на побочной (когда i=n-j+1)
И потом меняете их с элементом a[n div 2+1, n div 2+1]
пиши в агент или аську (467679130), помогу
Похожие вопросы
- Pascal. Помогите пожалуйста решить задачу в паскале !
- Помогите пожалуйста, решить задачу на двумерный массив, с++. Спасибо.
- Помогите,пожалуйста,решить задачу в Паскале.
- Помогите пожалуйста решить задачи по информатике, одномерные массивы. Си шарп. Очень срочно. Пожалуйста!!!!
- Помогите пожалуйста решить задачи по программированию. P.S: задачи по паскалю.
- помогите пожалуйста решить задачу по работе компьютера!
- Помогите пожалуйста решить задачу в паскале.
- помогите пожалуйста!!!!решить задачу на паскале...
- помогите пожалуйста решить задачи в паскале очень нужно!
- Помогите пожалуйста решить задачу в Паскале!