Автор работы: Пользователь скрыл имя, 20 Февраля 2011 в 19:37, лекция
Программа на языке Паскаль состоит из следующих частей:
Заголовок
Подключение модулей
Раздел описаний
Begin
Раздел операторов
Структура Паскаль-программы.
Программа на языке Паскаль состоит из следующих частей:
Заголовок
Подключение модулей
Раздел описаний
Begin
Раздел операторов
End.
Заголовок – необязателен. Начинается с ключевого слова program.
Program <имя>;
Подключение модулей – ключевое слово uses.
Uses <имя1>, <имя2>, …, <имя n>;
Раздел описаний – состоит из нескольких подразделов.
Подраздел Label – описание меток.
Label <имя>, <число>;
Const – описание констант.
Type – описание типов.
Var – описание переменных.
Function – описание функций.
Procedure – описание процедур.
Раздел операторов – содержит действия, предписанные алгоритмом.
Раздел описаний
совместно с разделом операторов
называется блоком.
Program My_First_program;
Var n1, n2: integer;
x: real;
Begin
Write(‘n1=’); readln(n1);
Write(‘n2=’); readln(n2);
x := n1 / n2;
Writeln(‘n1/n2= ‘, x);
End.
Процедура –
некоторая последовательность операторов
языка Паскаль, к которой можно
обратиться по имени.
Системы типов языка. Стандартные типы.
В языке Паскаль
любая константа, переменная, значение
выражения характеризуется своим типом.
Тип данных определяет множество значений,
которые может принимать переменная, а
также множество операций, допустимых
над данной переменной. Кроме того, тип
данных определяет внутреннее представление
переменной. Все типы языка Паскаль можно
разделить на две категории: стандартные
и определяемые программистом.
Системы типов языка Паскаль.
См. рис.1.
Логический (булевский) тип.
Boolean – идентификатор логического типа. Может принимать два значения: False (0) или True (1). Занимает 1 байт.
ByteBool – 1 байт.
WordBool – 2 байта.
LongBool – 4 байта.
Операции отношения: >, <, >=, <=, =, <>. Результаты этих операций имеют логический тип.
В Паскале существуют четыре логические операции: and (логическое И), or (логическое ИЛИ), xor (исключающее ИЛИ, сложение по модулю 2, отрицание равнозначностей), not (отрицание).
(x > 1) and (x < 2) –
пример логических операций.
Целые типы.
Эта группа типов обозначает множество целых чисел в различных диапазонах.
Integer – длина 2 байта. От -32768 до 32767.
Byte – длина 1 байт. От 0 до 255.
Word – длина 2 байта. От 0 до 65535.
Shortint – длина 1 байт. От -128 до 127.
Longint – длина 4 байта. От -2^31 до 2^31-1.
Операции: +, -, *, /, div, mod.
Все операции, кроме деления, для целых данных дают результат целого типа. Деление всегда даёт результат вещественного типа.
Стандартные процедуры и функции, применимые к данным целого типа.
Odd(x): boolean – функция возвращает True, если число нечётное, и False – в противном случае.
Порядковыми называются типы, значения которых можно перечислить по порядку. Boolean тоже относится к порядковому типу.
Pred(x) – предыдущее значение. Тип результата – целый.
Succ(x) – следующее значение. Тип результата – целый.
Inc(x) – функция увеличения на единицу.
Inc(x, n) – процедура увеличивает значение первого параметра на n.
Dec(x) – функция уменьшения на единицу.
Dec(x,
n) – процедура уменьшает первый параметр
на n.
Вещественный тип.
Эта группа типов обозначает множество вещественных значений в различных диапазонах.
Real – идентификатор вещественного типа. Длина памяти – 6 байт. Диапазон: от 2,9*10^-39 до 1,7*10^38. В памяти машины величины типа Real представляются так: знак порядка, порядок, мантисса.
Single – длина 4 байта. От 1,1*10^-45 до 3,4*10^38. Представляется так: знак порядка, мантисса, порядок.
Double – длина 8 байт. От 5,0*10^-324 до 1,7*10^308.
Extended – длина 10 байт. От 3,4*10^-4932 до 1,1*10^4932.
Comp – длина 8 байт. От -2^63 до 2^63-1.
Операции: Арифметические: +, -, *, /. Результат – вещественного типа.
Операции отношения.
Стандартные процедуры и функции, применимые к данным вещественного типа.
Имя | Тип аргумента | Тип результата | Вычисление |
Abs(x) | целый или вещ. | тип аргумента | Модуль x |
Arctan(x) | целый или вещ. | вещественный | Арктангенс x |
Cos(x) | целый или вещ. | вещественный | Косинус x |
Exp(x) | целый или вещ. | вещественный | E в степени x |
Ln(x) | целый или вещ. | вещественный | Натуральный лог. x |
Sin(x) | целый или вещ. | вещественный | Синус x |
Sqr(x) | целый или вещ. | тип аргумента | Квадрат x |
Sqrt(x) | целый или вещ. | вещественный | Корень из x |
Frac(x) | вещественный | вещественный | Дробная часть аргум. |
Int(x) | вещественный | вещественный | Целая часть аргумента |
Pi | - | вещественный | Число Пи |
Round(x) | вещественный | целый | Округление до целого |
Trunc(x) | вещественный | целый | Целая часть аргумента |
Символьный тип.
Char – идентификатор символьного типа. Символы с кодом от 0 до 127 соответствуют ASCII. Символы с кодом от 128 до 255 не ограничены стандартами. Длина типа Char – 1 байт. Значения – коды символов от 0 до 255. Символы в тексте программы записываются в одиночных апострофах.
Операции: операции отношения.
Символьные типы относятся к порядковому типу.
Стандартные процедуры и функции, применимые к данным символьного типа.
Имя | Тип аргумента | Тип результата | Результат |
Ord(x) | символьный | целый | Код символа |
Chr(x) | byte | символьный | По коду - символ |
Pred(x) | символьный | символьный | Предыдущий символ |
Succ(x) | символьный | символьный | Следующий символ |
Upcase(x) | символьный | символьный | Перевод в верхний регистр |
Тип называется
скалярным, если он не раскладывается
на составные части.
Раздел определения констант.
Константы – это данные, которые в процессе выполнения программы нельзя менять.
Все константы делятся на литеральные и именованные.
Литеральные константы – это все числа, символы и строки символов в тексте программы.
Именованные константы – фиксированное значение, которому даётся имя.
Сonst – идентификатор раздела констант.
const <имя> = <значение>;
Тип константы определяется её изображением (способом её записи). Константы бывают целые, вещественные, символьные и строковые.
Целые константы – задаются десятеричным или шестнадцатеричным числом (шестнадцатеричные – со знаком $ в начале).
Вещественные константы могут создаваться форматом с фиксированной точкой или с плавающей точкой.
Символьные
константы – одиночный символ с апострофами
или строка с апострофами.
Раздел описания меток.
Метка в Паскале – это десятичное число или правильный идентификатор. Назначение метки – помечать оператор.
Label – идентификатор
раздела меток.
Раздел описания переменных.
Var –идентификатор раздела переменных.
var <имя>: <тип>;
x: real;
x, y, z, a: integer;
В Паскале введено понятие типизированных констант. По сути, это – переменная с заданным начальным значением. Типизированные константы описываются в разделе const следующим образом: <имя>: <тип> = значение;
x: integer = 10;
Значение типизированной константы можно менять в программе.
При описании переменных
в одном блоке не может быть
одинаковых имён. Для переменных, описанных
в блоке, выделяется объём памяти размером
64 кБ.
Определение типов.
Type – идентификатор раздела типов.
type <имя> = <описание типа>;
letters = ‘A’..’Z’;
Тип, который создаётся ограничением диапазона возможных значений какого-либо порядкового типа, называется ограниченным типом. Тип, на который накладываются ограничения, называется базовым типом.
interval = 0..100;
Базовые типы: все целые типы и тип Char.
Перечислимые типы – задаются перечислением тех значений, которые он может получать. Каждое значение именуется идентификатором и располагается в списке, обрамлённом круглыми скобками.
Пример: Color = (Red, Yellow, Green);
За каждым именем из этого списка закреплено определённое значение. Самим задать значение этих констант в Паскале нельзя.
var z: letters;
index: interval;
my_letter: ‘a’..’z’;
Выражения.
Основными объектами, из которых состоит исполняемая часть программы, являются константы, переменные и обращения к функциям. Каждый из этих объектов характеризуется своим значением и принадлежит к какому-либо типу данных.