русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

КОРОТКИ ТЕОРЕТИЧНІ ВІДОМОСТІ


Дата добавления: 2015-07-09; просмотров: 560; Нарушение авторских прав


При програмуванні інженерних задач досить часто доводиться мати справу з даними, які природно складаються з інших даних. Наприклад, відомості про студентів містять прізвище, ім'я та по батькові, місяць та рік народження, домашню адресу та інші дані. Для подання подібної інформації мова Object Pascal використовує структуру, що носить ім'я «запис» (record). З одного боку, запис можна розглядати як єдину структуру, а з іншого як набір окремих елементів, компонентів. Характерною особливістю запису є те, що кожен компонент запису має своє ім'я.

Запис це структура даних, яка складається з окремих іменованих компонентів різного типу, що називаються полями. На відміну від масиву, компоненти (поля) запису можуть бути різного типу Для того щоб посилання на той чи інший компонент запису був можливий, поля іменуються.

Структура оголошення гину запису така:

ім'я типу - record список полів end;

Тут: ім'я типу - правильний ідентифікатор; record, end - зарезервовані слова (запис, кінець); список полів – список полів, що являє собою послідовність розділів запису, між якими ставиться крапка з комою. Кожен розділ запису складається з одного або декількох ідентифікаторів полів, які відділяються один від одного комами. За ідентифікаторами ставиться двокрапка та опис типу полів, наприклад:

Type

student=record

prizv:string[15];

stat:string12];

dity:string[4];

rik,dohod:integer;

end;

Var

m,n: Student ;

У цьому прикладі тип student (студент) є записом з полями prizv, stat, dity, rik, dohod (прізвище, стать, діти, рік, доход); змінні m та n містять запис типу student.

Так само, як і в масивах, значення змінних типу «запис» можна присвоювати іншим змінним того ж типу, наприклад:

r:=m;

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



Var

k:student;

Begin

k.prizv:='Іванов';

k.stat:='M';

В разі потреби задати значення великій кількості елементів змінній-запису, кожного разу попередньо указувати її ім'я незручно. Object Pascal має ключове слово with, яке дозволяє опускати ім'я змінної у логічному блоці. При цьому перед кожним згадуванням елемента у цьому блоці ім'я змінної буде ставитися автоматично.

with k do

Begin

prizv:='Іванов';

stat:='M';

end;

Якщо у логічному блоці, охопленому словом with, необхідно використати також змінну, ім'я якої співпадає з назвою одного з елементів запису, то перед нею потрібно указати назву модуля (ім'я програми), в якому ця змінна описана.

Var

k: student;

name:string;

Begin

name:='Київ';

with k do

Begin

name: = 'Дінамо';

city:=Prcjectl.Name;

end;

Якщо у блоці with модуль для конкретної змінної не зазначено, то компілятор перш за все шукає її ім'я у списку назв елементів запису і тільки потім - серед звичайних змінних.

Після ключового слова with можна указувати не одне, а декілька імен змінних-записів:

with k, t, р do

Begin

Object Pascal дозволяє використовувати записи з так званими варіантними полями, наприклад:

Type

Forma=record

Name:=string;

case byte of

0:(Birthplace:string[50]);

1: (Courtry: string [25];

EntryPcrt: string [15];

EntryDate: l..31;

ExitDate: l..31);

end;

У цьому прикладі тип Forma визначає запис з одним зафіксованим полем Name та варіантною частиною, яка додається реченням case...of. Вapiaнтна части на складається з декількох варіантів (у прикладі - з двох варіантів: 0 та 1). Кожен варіант визначається константою вибору, після якої стоїть двокрапка та список полів, замкнений у круглі дужки. У будь-якому запису може бути тільки одна варіантна частина; в разі її присутності вона має розташовуватися після усіх фіксованих полів.

Приємною особливістю варіантної частини є та обставина, що усі задані у ній варіанти «накладаються» один на другий, тобто кожному з них виділяється одна й та ж область пам'яті. Це відкриває додаткові можливості перетворення типів, наприклад:

Var

Mem4: record

casebyteof

0:(by: array[0..4] of byte);

1:(wo: array[0..2] of word);

2:(lo: LongInt);

end;

У цьому прикладі запис Mem4 має три варіанти, кожен з яких займає у пам'яті одну і ту саму ділянку з 4байтів. У залежності від того, до якого поля запису ми звергаємося в ОР-програмі, ця ділянка може розглядатися як масив з 4 байтів (поле by), масив з двох цілих типу word (поле wo) та, нарешті, як одне ціле число типу Longlnt (поле lo). Наприклад, цьому запису можна спочатку присвоїти значення довгого цілого, а потім проаналізувати результат за байтами або словами:

Var

x: word;

xb: byte;

xl: LongInt;

Begin

withmdo

Begin

lo:=trunk(2*ln(x));

ifwo[1]=0

Then

ifby[l]=0

Then

xb:=x[0]

Else

x:=wo[0]

Else

xl:=lo

end;

End.

Речення case...of, що відкриває варіантну частину, зовні схоже на відповідний оператор вибору, але практично лише відіграє роль своєрідного службового слова, яке означає початок варіантної частини. Ось тому у кінці варіантної частини не слід ставити end як пару до case...of. (Оскільки варіантна частина - завжди остання у запису, за нею все ж таки стоїть end, але лише як пара до record.) Ключ вибору у реченні case...of фактично ігнорується компілятором: єдина вимога до нього в Object Pascal полягає у тому, що ключ має визначати деякий стандартний або попередньо оголошений порядковий тип. Імена полів мають бути унікальними у межах того запису, де вони оголошені, але якщо записи містять поля-записи, тобто вкладені одне водне, імена можуть повторюватися нарізних рівнях вкладення.

Оператор (інструкція) withдозволяє використовувати імена полів без вказівки імені змінної-запису. У загальному вигляді оператор withзаписують таким чином:

withім'я do

Begin

{оператори OP-програми}

end;

Тут: with- зарезервоване слово мови Pascal, яке визначає, що далі до слова endпри зверненні до полів змінної-запису ім 'я можна не зазначати ім'я змінної-запису; ім'я - ім'я змінної-запису.

Наприклад, якщо у програмі оголошено змінну-запис

student: record// Інформація про студента

name: string [20]; // прізвище

namel: string[15] ; // ім'я

rik: integer;// рік народження

end;

та дані про студента знаходяться у полях Editl, Edit2, Edit3діалогового вікна, то для заповнення полів запису замість операторів

student.name:=Edi11.Text;

student.namel:=Edit2.Text;

student.rik:=Edit3.Text;

можна записати:

withstudent do

Begin

name:=Editl.Text;

namel:= Edit2.Text;

rik:= Edit3.Text;

end;

 

 

САМОСТІЙНА ПІДГОТОВКА ДО ВИКОНАННЯ
ЛАБОРАТОРНОЇ РОБОТИ

4. Записати в зошит тему, мету, обладнання, практичні завдання свого варіанту (вибирається згідно номеру комп’ютера).

5. По літературі до лабораторної роботи вивчити основи роботи з записами в інтегрованому середовищі розробки Delphi.

6. По інструкції до лабораторної роботи ознайомитись з порядком виконання роботи.



<== предыдущая лекция | следующая лекция ==>
УПРАВЛІННЯ РОБОТОЮ ПРОЕКТУ | ПОРЯДОК ВИКОНАННЯ РОБОТИ


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.32 сек.