- •Ю.П. Чернов, о.П. Шафеева программирование для начинающих
- •1. Среда программирования turbo pascal 7.0
- •1.1. Структура меню среды
- •1.2. Правила оформления программ
- •1.3. Команды редактора тп
- •Команды удаления и вставки
- •1.4. Компиляция и исправление синтаксических ошибок
- •2. Элементы языка pascal
- •2.1. Алфавит языка
- •2.2. Константы. Идентификаторы
- •2.3. Операторы
- •2.3.1. Оператор присваивания
- •2.3.2. Оператор безусловного перехода
- •Стандартные функции
- •2.3.3. Условный оператор if
- •2.3.4. Опеpатоp варианта case
- •2.3.5. Составной и пустой операторы
- •2.3.6. Операторы цикла
- •2.4. Процедуры прерываний
- •2.5. Типизированные константы
- •2.6. Структура программы
- •2.7. Подпрограммы
- •2.7.1. Определение процедур и функций
- •2.7.2. Вложенные подпрограммы
- •2.7.3. Вызов подпрограмм
- •2.7.4. Процедуры
- •2.7.5. Функции
- •2.7.6. Передача в подпрограмму параметров-массивов и параметров-строк
- •2.7.7. Рекурсия
- •2.8. Типы в Турбо Паскале
- •2.8.1. Целые типы
- •Классификация целых типов
- •Встроенные процедуры и функции для целых типов
- •2.8.2. Логический тип
- •2.8.3. Символьный тип
- •Служебные символы
- •2.8.4. Строковый тип
- •Встроенные функции и процедуры для обработки строк
- •Процедуры преобразования
- •2.8.5. Перечислимый тип
- •2.8.6. Ограниченный тип (диапазон)
- •2.8.7. Вещественные типы
- •Вещественные типы
- •Встроенные функции
- •2.8.8. Структурированные типы данных. Массивы
- •2.8.9. Множества
- •2.8.10. Записи
- •2.9. Изменение типа выражения
- •2.10. Процедурные типы
- •2.11. Файлы
- •Общие процедуры и функции для работы с файлами
- •2.11.1. Текстовые файлы
- •2.11.2. Типизированные файлы
- •2.11.3. Нетипизированные файлы
- •2.12. Указатели и динамическая память
- •2.13. Модули
- •2.14. Библиотека Турбо Паскаля
- •2.14.1. Модуль crt
- •2.14.2. Модуль graph
- •Var driver, Mode: integer переменные драйвера и режима.
- •Управление графическим режимом
- •Управление экраном, окном, страницей
- •Управление цветом и палитрой
- •Работа с точками
- •Работа с линиями
- •Построение фигур из линий
- •Построение криволинейных фигур
- •Работа с текстом
- •Обмен с памятью
- •2.15. Динамические структуры данных
- •2.15.1. Связанные динамические данные. Списки
- •Чтобы сослаться на двунаправленный кольцевой список как на единый программный объект, используется указатель, значением которого является ссылка на заглавное звено списка.
- •2.15.2 Очередь
- •2.15.3. Стек
- •3. Практическое программирование Этапы подготовки и решения задач на компьютере
- •Порядок выполнения лабораторных работ
- •Лабораторная работа 1 Основы программирования в среде Турбо Паскаля.
- •Приоритет операций в выражении
- •Задание 1 (программа 1_1)
- •Лабораторная работа 2 Программирование разветвленных алгоритмов. Операторы передачи управления
- •Лабораторная работа 3 Программирование циклических алгоритмов с заданным числом повторений
- •Лабораторная работа 4 Программирование циклических алгоритмов с предусловием
- •Лабораторная работа 5 Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результаты с полученными ранее.
- •Лабораторная работа 6 Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Лабораторная работа 7
- •Лабораторная работа 8 Программирование с использованием функций
- •Лабораторная работа 9 Программирование с использованием процедур
- •Лабораторная работа 10 Обработка символьных и строковых данных
- •Лабораторная работа 11 Файлы
- •Лабораторная работа 12 Записи
- •Лабораторная работа 13 Решение нелинейных уравнений
- •Задание (программа_13)
- •Лабораторная работа 14 Вычисление приближенного значения определенного интеграла
- •Лабораторная работа 15 Модульное программирование
- •Лабораторная работа 16 Графика
- •Библиографический список
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Зарезервированные слова Turbo Pascal 7.0
- •Приложение в
- •Кодировка символов в соответствии с кодами ascii
- •Приложение г
- •Альтернативная кодировка госТа для кодов 128...255
- •Клавиши с кодами из двух частей
- •Содержание
2.7.3. Вызов подпрограмм
Вызов подпрограмм производится указанием имени или имени со списком фактических параметров. Фактические параметры не указываются, если в подпрограмме используются только глобальные переменные и в заголовке программы отсутствует список формальных параметров. Если заголовок подпрограммы содержит формальные параметры, то при обращении к подпрограмме должен обязательно присутствовать список фактических параметров, которые записываются через запятую.
Количество, тип и порядок перечисления фактических параметров должен обязательно соответствовать количеству, типу и порядку перечисления формальных параметров в описании подпрограммы.
2.7.4. Процедуры
Структура описания процедуры с параметрами имеет вид
PROCEDURE <имя>(формальные параметры);
{ раздел описания (метки, константы, типы, переменные ) }
BEGIN
{операторы подпрограммы}
END;
Обращение к процедуре производится по имени с указанием фактических параметров или без их указания. Возврат из подпрограммы в в основную программу происходит к следующему за ее вызовом оператору.
Пример программы вычисления второй и четвертой степеней числа:
PROGRAM PROS;
VAR X, Y, A, A2, A4: INTEGER; {A – исходная переменная, A2 - A2, A4 - A4 ,
глобальные переменные}
PROCEDURE STEP24; {процедура без параметров}
BEGIN
A2:=A*A;
A4:=A2*A2;
WRITELN(A:5, A2:5, A4:6);
END;
BEGIN {основная программа}
READ(Y, X);
WRITELN('Число; квадрат; куб');
A:=X;
STEP24; {вызов подпрограммы}
A:=Y;
STEP24; {вызов подпрограммы}
END.
Любой из формальных параметров процедуры может быть либо параметром значением, либо параметром переменной. Формальному параметру значению (обычно для задания исходных данных) может соответствовать фактический параметр константа, переменная или выражение. Параметру переменной может соответствовать только переменная. Обычно параметры-переменные используются для передачи результатов в вызывающую программу. Параметрам-переменным в заголовке функции должно предшествовать слово VAR.
Пример: PROCEDURE P(Y, X:REAL; VAR Z1,Z2:REAL);
{где Y,X параметры-значения, Z1,Z2 параметры-переменные}.
Передачу результатов можно производить и через глобальные переменные.
Однако злоупотребление глобальными связями делает программу запутанной и сложной в отладке. В связи с этим рекомендуется там, где это возможно передавать результаты через параметры-переменные. С другой стороны, нежелательным является описание всех формальных параметров-переменных.
Чем меньше параметров объявлено параметрами-переменными и чем меньше используется глобальных переменных, тем меньше возможность получения непредвиденных программистом побочных эффектов в программе.
При наличии одноименных переменных в основной программе и подпрограмме локальные переменные закрывают глобальные.
2.7.5. Функции
Функция описывается в программе следующей структурой:
FUNCTION <имя>(формальные параметры):<тип>;
{ раздел описаний: переменные, типы, метки}
BEGIN
{ операторы функции }
<имя>:= <выражение> {имени функции присваивается значение}
END;
Функция передает в вызывающую программу единственное значение, которое хранится под ее именем. В качестве переменных могут использоваться параметры-переменные и параметры-значения. <Тип> функции должен соответствовать значению, которое вычисляется в данной подпрограмме (типу результата). В вызывающую подпрограмму передается значение функции данного типа.
Вызов функции в программе производится не обособленно, как в процедуре, а в выражении указывается имя функции со списком параметров.
Пример. Вычислить вторую и N-ю степени числа Х.
PROGRAM FUNC;
VAR X : REAL; N: INTEGER;
FUNCTION STEPEN(M: INTEGER; A: REAL): REAL;
VAR P: REAL;
I: INTEGER;
BEGIN
P:=1;
FOR I:=1 TO M DO P:=P*A;
STEPEN:=P;
END;
BEGIN
READ(X,N);
WRITELN('X=', X, 'квадрат', STEPEN(2,X));
WRITELN('X=', X, 'степень', STEPEN(N,X));
END.