АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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

Читайте также:
  1. А) Ревізія розрахунків за відшкодуванням завданих збитків
  2. Автоматизовані банки даних (АБД), їх особливості та структура.
  3. Бази даних, їх призначення та основні елементи.
  4. Блок збереження даних у робочій області То Workspace
  5. В цьому випадку буде запропоновано вказати список таблиць і їх полів, і на підставі цих даних буде створений запит.
  6. Вимірювання кута фазового зсуву з перетворенням його на код
  7. Вимірювання кута фазового зсуву з перетворенням його на струм чи напругу
  8. Вимірювання кута фазового зсуву методом зрівноважуючого перетворення
  9. Графічне представлення даних
  10. Дайте поняття квазіексперименту та його типів.
  11. Експериментальних даних
  12. Електронні таблиці. Табличний процесор, запуск, відкриття й збереження документа. Копіювання, переміщення й видалення даних, форматування даних.

 

Введення й виведення даних в 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) та одержимо текст:

 

procedure TForm1.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;

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


1 | 2 | 3 | 4 | 5 |

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



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.009 сек.)