Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Лабораторна робота №5
Мета роботи: ознайомитися із основними принципами програмування в середовищі Borland Delphi 7.0.
Теоретичні відомості
Простіша структура програми в консольному режимі роботи має вигляд:
Program <імя>; { Заголовок програми }
{$APPTYPE CONSOLE} {Консольний режим}
Uses { Підключення модулів}
Type { Розділ опису типів }
Var { Розділ опису змінних }
{ Розділ опису процедур і функцій }
{ Розділ операторів }
Консольний режим роботи встановлюється директивою {$APPTYPE CONSOLE}. Текст програми розміщається у головному файлі проекту.
Приклад. На площині задані обмежена лініями область і точки . Розробити програму, яка обчислює периметр і площу трикутника , якщо точки належать області і не лежать на одній прямій, інакше видати відповідне повідомлення.
.
.
Для розвязку задачі командою File!New Application створимо новий проект. На екрані зявиться чиста форма із заголовком Form1. Присвоїмо цій формі заголовок Caption = Обчислення периметра і площі трикутника та програмне імя Name = FTR. Тепер командою File!Save All запишемо програмний модуль під іменем ULAB5.pas, а проект LAB5.dpr.
При цьому середовище Delphi створює файл проекту (DPR-файл) вміст якого автоматично змінюється зі створенням нових форм.
У DPR-файлі підключення модуля Forms є обовязковим, так як у ньому міститься визначення обєкта Application. Цей обєкт лежить в основі будь-якої Delphi-програми і доступний на протязі її виконання. Слідом підключаються всі модулі проекту. Директива {$R*.RES} підключає до результуючого EXE-файла так звані ресурси, зокрема значок програми, який буде видно на Панелі Задач Windows. Далі йде програмний блок, в якому викликаються три методи обєкта Application. Метод Initialize підготовляє програму до роботи, метод CreateForm завантажує та ініціалізує форми, а метод Run активізує головну форму і починає виконання програми.
Обєкт Application відсутній у Палітрі Компонентів, тому його властивості можна встановлювати тільки програмно. Найбільш важливі з них: MainForm імя головної форми; ExeName повне імя EXE-файла; Title імя програми та Icon значок програми, які відображаються на Панелі Задач Windows; HelpFile імя файла довідника програми.
По завершенні розробки проекту DPR-файл містить перелік програмних модулів, які будуть подаватися на вхід компілятора.
Головний файл програми має вигляд:
program LAB5;
uses
Forms,
ULAB5 in 'ULAB5.pas' {FTR};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TFTR, FTR);
Application.Run;
end.
Рис 1.2. Форма Обчислення периметра і площі трикутника
Розробимо форму для введення початкових даних і виведення результату. Розмістимо на цій формі шість компонентів Edit для введення координат точок А, В, С і три для виведення результату. Присвоїмо цим компонентам програмні імена Edit1, Edit2, Edit3, Edit4, Edit5, Edit6, Edit7, Edit8, Edit8, Edit9, встановлені за замовчуванням (властивість Name) і очистимо їм значення властивості Text. Пояснення до цих компонентів зробимо за допомогою компонента Label (властивість Caption).
Крім цього, розмістимо на формі дві керуючі кнопки (компонент Button) з написами Обчислити та Вихід (властивість Caption) і програмними іменами Button1, Button2 (властивість Name) (Рис. 1.2).
Тепер потрібно написати обробники кнопок Обчислити та Вихід. Для того щоб написати обробники цих кнопок потрібно вибрати відповідну кнопку, перейти в Інспекторі Обєктів на сторінку Evants та двічі клацнути лівою клавішею мишки в полі значення події OnClick. В результаті цього зявиться заготовка, в яку потрібно вписати текст обробника. Тексти обробників містяться у програмному модулі ULABR5.
unit ULAB5;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TFTR = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Label5: TLabel;
Edit2: TEdit;
Label6: TLabel;
Label7: TLabel;
Edit3: TEdit;
Label8: TLabel;
Edit4: TEdit;
Label9: TLabel;
Label10: TLabel;
Edit5: TEdit;
Label11: TLabel;
Edit6: TEdit;
Label12: TLabel;
Edit7: TEdit;
Label13: TLabel;
Label14: TLabel;
Edit8: TEdit;
Edit9: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FTR: TFTR;
implementation
{$R *.DFM}
{Обробник кнопки Обчислити}
procedure TFTR.Button1Click(Sender: TObject);
VAR x1, y1, x2, y2, x3, y3: double;
s, p, d: double;
BEGIN
{Введення початкових даних}
x1:=StrToFloat(Edit1.Text);
y1:=StrToFloat(Edit2.Text);
x2:=StrToFloat(Edit3.Text);
y2:=StrToFloat(Edit4.Text);
x3:=StrToFloat(Edit5.Text);
y3:=StrToFloat(Edit6.Text);
{Перевірка умови належності точок області }
if ((y1<=4-sqr(x1)) and (y1>=sqr(x1)-4)) and
((y1<=4-sqr(x1)) and (y1>=sqr(x1)-4)) and
((y1<=4-sqr(x1)) and (y1>=sqr(x1)-4)) then
begin
{ Точки належать області}
d:=x1*y2+ x3*y1+ x2*y3- x3*y2- x1*y3- x2*y1;
if d<>0 then begin
{ Точки утворюють трикутник}
s:=abs(d)/2;
p:=sqrt(sqr(x1-x2)+ sqr(y1-y2))+
sqrt(sqr(x2-x3)+ sqr(y2-y3))+
sqrt(sqr(x3-x1)+ sqr(y3-y1));
Edit7.Text:='Точки належать області і утворюють трикутник';
Edit8.Text:=FloatToStr(p);
Edit9.Text:=FloatToStr(s);
end
else begin
Edit7.Text:='Точки лежать на одній прямій';
Edit8.Text:='';
Edit9.Text:='';
end
end
else
begin
Edit7.Text:=' Точки не належності області ';
Edit8.Text:='';
Edit9.Text:='';
end;
END;
{Обробник кнопки Вихід}
procedure TFTR.Button2Click(Sender: TObject);
begin
Close;
end;
end.
В обробнику кнопки Обчислити початкові дані за допомогою функції StrToFloat перетворюються до дійсного типу і присвоюються змінним x1, y1, x2, y2, x3, y3. Результат обчислення p, s перетворюються за допомогою функції FloatToStr з дійсного до символьного типу і виводиться.
Докладно функції перетворення типів даних описані у додатку.
Тепер, розроблений проект, командою Run!Run можна запустити на виконання. По завершенню компіляції потрібно ввести початкові дані й натиснути кнопку Обчислити. Результат роботи програми наведений на Рис 1.2. Для завершення роботи програми потрібно натиснути кнопку Вихід.
Приклад. Задані дійсні величини . Розробити проект програми, яка впорядковує величини так, щоб і та обчислює значення функції:
Для розвязку задачі, аналогічно як у попередньому прикладі, командою File!New Application створимо новий проект. Присвоїмо формі заголовок Caption = Обчислення функції та програмне імя Name = FV. Командою File!Save All запишемо програмний модуль під іменем ULABR5_1.pas, а проект LABR5_1.dpr.
Розробимо форму для введення початкових даних і виведення результату. Розмістимо на цій формі сім компонентів Edit
Рис.1.3. Форма Обчислення функції
для введення початкових даних x, y, z, a, b, c, d і один для виведення значення функції V. Присвоїмо цим компонентам програмні імена Edit1, Edit2, Edit3, Edit4, Edit5, Edit6, Edit7, Edit8, встановлені за замовчуванням (властивість Name) і очистимо їм значення властивості Text. Пояснення до цих компонентів зробимо за допомогою компонента Label (властивість Caption).
Крім цього, розмістимо на формі дві керуючі кнопки (компонент Button) з написами Обчислити та Вихід (властивість Caption) і програмними іменами Button1, Button2 (властивість Name) (Рис. 1.3).
Обробники кнопок Обчислити та Вихід містяться у програмному модулі ULABR5_1 і мають вигляд:
{Обробник кнопки Обчислити}
procedure TForm1.Button1Click(Sender: TObject);
var x, y, z: double;
a, b, c, d: double;
r, v: double;
begin
{Початкові дані }
x:=StrToFloat(Edit1.Text);
y:=StrToFloat(Edit2.Text);
z:=StrToFloat(Edit3.Text);
a:=StrToFloat(Edit4.Text);
b:=StrToFloat(Edit5.Text);
c:=StrToFloat(Edit6.Text);
d:=StrToFloat(Edit7.Text);
{Упорядкування змінних a, b, c, d }
if a > b then begin r:=a; a:=b; b:=r; end;
if c > d then begin r:=c; c:=d; d:=r; end;
{Обчислення функції V }
if ((c<=x) and (x<=d)) and
((c<=y) and (y<=d)) and ((c<=z) and (z<=d))
then
begin
{Обчислення за першою формулою }
v:=x;
if v < y then v:=y;
if v < z then v:=z;
end
else
if not ((c<=x) and (x<=d)) and
not ((c<=y) and (y<=d)) and
not ((c<=z) and (z<=d))
then
begin
{Обчислення за другою формулою }
v:=x;
if v > y then v:=y;
if v > z then v:=z;
end
else
{Обчислення за третьою формулою }
v:=(b-a)/2;
{Виведення результату }
Edit8.Text:=FloatToStr(v);
end;
{Обробник кнопки Вихід}
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
end.
Оцінювання.
«1 бали» програма, що не оформлена у зошиті для лабораторних робіт, працює не коректно.
«2 бали» програма, що не оформлена у зошиті для лабораторних робіт, працює коректно.
«3 бали» програма, що оформлена у зошиті для лабораторних робіт, працює не коректно.
«4 бали» програма, що оформлені у зошиті для лабораторних робіт, працює коректно.
ЗАВДАННЯ.
Задані дійсні величини . Розробити програму, яка упорядковує величини так, щоб і , та обчислює значення функції.
1.
2. 3.
4.
5.
6.
Задані дійсні величини та логічні . Розробити програму, яка обчислює значення функції.
7.
8.
9.
10.
11.
Задані дійсні величини та ціле . Розробити програму, яка обчислює значення функції.
12.
13.
14.
15.
5