Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРАКТИЧНА РОБОТА N3.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
123.39 Кб
Скачать

Завдання

Завдання №1.

Скласти програму розвозку квадратного рівняння: ах2+bx+c=0;

Хід роботи

1.Створимо заголовок основної форми такого змісту - „Програма розв’язку квадратного рівняння”. Для цього змінимо значення властивості Caption головної форми в інспекторі об’єктів на відповідне -„Програма розв’язку квадратного рівняння” .

2.Помістимо на форму три компоненти TEdit – (Edit1, Edit2, Edit3). Вони будуть використовуватись для введення значень в рівняння – (a,b,с відповідно).

3.Також помістимо три компоненти Tlabel над компонентами TEdit і змінимо їх значення властивостей Caption на “a=”, ”b=” і ”с=” відповідно.

4.Для виведення результату помістимо компонент TMemo.

5.І на кінець кнопку TButton, при натисканні якої буде здійснюватися обрахунок. Напис на кнопці змінимо на – „Обрахувати”. Для цього значення властивості Caption компонента Button1 в інспекторі об’єктів змінимо на „Обрахувати”.

Ми повинні створити форму яка має приблизно наступний вигляд:

Процедура події onClick кнопки має наступний вигляд:

procedure TForm1.Button1Click(Sender: TObject);

var

x1,x2,a,b,c,D:real;

begin

//Функція strtoFloat() перетворює значення із типу

//String в тип Real. Потім ці значення заносяться в

//відповідні змінні a,b,c.

a:=strtoFloat(Edit1.text);

b:=strtoFloat(Edit2.text);

c:=strtoFloat(Edit3.text);

//Обраховуємо дискримінант.(Sqr(b) - це функція піднесення до

//квадрату, тобто b*b)

D:=Sqr(b)-4*a*c;

//------------- Якщо дискримінант менший нуля то:

If D<0 then

Begin

//Стираємо текст в компоненті Memo1.

Memo1.Lines.Clear;

//Додаємо до тексту компонента Memo1 - 1 текстовий рядок.

Memo1.Lines.Add('Рівняння немає розв''язку');

end

else

//------------- Якщо дискримінант не менший нуля то:

//(тобто він або більший або рівний нулю)

Begin

//Перевіряємо чи дискримінант рівний нулю і

//якщо він рівний то:

if D=0 then

Begin

//Обраховуємо одне значення x:

x1:=(-b-sqrt(d))/(2*a);

//Стираємо текст в компоненті Memo1.

Memo1.Lines.Clear;

//Додаємо до тексту компонента Memo1 - 1 текстовий рядок.

//Функція Floattostr() перетворює значення із типу

//Real в тип String.

Memo1.Lines.Add('x='+floatToStr(x1));

end

else

Begin

//Якщо дискримінант не рівний 0 то ми:

//обраховуємо два значення х1 і х2.

x1:=(-b-sqrt(d))/(2*a);

x2:=(-b+sqrt(d))/(2*a);

//Стираємо текст в компоненті Memo1.

Memo1.Lines.Clear;

//Додаємо до тексту компонента Memo1 - 2 текстових рядки.

//Функція Floattostr() перетворює значення із типу

//Real в тип String.

Memo1.Lines.Add('x1='+floatToStr(x1));

Memo1.Lines.Add('x2='+floatToStr(x2));

end;

end;

end;

6.В наведеному лістінгу підкреслити одинарною лінією вираз х1 коли він виступає у вигляді змінної, і подвійною коли даний вираз є просто текстовою фразою.

7. З’єднати лінією в даному лістінгу відповідні Begin і End. (Кожному Begin відповідає якийсь end).

Завдання №2.

4.Скласти програму розв’язку рівняння: X=(Y+4)/(Y-4).

(Взяти до уваги, що на нуль ділити не можна)

Описати процедуру яка здійснює обрахунок – вона повинна містити коментарі. (Подібно наведеного вище лістінгу). З’єднати лінією в даній процедурі відповідні Begin і End.

Завдання №3.

Скласти програму розвозку рівняння:

12X-5 якщо Х>10

Y=

10/(X+3) якщо Х<=10

(Взяти до уваги, що на нуль ділити не можна)

Описати процедуру яка здійснює обрахунок – вона повинна містити коментарі. (Подібно наведеного вище лістінгу). З’єднати лінією в даній процедурі відповідні Begin і End.