Сделать так, чтобы матрица заполнилась случайными числами - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д