
Завдання
Завдання №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.