Перечисляемый тип (сокращённо перечисле́ние, англ. enumeration, enumerated type) — в программировании тип данных, чьё множество значений представляет собой ограниченный список идентификаторов.
Перечисления представляют собой упорядоченный список символьных «значений»:
Type
Rainbow = (red, orange, yellow, green, aqua, blue, purple);
Var
Col: rainbow;
В программе переменной col может быть присвоено одно из перечисленных значений:
Col: = green;
По описанию перечисления компилятор присваивает каждому мнемоническому «значению» числовой порядковый номер, начиная с 0 (red=0, orange=1, yellow=2 и т.д.). В принципе, над мнемоническими «значениями» можно производить такие же операции, как и над целыми числами(если это имеет смысл). Например:
Col:= orange + green; // аналог 1+3
После этого значению переменной col будет соответствовать мнемоническое значение aqua, имеющее порядковый номер 4.
Вопрос№18. Символьные данные
К данным типа char относятся объекты, представленные в оперативной памяти восьмибитовыми двоичными кодами от 0 до 255
Первую группу таких объектов с кодами от 0 до 31 относят к группе управляющих символов. Среди управляющих символов чаще других используются следующие:
* «пусто» (символ NIL с кодом 0)
* «звуковой сигнал» (символ BEL с кодом 8)
* «табулярный пропуск» (символ Tab с кодом 9)
* «конец строки» (символ LF с кодом 9)
* «перевод каретки» (символ CR с кодом 10)
* «отмена» (символ Esc с кодом 27)
Вторую группу составляют так называемые отображающие символы. При их выводе на экран каждый объект занимает одно знакоместо, в котором отображаются буква, цифра, скобка, знаки операций и препинания. Символ «пробел» с кодом 32 не миеет на экране видимого графического отображения, но он занимает знакоместо, используемое для разделения «слов» - цепочек видимых символов. Среди отображаемых символов присутствует единственный управляющий символ «забой» (backspace с кодом 127), назначение которого – стереть на экране предшествующий символ.
|
Вопрос№19.
Вывод данных на экран или файл в языке программирования Pascal осуществляется с помощью процедур write и writeln. Здесь будет рассмотрен вывод только на экран.
Допустим, нам требуется отобразить на экране пару фраз. Если мы хотим, чтобы каждая из них начиналась с новой строки, то надо использовать writeln, если нет – то write.Ввод данных с клавиатуры
Ввод данных в языке программирования Паскаль обеспечивается процедурами read и readln. Ввод данных осуществляется либо с клавиатуры, либо из файла.
Когда данные вводятся в память, то надо к ним в дальнейшем как-то обращаться, и знать, где они там лежат. За это все отвечает механизм переменных. Поэтому, когда в программе на Pascal используется процедура read (или readln), то в качестве фактического параметра (аргумента) ей передается имя переменной, которая будет связана с вводимыми данными.
При вводе данных их разделяют пробелом или переходом на новую строку (Enter).
Вопрос№20.
Строки. Строковый тип данных.
Компьютер способен обрабатывать не только числовые данные. Задачи обработки символьных данных распространены не менее, а возможно и более чем чисто арифметические расчеты. В этой главе мы изучим работу с символами и строками средствами Паскаля.
Для обработки строковой информации в Паскаль введен строковый тип данных. Строкой в Паскале называется последовательность из определенного количества символов. Количество символов последовательности называется длиной строки. Синтаксис:
var s: string[n];
var s: string;
n - максимально возможная длина строки - целое число в диапазоне 1..255. Если этот параметр опущен, то по умолчанию он принимается равным 255.
Строковые константы записываются как последовательности символов, ограниченные апострофами. Допускается формирование строк с использованием записи символов по десятичному коду (в виде комбинации # и кода символа) и управляющих символов (комбинации ^ и некоторых заглавных латинских букв).
Пример:
'Текстовая строка'
#54#32#61
'abcde'^A^M
Пустой символ обозначается двумя подряд стоящими апострофами. Если апостроф входит в строку как литера, то при записи он удваивается.
|
Вопрос№21.
В Паскале подпрограммы делятся на процедуры и функции:
Синтаксически процедуры и функции состоят из заголовка (содержащего ключевое слово procedure или function, имени, за которым может следовать описание передаваемых параметров в скобках, тип возвращаемого значения через символ двоеточия для функций и точки с запятой для процедур), после заголовка следует тело, после которого ставится символ;
Тело процедуры, как и программы, в свою очередь может содержать описания процедур и функций.
Таким образом, процедуры и функции могут быть вложены друг в друга как угодно глубоко, при этом тело программы — самое верхнее в цепочке.
Причём содержимое секций описания переменных, типов, констант, внешнего тела (процедуры, функции, программы), расположенных перед описанием процедуры/функции, доступны внутри неё.
Также, в большинстве диалектов из процедуры можно обращаться к параметрам внешней процедуры.
|
Вслед за заголовком процедур/функций вместо тела может помещаться ключевое слово forward, это делается в том случае, если описание процедуры/функции располагается в программе после её вызова, и связано с поддерживаемой в Паскале возможностью компиляции программы за один проход.
Процедуры отличаются от функций тем, что функции возвращают какое-либо значение, а процедуры — нет.
Процедуры Str и Val предназначены для прямого и обратного преобразования числовых значений любого типа.
Вопрос№22.
Format – универсальная функция преобразования данных
Наиболее широкими возможностями по преобразованию данных разного типа в их символьное представление обладает функция Format. Её идеология заимствована из языков C,C++. В упрошенном варианте обращение к функции Format Выглядит следующим образом:
s:=format (‘форматные указатели’, [список значений])
Квадратные скобки, выделяющие второй аргумент, здесь является обязательным элементом синтаксической конструкции. Функция Format возвращает результат преобразования в виде значения типа string.
Чтобы не запутаться во всех возможностях этой универсальной функции, продемонстрируем некоторые из них на следующем примере.
Program format 1;
Uses sysutils;
Var
I:integer=123;
F:single=pi;
Ch:=char=’A’;
S:string=’Hello, world’;
Begin
Writeln (format(‘i=%5d f=%8.2 ch=%s s=%s’,[I,f,ch,s]);
Readln;
End.
Вопрос№23.