- •Введение
- •Лабораторная работа № 1 Знакомство с системой программирования Turbo Pascal
- •Лабораторная работа № 2 Программирование алгоритмов условных (разветвляющихся) процессов в Turbo Pascal
- •Лабораторная работа № 3 Программирование алгоритмов циклических процессов в Turbo Pascal
- •Лабораторная работа № 4 Обработка структурированных типов данных в Turbo Pascal
- •Лабораторная работа № 5 Обработка массивов как фундаментальных структур данных в Turbo Pascal
- •Лабораторная работа № 6 Обработка символьных данных в Turbo Pascal
- •Лабораторная работа № 7 Программирование с использованием процедур и функций с элементами структуризации программ в Turbo Pascal
- •Лабораторная работа № 8 Обработка файловых структур данных в Turbo Pascal
- •Лабораторная работа № 9 Разработка диалоговых программ в Turbo Pascal
- •Лабораторная работа № 10 Программирование кнопок в Borland Delphi
- •Лабораторная работа № 11 Программирование ветвлений в Borland Delphi
- •Лабораторная работа № 12 Табулирование функций в Borland Delphi.
- •Лабораторная работа № 13 Представление данных в табличном и графическом виде средствами Borland Delphi
- •Лабораторная работа № 14 Основы профессиональных информационных технологий
- •Часть 2. На первом листе рабочей книги табличного процессора Microsoft Excel составить список из 10 наименований, содержащий сведения о…
- •Лабораторная работа № 15 Основы функционирования информационной системы Microsoft Access.
- •Литература
- •4.1. Основная литература
- •4.2. Дополнительная литература
Лабораторная работа № 7 Программирование с использованием процедур и функций с элементами структуризации программ в Turbo Pascal
Цель: Овладение навыками алгоритмизации и программирования задач с использованием подпрограмм пользователя различных видов и библиотеки подпрограмм языка программирования Turbo Pascal.
Задачи:
Разработать алгоритм решения в соответствии с заданием.
Составить блок-схему и программу решения.
Подготовить тест для проверки правильности функционирования программы.
Перечень оборудования и программного обеспечения: ПК, находящийся в локальной сети, оболочка операционной системы FAR Manager, системе программирования Turbo Pascal 7.0.
Литература: 1, 2, 13, 23, 25, 26, 28, 33, 34, 35.
Краткое изложение основных теоретических и методических аспектов:
1. Подпрограмма - это повторяющаяся группа операторов, оформленная в виде самостоятельной программной единицы. Она записывается однократно, а в соответствующих местах обеспечивается обращение к ней по имени. Имеется две подпрограммы: процедуры и функции. Применение стандартных подпрограмм не требует дополнительных описаний, они представлены в модуле SYSTEM. Все прочие функции и процедуры должны быть описаны в разделе описания процедур PROCEDURE и функций FUNCTION или в отдельном модуле.
Д ля подпрограмм строятся отдельные блок-схемы. В основной программе используется ссылка на подпрограмму:
Структура подпрограмм как у обычных программ, различается назначением и способом использования. Подпрограмма включает в себя заголовок, разделы описаний, которые могут повторяться многократно, быть записаны в любом порядке, не использоваться или быть пустыми. Далее следует тело подпрограммы.
В тексте программы описание подпрограммы всегда следует за описанием переменных и до начала основной части. После того, как подпрограмма описана, её можно использовать в основной программе.
Все переменные делятся на локальные и глобальные. Глобальные - объявлены в описании основной программы. Локальные - переменные, которые объявлены в подпрограммах (процедурах и функциях). Они существуют только, когда работает подпрограмма, появляющаяся при вызове и исчезают при завершении.
Описание действий в подпрограмме осуществляется с использованием формальных параметров. Обращение к подпрограмме осуществляется с фактическими параметрами, которые должны соответствовать формальным. Число и тип формальных и фактических параметров должно совпадать с точностью до их следования. Фактические параметры - которые передаются подпрограмме при обращении к ней из основной программы. Формальные параметры - фиктивно присутствуют в подпрограмме, определяют тип и место подстановки фактических параметров, над которыми производятся действия. Формальные параметры относятся к двум видам: параметрам-значениям и параметрам-переменным. Отличаются параметры-значения от параметров-переменных тем, что в заголовке перед параметром-переменной ставится служебное слово var.
Параметры-значения являются входными для подпрограммы, их первоначальные значения передаются в подпрограмму, но обратно в основную программу значения этих параметров не возвращаются, даже если были изменены.
Параметры-переменные могут быть одновременно и входными и выходными, т. е. значения передается в подпрограмму, изменяется в ней, и передается обратно в программу. Когда нужно, чтобы изменения в теле подпрограммы значений формальных параметров приводило к изменению фактических параметров, таким образом они получают новое значение.
При передаче параметров по значению фактическими параметрами могут быть константы и переменные соответствующего типа. Если передается параметр-переменная, на месте фактического параметра может находиться переменная. Фактическими параметрами являются константы, переменные и выражения.
Процедуры и функции могут вызывать другие подпрограммы и самих себя. Для этого предусмотрено предварительное описание подпрограммы, состоящее из заголовка и зарезервированного слова FORWARD.
1.1. Процедуры предназначены для выполнения некоторой последовательности действий. Результат — одно или несколько значений, которые передаются в основную программу как значение параметра. При вызове процедуры её формальные параметры заменяются фактическими в порядке их следования.
Procedure F ( q1 : t1 ; q2 : t2 ; VAR q3 : t3 ) ;
РАЗДЕЛ ОПИСАНИЙ ;
begin
ОПЕРАТОРЫ процедуры ;
end;
где F - имя процедуры; q1, q2, q3 - имена формальных параметров; t1, t2, t3 - типы параметров.
Обращение к процедуре в основной программе осуществляется так:
F ( B1 , B2 , В3 ) ;
где F - имя процедуры; В1, В2, В3 - имена фактических параметров.
1.2. Функции используются так:
Function F ( q1 : Т1 ; q2 : T2 ) : T ;
РАЗДЕЛ ОПИСАНИЙ ;
Begin
ОПЕРАТОРЫ функции ;
End;
где F - имя функции; ql, q2 - имена формальных параметров; Т1, Т2 — типы параметров; Т - тип результата функции.
Обращение записывается в виде имени функции, за которым следует в скобках список параметров, если нужно отдельные друг от друга запятыми.
F ( BI , B2 ) ;
где F - имя функции; В1, В2 - имена фактических параметров.
Отличие функций от процедур заключается в следующем:
процедура может иметь новые значения у нескольких параметров, а функция только одно, которое будет ее результатом.
в заголовке записывается тип результата функции.
в теле функции обязательно должен быть оператор присвоения, где в левой части стоит имя функции, а в правой - её значение.
Действия функции выполняются, когда в основной части программы необходимо найти ее значение. Её вызов осуществляется внутри некоторого выражения. Параметры записанные в обращении к функции являются фактическими, а параметры в описании – формальными. Перед вычислением функции формальным параметрам присваиваются значения фактических параметров.
Самостоятельно изучить вопросы:
Рассмотреть предопределенные процедуры и функции Turbo Pascal.
Изучить создание пользовательских процедур и функций.
Ознакомьтесь со встроенными процедурами и функциями Turbo Pascal.
Контрольные вопросы:
1. Каковы преимущества использования подпрограмм? Для чего они нужны?
2. Как на блок-схемах изображаются подпрограммы?
3. Какова структура подпрограмм (процедур и функций) в Turbo Pascal?
4. Может ли опускаться какая-то часть подпрограммы? Почемы?
5. Может ли подпрограмма не передавать значений в основную программу?
6. Чем в языке Turbo Pascal функции отличаются от процедур?
7. Чем отличаются глобальные и локальные переменные, фактические и формальные параметры, параметры-значения и параметры-переменные.
8. Перечислить назначение основных стандартных функций.
Задания:
Вариант |
Формула |
Условия |
|
|
Двухмерные массивы A(I,J) и B(I,J); X=2; N, M – переменные. |
|
Z = + |
Двухмерные массивы A(I,J) и B(I,J); X=2.5; N, M – переменные. |
|
Z = - |
Двухмерные массивы A(I,J) и B(I,J); X=3; N, M – переменные. |
|
Z = X ∙ +X∙ |
Двухмерные массивы A(I,J) и B(I,J); X=5; N, M – переменные. |
|
Z = + |
Двухмерные массивы A(I,J) и B(I,J); X=5.5; N, M – переменные. |
|
Z = - |
Двухмерные массивы A(I,J) и B(I,J); X=6; N, M – переменные. |
|
Z = + |
Двухмерные массивы A(I,J) и B(I,J); X=7; N, M – переменные. |
|
Z = |
Двухмерные массивы A(I,J) и B(I,J); X=7.5; N, M – переменные. |
|
Z = X ∙ +X∙ |
Двухмерные массивы A(I,J) и B(I,J); X=8; N, M – переменные. |
|
Z = + |
Двухмерные массивы A(I,J) и B(I,J); X=8.5; N, M – переменные. |
Порядок выполнения:
Открыть Turbo Pascal.
Составить алгоритм и блок-схему. Значение X запрашивать у пользователя. Ввод, вывод и обработку массивов осуществлять в отдельных подпрограммах. Обратить внимание на выбор параметров подпрограмм.
В основной программе ссылаться на подпрограммы по их именам (в соответствии с заданием по два раза каждую, т. к. производится обработка двух массивов).
Запрос размерности массива желательно осуществлять с клавиатуры (реальная размерность массивов является фактическим параметром).
Заполнение двумерных массивов производить так, чтобы можно было знать, какой элемент вводится.
Вывод двухмерных массивов производить в виде матрицы.
Нахождение суммы или произведения массивов производить в основной программе после подпрограмм ввода и обработки двумерных массивов.
Набрать программу, ввести данные и зафиксировать результат.
В выводе обосновать выбор определенного вида подпрограмм: процедур или функций для разных действий, выполняемых программой.