Другие языки программирования и технологии

Задача с матрицей. Нужна проверка специалиста.

Дана матрица G(n,m). Переписать элементы её главной диагонали в одномерный массив H. Вывести оба массива (n=9, m=6). Проверьте пожалуйста если я правильно написала код программы.... program matrice; uses crt; type tab=array [1..9, 1..6] of integer; var G:array [1..9, 1..6] of tab; B: tab; i,j,n,m: integer; begin clrscr; write ('introduce n,m'); readln (n,m); for i:=1 to n do for j:=1 to m do read (G[i,j]); write ('главная диагональ'); for i:=1 to no do begin B:=G[i,i]; write (B:4); end; readln; end. Благодарю за помощь.
const n=6;
var G:array [1..n, 1..n] of integer;
B: array [1..n] of integer;
i,j: integer;
Begin
for i:=1 to n do begin
for j:=1 to n do
read (G[i,j]); end;
{Вывод матрицы}
for i:=1 to n do begin
for j:=1 to n do
write(G[i,j]:4);
writeln; end;
writeln;
{Элементы основной диагонали переданы в одномер. массив и выведены на экран}
for i:=1 to n do begin
B:= G[i,i];
write(B:4); end
End.

При работе с элементами основной диагонали лучше брать квадратную матрицу.
Удобно использовать раздел констант: const n=6;
при отдаки проги значение константы берешь маленькое, например, const n=3;
чтобы не вводить много элементов матрицы, а при сдаче задания опять в проге ставишь: const n=6;
УСПЕХОВ!
Андрей Макридин
Андрей Макридин
29 246
Лучший ответ
может так (незнаю на каком языке написана программа) :
for i:=1 to m do
read (G[i,i]);
Адыл Килькеев
Адыл Килькеев
59 502
Почему нельзя было сделать в одном цикле, сразу при чтении матрицы?
Ну, если же пошли по длинному пути, то лучше вынести все в функции.
P.S.: программу более правильно назвать - Matrix, а не matrice
- предложение uses не нужно (и clrscr);
- вместо объявления нового типа объявить две константы (тогда ввод их не нужен) ;
- вводить 54 числа (9*6) не слишком хорошая идея, организовать чтение из файла;
- есть неточности, отлаживать в IDE.