Цель: создать программы, содержащие в своей структуре процедуры или функции.
Задание:
а) составить программу по алгоритму. Даны массивы А(m,n) и B(n,l) .Составить матрицу: произведение матрицы А на матрицу B.
б) Вычислить: x=1.8, a=0,5, b=3,2;
в) Даны 2 матрицы размером 10*10, элементами которых являются случайные числа из диапазона от 0 до 50. Найти сумму максимальных элементов столбцов обеих матриц и сумму минимальных элементов строк.
Блок схема:
а)
б)
|
|
|
|
|
Summa
Vyvod Vvod
Программы:
а) program 007_01;
uses crt;
type mas=array [1..50,1..50] of integer;
var
A:mas;
B:mas;
C:mas;
m,n,l,k,i,j:integer;
Procedure vvod (var M:mas;x,y:integer);
var i,j:integer;
begin
writeln (' массив ');
for i:=1 to x do
for j:=1 to y do
M[i,j]:=random(15)-5;
end;
Procedure vyvod ( M:mas;x,y:integer);
var I,J:integer;
begin
for I:=1 to x do
begin
writeln;
for J:=1 to y do
write (M[i,j],'':2);
end;end;
BEGIN
clrscr;
writeln ('Введите кол-во строк матрицы A');
readln(m);
writeln ('Введите количество строк (столбцов)');
readln(n);
writeln ('Введите количество столбцов B');
readln(l);
vvod (A,m,n);
vyvod (A,m,n);
writeln;
vvod (B,n,l);
vyvod (B,n,l);
writeln;
readln;
for k:=1 to m do
for J:=1 to l do
begin
C[K,j]:=0;
for i:=1 to n do
C[k,j]:=C[K,j]+A[K,i]*B[i,j];
end;
vyvod (C,m,l);
readln;
END.
б) Program Zuum_1_2;
uses crt;
var
x,a,b,y:real;
function lg(x:real):real;
begin
lg:=ln(x)/ln(10);
end;
begin
x:=1.8;
a:=0.5;
b:=3.2;
y:=EXP(2*x)*lg(a+x)-EXP(3*x*ln(b))*lg(b-x);
writeln ('y=',y:6:2);
readln;
END.
в) Program Zuum_1_3;
uses crt;
type mas=array [1..10,1..10] of integer;
var
A:mas;B:mas;
Sym,Sum,P,R:integer;
Procedure vvod (var M:mas);
var i,j:integer;
begin
for i:=1 to 10 do
for j:=1 to 10 do
M[i,j]:=random(50);
end;
Procedure vyvod (M:mas);
var i,j:integer;
begin
for i:=1 to 10 do
begin
writeln;
for j:=1 to 10 do
write (M[i,j]:2,'':2);
end;
end;
Procedure summa (M:mas;var S:integer);
var i,j,max:integer;
begin
for j:=1 to 10 do
begin
max:=0;
for i:=1 to 10 do
if M[i,j]>max then max:=M[i,j];
S:=S+max;
end;
end;
Procedure symma (M:mas;var T:integer);
var i,j,min:integer;
begin
for i:=1 to 10 do
begin
min:=50;
for j:=1 to 10 do
if M[i,j]<min then min:=M[i,j];
T:=T+min;
end;
end;
BEGIN
clrscr;
vvod(A);
vvod(B);
vyvod(A);
writeln;
vyvod(B);
writeln;
summa(A,Sym);
summa(B,Sum);
Sym:=Sym+Sum;
writeln;
writeln('Сумма максимальных элементов столбцов обеих матриц = ',Sym);
symma(A,R);
symma(B,P);
P:=P+R;
writeln ('Сумма минимальных элементов строк обеих матриц = ',P);
readln;
END.
Результаты:
а) введите количество строк матрицы A: 3
введите количество строк (столбцов): 4
введите количество столбцов матрицы: 2
1 3 1 0 2 1 получили: 8 0
1 0 4 2 1 -1 22 10
1 2 3 1 3 2 16 5
3 0
б) y=64.84
в) сумма максимальных элементов столбцов обеих матриц = 891
сумма минимальных элементов обеих матриц = 85
Вывод:
Я научился создавать программы, содержащие в своей структуре процедуры или функции.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.