Этапы разработки программы. Разработка или выбор алгоритма решения поставленной задачи. Оформление документации на программу, страница 15

Объединение.

Объединение имеет тот же синтаксис, что и структуры:

union[<идентификатор типа>]{<список полей>}<идентификатор>[ ,<идентификатор>]

Объединение в отличии от структуры позволяет размещать в одной и той же области памяти данные различных типов. В каждый момент времени в памяти может быть размещено значение только одного, включенного в объединение типа. Размер памяти, требуемый для размещения объединения, определяется размером наибольшего поля.

Для создания эквивалента записи с вариантами можно использовать объединение внутри структур. Для этого в структуру включают поле, позволяющее узнавать, какое из полей объединения активно в каждом конкретном случае.

Объявление Typedef. Zpsrf С используется для определения других типов:

Синтаксис объявления:

tipedef<спецификация типа> <имя типа>

Пример:

1)  typedef unsigned char byte;

byte i, j;

2)  typedef struct

{

char name[20];

int age;

}stud;

stud st;

После объявления tipedef имя типа и спецификация типа становятся синонимами и могут быть использованы в последующих объявлениях переменных.

12.3 Перечислимый тип данных в языках PASCAL и C.              

Перечислимый тип данных используется для повышения наглядности программ.

Иногда при разработке программ приходится иметь дело с различными понятиями, каждое из которых включает в себя множество частных случаев.

Например: месяц, день недели, сезон, цвет и т.д.

При решении на компьютере задач, связанных с использованием подобных понятий, их отдельные частные случаи иногда кодируются в цифровой форме.

Например: цвет (белый, черный, голубой, зеленый)

1            2            3              4

Пусть переменная b – цвет, и нужно проверить является ли цвет зеленым      if b = 4 ………..

Гораздо удобнее записать это условие в естественной форме:    if b = green ……..

Переменная b во втором случае должна быть перечислимого типа.

Синтаксис объявления перечислимого типа в языке PASCAL:  

type <имя типа>=(<список перечислений>);

Пример: type color = (while, black, blue, green)

Var b : color;

Замечание: В языке PASCAL имеется стандартный перечислимый тип – тип Boolean = (true, false). Каждая из констант перечислимого типа имеет порядковый номер, счет начинается с ноля. Упорядоченность констант перечислимого типа позволет применить к ним операции сравнения <, <=, а также стандартные функции ord – код, pred - предыдущий, succ - последующий

Синтаксис объявления перечислимого типа в языке C:

1)  enum[<имя типа>]{<список перечислений>}<идентификатор пер.>[ ,<идентификатор пер.>]

2)  enum<имя типа><идентификатор пер.>[ ,<идентификатор пер.>]

Во втором случае с помощью <имени типа> мы ссылаемся на перечислимый тип, объявленный раньше. Список перечислений – набор имен констант.

<идентификатор>[=<константное выражение>]

Если константное выражение не заданно, то первый элемент получает значение 0, второй – 1 и т. д.. Знак =<константное выражение> прерывает эту последовательность. Следующий элемент, если не заданно константное выражение, принимает значение <константное выражение>+1.

Примеры:

1)  enum  color{white, black, blue, green}col;

0         1        2        3

2)  enum  color{white, black=5, blue=6, green=2, red=5}col;

Основная причина использования перечислимого типа – это улучшение читаемости программы.

Замечание: В Си и Си++ по – разному обрабатываются перечислимые типы. Язык Си считает перечислимые типы, эквивалентом целых типов, допуская присвоение величины одного типа, величине другого. Си++ считает перечислимые типы особыми пользовательскими типами, требующими явного преобразования типа.

12.4 Ограниченный тип как средство повышения надежности программ.

В Паскале значительное внимание уделено вопросу повышения надежности программ, т.е. своевременному выявлению различного рода ошибок в программе.