- •Лабораторна робота № 14-15
- •Частина і
- •Частина іі
- •Лабораторна робота № 16-17
- •Частина і.
- •Частина іі.
- •Частина і Завдання
- •Лабораторна робота № 20
- •Лабораторна робота № 22-23
- •Лабораторна робота № 24
- •Лабораторна робота № 25 - 26
- •Частина і Завдання
- •Частина іі Завдання
- •Лабораторна робота № 27
- •Лабораторна робота № 28
- •Лабораторна робота № 29
- •Лабораторна робота № 30
- •Лабораторна робота № 31
- •Лабораторна робота № 32
Лабораторна робота № 14-15
Створення та відлагодження програми з використанням масивів.
Мета: Набуття навичок розробки та відлагодження програм з використанням масивів.
Частина і
Завдання: скласти програму, що створює масив випадкових цілих чисел, підраховує їх середнє арифметичне, а також визначає й виводить на екран мінімальне й максимальне із цих чисел.
Блок-схема програми:
Я розробив інтерфейс, вид якого показаний на рисунку:
Та ввів наступний програмний код:
procedure TForm1.Button1Click(Sender: TObject);
const
N=1000;
MAX_VALUE=100+1;
VAR
i,H:integer;
max,min:integer;
sum:real;
m:array [1..N] of integer;
begin
H:=StrToInt(Edit1.Text);
if (H<1001) then
begin
for i:=1 to H do
begin
m[i]:=Random(MAX_VALUE);
Memo1.Lines.Add('m['+IntToStr(i)+'] = '+IntToStr(m[i]));
end;
sum:=m[1];
max:=m[1];
min:=m[1];
for i:=2 to H do
begin
sum:=sum+m[i];
if m[i]<min then
min:=m[i]
else if m[i]>max then
max:=m[i];
end;
Label1.Caption:='Мин = '+IntToStr(min)+' Макс = '+IntToStr(max)+' Среднее = '+floatToStr(sum/H);
end
else
ShowMessage('Введите другое значение Н');
end;
Частина іі
Завдання: розробити блок-схему алгоритму а також скласти програму, яка створює масив з 10 значень функції F(x). Незалежна змінна х має початкове значення х1, а кожне наступне її значення збільшується на величину h (х1 і h вводяться користувачем).
Визначити середнє арифметичне від’ємних елементів масиву, для функції f(x)= exp(x)*sin(2x), а також вивести номери цих елементів.
Розробив інтерфейс, вид якого зображений на рисунку:
Та ввів наступний програмний код:
procedure TForm1.Button1Click(Sender: TObject);
const
N=10;
var
f:array [1..N] of real;
i:integer;
x,h,sum:real;
begin
x:=StrToFloat(Edit1.Text);
h:=StrToFloat(Edit2.Text);
for i:=1 to N do
begin
f[i]:=exp(x)*sin(2*x);
if f[i]<0 then
Memo1.Lines.Add('f['+IntToStr(i)+'] = '+FloatToStr(f[i]));
x:=x+h;
end;
sum:=0;
for i:=1 to N do
if f[i]<0 then
sum:=sum+f[i];
Label1.Caption:='Среднее значение f = '+FloatToStr(sum/N);
end;
Висновок: Набув навичок розробки та від лагодження програм з використанням масивів.
Лабораторна робота № 16-17
Створення та налагодження програми з використанням власних процедур та функцій.
Мета: Набуття навичок розробки та налагодження програм з використанням власних процедур та функцій.
Хід роботи
Частина і.
Розробити програму, що здійснює наступне:
1. Введення довільного цілого числа N і обчислення суми всіх цілих парних чисел від 1 до N а також обчислення добутку всіх цілих непарних від 1 до N. Розрахунок суми й добутку повинен бути оформлений у вигляді процедур.
2. Введення довільного дійсного числа Х і обчислення функцій y1=1-sqr(x) та y2:=2*cos(x-sqr(x)), розрахунок яких повинен бути оформлений у вигляді підпрограм-функцій.
Я розробила інтерфейс, вид якого зображений на рисунку:
Та ввів наступний програмний код:
procedure Summa(N:integer; Var Sum:integer);
procedure Proizvedenie(N:integer; Var Proiz:integer);
function Y1(x:real):real;
function Y2(x:real):real;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure Summa(N:integer; Var Sum:integer);
Var
i : integer;
begin
Sum:=0;
for i:= 1 to N do
if i mod 2=0 then sum:=sum+i;
end;
procedure Proizvedenie(N:integer; Var Proiz:integer);
Var
i : integer;
begin
Proiz:=1;
for i:= 1 to N do
if i mod 2=1 then Proiz:=Proiz*i;
end;
function Y1(x:real):real;
begin
y1:=1-sqr(x);
end;
function Y2(x:real):real;
begin
y2:=2*cos(x-sqr(x));
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
N_fact,code, i, Sum_rezult, Proiz_rezult : integer;
begin
Val(Edit1.Text, N_fact, code);
if code=0 then
begin
// Провести аналіз введеного значення
Summa(N_fact,Sum_rezult);
Proizvedenie(N_fact,Proiz_rezult);
Memo1.Lines.Add('Sum_rezult='+Inttostr(Sum_rezult)+' '+
'Proiz_rezult='+Inttostr(Proiz_rezult));
end
else
begin
ShowMessage(' Введені невірні дані');
exit;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
x,z:real;
begin
x:=strtofloat( Edit2.Text);
if x<0 then z:=sin(y1(x+1));
if x>0 then z:=4/y2(3*x);
Memo2.Lines.Add('x='+floattostr(x)+' '+'y1(x)='+floattostr(y1(x)));
Memo2.Lines.Add('x='+floattostr(x)+' '+'y2(x)='+floattostr(y2(x)));
Memo2.Lines.Add('z='+floattostr(z));
end;