| Тема. Цикли. Практична робота
Складання та виконання алгоритмів з повтореннями
та розгалуженнями для опрацювання величин»
Увага! Під час роботи з комп’ютером дотримуйтеся правил безпеки та санітарно-гігієнічних норм.
-
Відкрийте середовище Lazarus.
-
Створіть проект для розв'язування задачі: Відомі довжини сторін двох прямокутників. Обчислити площі прямокутників та порівняти їх. Визначити, чи є прямокутники квадратами. Визначити, чи вміститься один прямокутник усередину другого.
-
Розмістіть на формі поля для введення даних написи для виведення результатів і три кнопки.
-
У проекті:
-
складіть обробник події Click для першої кнопки, виконання якого приведе до обчислення площ прямокутників та їх порівняння;
-
складіть обробник події Click для другої кнопки, виконання якого, залежно від вибраних прапорців, приведе до визначення того, чи є відповідний прямокутник квадратом;
-
складіть обробник події Click для третьої кнопки, виконання якого приведе до визначення, чи вміститься перший прямокутник усередину другого або другий прямокутник усередину першого, залежно від вибраного перемикача.
-
Збережіть проект у папці з іменем Практична 12_1, створеній у вашій папці.
Варіант виконання завдання.
Алгоритм проекта
 
Интерфейс проекта

|
Программный код проекта
procedure TForm1.Button1Click(Sender: TObject);
var a1, a2, b1, b2, s1, s2: real;
begin
a1:= strtofloat(edit1.text);
b1:= strtofloat(edit2.text);
a2:= strtofloat(edit3.text);
b2:= strtofloat(edit4.text);
s1 := a1*b1;
s2 := a2 * b2;
label5.caption := 's1 = ' + floattostr(s1) +#10#13 + 's2 = ' + floattostr(s2) ;
end;
procedure TForm1.Button2Click(Sender: TObject);
var a1, a2, b1, b2: real;
begin
a1:= strtofloat(edit1.text);
b1:= strtofloat(edit2.text);
a2:= strtofloat(edit3.text);
b2:= strtofloat(edit4.text);
if a1 = b1 then label8.caption := 'первый прямоугольник - квадрат '
else if a2 = b2 then label8.caption := 'второй прямоугольник - квадрат ';
end;
procedure TForm1.Button3Click(Sender: TObject);
var a1, a2, b1, b2, s1, s2: real;
begin
a1:= strtofloat(edit1.text);
b1:= strtofloat(edit2.text);
a2:= strtofloat(edit3.text);
b2:= strtofloat(edit4.text);
s1 := a1*b1;
s2 := a2 * b2;
if s1 > s2 then label9.caption := 'второй прямоугольник поместится внутри первого'
else if s1 < s2 then label9.caption := 'первый
прямоугольник поместится внутри второго ';
label5.caption := 's1 = ' + floattostr(s1) +#10#13 + 's2 = ' + floattostr(s2) ;
end;
|
-
Створіть проект для розв'язування задачі: Перед початком повені рівень води у річці становив Н метрів. Під час повені щогодини рівень води збільшувався на Р відсотків від рівня попередньої години. Яким буде рівень води через N годин після початку повені? Через скільки годин після початку повені рівень води буде не менше ніж К метрів?
-
Розмістіть на формі поля для введення початкових даних написи з текстами, що пояснюватимуть призначення полів, і три кнопки.
-
Установіть на першій кнопці напис Завдання 1, на другій – Завдання 2, на третій –Спочатку, у полів –порожній текст.
-
Складіть обробник події Click для першої кнопки, виконання якого приведе до виведення у вікно повідомлення відповіді на перше запитання задачі.
-
Виконайте проект і переконайтеся, що результати його роботи правильні.
-
Складіть обробник події Click для другої кнопки, виконання якого приведе до знаходження відповіді на друге запитання задачі і виведення його в окремий напис.
-
Виконайте проект і переконайтеся, що результати його роботи правильні.
-
Складіть обробник події Click для третьої кнопки, виконання якого приведе до очищення тексту в полях та написі з відповіддю на друге запитання задачі.
-
Збережіть проект у папці з іменем Практична 12_2, створеній у вашій папці.
-
Закрийте вікно виконання проекту.
-
Закрийте вікно середовища Lazarus.
Варіант виконання завдання.
Алгоритм проекта. Интерфейс проекта

|
Программный код проекта
|
public
Public h1 : real;
Public h2 : real;
Public p : real;
{ public declarations }
...
procedure TForm1.Button1Click(Sender: TObject);
var n , t: integer;
begin
ListBox1.Clear;
ListBox2.Clear;
n := strtoint(edit3.Text);
h1 := strtofloat(edit1.Text);
p := strtofloat(edit2.Text) ;
for t :=1 to n do
begin
h2 := h1 + (h1 * p) / 100 ;
h1 := h2;
ListBox1.Items.Add('t= ' + inttostr(t) + ' '+ 'h= ' + floattostrF(h1, ffFixed,6,3));
end;
edit4.Text := floattostrF(h2,ffFixed,6,3);
end;
|
procedure TForm1.Button2Click(Sender: TObject);
var t1: integer;
var k : real;
begin
ListBox1.Clear;
ListBox2.Clear;
h1 := strtofloat(edit1.Text);
p := strtofloat(edit2.Text) ;
k := strtofloat(edit5.Text);
t1 := 0 ;
repeat
h2 := h1 + (h1 * p) / 100 ;
h1 := h2;
t1 := t1 + 1;
ListBox2.Items.Add('t1= ' + inttostr(t1) + ' '+ 'h= ' + floattostrF(h1, ffFixed,6,3));
until h1 > k ; // условие выхода из цикла
edit6.Text := inttostr(t1);
end;
|
| |