- •Министерство образования и науки российской федерации
- •Оглавление предисловие
- •Составление структурных схем алгоритмов и программ
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Пример 4
- •Пример 5
- •Задания
- •Алфавит языка pascal. Типы данных. Раздел описаний. Оператор присваивания. Ввод-вывод. Составление простейших программ
- •Стандартные процедуры
- •Стандартные функции
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Задания
- •Использование переменных логического типа. Логический оператор присваивания
- •Логический оператор присваивания
- •R операция_сравнения s
- •Пример 1
- •Задания
- •4. Программирование разветвляющихся структур
- •4.1. Использование в программах условного оператора
- •Пример 1
- •Задания
- •4.2. Использование в программах оператора варианта
- •Case выражение-селектор of метка_случая : оператор;
- •Пример 1
- •Задания
- •5. Использование переменных типа char
- •Задания
- •6. Реализация циклических структур
- •6.1. Применение оператора цикла с параметром
- •Шаг изменения параметра цикла:
- •Пример 1
- •Задания
- •Пример 2
- •Пример 3
- •Задания
- •Пример 4
- •Задания
- •Таким образом изображаются циклы в структурных схемах (в лабораторных работах, курсовых работах и т.Д.). Пример 5
- •Задания
- •Задания
- •Пример 6
- •Задания
- •Не смотря на то, что есть еще другие операторы цикла, обычно вводят и выводят массивы с помощью оператора цикла с параметром.
- •6.2. Применение оператора цикла с постусловием
- •Пример 1
- •Задания
- •6.3. Применение оператора цикла с предусловием
- •Основные различия между операторами циклов с постусловием и предусловием
- •Пример 1
- •Задания
- •6.4. Работа с двухмерными массивами.
- •Задания
- •Пример 1
- •Задания
- •7. Поиск и сортировка числовых данных
- •Пример 1
- •Задания
- •8. Решение задач с применением подпрограмм
- •Procedure имя(список параметров);
- •Var идентификаторы:имя типа;...; var идентификаторы: имя типа
- •Var идентификаторы:имя типа;...;var идентификаторы: имя типа;...; идентификаторы:имя типа;...;идентификаторы:имя типа
- •Идентификаторы:имя типа;идентификаторы:имя типа; ...;идентификаторы:имя типа
- •Локальные переменные доступны только внутри процедур, в которых они определены!
- •Пример 1
- •Задания
- •9. Использование переменных перечисляемого типа
- •Ввод и вывод значений переменных перечисляемого типа запрещен.
- •Задания
- •10. Использование переменных ограниченного типа
- •Задания
- •11. Использование переменных множественного типа
- •Var идентификатор : set of порядковый тип;
- •Запрещен.
- •Правила приоритета для множественных операций:
- •Задания
- •12. Использование записей
- •With префикс[,префикс [...]] do оператор
- •Пример 1
- •Задания
- •13. Работа со строками
- •Каждая переменная типа string вводится отдельной процедурой readln
- •Пример 1
- •Задания
- •14. Работа с файлами
- •Пример 1
- •Пример 2
- •Пример 3
- •Задания
- •Библиографический список
8. Решение задач с применением подпрограмм
При составлении программы иногда получается так, что, по сути дела, одну и ту же последовательность операторов надо выписывать несколько раз.
Такие повторяющиеся фрагменты удобно оформлять в виде подпрограмм.
В PASCALe существуют два типа подпрограмм:
1) процедуры;
2) функции.
Этим подпрограммам даются имена, и к ним можно обратиться по этому имени.
процедуры
Так же, как и остальные объекты программы, процедуру перед использованием необходимо объявить. Каждая процедура определяется только однажды, но может использоваться многократно.
ОПРЕДЕЛЕНИЕ процедур и функций (т.е. их место расположения в программе) осуществляется после объявления переменных и перед первым словом BEGIN программы.
Описание процедуры имеет вид:
Procedure имя(список параметров);
Объявления;
Begin
S1;S2;S3;...;Sn
END;
где
имя - имя процедуры;
S1,S2,S3,...,Sn - операторы;
список параметров (это формальные параметры) может отсутствовать (вместе со скобками).
Список параметров имеет вид:
идентификаторы:имя типа;идентификаторы:имя типа; ...; идентификаторы:имя типа
либо
Var идентификаторы:имя типа;...;var идентификаторы:
имя типа;...; идентификаторы:имя типа;…;
идентификаторы:имя типа;
либо
Var идентификаторы:имя типа;...; varидентификаторы:
имя типа
Идентификаторы записываются через запятую.
В программе может содержаться несколько описаний различных процедур. Все они располагаются друг за другом.
Примеры описания процедур:
PROCEDURE STR;
PROCEDURE STREL(var a,b,c,d:real);
PROCEDURE UR(a,b,c:real;var S:real);
параметры-значения параметр-переменная
Формальные параметры, описанные без Var, называются формальными параметрами-значениями.
Параметру-значению может соответствовать в качестве фактического параметра выражение.
Формальные параметры, описанные через Var, называются формальными параметрами-переменными .
При использовании формальных параметров-переменных мы не можем в качестве фактических параметров использовать выражения.
Тип фактического и формального параметра-переменной должен совпадать.
Формальному параметру-значению типа REAL может соответствовать фактический параметр целого типа.
Если процедура объявлена, ее можно использовать (т.е. обращаться к ней) в последующих частях программы (в том числе и в других процедурах и функциях), задавая ее имя, за которым, если необходимо, следует список аргументов - эта инструкция называется вызовом процедуры .
После обращения к процедуре выполняется тело процедуры. После этого выполняется оператор, следующий за вызовом процедуры.
функции
Описания процедур и функций похожи (общий вид). Заголовки немного разные:
FUNCTION имя(список параметров):тип;
Объявления;
Begin
S1;S2;S3;...;Sn
END;
где
имя - имя функции;
тип - тип функции;
S1,S2,S3,...,Sn - операторы.
Список параметров (это формальные параметры) может отсутствовать (вместе со скобками).
Список параметров имеет вид:
Var идентификаторы:имя типа;...; var идентификаторы: имя типа
либо