Ну что же, за исключением нескольких "шероховатостей" программа первой части написана грамотно. Вот только:
1. В Паскале, в отличие от Бэйсика, строки не нумеруются, и любой транслятор выдаст сообщение об ошибке.
2. Если Вы хотите проконтролировать попадание размерности матрицы в нужный диапазон, то эту часть программы лучше "зациклить".
3. Не очень понятно, зачем тут нужны процедуры. Они (равно как и введение пользовательского типа mas) тут явно просто "для мебели". Но, конечно, можно и так.
В итоге я хочу предложить чуть подправленный вариант:
Код:
program kyrs;
uses crt;
type
mas=array[1..15,1..15] of integer;
var
i,j,n:integer;
A:mas;
procedure vvod;
begin
repeat
clrscr;
write('vvedite razmernost massiva ot 5 do 15: ');
readln(n);
until (n>=5) and (n<=15);
for i:=1 to n do
for j:=1 to n do
A[i,j]:=-100+random(201);
end;
procedure vivod;
begin
for i:=1 to n do
begin
for j:=1 to n do
write(A[i,j]:5);
writeln;
end;
end;
begin
clrscr;
randomize;
textbackground(9);
textcolor(13);
vvod;
vivod;
readln;
end.
Что касается последующих пунктов, то они сформулированы уж очень "мутно". Прежде всего - кто должен "выделять области" и "указывать траекторию"? И как это будет происходить? Непонятно...