Порядок выполнения работы
Begin
Var
Begin
Var
Теоретический материал
Требования к знаниям
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ 2
Тема: «Разработка алгоритмов с функциями»
Цели:
- закрепление изученного материала по основным операторам языка Pascal;
- формирование навыков записи алгоритмов с использованием подпрограмм-функций на языке Pascal.
Характер занятия: поисковый.
Форма организации: фронтальная.
Обеспечение занятия: ПК, ОС Windows, Borland Pascal, ручка, карандаш, линейка, тетрадь для практических работ.
Перед выполнением практической работы студент должен
знать:
- основные элементы IDE Borland Pascal и принципы работы в ней;
- основные операторы языка Pascal.
после выполнения практической работы студент должен
уметь:
- разработка алгоритмов с использованием функций пользователей.
Функция – это подпрограмма, вычисляющая и возвращающая некоторое значение. Функция (в отличие от процедуры) всегда возвращает единственное значение.
Вызов функции может присутствовать в выражении, стоящем: в правой части оператора присваивания, в процедуре вывода, в качестве фактического параметра в вызове другой подпрограммы и т.д.
Функция оформляется в следующем виде:
Function <имя функции>(формальные параметры: тип): тип значения функции;
. . .
. . .
End;
Вызывается функция по её имени с указанием фактических параметров. Вызов функции можно делать непосредственно внутри выражения. При вызове функции тип не указывается. Таким образом, оператор функции при ее вызове обычно стоит либо в правой части оператора присваивания, либо входит на правах операнда в выражении, либо указывается в качестве фактического параметра при вызове другой подпрограммы. Вызов функции содержит идентификатор функции и список фактических параметров, совпадающих по размеру и типам со списком формальных параметров. После выполнения тела функции возвращается значение, тип которого совпадает с типом результата функции.
Пример 1. Описание и вызов функции вычисления суммы квадратов первых N чисел натурального ряда:
. . .
Function SumSqr(N:Integer):integer;
S,i:Integer;
S:=1;
For i:=2 to N do
S:=S+i*I;
SumSqr:=S;
End;
. . .
LineLen:=Log10(x)/SumSqr(i);
. . .
Log10(x) – вызов стандартной функции вычисления десятичного логарифма фактического параметра X;
SumSqr(i) – вызов функции вычисления суммы квадратов с фактическим параметром i.
Различия между процедурами и функциями состоят в следующем:
1. Функции - это процедуры особого характера, результатом работы которых является некоторое значение, подобное переменной.
2. Функция, как и процедура, может иметь список параметров, следующих за именем функции в круглых скобках. Но если имя процедуры используется только для ее вызова, то с именем функции связывается ее значение.
Таким образом, отличие процедур от функций заключается в необходимости присваивания результата вычисления в теле функции переменной, имя которой совпадает с именем функции. Если такое присваивание в теле функции не выполнено, то функция не возвратит никакого результата (точнее возвратит произвольный результат).
Оформлять подпрограмму как функцию целесообразно только в том случае, если ожидается результат работы подпрограммы.
Если же последовательность команд ориентирована на выполнение некоторого действия (выдача информации на экран и т.п.), целесообразно оформлять ее как процедуру.
1. Изучите теоретический материал.
2. Разработайте алгоритмы указанных задач.
3. Запишите разработанные алгоритмы на языке программирования Pascal.
4. Отладьте программы в интегрированной среде разработки Pascal.
5. Оформите отчет о проделанной работе.
6. Ответьте на контрольные вопросы.
задания
1. Напишите программу вычисления суммы: 1! + 2! + 3! + … + n!, используя функцию вычисления факториала числа k.
2. Для заданного n составить алгоритм вычисления значения выражения:
В программе использовать функцию.
Форма отчёта:Отчет выполняется в тетрадях по практическим работам в письменном виде. Программа отлаживается в IDE Borland Pascal и в виде файлов копируется на сетевой диск или на дискету.
Содержание отчета:
1. Тема работы.
2. Цель работы.
По каждому из заданий:
3. Условие задачи.
4. Постановка задачи.
5. Тестовые примеры.
Система оценки:двухбалльная.
Контрольные вопросы
1. В чём состоит отличие процедур и функций?
2. Чем синтаксически отличается описание процедуры от описания функции?
3. В каких случаях целесообразно использовать функции?
4. Какого типа может быть значение функции?
5. Какое количество значений возвращает функция?
Список использованной литературы
1. Голицина О.Л., Попов И.И. Основы алгоритмизации и программирования: Учебное пособие. - М.: Форум: Инфра-М, 2002.
2. Программирование на языке Паскаль: задачник / под ред. Усковой О.Ф. – СПб.: Питер, 2005.