Порядок выполнения работы

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.