Лекция 01. Тема Общая характеристика языков программирования высокого уровня


Download 4.1 Mb.
Pdf ko'rish
bet30/57
Sana12.11.2023
Hajmi4.1 Mb.
#1767546
TuriЛекция
1   ...   26   27   28   29   30   31   32   33   ...   57
Bog'liq
Lektsii po YaP Lukinova 2 sem

3.8.4. Объединения 
Объединение – представляет собой ячейку оперативной памяти, которая 
в разные моменты времени выполнения программы, может хранить данные 
различных типов. 
Реализуются в Fortran в виде оператора EQUIVALENCE:
INTEGER <имя1>
REAL <имя2>
EQUIVALENCE (имя1, имя2)
В языке С введен специальный тип – объединение union:
union u {
int i;
char c; 
float r;
}.
Под переменную типа объединение всегда выделяется ячейка памяти в 
соответствии с элементом максимальной длины.
Для переменной типа union определены операции сравнения на 
равенство и неравенство. Это довольно ненадежный тип данных, т.к. 
проверку типа в объединении можно осуществить только на стадии 
выполнения программы, что требует к тому же больших временных затрат.
Вариантная запись.


В системе данных языка Pascal тип объединение как таковой 
отсутствует. Однако, начиная с 5-ой версии, в нем декларированы
вариантные записи, которые реализованы как размеченные объединения. 
Появилась метка (переменная), которая хранит тип варианта поля записи. 
Когда метка принимает конкретное значение, выбирается тот или иной 
вариант:
type
rec2 = record
с : longint;
Case aaa byte of
1 : (d : word);
2 : (e : single)
end.
Варианты оформляются конструкцией Case … of и примечательны тем, 
что память под них отводится одна и та же (как в объединениях).
Наличие вариантных записей в Pascal позволило обойти отсутствие 
блоков в Pascal (напомним, что блок позволяет объявлять новые переменные 
в теле программы).
Program ААА;
type
rec : record;
c : longint;
case k : byte of
1: (d : word);
2: (е : record);
case s : integer of
3 : (f : int);
5 : (g : real);
c
Aaa
e


‘3’ : (c : word);
end;
var
r : rec;
begin
k := 1;
s := ‘3’;
r.e.c = 1000;
end. 

Download 4.1 Mb.

Do'stlaringiz bilan baham:
1   ...   26   27   28   29   30   31   32   33   ...   57




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling