Автор: Пользователь скрыл имя, 27 Декабря 2011 в 11:37, курсовая работа
Мова Паскаль відноситься до парадигми структурного програмування. Це значить, що поняття «структура» входить у програму не тільки на рівні загальної її побудови, але і передбачає структурування самої логіки й даних якими оперує мова програмування. Перш за все, даний принцип знайшов своє застосування в типізації мови, тобто наділенні її жорсткою системою визначених типів, комбінуючи які кваліфікований програміст може створювати свої власні типи, причому вже не тільки прості (атомарні), але і складні конструкції, які представляють собою – структури даних.
M = Array[R] of Q; { M - ім'я типу: масив записів }
var
A: M; { A - ім'я змінної комбінованого типу }
і: integer; { Допоміжна змінна }
STROKA: string[5];
{ ----------------------- }
PROCEDURE ADD (var X: Q);
var
Summa: Real;
BEGIN
With 1 0 X 1 0 do { Увага: оператор приєднання With }
If 1 0 Logic
then begin Summa:= Tchislo + Coffi; WriteLn 1 0 ('С у м м а...');
Write 1 0(Summa:5:2); WriteLn
end
else begin Summa:= Tchislo - Coffi; WriteLn 1 0 ('С у м м а...');
Write 1 0(Summa:5:2); Writeln
end
END;
{ --- }
BEGIN
WriteLn 1 0('Ініціалізація масиву записів A...');
For і:=1 to 2 do
begin WriteLn 1 0('Вводимо вміст полів...');
WriteLn 1 0('По-перше, чекаємо TRUE чи FALSE...'); ReadLn 1 0(STROKA);
If 1 0(STROKA='TRUE') OR (STROKA='true') then A[i].Logic 1 0:= 1 0TRUE;
If 1 0(STROKA='FALSE') OR (STROKA='false') then 1 0A[i].Logic 1 0:= 1 0FALSE;
WriteLn 1 0('По-друге, перевіряємо на вміст числові поля');
ReadLn(A[і].Tchislo); Readln(A[і].Coffi);
end;
WriteLn('Перевіримо, введені значення...');
For і:=1 to 2 do
begin WriteLn ('Вміст полів ',і,'-го масиву.
Write (A[i].Logic,' '); Write(A[i].Tchislo,' ');
Write (A[i].Coffi:5:2); WriteLn
end;
ADD(A[1]); ADD(A[2])
END.
Отже враховуючи вищезезанчені особливості даного різновиду складних структур даних можна зробити такі висновки.
По-перше, запис у мові програмування Паскаль - це структура даних, що складається з фіксованого числа найменованих компонентів, називаних полями. При цьому поля можуть бути різного типу. Ця особливість робить запис найбільш загальним і гнучким типом даних. При визначенні записного типу для кожного поля задаються його ім'я і тип. Область дії імені поля - самий внутрішній запис, у якій воно визначається. Ім'я поля може збігатися як з ідентифікаторами блоку, де описана запис, так і з іменами полів інших записів, але не може збігатися з ім'ям поля на тім же рівні структурування запису.
По-друге,
запис безпосередньо
Іноді в запис необхідно включити інформацію, що залежить від інший, уже включеної в цьому записі, інформації. Синтаксис записного типу передбачає варіантну частину, розраховану на те, що можна задавати тип, що містить визначення декількох варіантів структури. Це означає, що різні змінні, хоча й одного типу, можуть мати різні структури. Розходження може бути як у типах компонентів, так і в їхній кількості.
Варіантна частина запису складається із селектора варіанта та одного чи більш варіантів. Структура і значення кожного варіанта задаються його списком полів. Варіанти специфікуються селектором варіанта.
У подібних структурах обов'язково задаються: тип, значення якого визначають варіанти, ім'я поля ознаки, у якому записується значення, що відповідає визначеному варіанту.
Кожен варіант складається зі списку констант визначеного типу і відповідного списку описів компонент, укладеного в дужках. Кожна константа повинна зустрічатися тільки один раз у даній варіантній частині.
Якщо існує поле ознаки, то активним буде варіант, якому передує константа, рівна значенню поля ознаки. Над об'єктами записного типу визначені операції порівняння на рівність (=) і нерівність (<>).