ЛАБОРАТОРНАЯ РАБОТА №4 «ПРОЦЕДУРЫИ ФУНКЦИИ. МОДУЛЬ»
Цель работы является:
- получение навыков программирования с процедурами и функциями;
- получение навыков программирования с модулями.
Задание на выполнение лабораторной работы
- разработать схему алгоритма и программу обработки данных с помощью отдельных процедур и функций с параметрами в соответствии с вариантом задания - Задания 1 (см. таблицу 1);
- создать подпрограммы в соответствии с вариантом задания, для возможности программирования и отладки программы по частям - Задания 2 (см. таблицу 1);
- оформить отчет по лабораторной работе в соответствии с Приложением 1;
Программа должна включать:
- объявление процедур и функций;
- ввод исходных данных;
- обработку данных и проведение вычислений в соответствии с вариантом задания;
- раздел подключения разработанных модулей;
- вычисление значения выражений в соответствии с вариантом задания, с помощью описанных модулей;
- вывод результатов выполнения программы.
Средства и оборудование
Персональная ЭВМ, среда программирования Pascal.
Теоретические основы
Процедуры и функции.
Подпрограмма - это часть программы оформленная в виде отдельной семантической конструкции и снабженная идентификатором. Структура подпрограммы повторяет структуру программы. Подпрограммы описываются перед “телом” программы (подпрограммы). При описании подпрограммы необходимо задать следующие основные компоненты:
- интерфейс подпрограммы, то есть информацию необходимую для ее вызова;
- локальный контекст подпрограммы- совокупность описаний констант и переменных с которыми осуществляются действия;
- операторы, выполняющие действия определенные для подпрограммы;
В языке PASCAL существует два вида подпрограмм- процедуры и функции.
Процедура - оператор выполняющий обработку данных. Функция - производит обработку данных и возвращает результат в виде значения определенного типа.
Синтаксис оформления процедур (функций):
Имя процедуры (список формальных параметров);
Имя функции (список формальных параметров):тип результата;
Label
перечисление меток внутри процедуры;
Const
описание локальных типов;
Var
описание локальных переменных;
Begin
тело процедуры(функции)
End;
Для формирования результата выполнения функции в теле функции должен быть оператор присвоения имени функции результата в виде:
имя функции:= выражение;
Если в описании процедуры (функции) нет списка формальных параметром, то интерфейс процедуры (функции) состоит только из ее имени. Формальные параметры делятся на параметры-значения и параметры переменные.
Формальные параметры-значения используются для определения данных, которые передаются из вызывающей программы (подпрограммы) в вызываемую подпрограмму. Синтаксис оформления имеет вид:
Имя процедуры(параметр значение: тип параметра);
Имя функции(параметр значение: тип параметра): тип результата;
Формальные параметры-переменные используются для передачи в вызывающую программу (подпрограмму) результата выполнения процедуры. Синтаксис оформления имеет вид:
Имя процедуры(Var параметр значение: тип параметра);
Пример 1. Описать функцию вычисления n!.
Program Ex1;
function f(n:Integer):Longint;
Var
i: Integer; {параметр для организации цикла}
Result: Longint; {вспомогательная переменная используемая как результат вычислений}
begin
Result:=1; {0!=1}
for i:= 1 to n do
Result:= Result*i;
f:= Result; {формирование результата выполнения функции}
end;
Var
у:Longint;
begin
y:=f(5); {вызов функции}
{вывод результата}
end.
Пример 2. Описать рекурсивную функцию вычисления n!.
function f(n:Integer):Longint;
begin
if n=0 then f:=1 {0!=1}
else f:=n*f(n-1);
end;
Пример 3. Описать процедуру возведения действительного числа x в целую степень n.
Program Ex3;
procedure Pwer(x:Real; n:Integer; Var Result: Extended):Longint;
Var
i:Integer; {параметр для организации цикла}
begin
Result:=1; { =1}
for i:= 1 to abs(n) do
Result:= Result*x; {вычисление }
If n>0 then Result:= 1/Result; {для отрицательных степеней}
end;
Var
у:Extended; {результат вычислений}
begin
Power(10.47, 7, y); {вызов процедуры}
{вывод результата}
end.
Модуль.
Разделы модуля:
1. Заголовок модуля.
2. Интерфейс модуля.
3. Исполнительная часть модуля.
4. Секция инициализации.
Заголовок модуля состоит из зарезервированного слова Unit и идентификатора. Идентификатор модуля должен быть уникальным. Модуль должен быть помещен в файл, имя которого совпадает с именем модуля.
Интерфейс модуля осуществляет взаимодействие основной программы с модулем (модуля с модулем). В интерфейсе указываются константы, типы, переменные, процедуры и функции, которые могут быть использованы основной программой (модулем) при вызове данного модуля. Интерфейс начинается с зарезервированного слова Interface.
Исполнительная часть модуля включает все подпрограммы модуля, локальные метки, константы, типы и переменные. Исполнительная часть начинается со слова Implementation.
Секция инициализации модуля используется, если перед обращением к модулю следует провести его инициализацию (например, установить связь с тем или иным файлом, инициализировать переменные и т.д.).
Пример 4. Описать модуль, содержащий функцию вычисления n!.
Unit MyUnit;
Interface {интерфейс модуля}
Function f(n:Integer):Longint;
Implementation {исполнительная часть модуля}
Function f;
Var
i: Integer; {параметр для организации цикла}
Result: Longint; {вспомогательная переменная используемая как результат вычислений}
begin
Result:=1; {0!=1}
for i:= 1 to n do
Result:= Result*i;
f:= Result; {формирование результата выполнения функции}
end;
end.{конец модуля}
Варианты заданий
- Даны действительные числа s, t. Получить
,
где .
- Даны действительные числа s, t. Получить
,
где .
3. Дано действительное число у. Получить
, где .
4. Даны действительные числа а, b, с. Получить
.
5. Даны действительные числа а, b и натуральное n. Получить
.
- Даны натуральные числа n, m, целые числа . Получить
7. Даны натуральные числа k, l, m, действительные числа . Получить
8. Даны действительные числа s, t. Получить
,
где .
9. Даны действительные числа . Получить для t=1,2, 3, 4 значения , где
.
10. Дано натуральное число n и действительные числа s, t, . Получить ,
где.
11. Даны натуральное число n, действительное число x. Вычислить:
а) ; б) ;
в) ; г) .
12. Даны действительные числа x, ε (x≠0, ε>0). Вычислить с точностью ε:
а) ; e) ;
b) ; f) ;
c) ; g) ;
d) ; h) .
13. Дано действительное число x, ε (ε>0). Описать и вычислить функцию с точностью ε:
a) ;
b) ;
c) ;
d) ;
e) ;
f) ;
g) ;
h) ;
i) ;
j) ;
k) ;
l) ;
m) ;
n) ;
o) ;
p) ;
q) ;
r) ;
s) ;
t) ;
u) ;
v) ;
w) ;
x) ;
y) ;
z) ;
aa) ;
bb) .
Контрольные вопросы
1. В каком месте программы объявляются процедуры (функции)?
2. Поясните структуру процедуры (функции).
3. Что такое глобальные и локальные переменные?
4. Что такое формальные и фактические параметры?
5. Какие типы данных могут быть использованы при определении параметров подпрограмм?
6. Что такое параметры - значения и параметры-переменные?
7. Как определить параметры - значения и параметры-переменные?
8. В каких случаях следует использовать параметры- значения и параметры–переменные?
9. Как производится вызов процедуры (функции)?
10. Назовите разделы модуля.
11. Как записывается заголовок модуля?
12. Что включает в себя интерфейс модуля?
13. Как начинается исполнительная часть модуля?
14. Что содержится в исполнительной части модуля?
15. В каком разделе объявляются локальные переменные модуля?
16. Зачем нужна секция инициализации?
17. Какую функцию выполняют модули?
18. В какой части программы (модуля) подключается модуль?
19. Как обратится к идентификатору модуля, если он совпадает с идентификатором основной программы?
20. Какие стандартные модули вы знаете?
ЛИТЕРАТУРА
1. Йенсен К., Вирт Н. Паскаль. Руководство ля пользователя. –М.: Финансы и статистика, 1989.
2. Вирт Н. Алгоритмы и структуры данных. –М.: Мир, 1989.
3. Поляков Д.Б., Круглов И.Ю. Программирование м среде Турбо Паскаль. –М: МАИ, 1992.
Таблица 1 – Варианты заданий
Варианты | Задания 1 - Процедуры и функции | Задания 2 - Модули |
1, 12(g) | 13(i) | |
2, 12(h) | 13(j) | |
3, 13(а) | 13(k) | |
4, 13(b) | 13(l) | |
5, 13(c) | 13(m) | |
6, 13(d) | 13(n) | |
7, 13(e) | 13(o) | |
8, 13(f) | 13(p) | |
9, 13(g) | 13(q) | |
10, 13(h) | 13(r) | |
1, 11(а) | 13(s) | |
2, 11(б) | 13(t) | |
3, 11(в) | 13(u) | |
4, 11(г) | 13(v) | |
5, 12(а) | 13(w) | |
6, 12(b) | 13(x) | |
7, 12(c) | 13(y) | |
8, 12(d) | 13(z) | |
9, 12(e) | 13(aa) | |
10, 11(f) | 13(bb) |
ПРИЛОЖЕНИЕ 1
СОДЕРЖАНИЕ ОТЧЕТА ПО ЛАБОРАТОРНЫМ РАБОТАМ
1. Титульный лист (см. приложение 2).
2. Постановка задачи:
- текст задания;
- определение входной информации необходимой для решения задачи;
- определение выходной информации являющейся результатом работы.
2. Теоретические основы.
3. Результаты.
- блок-схема программы;
- текст программы с комментариями;
- полученное решение задач.
4. Заключение.
ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ ОТЧЕТА.
1. Печать текста выполняется на одной стороне листа формата А4. Параметры страницы: левое поле – 30 мм, правое поле – 15 мм, верхнее поле – 20 мм, нижнее поле – 20 мм.
2. Рекомендуется использовать шрифт Times New Roman (кегль 14), цвет шрифта – черный. Межстрочный интервал – полуторный (1,5). Выравнивание по ширине, красная строка (абзацный отступ) – 1 см. Включить перенос текста по слогам.
3. Нумерация страниц – сквозная арабскими цифрами, вверху по центру. Титульный лист включается в общую нумерацию, номер страницы на титульном листе не проставляется.
4. Текст должен быть разделен на разделы и подразделы (заголовки 1-го и 2-го уровней (при наличии)). Заголовки должны быть сформулированы кратко. Номер заголовка помещается перед названием, после каждой группы цифр ставится точка.
5. Формулы нумеруются по порядку, если в дальнейшем по тексту пояснительной записки используется на них ссылка.
6. Таблицы располагаются в тексте после абзаца, где они впервые упомянуты. Упоминание о таблице в тексте записывается следующим образом «Результаты расчетов представлены в табл. 1, далее …». Текст в таблице оформляется 12 кеглем, межстрочный интервал – 1.
Таблица 1 - Название таблицы
№ п/п | Метод | Описание метода |
7. Рисунки в тексте располагаются после абзаца, где они впервые упомянуты. Упоминание о рисунке записывается следующим образом «… показано на рис. 1 …». Пример оформления рисунка приведен на рис. 1.
Рисунок 1 - Схема взаимосвязи таблиц базы данных
Приложение 2
Пример оформления титульного листа
МИНОБРНАУКИ РОСИИ
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Ижевский государственный технический университет
имени М. Т. Калашникова»
КАФЕДРА «ИНФОРМАЦИОННЫЕ СИСТЕМЫ»
ОТЧЕТ
по лабораторной работе №4
по дисциплине «Информатика»
Вариант №21
Принял
д.т.н., профессор каф. «Информационные системы» С.В. Вологдин
Выполнил
Студент группы Б01-021-1 Д.В. Попов
ИЖЕВСК 2018