Қазақстан Республикасының білім және ғылым министрлігі
Министерство образования и науки республики Казахстан
Қостанай облыстық әкімдігінің білім басқармасы
Управление образования акимата Костанайской области
Қостанай құрылыс колледжі
Костанайский строительный колледж
Лекции
«Программирование в среде Turbo Pascal»
Орындаған оқытушы:
Выполнила преподаватель : Храмей Ирина Сергеевна
Қостанай қаласы 2008ж
г.Костанай 2008 г.
Перечень лекций
Лекция 1. Структура программы на языке Turbo Pascal
Лекция 2. Процедуры ввода-вывода. Некоторые встроенные функции Турбо-Паскаля.
Лекция 3. Операторы разветвляющейся структуры.
Лекция 4. Операторы циклов в Паскале
Лекция 5. Символьные и строковые переменные
Лекция 6. Перечисляемый и ограниченный типы
Лекция 7. Массивы
Лекция 8. Тип запись
Лекция 9. Процедуры и функции
Лекция 11. Графика в Турбо Паскале
Лекция 12. Текстовые файлы
Лекция 13. Двоичные файлы
Лекция 14. Модули в Турбо Паскале
Лекция 15. Динамические переменные
Лекция 16. Динамические переменные: другие виды списков, стек и очередь
Лекция 17. Деревья и поиск в деревьях
Лекция 18. Таблицы и простейшие алгоритмы поиска
Лекция 19. Перемешанные таблицы
Лекция 1. Структура программы на языке Turbo Pascal
Приведём простейший пример программы, единственная цель которой – вывести на экран какое-нибудь приветствие:
program Hello;
begin
writeln('Hello, world!');
readln;
end.
Первая строка ничего не делает, она просто содержит название программы. Затем, после слова begin начинаются собственно действия. В нашей программе их два: первое – это вывод строчки «Hello, world» на экран, а второе – ожидание нажатия клавиши «Enter», оно нужно для того, чтобы можно было увидеть результат программы, а затем уже нажать «Enter» и вернуться в Турбо-Паскаль. И, наконец, слово end с точкой в последней строке говорит о том, что программа закончилась. Действия, из которых состоит программа, называются операторами, они отделяются друг от друга точкой с запятой.
А теперь приведём пример, в котором программа уже не «глухая», то есть может запрашивать какие-либо данные у пользователя. Пусть требуется спросить у пользователя два числа, после этого вывести на экран их произведение:
program AxB;
var a,b: integer;
begin
writeln('Введите a и b');
readln(a,b);
writeln('Произведение равно ',a*b);
readln;
end;
В этой программе перед словом begin появляется новая строчка, начинающаяся словом var. В ней мы указываем, что программе понадобится две переменные (a и b), в которых можно хранить целые числа (слово integer).
О том, что делает первый оператор, нам известно: он выводит на экран строчку 'Введите a и b'. При выполнении второго оператора программа будет ждать, пока пользователь не введет число с клавиатуры и не нажмёт «Enter»; это число программа запишет в переменную a, затем то же самое делается для переменной b. Третьим оператором выводим на экран сначала надпись «Произведение равно », а потом значение выражения ab («*» – знак умножения). Четвёртый оператор пояснений не требует.
А теперь рассмотрим структуру программы в общем виде. Любая программа на Турбо-Паскале состоит из трех блоков: блока объявлений, блока описания процедур и функций и блока основной программы. Ниже эти блоки расписаны более подробно.
Блок объявлений:
program ... (название программы)
uses ... (используемые программой внешние модули)
const ... (объявления констант)
type ... (объявления типов)
var ... (объявления переменных)
Блок описания процедур и функций:
procedure (function)
begin
...
end;
...
Блок основной программы:
begin
... (операторы основной программы) ...
end;
Рассмотрим наиболее важные части вышеописанных блоков. Под заголовком программы понимается имя, помогающее определить её назначение. Имя, или идентификатор, строится по следующим правилам: оно может начинаться с большой или малой буквы латинского алфавита или знака «_», далее могут следовать буквы, цифры или знак «_»; внутри идентификатора не может стоять пробел. После имени программы следует поставить «;», этот знак служит в Паскале для разделения последовательных инструкций. Заметим, что имя программы может не совпадать с именем соответствующего файла на диске.
После слова const помещаются описания постоянных, которые будут использованы в программе, например:
const Zero = 0;
pi = 3.1415926;
my_const = -1.5;
Hello = 'Привет !';
За словом var следуют объявления переменных, которые понадобятся нам при написании программы. Переменные Паскаля могут хранить данные различной природы: числа, строки текста, отдельные символы и т. п. Ниже приводится часть типов переменных, которые можно применять.
Название типа
|
Возможные значения
|
Примеры значений
|
integer
|
целые: -32768 ... 32767
|
12, -10000
|
real
|
действительные (по модулю): 2,9x10-39... 1,7x1038
|
-9.81, 6.02e-23
|
string[n]
|
строка до n символов длиной, если [n] не указано, то до 255
|
‘abcde’, ‘привет’
|
char
|
одиночный символ
|
‘F’, ‘!’, ’_’,’ю’
|
Объявления переменных записываются в следующей форме: var <�переменная> : <�тип>;
Если описываются несколько переменных одного типа, то достаточно записать
их имена через запятую, а после двоеточия поставить общий тип.
Примеры объявления:
var Number: integer;
d,l: real;
Name:
string[20];
Line:
string;
Key1,Key2: char;
Блок основной программы. Здесь, между словами begin и end. располагаются команды (точнее, операторы), которые будут выполняться один за другим при запуске программы. Рассмотрим простейшие типы операторов на следующем примере:
program First;
const a2 = 3;
a1 = -2;
a0 = 5;
var x,f: real;
begin
write(‘Введите значение х ’);
readln(x);
f := a2*x*x+a1*x+a0;
writeln(‘Значение квадратного трехчлена: ’,f);
end.
Первая строка исполняемой (основной) части программы выводит на экран надпись «Введите значение х », для этого используется процедура write написанная разработчиками Турбо Паскаля, то есть набор команд, невидимый для нас, но существующий реально в недрах системы Турбо Паскаль. В качестве параметра этой процедуры используется наша строчка. Параметры всегда записываются в круглых скобках, апострофы означают, что параметр имеет строковый тип. Итак, в первой строке мы видим так называемый оператор вызова процедуры. Каждый оператор отделяется от следующего знаком «;». Во второй строке вызывается процедура ввода readln(x), которая ждет, пока пользователь наберет значение x с клавиатуры и нажмет клавишу «Enter», а затем переводит курсор на следующую строку (ln Line – строка). В третьей строке вычисляется значение трехчлена и записывается в переменную f; этот оператор называется оператором присваивания, и обозначается символом ":=". В последней строке на экран выводится строка «Значение квадратного трехчлена: » и значение переменной f. Несложно заметить, что здесь процедуре writeln передается уже не один, а два параметра, причем они могут иметь разные типы. Вообще, процедуры ввода и вывода (т.е. write, writeln, read, readln) могут иметь любое число параметров различных типов, параметрами могут являться переменные, литералы (т.е. непосредственно записанные числа, строки; в нашем примере дважды были использованы строковые литералы), а также выражения. Используя выражение при выводе, можно заменить две последние строчки нашей программы одной:
writeln('Значение квадратного трехчлена: ', a2*x*x+a1*x+a0);
В арифметических выражениях на Паскале используются следующие знаки для обозначения операций: +, -, *, /. Для определения порядка действий используются круглые скобки согласно общепризнанным математическим правилам.
Замечание об именах. Для обозначения переменных запрещается использование ряда слов, называемых зарезервированными, они играют в языке особую роль. Нам уже встречался ряд зарезервированных слов: program, begin, end, string, const, var, и т.п.