Сделать так, чтобы матрица заполнилась случайными числами - Turbo Pascal
Формулировка задачи:
Тут заполняется числами за формулой;
Тут мы сами заполняем матрицу числами;
Как сделать так, чтобы матрица заполнилась случайными числами?
Полная задача в вложениях
Прошу помочь
Решение задачи: «Сделать так, чтобы матрица заполнилась случайными числами»
textual
Листинг программы
program kurs_13_3;
uses crt;
const Lnt=30;
type matr=array [1..Lnt, 1..Lnt] of real;
vctr=array [1..Lnt] of real;
var a:matr;
x:vctr;
m1, i, j, n, nom_min, t: byte;
u, umn, sum, min, min2: real;
function F1(s:real;vk:vctr):real;
begin
F1:=s+sqr(vk[i]);
end;
BEGIN
clrscr;
randomize;
write(' Vvedite razmer matrici N=');
readln(n);
writeln(' 1 - Sformirovat matricu po formule ');
writeln(' 2 - Vvesti s klaviaturi ');
writeln(' 3 -Random');
readln(m1);
clrscr;
case m1 of
1: begin
for i:=1 to n do
for j:=1 to n do
a[i, j]:=(j*abs(2-3.1*i))*exp((i+j)*ln(1.2))*(abs(i-3)-1.25)*(5.4-j);
end ;
2: begin
clrscr;
writeln(' Vvedite matricu ');
for i:=1 to n do
begin
clrscr;
for j:=1 to n do
begin
write('a[',i,',',j,']=');
read(a[i, j]);
end;
end;
end;
3: begin
for i:=1 to n do
for j:=1 to n do
a[i,j]:=10*random;
end;
end;
writeln(' Sformirovanaja matrica ');
for i:=1 to n do
begin
for j:=1 to n do
write(a[i,j]:8:2);
writeln;
end;
min:=0; nom_min:=2;
for i:=1 to n do
min:=min+a[i,2];
for j:=1 to n do
if (j mod 2)=0 then
begin
min2:=0;
for i:=1 to n do
min2:=min2+a[i,j];
if min>min2 then
begin
min:=min2;
nom_min:=j
end;
end;
t:=0;
for i:=1 to n-2 do
if (i mod 2)=1 then
if a[i,nom_min]<>a[i+2,nom_min] then t:=1;
if t=0 then
for i:=1 to n do
x[i]:=a[i, nom_min]
else
for i:=1 to n do
x[i]:=a[1, i];
writeln;
writeln(' Vector X : ');
for i:=1 to n do
write(x[i]:6:2);
writeln;
writeln;
umn:=1;
for i:=1 to n do
umn:=umn*x[i];
sum:=0;
for i:=1 to n do
sum:=F1(sum,x);
u:=sum*umn;
writeln(' U = ',u:0:4);
readkey;
END.