Лабораторная работа №7
ПРОЦЕДУРЫ И ФУНКЦИИ
Вариант №8
Задание 1: 8. Среди чисел из интервала от А до В найти все простые.
Работа программы
Вводятся исходные данные: переменные А и В через клавиатуры.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 1
Таблица 1 – Назначение переменных
Переменная | Тип | Назначение |
x, k | integer | Численные переменные |
a,b | integer | Границы интервала |
d | integer | Переменная деления |
flag | boolean | Правда/ложь |
1.3Блок – схема алгоритма программы
Рис. 1 Блок схема алгоритма программы
Текст программы
Program prostie_chisla;
var x, k: integer; a, b: integer;
Function prost (y: integer): boolean;
var d, i: integer; flag: boolean;
Begin
d:=0; flag:=false;
for i:=2 to y-1 do if y mod i=0 then d:=d+1;
if d=0 then flag:=true;
prost:=flag; end;
Begin
writeln ('Vvedite granici intervala'); readln (a, b);
begin
writeln ('Prostie chisla');
for x:=a to b do
begin
if prost (x) then
begin
write (' ',x);
end; end; end;
readln;
End.
Тестирование
Вводим границы интервала, проверяя корректность программы. Программа ведёт себя корректно.
1:
Vvedite granici interval: 1 9
Prostie chisla:
1 3 5 7
Задание 2:
8. Даны координаты вершин двух треугольников. Определить, какой из них имеет большую площадь.
Работа программы
Вводятся исходные данные: координаты вершин треугольника оператором random.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 2.
Таблица 2 – Назначение переменных
Переменная | Тип | Назначение |
x1, x2, x3, y1, y2, y3 | real | Координаты вершин треугольника |
s, smax | real | Площадь треугольника |
i | integer | Номера треугольника |
n | integer | Численная переменная |
1.3Блок – схема алгоритма программы
Рис. 2 Блок схема алгоритма программы
Текст программы
Program ploshad_treugolnika;
procedure sum (x1, x2, x3, y1, y2, y3:real; var s:real);
begin
S:=(sqrt (sqr (x1+x2-x3)+sqr (y1+y2-y3))*sqrt (sqr (x2-x1)+sqr (y2-y1)))/2; end;
var x1,y1,x2,y2,x3,y3,s,smax:real;
i, n: integer;
Begin
randomize;
smax:=0;
for i:=1 to 2 dо begin
writeln ('Koordinati virchin ',i,' treugolnika');
x1:=random(10); y1:=random(10);
writeln ('A (',x1:1:1,' ',y1:1:1,')');
x2:=random(10); y2:=random(10);
writeln ('B (',x2:1:1,' ',y2:1:1,')');
x3:=random(10); y3:=random(10);
writeln ('C (',x3:1:1,' ',y2:1:1,')');
sum (x1, x2, x3, y1, y2, y3, s);
if s>smax then n:=i;
if s>smax then smax:=s;
end;
writeln ('Macsimalnaya ploshad ',n,' treugolnika= ',smax:3:3);
readln;
End.
Тестирование
1:
Koordinati virchin 1 treugolnika
A (2,3)
B (1,2)
C (3,2)
Koordinati virchin 2 treugolnika
A (4,3)
B (1,1)
C (3,5)
Macsimalnaya ploshad 2 treugolnika= 35.6
Задание 3:
8. Даны натуральное число р и вещественные квадратные матрицы A, B и C 4-го порядка. Получить (ABC)^p.
Работа программы
Вводятся исходные данные: натуральное число p с клавиатуры.
Назначение переменных
Назначение переменных, используемых в задаче, приведено в таблице 3.
Таблица 3 – Назначение переменных
Переменная | Тип | Назначение |
р | real | Натуральное число |
i, j | integer | Номер элемента массива |
n | integer | Численная переменная |
ab, abc, A,B,C | integer | Массив |
1.3Блок – схема алгоритма программы
Рис. 3 Блок схема алгоритма программы
Текст программы
program umnoshenie_matric;
Type matrix=array[1..4,1..4] of integer;
var A,B,C,ab, abc:matrix;
j,i,p,n:integer;
procedure zapmatrix(var a:matrix);
begin
for i:=1 to 4 do
for j:=1 to 4 do
a[i,j]:=random(2)+1; end;
procedure vivmatrix (a:matrix);
begin
for i:=1 to 4 do begin
for j:=1 to 4 do
write(a[i,j]:4,' '); writeln;
end; writeln; end;
Begin
writeln('Matrica A: ');
zapmatrix(a); vivmatrix(a);
writeln('Matrica B: ');
zapmatrix(b); vivmatrix(b);
writeln('Matrica C: ');
zapmatrix(c); vivmatrix(c);
for i:=1 to 4 do begin
for j:=1 to 4 do begin
ab[i,j]:=a[i,j]*b[i,j]; abc[i,j]:=ab[i,j]*c[i,j];
end; end; end; readln;
begin
write ('Vvedite naturalnoe chislo= '); readln (p); writeln;
begin
for n:=1 to p-1 do begin
for i:=1 to 4 do begin
for j:=1 to 4 do begin abc[i,j]:=abc[i,j]*abc[i,j];
end; end; end; end; end;
begin
writeln; writeln ('Proizvedenie matrix na naturalnoe chislo');
for i:=1 to 4 do begin
for j:=1 to 4 do begin
write (abc[i,j]:4,' '); end;
writeln; end;
writeln; end; readln;
End.
Тестирование
Вводим натуральное число р, проверяя корректность работы программы. Программа ведёт себя корректно.
1:
Matrica A:
1 2 2 1
2 1 2 1
1 2 2 2
2 1 2 1
Matrica B:
1 2 2 1
1 2 2 1
2 2 2 2
2 2 1 2
Matrica C:
2 2 2 2
1 2 1 2
1 2 2 1
2 2 2 1
Vvedite naturalnoe chislo= 2
Proizvedenie matrix na naturalnoe chislo
4 64 64 4
4 16 16 4
4 64 64 16
64 16 16 4