
- •1. 1 Опис мови програмування
- •1.3 Організація циклів
- •1.4 Одновимірні масиви
- •1.5 Робота з двовимірними масивами. Пошук та сортування даних
- •1.7 Робота з динамічними структурами даних
- •Розділ 2. Мова програмування delphi
- •2.1 Опис мови програмування Delphi
- •2.2 Розробка програмного продукту «Анкета студента»
- •2.3 Розробка програмного продукту «Проста програма»
- •2.4 Розробка програмного продукту «Проста програма»
- •2.5 Розробка програмного продукту «Обмін валюти»
- •2.6 Завдання для самостійної роботи
- •2.7 Задача про суму ряду
- •2.8 Задача про min/max функції
- •2.9 Задача табулювання функції
2.6 Завдання для самостійної роботи
Завдання 1. Якщо точка М(х,у) належить внутрішній області трикутника з вершинами А(а,0), В(0,b), Про(0,0), то надрукувати його площу, інакше його периметр (a>0, b>0).
Конструктор форми зображено на рисунку 2.17
Рисунок 2.17
Результати виконання програми зображені на рисунках 2.18-2.19
Рисунки 2.18 та 2.19–Результати з обчисленням площи та периметру
Текст коду до завдання 1:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,x,y,S,P,i,o,r,v:real;
begin
x:=strtofloat(edit1.Text);
y:=strtofloat(edit2.Text);
a:=strtofloat(edit3.Text);
b:=strtofloat(edit4.Text);
i:=sqrt(sqr(a)+sqr(b));
o:=b;
r:=a;
P:=i+b+a;
v:=P/2;
S:=(sqrt(v-(v-i)+(v-a)+(v-b)));
if ((2 * ord(a > 0) + ord(b > 0)) = (2 * ord(x > 0) + ord(y > 0))) and (abs(y) < abs(b) * (1 - abs(x) / abs(a))) then
label7.Caption:='S='+FloatToStr(S)
else
label7.Caption:='P='+FloatToStr(P);
end;
Завдання 2. Скласти програму, що визначає, чи проходить графік функції y=x2+2x+2 через точку А(x,y).
Конструктор форми зображено на рисунку 2.20
Рисунок 2.20
Результати виконання програми зображені на рисунках 2.21та 2.22
Рисунок 2.21- Вікно робочої програми Рисунок 2.22- Вікно робочої програми
Текст коду:
procedure TForm1.Button1Click(Sender: TObject);
var x,y,t:integer;
begin x:=strtoint(edit1.text);
y:=strtoint(edit2.text);
t:=sqr(x)+2*x+2;
if (t=y) then
label2.Caption:='Точка належить функції' else
label2.Caption:='Точка не належить функції';
end;
Завдання 3. Вважаючи рік не високосним по номеру місяця вивести повідомлення про кількість днів цього місяця.
Конструктор форми зображено на рисунку 2.23
Рисунок 2.23
Результати виконання програми зображені на рисунках 2.24та 2.26
Рисунок
2.24-2.26- Вікна робочих програм
Текст коду:
procedure TForm1.Button1Click(Sender: TObject);
var n:integer;
begin
n:=StrToint (edit1.Text);
case (n) of
1:ShowMessage('У місяці 31 день');
2:ShowMessage('У місяці 28 днів');
3:ShowMessage('У місяці 31 день');
4:ShowMessage('У місяці 30 днів');
5:ShowMessage('У місяці 31 день');
6:ShowMessage('У місяці 30 днів');
7:ShowMessage('У місяці 31 день');
8:ShowMessage('У місяці 31 день');
9:ShowMessage('У місяці 30 днів');
10:ShowMessage('У місяці 31 день');
11:ShowMessage('У місяці 30 днів');
12:ShowMessage('У місяці 31 день');
else ShowMessage('Такого місяця нема');
end;
end;
2.7 Задача про суму ряду
Завдання. Скласти програму для обчислення f(x). Значення N і x вводяться з клавіатури. Розрахунок факторіалу оформити у вигляді підпрограми. Передбачити можливість виведення значень функції залежно від x, який змінюється в діапазоні [x1, x2] із заданим кроком h:
Конструктор форми зображено на рисунку 2.27
Рисунок 2.27
Результати виконання програми зображені на рисунку 2.28
Рисунок 2.28 - Вікно робочої програми
Для розрахунку факторіалу використовувалася процедура CalkFact:
procedure CalkFact(Zn:integer; var Rez:integer);
var j: Integer;
begin
Rez:=1;
for j := 1 to Zn do Rez:=Rez*j;
end;
Текст програмного коду:
procedure TForm1.Button1Click(Sender: TObject);
var x1,x2,h:real;
N:integer;
i:integer;
sum:real;
ZnFact:integer;
stroka:string;
begin
Memo1.Clear;
N:=StrToInt(Edit1.Text);
x1:=StrToFloat(Edit2.Text);
x2:=StrToFloat(Edit3.Text);
h:=StrToFloat(Edit4.Text);
repeat
sum:=0;
for i:=1 to n do
begin
CalkFact(i,ZnFact);
sum:=sum+2*n*ln(1+ZnFact)/ZnFact+x1;
end;
stroka:= 'f('+FloatToStr(x1)+') = '+ FloatToStrF(sum,ffFixed,7,3);
Memo1.Lines.Add(stroka);
x1:=x1+h;
until x1>x2;
end;