Вопросы темы:
1. История создания языка.
2. Алфавит и основные операции.
3. Типы данных.
Первая версия языка Паскаль была разработана в 1968 году. Ее разработчиком является швейцарский ученый Никлаус Вирт. Свое название язык получил в честь создателя первой механической вычислительной машины француза Блеза Паскаля. На основе языка Паскаль в 1985 г. фирма Borland выпустила версию Turbo Pascal версии 3.0. С этого времени язык Паскаль используется во всем мире в учебных заведениях в качестве первого изучаемого языка программирования.
В пакете Turbo Pascal 4.0 были устранены ошибки и ограничения компилятора предыдущей версии. В версии 5.0 появился интегрированный отладчик. В этой версии были исправлены и улучшены библиотеки графических процедур, которым была обеспечена совместимость с графическими адаптерами класса VGA. Появились новые возможности справочной системы Help.
В версии 6.0 была реализована концепция объектно-ориентированного программирования с полным набором прикладных задач для пользователя. В оболочку был встроен интегрированный текстовый редактор. В этой версии впервые использовалась мышь для управления работой.
В 1992 г. появилась последняя на сегодняшний день версия языка Turbo Pascal - 7.0. В ней сохранились все достоинства предыдущих версий, был улучшен интерфейс пользователя, появилась возможность выделять определенным цветом различные элементы исходного текста.
По эффективности и простоте программирования, Паскаль занимает промежуточное положение между Бейсиком и Си. Поэтому он наиболее подходит для освоения его студентами младших курсов. Существует много разновидностей языка Pascal (Object Pascal, Turbo Pascal, Delphi, PascalABC и др.). Синтаксис во всех версиях Pascal практически одинаков.
Для обучения наиболее подходит свободно распространяемая версия Pascal ABC,специально разработанная С.С.Михалковичем – преподавателем механико-математического факультета Ростовского госуниверситета. Система Pascal ABCпредназначена для обучения программированию на языке Паскаль и ориентирована на студентов младших курсов. По мнению автора программы С.С.Михалковича первоначальное обучение программированию должно проходить в достаточно простых и дружественных средах, в то же время эти среды должны быть близки к стандартным по возможностям языка программирования и иметь достаточно богатые и современные библиотеки стандартных подпрограмм.
Язык Паскаль признан многими российскими преподавателями, как один из лучших, именно для начального обучения. Система Pascal ABCоснована на языке Delphi Pascal и призвана осуществить постепенный переход от простейших программ к модульному, объектно-ориентированному программированию.
Алфавит языка Паскаль.
Алфавитом языка называют совокупность всех допустимых символов, которые можно использовать в этом языке.
Алфавит языка Паскаль включает в себя следующие символы:
- прописные и строчные буквы латинского алфавита от A до z,
а также символ подчеркивания (_), который тоже считается буквой,
прописные и строчные буквы равнозначны;
- арабские цифры 0 1 2 3 4 5 6 7 8 9;
- специальные одиночные знаки: + – * / = < >.,:; ^ $ # @;
- специальные парные знаки: [ ] () { };
- составные знаки: <= >= <>.. (* *).
В состав ЯП Паскаль входят также буквы русского алфавита, но они могут использоваться только при вводе, выводе и обработке данных строкового и символьного типов или в комментариях к программе.
Программа, записанная на языке Паскаль, может содержать следующие разделы:
1. Заголовок программы Program имя программы;
2. Раздел подключения модулей uses …;
3. Раздел описания меток label …;
4. Раздел описания констант const …;
5. Раздел определения типов type …;
6. Раздел описания переменных var …;
7. Раздел описания процедур и функций procedure …; function …;
8. Раздел операторов begin … end.
При отсутствии некоторых частей программы общий порядок их следования сохраняется. Разделы между собой отделяются знаком ";" (точка с запятой). Раздел операторов заключается в операторные скобки. Это зарезервированные слова begin, end. Раздел операторов заканчивается точкой. Раздел "заголовок" начинается с зарезервированного слова, за которым указывается имя программы. В качестве имени может использоваться любой набор символов алфавита с несколькими исключениями:
1. Нельзя использовать зарезервированные слова;
2. Нельзя начинать имя с цифры;
3. При использовании имени не используется пробел.
Любая программа выполняет над исходными данными некоторые действия. При этом, как и переменные или константы в математике, отдельные элементы данных обозначаются даваемыми программистом именами (идентификаторами). Любые идентификаторы в языке Паскаль строятся по следующим правилам:
- имена могут включать латинские буквы, цифры и знак подчеркивания;
- имя состоит из одного слова, если требуется пробел в имени, он заменяется на подчеркивание;
- имя всегда начинается с буквы; прописные и строчные буквы в именах не различаются Паскалем: x1 и X1 - это одна и та же величина;
- имена не могут совпадать с зарезервированными в языке служебными словами.
Константы.
Константой называют величину, значение которой не меняется в процессе выполнения программы.
Числовые константы служат для записи чисел. Различают следующие их виды:
Целочисленные (целые) константы: записываются со знаком + или -, или без знака, по обычным арифметическим правилам:
-10 +5 5
Вещественные числа:
2.5 -3.14 2.
Кроме числовых констант существуют и другие их виды.
Логические константы служат для проверки истинности или ложности некоторых условий в программе и могут принимать только одно из двух значений: служебное слово true обозначает истину, а false – ложь.
Символьные константы могут принимать значение любого печатаемого символа и записываются как символ, заключенный в апострофы ('одинарные кавычки'):
'Y' 'я' ' '.
В последнем случае значение символьной константы равно символу пробела.
Строковые константы - это любые последовательности символов, заключенных в апострофы. Как правило, строковые константы служат для записи приглашений к вводу данных, выдаваемых программой, вывода диагностических сообщений и т. п.:
'Введите значение X:';
'Ответ='.
Пример описания констант:
PROGRAM FIRST;
CONST
FAM = 'Иванов';
KAF = 'ИИСТ';
KURS = 1;
GRUP = 3;
Переменные.
Переменными называют величины, значения которых могут изменяться в процессе выполнения программы. Каждая переменная задается своим уникальным именем, максимально возможная длина имени зависит от реализации Паскаля.
Поскольку любые данные в памяти компьютера хранятся в числовой форме и двоичной системе счисления, кроме имени, переменной обязательно следует присвоить и тип, определяющий диапазон значений, принимаемых переменной, и способ ее обработки компьютером.
Раздел описания переменных начинается с зарезервированного слова var. Для объявления переменной необходимо указать имя переменной и ее тип. Однотипные переменные могут перечисляться через запятую перед указанием их типа.
Пример:
a: integer;
b: boolean;
c, b: real;
e: integer;
Все переменные делятся на глобальные и локальные. Глобальными являются переменные, объявленные вне процедур и функций, а локальными - объявленные внутри процедур и функций.
Типы переменных.
В зависимости от версии языка программирования Pascal типы переменных могут немного различаться. Типы в PascalABC подразделяются на простые и структурированные.
К простым относятся числовые (целые и вещественные) типы, логический, символьный, перечисляемый и диапазонный тип. Все простые типы, кроме вещественного, являются порядковыми.
Порядковые целые типы:
Перечисляемыйтип определяется упорядоченным набором идентификаторов.
Например:
type
Season = (Winter,Spring,Summer,Autumn);
DayOfWeek = (Mon,Tue,Wed,Thu,Fri,Sat,Sun).
Интервальный тип представляет собой подмножество значений целого,
символьного или перечисляемого типа и описывается в виде a.. b,
где a - нижняя, b - верхняя граница интервального типа:
Var
k: 0..10;
p: 'a'..'n';
s: Mon..Sat.
Тип, на основе которого строится интервальный тип, называется базовым для этого интервального типа.
Тип real (числовой вещественный). Значения вещественного типа занимают 8 байт, содержат 15-16 значащих цифр и находятся в диапазоне -1.7∙10308.. 1.7∙10308. Самое маленькое положительное число вещественного типа равно 5.0∙10-324. Константы типа real можно записывать как в форме с плавающей точкой, так и в экспоненциальной форме:
1.7;
0.013;
2.5e3 (2500);
1.4e-1 (0.14).
Тип boolean (логический). Переменные и константы логического типа
занимают 1 байт и могут иметь одно из двух значений, задаваемых константами True (истина - 1) и False (ложь - 0).
Комментарии к программе.
В программе может присутствовать текст, написанный разработчиком для пояснения некоторых действий. Этот текст называется «комментарием».
Комментарии заключаются между скобками { …}, (*…*) или пишутся после
символов // (двойной слеш). Комментарии не воспринимаются и не обрабатываются программой.
Операторы языка Паскаль.
Оператор - это основная единица программы, которая выполняет определенные действия над данными. Операторы в программе располагаются после описания данных и отделяются от него служебным словом BEGIN. Их можно условно разделить на 2 типа:
1) обрабатывающие, которые обрабатывают данные;
2) управляющие, которые управляют выполнением обрабатывающих операторов.
К первому типу относятся операторы:
1) ввода;
2) вывода;
3) присваивания (вычисления новых значений);
ко второму — операторы:
1) изменяющие естественный порядок выполнения других операторов в зависимости от некоторого условия или безусловно;
2) обеспечивающие повторение некоторых групп операторов.
Операторы обработки данных.
Во время выполнения программы переменным присваиваются конкретные значения, относящиеся к решаемой задаче. Присваивание может быть выполнено двумя способами:
1) вводом данных (чисел, символов, строк) с устройства ввода (клавиатуры);
2) вычислением нового значения по формулам, в которых используются уже определенные ранее значения.
Операторы ввода служат для присвоения переменным конкретных значений. В Паскале определены два таких оператора. В общем виде они записываются так:
Read ( список ввода );
Readln ( список ввода ).
Список ввода - это одно или несколько имен переменных, разделяемых запятыми.
Пример:
Read(number);
Readln(X,Y).
Операторы вывода служат для передачи данных из памяти ЭВМ на устройство вывода (дисплей, печать, файл). Их тоже два. В общем виде они записываются так:
Write ( список вывода );
Writeln ( список вывода ).
Список вывода - это последовательность строковых констант и (или) имен переменных или выражений, разделяемых запятыми.
Пример:
Writeln('ФАКУЛЬТЕТ: ',А,В,С,D);
Write(number,X).
Оператор writeln после вывода переводит курсор на следующую строку. Операторы write и writeln допускают форматированный вывод данных:
Write (a:5:2);
первое из чисел указывает, сколько экранных знаков отводится под вывод. Второе число указывает количество знаков после запятой в числе и может отсутствовать.
Оператор присваивания.
Оператор присваивания - это основной оператор любого языка программирования. Данный оператор позволяет поместить определенное значение в необходимую переменную.
Оператор присваивания имеет вид:
идентификатор:= выражение;
При составлении выражений могут быть использованы стандартные математические функции, которые будут рассмотрены позже. Пример операторов присваивания:
a:=1000;
b:=5;
a:=a+b.
Арифметические выражения.
Арифметические выражения строятся из операндов, которыми могут быть константы, переменные и стандартные функции. В арифметические выражения также входят арифметические операции и круглые скобки. В языке Паскаль определено 6 арифметических операций, перечислим их в соответствии с приоритетом, то есть, старшинством (табл.). Операции с одинаковым приоритетом равноправны между собой и выполняются слева направо, как и в математике.
Табл. Арифметические операции языка Паскаль
Приоритет | Знак операции | Описание операции |
1 | * | умножение |
/ | деление | |
div | деление 2 целых значений с отбрасыванием остатка | |
mod | взятие остатка от деления 2 целых значений | |
2 | + | сложение |
- | вычитание |
Операции div и mod определены только для целочисленных операндов.
Стандартные функции служат для выполнения элементарных математических расчетов, часто требуемых при написании программ. Информация об основных стандартных функциях представлена в табл.
Табл. Некоторые стандартные функции языка Паскаль
Математическая запись | Запись на Паскале | Пояснение | Тип аргумента и результата |
| x | | abs(x) | Модуль аргумента x | Integer (I) или Real (R) |
x 2 | sqr(x) | Квадрат аргумента x | аргумент – I или R, результат – R |
sin x cos x arctg x | sin(x) cos(x) arctan(x) | Остальные тригонометрические функции выражаются через эти | аргумент – I или R, результат – R |
ex ln x | exp(x) ln(x) | Экспонента и натуральный логарифм | аргумент – I или R, результат – R |
sqrt(x) | Квадратный корень от аргумента x | аргумент – I или R, результат – R | |
trunc(x) | Функция отбрасывает дробную часть аргумента, аргумент не округляется | аргумент R, результат I | |
frac(x) | Функция выделяет дробную часть своего аргумента | R | |
round(x) | Округление вещественного числа до ближайшего целого | аргумент R, результат I |
К логическим относятся бинарные операции and, or и xor, а также унарная операция not. Эти операции выполняются с использованием операндов типа boolean и возвращают значение типа boolean. Выражение, имеющее тип boolean, называется логическим (булевым).
Выражения в программах могут конструироваться с помощью булевых
операций. Эти операции используют понятия алгебры логики, разработанной
британским математиком Джорджем Булем.
Операция and – конъюнкция (логическое умножение, пересечение, &, ^, "и"). Выражение a & b дает значение true только в том случае, если a и b имеют значения true, в остальных случаях – false:
true and true = true;
true & false = false;
false ^ false = false.
Операция or – дизъюнкция (логическое сложение, объединение, +, v, "или"). Выражение a + b дает значение false в том и только в том случае, если a и b имеют значения false, в остальных случаях – результат true:
true or true = true;
true + false = true;
false v false = false.
Выражение a xor b ("исключающее или"). дает значение false в том случае, если a и b имеют равные значения, в противном случае – true.
Операция not – инверсия (логическое отрицание,, −, операция "не").
Выражение not a имеет значение, противоположное значению a:
not true = false;
false = true.
Операции отношения также являются логическими. Их можно использовать для проверки отношений между переменными: a<b, c>=d, x=y и т.д. В Паскале существуют следующие операции отношения (сравнения):
= равно;
<> не равно;
< меньше;
> больше;
<= меньше или равно;
>= больше или равно.
Порядок действий при вычислении значения выражения:
1) вычисляются значения в скобках;
2) вычисляются значения функций;
3) выполняются операции умножения и деления (в том числе целочисленного
деления и нахождения остатка от деления);
4) выполняются операции сложения и вычитания.
Таким образом, на основании рассмотренного ранее материала, можно привести пример первой программы на языке Pascal.
Ввести два целых числа, найти их сумму, результат вывести на экран с поясняющим текстом.
program first; // название программы
uses crt; // подключаемые модули
var x, y, s:integer; // объявление имен переменных и их типа
begin // начало исполнительной части
writeln(’Введите два целых числа’); // вывести текст на экран
readln(x,y); // ввести данные с клавиатуры и
// запомнить их в переменных
s:=x+y; // выполнить расчет и запомнить его в
// переменной
writeln(‘Сумма чисел =’,s); // вывести на экран текст и значение
// переменной
end. // конец программы.