- •Часть I Основные конструкции
- •Смоленск, 2007 Содержание
- •Базовые понятия
- •1.1 Алфавит языка и структура программы
- •Var …..; объявление переменных;
- •1.2 Стандартные типы данных
- •1.3 Выражения
- •Порядок выполнения арифметических операций
- •Операции Отношения
- •Порядок выполнения логических операций
- •Сложные операции отношения
- •Основные операторы. Основы программирования простых задач
- •2.1 Оператор Присваивания
- •2.2 Операторы Ввода и вывода. Форматы вывода
- •2.3 Составной Оператор
- •2.4 Комментарии
- •3. Стандартные процедуры и функции
- •3.1 Системные процедуры и функции
- •3.3 Общие стандартные процедуры и функции
- •3.3 Строковые процедуры и функции
- •4. Среда PascalAbc PascalAbc.Exe
- •4.1 Общий вид
- •4.2 Порядок работы
- •4.3 Примеры простейших программ
- •5. Структурированные операторы
- •5.1 Условный оператор
- •5.2 Оператор выбора
- •5.3 Цикл с параметром (For)
- •5.4 Цикл с предусловием (While)
- •5.5 Цикл с постусловием (Repeat Until)
- •6.Массивы
- •6.1 Понятие массива
- •6.2 Основные алгоритмы обработки массивов
- •Ввод элементов (заполнение массива)
- •Сортировка массива.
- •6.2.1 Ввод элементов (заполнение массива):
- •6.2.2 Вывод на экран значений элементов массива
- •6.2.3 Поиск элементов и вычисляемых значений
- •6.2.4 Сортировка массива
- •7. Процедуры и функции
- •7.1 Понятие процедуры. Вызов процедуры
- •7.2 Входные и выходные параметры
- •7.3 Функции
- •V Параметры функции ar
- •8. Работа со строками
- •8.1 Строковые переменные
- •8.2 Действия со строковыми переменными
- •8.2.1 Присваивание
- •8.2.2 Сравнение
- •8.2.3 Сложение
- •8.2.4 Преобразование строка ↔число
- •8.2.5 Обработка строк
- •Рекомендации
- •Удачи и терпения! Список используемой литературы
7.1 Понятие процедуры. Вызов процедуры
В практике программирования часто встречаются случаи, когда при выполнении программы приходится выполнять одни и те же вычисления, но при различных исходных данных. Чтобы исключить повторение одинаковых операторов и тем самым сделать программу проще и понятнее, можно выделить эти операторы в отдельную (автономную, локальную) часть и обращаться к ней по мере необходимости. Такая отдельная автономная часть называется Подпрограммой.
Процедура, Функция (подпрограмма) – фрагмент программы, реализующий решение какой-либо части задачи.
Обращение к Процедуре или Функции (вызов) может быть выполнено из различных частей программы. В этом случае выполнение основной программы приостанавливается и управление передается в Процедуру. По окончании работы Процедуры управление возвращается основной программе.
Вызов процедуры
Вызов процедуры (обращение к Процедуре) в основной программе:
<имя процедуры>(<список переменных>);
где количество и тип переменных идентичны описанию Процедуры.
Все переменные, которые использует Процедура, могут быть либо глобальные, т.е. объявленные в основной программе и доступные как программе, так и всем ее Процедурам, либо локальные, объявленные внутри Процедуры (или ) и доступные только ей самой.
Структура Процедуры полностью повторяет структуру программы и располагается перед «главным» оператором BEGIN. Любая программа может иметь несколько процедур и функций.
P
rocedure
<имя
процедуры>(список
переменных:<тип
>);
V
Параметры
процедуры
…<описание внутр.переменных>
begin
<тело процедуры>
end;
7.2 Входные и выходные параметры
Параметры процедуры - это входные и выходные переменные, посредством которых основная программа обменивается данными с Процедурой. Различают входные и выходные параметры.
Входные параметры – это переменные, в которые передаются значения переменных или констант основной программы в Процедуру, и не предназначены для возврата.
Procedure printkvadr (i:integer);
Var x:real;
Begin
X:= i*i;
writeln('квадрат числа ', x:5:2);
end;
Выходные параметры – это переменные (не константы), которые передаются основной программой в Процедуру, но их измененные в Процедуре значения, будут возвращены основной программе. При объявлении таких параметров указывается служебное слово Var.
Procedure kub (var x,у:real);
Var x:real;
Begin
y:= x*x*x;
writeln('куб числа ', y:5:2);
end;
Пример:
{Процедура вычисления факториала}
Procedure fakt(n:integer; Var rez:integer);
Var i:integer;
Begin
rez:=1;
For i:=1 to n do
begin
rez:=rez*i;
end;
writeln('Факториал ',n:2, '!=',rez)
end;
{Вызов в основной программе}
-
...
Fakt(1,f1);
Fakt(3,f3);
Fakt(5,f5);
Fakt(7,f7);
Данный фрагмент программы из 4-х строк позволяет вычислить значения факториалов простых чисел первого десятка. После завершения процедуры fakt в основной программе переменные f1, f3, f5, f7 будут равны факториалу их индекса.
