Смекни!
smekni.com

Структура Паскаль-программы (стр. 1 из 5)

Структура Паскаль-программы.

Программа на языке Паскаль состоит из следующих частей:

Заголовок

Подключение модулей

Раздел описаний

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’;

Выражения.

Основными объектами, из которых состоит исполняемая часть программы, являются константы, переменные и обращения к функциям. Каждый из этих объектов характеризуется своим значением и принадлежит к какому-либо типу данных.

Выражение – это формальное правило для вычисления нового значения. Выражением может быть одиночный объект (константа, переменная, обращение к функции) или несколько операндов, разделённых знаками операций.

Операции – определяют действие по вычислению новых значений, исходя из значения операндов.

Все операции Паскаля можно разделить на 4 группы по приоритетам: 1) унарные операции (логическое not, операция взятия адреса); 2) мультипликативные операции (умножение, деление, деление нацело, взятие остатка от целочисленного деления, логическое and, операции сдвига – shlи shr); 3) аддитивные операции (сложение, вычитание, логическое or, логическое xor); 4) операции отношения (проверка на равенство или неравенство, операции сравнения, операция проверки принадлежности к множеству – in).

Для логических выражений характерно то, что их значение может стать известным ещё до конца вычисления всего выражения. Такой способ называется усечённым способом вычисления логических выражений.

Options – Compiler – BooleanEvaluation– выбор типа вычисления логических выражений.

Операторы.

Это синтаксические конструкции, предназначенные как для записи действий по преобразованию данных, так и для задания порядка выполнения других действий. Язык Паскаль содержит всего 11 операторов: 1) оператор присваивания; 2) оператор процедуры; 3) оператор перехода; 4) составной оператор; 5) условный оператор; 6) оператор варианта; 7, 8, 9) операторы цикла; 10) оператор над записями; 11) пустой оператор. Кроме того, существуют операторы машинного кода и ассемблера.