- •Республика казахстан университет «туран»
- •Учебно-методический комплекс по дисциплине «Информатика»
- •Алматы, 2009
- •Основы технологии программирования
- •Способы описания синтаксиса
- •Алфавит языка Паскаль
- •Пример простой программы
- •Скалярные типы данных
- •Раздел описаний
- •Выражения и оператор присваивания
- •Пример работы операций div и mod
- •Ввод-вывод
- •Методические материалы для лабораторного занятия №12
- •Знакомство со средой
- •Значения некоторых клавиш и сочетаний клавиш в среде тр
- •Методические рекомендации по срсп №12
- •Методические рекомендации по срс №12
- •Краткий конспект лекции №13
- •Методические материалы для лабораторного занятия №13
- •Методические рекомендации по срсп №13
- •Методические рекомендации по срс №13
- •Краткий конспект лекции №14
- •Методические материалы для лабораторного занятия №14
- •Методические рекомендации по срсп №14
- •Методические рекомендации по срс №14
Скалярные типы данных
Каждая переменная или константа имеет значение определенного типа. Тип данных определяет множество допустимых значений, которые могут принимать переменные этого типа, а также возможные над ними операции.
Сначала рассмотрим только скалярные типы данных. К ним относятся целые, вещественные, символьный, логический, перечисляемые и интервальные типы. Среди скалярных типов принято выделять порядковые. Все порядковые типы имеют конечное число допустимых значений, которые могут быть определенным образом упорядочены. К ним относятся все скалярные типы за исключением вещественных.
Целые типы. Целых типов данных в Паскале шесть: integer, shortint, longint, comp, byte, word. Первоначально для целых чисел в Паскале существовал лишь тип integer, остальные были включены в более поздние версии.
Вещественные типы. Вещественные типов в языке Паскаль четыре: real, single, double и extended.
Символьный тип в Паскале только один — char. К нему относятся все ASCII-символы. Под каждую переменную или константу этого типа отводится 1 байт памяти.
Логический тип. Данные логического типа (boolean) могут принимать два возможных значения — true (истина) или false (ложь), и во внутреннем представлении занимают 1 байт.
Раздел описаний
Как уже упоминалось, любая переменная или константа, используемая в программе, написанной на языке Паскаль, должна быть сначала указана в разделе описаний, который делится на следующие подразделы:
меток;
констант;
типов;
переменных;
процедур и функций.
Об описании меток, процедур и функций будет сказано позже.
Подраздел констант начинается с зарезервированного слова const.
<подраздел констант> ::= const <описание константы>; {<описание константы>;}
Описание константы выглядит следующим образом:
<описание константы>::=<имя константы> = <значение> | <имя константы> : <тип> = <значение>
Например, возможны следующие описания констант:
const
a = 12;
g = 9.8;
b: integer = 128;
x: real = 134.6;
cr = #13;
word = 'Hello!';
Константы, для которых указан тип, называются типизированными. Такими константами являются, например, b и x.
Подраздел переменных начинается с зарезервированного слова var.
<подраздел переменных>::=var <описание переменных>;{<описание переменных>;}
Описание переменных выглядит следующим образом:
<описание переменных> ::= <имя переменной>{,<имя переменной>} : <тип>
Например, описания:
var
radius, length, distance: Real;
i,j : integer;
symb : char;
f : boolean;
задают переменные radius, length и distance типа real; i и j типа integer; symb типа char; f логического типа.
Различные подразделы могут располагаться в произвольном порядке, одни и те же разделы могут повторяться. Однако при описании действует одно неукоснительное правило: в любом месте программы могут использоваться только те элементы (типы, константы, метки или переменные), которые определены ранее в ее тексте.
Выражения и оператор присваивания
Чтобы задать переменной какое-либо значение, используется оператор присваивания.
<оператор присваивания>::=<имя переменной> := <выражение>
В левой части оператора присваивания стоит идентификатор переменной, а в правой — выражение, результат вычисления которого должен стать значением этой переменной. Между ними указывается составной символ операции присваивания :=. Например, в результате выполнения оператора x := 1 + 2 переменная х будет иметь значение, равное 3.
Отметим, что в левой части оператора может находиться только переменная, объявленная в подразделе var, или типизированная константа.
На рис. 1 приведены еще три примера работы оператора присваивания. На рисунках обозначены переменные, связанные с ними ячейки памяти и их содержимое до и после выполнения оператора присваивания.
EMBED PBrush
Рис. 1. Иллюстрации работы оператора присваивания
Из рисунка видно, что оператор присваивания, по обе стороны которого указаны переменные, создает копию значения правой переменной в левой. Кроме того, если в выражении справа присутствует переменная, указанная слева, вычисление выражения происходит относительно старого значения переменной.
В ряде случаев возникает необходимость обменять переменные значениями. В языке Паскаль нет оператора, позволяющего это сделать краткой записью. Наиболее рациональный способ сделать это заключается во введении третьей вспомогательной переменной.
Допустим, требуется однотипные переменные а и b обменять значениями. Для этого будем использовать вспомогательную переменную с.
№ |
Оператор |
Действие |
1 |
c := a |
Запоминаем значение а в переменной с |
2 |
a := b |
Присваиваем переменной а значение b |
3 |
b := c |
Присваиваем переменной b значение переменной с, т.е. "старое" значение а |
Схема обмена значениями представлена в таблице.
Состояние переменных |
а |
b |
c |
До выполнения операторов |
10 |
14 |
? |
После выполнения 1-го оператора |
10 |
14 |
10 |
После выполнения 2-го оператора |
14 |
14 |
10 |
После выполнения 3-го оператора |
14 |
10 |
10 |
Выражения, стоящие в правой части оператора присваивания, могут содержать операнды, т.е. функции, переменные или константы, и знаки операций, например *, + и другие. Операции в Паскале можно разделить на арифметические, логические, операции отношения и побитовые операции.
Арифметические операции могут быть унарными (операции над одним операндом) и бинарными (операции над двумя операндами).
Существует всего две арифметические унарные операции: + и –. Операция + не влияет на значение операнда, а операция – меняет знак операнда на противоположный. В языке Паскаль используется шесть арифметических бинарных операций: + (сложение), – (вычитание), * (умножение) и / (деление), а также операции целочисленного деления div и вычисления остатка от целочисленного деления mod. Результатом вычисления выражения a div b будет целая часть числа, полученного делением а на b, а результатом вычисления выражения a mod b будет остаток от деления а на b.