Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi_LR4.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
273.99 Кб
Скачать

Interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type

TForm1=class(TForm)

Label2:TLabel;

Edit1:TEdit; //поле вводу ваги у фунтах

Button1:TButton; //кнопка Обчислити

Label1:TLabel;

Label3:TLabel;

ListBox1:TListBox; //список країн

Label4:TLabel; //поле виводу рез-та - ваги в кілограмах

procedure FormCreate(Sender:TObject);

procedure Button1Click(Sender:TObject);

private

{Private declaration }

public

{Public declarations}

end;

var

Form1:TForm1;

Implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender:TObject);

begin

{

ListBox1.Items.add('Україна');

ListBox1.Items.add('Австрія');

ListBox1.Iterns.add('Англія');

ListBox1.Items.add('Німеччина');

ListBox1.Items.add('Данія');

ListBoxl.Items.add('Ісландія');

ListBox1.Items.add('Італія');

ListBox1.Items.add('Нідерланди');

}

ListBox1.Itemindex:= 0;

end;

procedure TForm1.ButtonlClick(Sender:TObject);

var

funt:real; //вага у фунтах

kg:real; //вага в кілограмах

k:real; //коефіцієнт перерахунку

begin

case ListBox1.Itemindex of

0:k:=0.4095; //Україна

1:k:=0.453592; //Англія

2:k:=0.56001; //Австрія

3..5,7:k:=0.5; //Німеччина, Данія, Ісландія, Нідерланди

6:k:=0.31762; //Італія

end;

funt:=StrToFloat(Edit1.Text);

kg:=k*funt;

label4.caption:=Edit1.Text+' ф. - Це '+FloatToStrF(kg, ffFixed, 6,3)+' кг.';

end;

end.

Слід звернути увагу на процедуру обробки події FormCreate, яка відбувається в момент створення форми (форма створюється автоматично при запуску програми). Цю процедуру можна використовувати для ініціалізації змінних програми, в тому числі і для додавання елементів в список. У наведеному тексті програми інструкції створення списку закоментовані, оскільки список був створений за допомогою редактора рядків під час створення форми.

3 Цикли

Алгоритми розв’язку багатьох завдань є циклічними, тобто для досягнення результату певна послідовність дій повинна бути виконана кілька разів. Алгоритм, в якому є послідовність операцій (група інструкцій), яка повинна бути виконана кілька разів, називається циклічним, а сама послідовність операцій – циклом. У програмі цикл може бути реалізований за допомогою інструкцій for, while і repeat.

3.1 Інструкція for

Приклад 3

Потрібно написати програму, яка обчислює значення функції у = 5х2 - 7 в точках -1, -0.5, 0, 0.5 і 1 (таблиця повинна бути виведена в поле мітки форми додатка). Процедура, що забезпечує рішення поставленого завдання, може виглядати так:

procedure TForm1.ButtonlClick(Sender:TObject);

var

у:real; //значення функції

x:real; //аргумент функції

dx:real; //приріст аргументу

st:string; //зображення таблиці

begin

st:='';

x:=-1; dx:=0.5;

у:=5*х*х-7;

st:=st+FloatToStr(x)+''+FloatToStr(y)+chr(13);

x:=x+dx;

у:=5*х*х-7;

st:=st+FloatToStr(x)+''+FloatToStr(y)+chr(13);

x:=x+dx;

у:=5*х*х-7;

st:=st+FloatToStr(x)+''+FloatToStr(y)+chr(13);

x:=x+dx;

у:=5*х*х-7;

st:=st+FloatToStr(x)+''+FloatToStr(y)+chr(13);

x:=x+dx;

у:=5*х*х-7;

st:=st+FloatToStr(x)+''+FloatToStr(y)+chr(13);

x:=x+dx;

Label1.Caption:=st;

end;

З тексту процедури видно, що група інструкцій

у:=5*х*х-7;

st:=st+FloatToStr(x)+''+FloatToStr(y)+chr(13);

x:=x+dx;

забезпечує обчислення значення функції, формування рядка таблиці і збільшення аргументу, виконується 5 разів. Скориставшись інструкцією for, наведену процедуру можна переписати таким чином:

procedure TForm1.ButtonlClick(Sender:TObject);

var

у:real; //значення функції

x:real; //аргумент функції

dx:real; //приріст аргументу

st:string; //зображення таблиці

i:integer; //лічильник циклів

begin

st:=''; x:=-1; dx:=0.5;

for i:=1 to 5 do

begin

у:=5*x*x-7;

st:=st+FloatToStr(x)+''+FloatToStr(y)+chr(13); x:=x+dx;

end;

Label1.Caption:=st;

end;

Інструкція for використовується в тому випадку, якщо деяку послідовність дій (інструкцій програми) треба виконати кілька разів, причому число повторень заздалегідь відомо.

У загальному вигляді інструкція for записується таким чином:

for лічильник: = поч_знач to кін_знач do

begin

// інструкції, які треба виконати кілька разів

еnd;

де

  • лічильник – змінна-лічильник числа повторень інструкцій циклу;

  • поч_знач – вираз, що визначає початкове значення лічильника циклів;

  • кін_знач – вираз, що визначає кінцеве значення лічильника циклів.

Змінна лічильник, вирази поч_знач і кін_знач повинні бути цілого типу.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]