Записи у мові Turbo Pascal

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Міністерство освіти і науки України
ГФУІПА
Кафедра ІТ
РЕФЕРАТ
На тему: "Записи в мові Turbo Pascal"
Виконав: ст. гр.
Перевірив:
м. Стаханов, 2008

ЗМІСТ
"1-3" Що таке запис у мові Turbo Pascal ?..................................... ............... 3
Структура оголошення типу запису :............................................. .............. 3
Висновок ................................................. .................................................. ....... 10
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ ...................................... 11

Що таке запис у мові Turbo Pascal?
Запис - це структура даних, що складається з фіксованого числа компонентів, званих полями запису. Дуже часто виникає необхідність описати характеристики деякого об'єкта, подається і оброблюваного в програмі. Таким об'єктом може бути людина, автомобіль, журнал і т.д. На відміну від масиву, компоненти (поля) записи можуть бути різного типу. Для опису об'єкта "автомобіль" можуть знадобиться, наприклад, такі характеристики:
· Марка і тип кузова автомобіля (символьні рядки);
· Рік випуску автомобіля (цілий тип);
· Чи був капітальний ремонт (логічний тип).
Щоб можна було посилатися на те чи інше поле записи, поля іменуються.
Структура оголошення типу запису:
<Ім'я типу> = record <сп. полів> end;
де
<Ім'я типу> - правильний ідентифікатор;
record, end - ключові слова (пер. з англ. - запис, кінець);
<Сп. полів> - список полів, являє собою послідовність розділів запису, між якими ставиться крапка з комою.
Кожен розділ запису складається з одного або декількох ідентифікаторів, що відділяються один від одного комами. За ідентифікатором (ідентифікаторами) ставиться двокрапка і тип, наприклад:
type auto = record
mark, typ: string [10];
date: integer;
remont: boolean
end;
Як елементи масиву, так і поля запису можна використовувати в якості окремих змінних. До кожного компоненту можна звернутися, якщо вказати ім'я змінної типу record, потім крапку і ім'я поля.
Використовуючи описаний вище тип, напишемо фрагмент програми:
var mashine: auto;
begin
mashine. mark: = 'volvo';
mashine. date = 1996;
mashine. typ: = 'car';
mashine. remont: = false;
writeln (mashine. mark);
writeln (mashine. date);
writeln (mashine. typ);
writeln (mashine. remont);
end.
Кожне поле запису можна розглядати як звичайну змінну, яку можна роздрукувати або використовувати в розрахунках. Разом з тим запис можна використовувати як єдине ціле. Припустимо, що є опис типу auto, аналогічне вищенаведеного, а в розділі змінних:
var mash1, mash2: auto;
Це означає, що змінна mash1 містить поля mark, typ, date, remont, точно такі ж поля містить і мінлива mash2. Наступний оператор присвоювання встановлює рівність значень записів mash1 і mash2:
mash1: = mash2;
Це привласнення еквівалентно послідовності операторів:
mash1. mark: = mash2. mark;
mash1. date: = mash2. date;
mash1. typ: = mash2. typ;
mash1. remont: = mash2. remont;
Для змінних одного типу можна перевірити виконання відносини рівності або нерівності. Як і у випадку масивів, припустимі операції порівняння = і <>.
Мова Турбо-Паскаль дає можливість скоротити запис, якщо використовувати оператор приєднання with. Структура оператора with:
with <сп. записів> do <оператор>,
де with, do - ключові слова (пер. з англ. с, робити),
<Сп. записів> - список з однієї або декількох змінних типу запис, розділених комами.
<Оператор> - будь-який оператор мови Турбо-Паскаля.
У рамках оператора, визначається всередині оператора with (або складеного оператора), до полів змінної можна звертатися просто на ім'я:
with mashine do
begin
mark: = 'volvo';
date: = 1996;
typ: = 'car';
remont: = false;
end;
У рамках складеного оператора, наступного за with, кожне звернення до імені поля автоматично зв'язується із записом mashine. Оператор with дозволяє більш компактно представляти часто використовувані змінні.
Так як на тип компонентів масиву не накладається обмежень, то можна утворити масив, компонентами якого є записи.
Наведемо опис такого масиву:
var mashine: array [1. .100] Of auto;
Беручи до уваги попереднє опис auto, можна зробити висновок, що описана таблиця, в якій можуть міститися дані на 100 автомобілів.
Марка
Дата випуску
Тип кузова
Ремонт
VOLVO
1996
CAR
Не був
ВАЗ
1986
Сar
Був
... ...
... ...
... ...
... ...
... ...
... ...
... ...
... ...
ЗІЛ
1990
LORRY
Не був
Тепер можна записати наступні оператори: для звернення до першого елементу масиву:
mashine [1]. mark: = 'ваз';
для читання першого елемента:
read (mashine [1]. mark);
Як і в масиві, значення змінних і констант типу record можна присвоювати іншим змінним такого ж типу:
mashine [1]: = mashine [2];
Поле запису саме може бути записом. У прикладі запису auto введемо дату придбання автомобіля.
type
auto = record
mark, typ: string [10];
date1: record
den: integer;
mes: string [10];
god: integer;
end;
date: integer;
remont: boolean
end;
var mashine: auto;
При зверненні до поля god необхідно продовжувати уточнення:
mashine. date1. god: = 1949;
У цьому випадку можна використовувати оператор with наступним чином:
with mashine. date1 do
if god = 1944 then begin .....
Розглянемо приклад програми з використанням масиву структур. У відомості, яка містить прізвища групи студентів, оцінки з фізики, математики та програмування визначити середній бал кожного студента і середній бал в групі.
У програмі використано такі позначення:
n1-максимальна кількість студентів у групі;
n - реальна кількість студентів у групі;
student-ідентифікатор типу, що представляє запис з полями fam, fiz, mat, pr і ss;
fam - поле запису, що містить прізвище студента;
fiz, mat, pr - поле запису, що містить оцінки з фізики, математики та програмування відповідно;
ss - поле запису, що містить середній бал студента;
ved - масив, що містить елементи типу student;
sg - середній бал групи;
i - індекс елемента масиву ved;
Програма виглядає наступним чином:
program pr29;
const n1 = 30;
type student = record
fam: string [10];
fiz, mat, pr: integer;
ss: real;
end;
var ved: array [1. . n1] of student;
i, n: integer;
sg: real;
begin
writeln ('скільки студентів в групі?');
read (n);
for i: = 1 to n do
with ved [i] do
begin
writeln ('введіть прізвище студента');
read (fam);
writeln ('введіть оцінки');
read (fiz, mat, pr)
end;
sg: = 0;
for i: = 1 to n do
with ved [i] do
begin
ss: = (fiz + mat + pr) / 3; {обчислення середнього балу студента}
sg: = sg + ss;
end;
sg: = sg / n; {обчислення середнього балу групи}
writeln ('відомість групи');
write ('! прізвище! фізика! мат! програм!');
writeln ('! cp. бал!')
for i: = 1 to n do
with ved [i] do
begin
write ('!', fam: 10, '!', fiz: 10, '!', mat: 10, '!', pr: 10);
writeln ('!', ss: 10: 2, '!');
end;
writeln ('середній бал в групі =', sg);
end.
Іноді буває необхідно мати в програмі декілька споріднених, але не зовсім ідентичних записів. Така необхідність виникає, наприклад, для програми, яка обробляє інформацію про людину і тоді, в залежності від значення поля sex (чоловічий чи жіночий), з'являються поля:
· Час проходження чергових військових зборів;
· Рід військ, в яких проходив військовий збір;
· Або ж:
· Улюблені квіти.
Для таких випадків в Турбо-Паскалі передбачені записи з варіантами. Такі записи містять фіксовану і варіантну частину, яка починається з ключового слова case. Розглянемо приклад:
type personsex = (male, female);
person = record
name, secondname, surname: string [20];
birthday: date;
case sex: personsex of male: (army1: date; army2: string [20]);
female: (flower: srting [20]);
end;
Слід зазначити, що варіантна частина завжди розташовується після фіксованої частини, а відведена пам'ять обчислюється по найбільшому варіанту, тобто різні варіанти одного запису як би "накладаються" один на одного.

Висновок
Запис - це структура даних, що складається з фіксованого числа компонентів, званих полями запису. Кожен розділ запису складається з одного або декількох ідентифікаторів, що відділяються один від одного комами. Поля запису можна використовувати в якості окремих змінних, як звичайну змінну, а також можна використовувати як єдине ціле. Записи можуть містити різні поля запису та оператори.

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
1. Навчальний посібник з Turbo Pascal 7.0;
2. Володимир Попов. Паскаль і Дельфі. Самовчитель. - Пітер, 2003 р., 544 с.;
3. Потопахін В.В. Turbo Pascal: рішення складних завдань. - Видавництво "БХВ-Петербург", 2006,208 с.;
4. Шпак Ю.А. Turbo Pascal 7.0 на прикладах. - Видавництво "Юніор", 2003,498 с.;
5. Фаронов В.В. Turbo Pascal Найбільш повне керівництво в оригіналі. - Видавництво "ОМД Груп" 2003,1054 с.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
23.3кб. | скачати


Схожі роботи:
Структуровані типи даних записи та множини Використання процедур та функції мови Turbo Pascal
Файли в мові Turbo Pascal
Складання програм для вирішення задач на мові програмування Turbo Pascal
Скласти програму на мові Turbo Pascal для паралельної сортування чисел
Основні відомості про алгоритмічну мову Turbo Pascal Графіка Pascal
Turbo Pascal
Оператори Turbo Pascal 7
Мова програмування Turbo Pascal
Програми в середовищі Turbo Pascal
© Усі права захищені
написати до нас