Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Стандартні підпрограми перетворення типів даних



 

Введення й виведення даних в Delphi відбувається за допомогою змінних рядкового типу. Якщо написати, наприклад в Edit1, 3.25, то це не число, а його зображення у вигляді string-рядка. З ним жодних обчислень робити не можна до перетворення типу string на числовий тип, а потім навпаки. В мові Object Pascal – це здійснюють стандартні підпрограми. Наведемо приклади їхнього застосування [1]:

· X:=StrToFloat(S); //функція, що перетворює string-рядок S на дійсне число X;

· X:=StrToInt(S); // функція, що перетворює string-рядок S на ціле число X;

· VAL(S,X,k); // процедура, що перетворює string-рядок S на число X і, якщо S – це зображення числової величини, присвоює вихідній величині k значення 0 (нуль);

· S:=FloatToStr(X); // функція, що перетворює дійсне число X на string-рядок S;

· S:=FloatToInt(X); //функція, що перетворює ціле число X на string-рядок S;

· STR(X:n:m,S); // процедура, що перетворює число X на string-рядок S, який зображує число як рядок з n символів, з яких m символів – після десяткової коми.

Структура проекту в Delphi

 

Сукупність файла головної програми q файлів складових модулів у Delphi називається проектом. Файл головної програми проекту має стан-дартне ім’я Project1.dpr. Він керує виконанням усієї програми і створюється оболонкою Delphi автоматично. Текст головної програми наведено в [1]. З інших файлів ще три є обов’язкові. Це:

· Project1.dfm − файл з головною формою проекту;

· Project1.dof − файл параметрів проекту;

· Unit1.pas − файл з Pascal-текстом програми.

Проект може мати декілька форм і лише одну головну. Форму ми бачимо на екрані після запуску Delphi. Вона має ім’я Form1 і являє собою координатну сітку, на якій треба роташовувати компоненти. З-під неї виглядає вікно редактора кодів, де міститься модуль форми з ім’ям Unit1. Наведемо його текст:

 

Unit Unit1;

interface

Uses

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

Type

TForm1 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

Var

Form1: TForm1;

Implementation

{$R *.DFM} //директива компіляторові

 

End.

 

Примітка. Директиви компіляторові – це вказівки, які призначають режими роботи компіляторові при трансляції програми. Ці вказіки оформлюються як коментарі, які розпочинаються парою символів “{$” і закінчуються “}”. Такі вказівки можуть містити замовлення на включення в текст програми фрагментів інших програм, інформацію для наладника чи відомость про необхідність використання арифметичного супроцесора.

В міру того, як форма заповнюється компонентами в розділі Varмодуля Unit,з’являються їхні описи.

Переключатися між вікнами форми й редактором кодів можна одним з таких способів:

· натиснути клавішу F12;

· клацнути на видимій частини відповідного вікна;

· застосувати гарячу клавішу Toggle Form/Unit на панелі інструментів.

 

Спочатку домовимось стосовно термінології, яку використовуватимемо далі.

Виділіти компонент означає розташувати на ньому курсор миші й натиснути її ліву клавішу. В Object Inspector завжди розміщується інформація про виділений об’єкт, зображення якого відрізняється від інших темними маркерами вздовж його контура. Їх можна використати для заміни розмірів компоненти за допомогою миші.

Активізуватикомпонент означає розташувати на ньому курсор миші та двічі клацнути лівою її клавішею.При цьому з’являється заготовка (шаблон) коду процедури-оброблювача події.

Тепер розглянемо процес створення проекту в середовищі Delphi.

Завдання. Скласти схему алгоритму та проект програми в Delphi для обчислення функції Wза формулою:

w=ez, , де t − довільна змінна.

Ввести t з вікна форми проекту та вивести на форму: значення проміжної функції z; кінцевий результат − значення функції w.

 

Послідовність виконання завдання:

1 Запишемо текст процедури обчислення функції w.

 

Procedure fun (t:real; var z,w:real);

Begin

z:=sqr(sin (sqrt(abs(t)));

w:=exp(z);

end;

2 Запустимо Delphi, клацнувши на її піктограмі або скориставшись кнопкою “Пуск” внизу екрана. Перейдемо в редактор кодів і помістимо текст процедури в розділ Implementation модуля Unit1.

3 Повернемось у вікно форми й почнемо проектувати необхідний інтерфейс форми.

Розташуємо на формі такі компоненти: Label1, Label2, Label3, Edit1, Edit2, Edit3, Button1, Button2, Button3. Для цього треба на піктограмі обраної компоненти, а потім − у тому місці форми, де бажаємо її розмістити. При цьому слід врахувати, що лівий верхній її кут перебуває на місці курсора.

За допомогою миші компоненти можна пересувати на формі, куди треба. За допомогою вікна Object Inspector змінимо заголовки компонент. Для цього треба видокремити необхідну компоненту, перейти на сторінку Properties, обрати там властивість Caption і замінити її вміст бажаним, наприклад, згідно з таблицею 1.3.

 

Таблиця 1.3 Значення властивостей компонентів форми

Компонент Властивість Значення
Form1 Caption Програма з лінійною структурою
Label1 Caption t=
Label2 Caption Z=
Label3 Caption W=
Button1 Caption Чистка
Button2 Caption Рішення
Button3 Caption Вихід

 

Після виконання цих дій вікно форми буде мати вигляд, зображений на рис. 1.3

4 Розробимо процедури-відгуки на подію OnClick для кожної кнопки Button. Це робиться за допомогою шаблона, запропонованого пакетом Delphi. З цією метою активізуємо першу кнопку “Чистка”. При цьому в рядку OnClick сторінки Events вікна Object Inspector з’явиться ім’я цієї процедури Button1Click, а у вікні редактора, яке переміститься на передній план, побачимо її текст.

 

 

 


Рис. 1.3. Форма та результати роботи проекту

 

 

Рисунок 1.3. Форма та результати роботи проекту

Текст процедури Button1Click:

procedure TForm1.Button1Click(Sender: TObject);

Begin

end;

Пояснення.Senderпараметр Delphi, котрий вказує, з яким об’єктом відбувалася подія.

Перед текстом підпрограми запишемо текст процедури fun, який наведено у пункті 1 (обчислення w). Доповнимо шаблон необхідними операторами мови Pascal. Тоді текст процедури-відгуку на натиснення клавіші “Чисткаматиме вигляд:

procedure TForm1.Button1Click(Sender: TObject);

Begin

Edit1.Clear; Edit2.Clear; Edit3.Clear;

end;

Знов перейдемо на форму й створимо підпрограмму-відгук на натиснення другої кнопки, двічі клацнувши лівою клавішею миші на кнопці “Рішення”. Доповнимо шаблон згідно схеми алгоритму (рис. 1.4) та одержимо текст:

 

procedureTForm1.Button2Click(Sender: TObject);

var t,z,w:real;

Begin

//переведення рядка, введенного в Edit1, у дійсне число t

t:=StrToFloat(Edit1.Text);

// звертання до підпрограми обчислення значень z, w

fun(t,z,w);

//переведення дійсного числа z у рядок редактора Edit2

Edit2.Text:=FloatToStr(z);

//переведення дійсного числа w у рядок редактора Edit3

Edit3.Text:=FloatToStr(w);

end;

 

Аналогічно створимо текст процедури-відгуку на натиснення кнопки “Вихід”.

 

procedure TForm1.Button3Click(Sender: TObject);

Begin

close;

end;

Зверніть увагу, що як тількі на формі розміщується компонента, автоматично у розділі varмодуля Unitна екрані з’являється її опис.

Попередження. Не вносіть змін у рядки, які в програмі формує сама Delphi!

5 Для завершення сеансу розробки проекту збережемо створений проект на диску. Для цього оберемо команду меню File/SaveAll або відповідну піктограму.

У вікні, котре з’явиться віднайдемо папку, зроблену для цього проекту раніше або тепер. У подальшому після SaveAll збереження проекту у необхідній папці здійснюється автоматично.

6 Запустимо проект на обчислення, натиснувши клавішу F9 чи відповідну піктограму, або обравши в меню команду Run/Run.

Коли є помилки, курсор на них вказує по черзі і внизу екрану подається повідомлення про них. Наприклад:

· undeclared identifіer − змінну не описано в розділі Var;

· missing operator or semicolon − між операторами немає крапки з комою;

· ‘;’ expected but ‘.’found − очікувався один символ (‘;’), а з’явився інший (‘.’);

· incompatіble types :<type1> and <type2> − невідповідність типів;

· division by zero − знайдено ділення на нуль.

Виправивши помилку, знову запускаємо проект на обчислення. Якщо помилок немає, з’явиться форма без координатної сітки.Треба дати команду на збереження проекту без помилок (SaveAll).

7 Проведемо розрахунки, для чого будемо виконувати необхідні дії (вводити дані, натискати потрібні кнопки, тощо).

8 Виходимо з Delphi. Сеанс закінчено.

Примітка.Для зручності на формі розташовано надпис Label4 з підписом “Спочатку натисніть кнопку “Чистка” та надпис Label5 з підписом “а потім введіть t” (рис.1.3) .

Наведемо остаточний текст модуля Unit1 (розділ implementation ):

 

Unit Unit1;

……………………………..

Implementation

{$R *.DFM}

 

procedure fun(t:real; var z,w:real);

begin

z:=sqr(sin(sqrt(abs(t))));

w:=exp(z);

end;

procedureTForm1.Button1Click(Sender: TObject);

begin

edit1.Clear; edit2.Clear; edit3.Clear;

end;

 

 
procedure TForm1.Button2Click(Sender: TObject);

var t,z,w:real;

begin

//Переведення рядка, введеного в Edit1, у число t

t:=StrToFloat(Edit1.Text);

//Звертання до підпрограми fun

fun(t,z,w);

//Переведення числа z у рядок редактора Edit2

Edit2.Text:=FloatToStr(z);

//Переведення числа w у рядок Edit3

Edit3.Text:=FloatToStr(w);

end;

 

procedure TForm1.Button3Click(Sender: TObject);

begin

close;

end;

End.

3 Контрольні запитання

1 Визначте структуру Паскаль-програми.

2 Назвіть складові розділу описів.

3 Які стандартні типи даних Вам відомі?

4 Що розуміють під даними цілого, дійсного і символьного типу?

5 Перелічте правила запису арифметичних виразів.

6 Визначте вид і призначення операторів введення та виведення.

7 Які стандартні підпрограми перетворюють числовий тип на рядковий?

8 Які стандартні підпрограми перетворюють рядковий тип на числовий?

9 Що означає подія OnClick?

10 Як викликати процедуру-відгук на подію OnClick?

11 Яку властивість відображає вміст компоненти Edit?

12 Яка властивість дозволяє робити підписи?

4 Лабораторне завдання

 

1 Відповідно до варіанта записати на Паскалі арифметичний вираз, наведений у таблиці 1.4

2 Скласти схему алгоритму й проект програми алгоритмічною мовою Паскаль в середовищі Delphi обчислення функції y=f (x) відповідно до варіантів, зазначених у таблиці 1.5. Перше із значень, наведених у таблиці, задати як константу, друге – ввести за допомогою компонента Edit.

3 Оформити протокол лабораторної роботи. Виконати програму, зазначену у п.2, на комп’ютері. Занести результати обчислень до протоколу.

 

Таблиця 1.4 Варіанти арифметичних виразів

№ вар. Арифметичний вираз
V1=
V2=
V3=
V4=
V5=
V6=
V7=
V8=
V9=
V10=
V11=
V12=
V13=
V14=
V15=
V16=
V17=
V18=
V19=
V20=
V21=
V22=
V23=
V24=
V25=
V26=
V27=
V28=
V29=
V30=

 

Таблиця 1.5 Варіанти функцій для обчислення на комп¢ютері

№ вар. Функція Y=F(x) Значення
; ; x=1.52 ; c=5
; ; x=5.3 ; k=3
; ; x=2.5 ; b=7
; ; x=1.7 ;t=3
; ; ; x=2.1 ; p=2
; ; x=4 ; a=3.7
; ; x=–11 ; b=12.5
x=10.9 ; t=2
t=4.1 ; p=3
m=2 ; x=1.1
k=7.2 ; x=5
b=3 ; c=1.7
t=2.2 ; b=3
x=11 ;p=2.6
N=9.1 ; b=3
M=3.8 ; p=2
b=3 ; x=5.2
k=2 ; m=1.8
x=5 ; t=1.8
a=2 ; p=2.6
b=7 ; x=2
q=2 ; b=1.8
x=2.9 ; a=-0.9
b=7.1 ; t=2
t=-3 ; a=8.8
t=2 ; b=1.8
a=7 ; b=2.3
x=3 ; n=-1.9
a=-4 ; p=3
b=2 ; k=1.8

 

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.