Ко 2-ой задаче:
Код
uses
crt;
var
a: array[1..10] of integer;
pos_max, pos_min,max,min,i,temp: integer;
begin
ClrScr;
randomize;
for i:=1 to 10 do
a[i]:=random(10);
for i:=1 to 10 do
write(a[i], ' ');
writeln;
{find max}
max:=a[1];
pos_max:=1;
for i:=1 to 10 do
begin
if a[i] > max then
begin
max:=a[i];
pos_max:=i;
end;
end;
{find min}
min:=a[1];
pos_min:=1;
for i:=1 to 10 do
begin
if a[i] < min then
begin
min:=a[i];
pos_min:=i;
end;
end;
{min - max}
temp:=a[pos_min];
a[pos_min]:=a[pos_max];
a[pos_max]:=temp;
for i:=1 to 10 do
write(a[i], ' ');
readln;
end.
Правда это решение для одномерного массива, алгоритм такой:
1. Заполняем массив случ. числами
2. Выводим его
3. Ищем максимальный эл-т и запоминаем его позицию.
4. Ищем минимальный эл-т и запоминаем его позицию.
5. Меняем местами мин. и макс.
Для двумерного массива (матрицы) попробуй сделать сам.
Тем более, что делается аналогично.