- •Основные этапы решения задач на компьютере
- •Контрольные вопросы и задания
- •Язык программирования Паскаль
- •Запуск и настройка среды
- •Набор и редактирование исходного текста программы
- •Компиляция и запуск программы
- •Структура программы на Паскале
- •Арифметические операции
- •Основные стандартные функции, определенные в Паскале:
- •Логические операции
- •Типы данных
- •Операторы ввода и вывода
- •Read (список переменных) – этим оператором вводятся последовательно значения переменных из списка;
- •Readln (список переменных) – тоже что и read, но с переводом курсора на новую строку после ввода последней переменной;
- •2. Оператор вывода
- •Линейный алгоритм
- •Раздел var?
- •Разветвляющиеся вычислительные процессы
- •2.Оператор выбора case
- •Циклические вычислительные процессы
- •Операторы цикла могут быть вложены один в другой:
- •Отличие цикла for от while и repeat.
- •Массивы
- •Типовые алгоритмы обработки массивов.
- •Процедуры и функции
- •Функции
- •Строковые переменные
- •Стандартные процедуры и функции для работы со строковыми переменными
- •Множества
- •Формирование множеств
- •Отношения и операции над множествами
- •Список использованной литературы:
Процедуры и функции
Подпрограмма – это повторяющаяся группа операторов, оформленная в виде самостоятельной программной единицы, записывается однократно, а в соответствующих местах программы обеспечивается лишь обращение к ней по имени.
Использование подпрограмм позволяет:
Сократить объем программы.
Улучшить структуру (читаемость и наглядность).
уменьшить вероятность ошибок.
облегчить процесс отладки.
В Pascalмеханизм подпрограмм реализуется в виде процедур и функций.
Процедура – это самостоятельная программная единица, которая выполняется по команде из другой программной единице (процедуре или функции).
Общий вид описания процедуры:
PROCEDUREимя (список формальных параметров);
Раздел описаний; (могут присутствовать все разделы описаний)
BEGIN
Операторная часть;
END;
Формальные параметры– это переменные фиктивно присутствующие в процедуре и определяющие тип и место подстановки фактических параметров над которыми производятся действия.
Все формальные параметры делятся на два вида:
Параметры значения (входные).
параметры переменные (выходные).
Выходные параметры – это те параметры, перед которыми ставится служебное слово VAR, они передаются по ссылке тогда, когда необходимо передать некоторые новые значения в точку вызова процедуры, т.е. когда необходимо что бы изменение в теле процедуры значений формальных параметров приводило к изменению фактических параметров, получающих новые значения.
Параметры значения– перед ними словоVARне ставится, с помощью них идет передача по значению, т.е. передается только копия значения этих параметров и внутри процедуры с этими параметрами можно выполнять любые действия (допустимые для данного типа) при чем эти изменения не влияют на фактические параметры в программе. Все переменные в программе делятся на локальные и глобальные.
Глобальные переменные – это переменные, которые объявлены в описании основной части программы, а локальные – в процедуре, они существуют только тогда, когда работает процедура, появляются при ее вызове и исчезают при завершении работы.
Результат выполнения процедуры – это одно или несколько значений, которые передаются в основную программу, как значение ее параметра.
При вызове процедуры все формальные параметры заменяются фактическими.
!!! – число и тип формальных и фактических параметров должны совпадать с точностью до их следования.
Пример:Составить программу, которая будет находить AN, где A,N– целые числа, вводимые с клавиатуры. Описать в виде процедуры.
PROCEDURE STEP (A, N: INTEGER; VAR Y: INTEGER);
VARI:INTEGER; {локальная переменная}
BEGIN
Y:=1;
FOR I:=1 TO N DO Y:=Y*A;
END;
Передается три параметра A, N – параметры значения, Y – параметр переменной. Вызов этой процедуры в основной программе выглядит:
STEP (3, 5, d); или STEP (b, c, d1);
Функции
Функции предназначены для того, что бы вычислить одно значение, поэтому ее первое отличие от процедуры состоит в том, что процедура может иметь новое значение у нескольких параметров, а функция только одно (оно будет записано в имени функции), второе отличие заключается в заголовке, третье отличие: в теле функции обязательно должен использоваться оператор присваивания, в левой части которого стоит имя функции, а в правой - ее значение.
Общая форма описания функции:
FUNCTIONимя (формальные параметры {только входные}) : тип;
раздел описаний;
BEGIN
операторы функции;
END;
Входных параметров может быть несколько. Вызов функции в основной программе осуществляется по ее имени с указанием фактических параметров, т.к. результат заносится в имя функции: ее можно использовать в выражениях на ряду со стандартными функциями. Фактическими параметрами могут быть выражения. Порядок следования, тип и количество формальных и фактических параметров должны совпадать.
Вычисление выражений содержащих обращение функции происходит по следующему алгоритму:
Вычисляются выражения для аргументов функции.
Значения аргументов присваиваются параметру из заголовка описания.
Выполняется тело функции, и вычисляются ее значения.
Значение функции ставится в исходное выражение на место обращения функции.
Пример: Описать функцию, вычисляющую факториал.
N! =? (0! = 1).
FUNCTION FACT (N: INTEGER): INTEGER;
VAR I, P: INTEGER;
BEGIN
IF (N=0) OR (N=1) THEN FACT:=1
ELSE BEGIN
P:=1;
FOR I:=2 TO N DO P:=P*I;
FACT:= P; END; END;
D:=FACT(5);
либо
WRITELN ('Факториал 5 =', FACT(5));