Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
№___230105__ МУ_лаб и пр_ОАиП_часть первая.docx
Скачиваний:
4
Добавлен:
26.04.2019
Размер:
383.97 Кб
Скачать

Параметры-переменные

Если формальный параметр является результатом работы процедуры или изменяется в результате ее работы, то перед этим формальным параметром ставится служебное слово Var. После этого на все время выполнения процедуры формальный параметр становится синонимом этой фактической переменной. Любые операции с таким формальным параметром выполняются непосредственно над соответствующим фактическим параметром. Значение параметра-переменной после завершения выполнения процедуры остается доступным для следующих вычислений, несмотря на то, что динамический экземпляр блока процедуры прекращает свое существование.

Параметр-переменная используется для представления результатов работы процедуры, т.е. может быть выходным или возвратным параметром.

Var действует до ближайшей точки с запятой, то есть перед каждым выходным параметром разного типа должен быть Var.

В качестве фактических параметров, соответствующих формальным параметрам-переменным, запрещается использовать поле признака из записи с вариантами, чтобы не возникали зависящие от реализации проблемы вычисления адресовПараметры, имеющие файловый тип (или сложный тип с файловыми компонентами), должны быть описаны как параметры-переменные

При активации процедуры для каждого локального параметра выделяется место в автоматической (стековой) памяти. Глобальное значение фактического параметра копируется туда, а при выходе из процедуры эта память освобождается, и значение переменной становится недоступным. В случае если передаваемый параметр занимает много памяти (например, массив), передача (копирование) его значений в стек займет дополнительное время и память стека. Для таких данных лучше описывать такой параметр как параметр-переменную, т.е. с предшествующим словом Var.

Рассмотрим вопрос о передаче в качестве параметров подпрограммы массивов данных (векторов и матриц). Передача параметров в этом случае имеет ряд особенностей. В целях экономии времени и памяти при передаче массивов рекомендуется использовать в качестве параметров в заголовке процедуры параметры-переменные

Рекомендуется в качестве параметра передавать рабочий размер массива Параметр цикла должен быть описан внутри процедуры.

Описание его глобально, а использование внутри процедуры может привести к непредсказуемым результатам

При передаче массивов через параметры процедуры после идентификатора формального параметра можно использовать только тип, заранее определенный в разделе типов. При нерекурсивном выполнении имя функции не может появляться в правой части оператора присваивания, поэтому если результат функции переопределяется в теле функции несколько раз, то необходимо ввести промежуточную переменную для вычислений (того же типа, что и результат функции), а результат присвоить при выходе из функции.

Лабораторная работа №11(2 часа)

Тема: Составление и запись алгоритмов вычислительных процессов с использованием подпрограмм. Компиляция и тестирование программы.

Цель: Приобрести навыки составления и записи алгоритмов вычислительных процессов с использованием подпрограмм. Проведения компиляции и тестирования программы.

Задание: Разработать алгоритм решения задачи согласно варианту, представить его в виде программы на языке программирования Turbo Pascal.

В ариант 1. Найти значение переменной S = . Для вычисления функции f составить процедуру-функцию с параметром, одномерным массивом чисел, заданную условиями:

1, если

f(x1, x2, …, xn) =

в остальных случаях.

Вариант 2. Найти значение переменной S = ln(sin(f - 5f 3 )). Для вычисления функции f составить процедуру-функцию с параметром, одномерным массивом чисел, заданную условиями:

0, если ;

f(x1, x2, …, xn) =

в остальных случаях;

В ариант 3. Найти значение переменной . Для вычисления функции f составить процедуру-функцию с параметром, одномерным массивом чисел, заданную условиями:

0, если x1 > x2 > … > xn;

f (x1, x2, …, xn, x1, x2, …, xn ) =

в остальных случаях;

В ариант 4. Найти значение переменной S = . Для вычисления функции f составить процедуру-функцию с параметром, одномерным массивом чисел, заданную условиями:

1, если ;

f(x1, x2, …, xn) =

, в остальных случаях;

Вариант 5. Найти значение переменной . Для вычисления функции f составить процедуру-функцию с параметром, одномерным массивом чисел, заданную условиями:

0, если x1 > x2 > … > xn;

f (x1, x2, …, xn) =

, в остальных случаях;

Вариант 6. Найти значение переменной S = . Для вычисления функции f составить процедуру-функцию с параметром, одномерным массивом чисел, заданную условиями:

, если

f (x1, x2, …, xn, y1, y2, …, yn) =

в остальных случаях;

Вариант 7. Найти значение переменной S = ln(sin(f - 5f3)). Для вычисления функции f составить процедуру-функцию с параметром, одномерным массивом чисел, заданную условиями:

, если ;

f (x1, x2, …, xn, y1, y2, …, yn) =

1, в остальных случаях;

Вариант 8. Найти значение переменной S = . Для вычисления функции f составить процедуру-функцию с параметром, одномерным массивом чисел, заданную условиями:

, если ;

f (x1, x2, …, xn, y1, y2, …, yn) =

в остальных случаях;

Лабораторная работа №12(2 часа)

Тема: Разработка алгоритмов с использованием записей в виде программы.

Цель: Приобрести навыки работы с процедурами и функциями обработки переменных типа «запись».

Задание: Разработать алгоритм решения задачи согласно варианту, представить его в виде программы на языке программирования Turbo Pascal.

Вариант 1. База данных “Библиотека содержит таблицу с полями: Ф. И. О., домашний адрес, дата сдачи книги. Вывести содержимое базы в виде таблицы, разработать процедуры редактирования таблицы (удаление, вставка, изменение поля некоторой записи).

Вариант 2. База данных типографии, содержит следующие поля: номер, дата заявки, название книги, автор, количество экземпляров. Вывести содержимое базы в виде таблицы, разработать процедуры редактирования таблицы (удаление, вставка, изменение поля некоторой записи).

Вариант 3. В справочной аэропорта хранится расписание вылета самолетов на следующие сутки. Для каждого рейса указаны его номер, тип самолета, пункт назначения, время вылета. Вывести расписание в виде таблицы, разработать процедуры редактирования таблицы (удаление, вставка, изменение поля некоторой записи).

Вариант 4. Каждая запись об успеваемости студентов ведомости должна содержать номер группы, фамилию студента, средний балл за последнюю сессию. Вывести содержимое ведомости в виде таблицы, разработать процедуры редактирования таблицы (удаление, вставка, изменение поля некоторой записи).

Вариант 5. В магазине имеется список поступивших в продажу автомобилей. Каждая запись этого списка содержит марку автомобиля и его параметры: стоимость, расход бензина на 100 км., надежность (число лет безотказной работы), комфортность (отличная, хорошая, удовлетворительная). Вывести содержимое списка в виде таблицы, разработать процедуры редактирования таблицы (удаление, вставка, изменение поля некоторой записи).

Вариант 6. В бюро по занятости населения (трудовой бирже) ведется список вакантных рабочих мест на предприятиях города. Каждая запись такого списка содержит следующую информацию: наименование организации, местоположение организации (расстояние в км. от центра города), наименование должности, требуемая квалификация (разряд или образование), требуемый стаж работы по специальности. Вывести содержимое списка в виде таблицы, разработать процедуры редактирования таблицы (удаление, вставка, изменение поля некоторой записи).

Вариант 7. Заполнить массив десяти элементов записями вида: №, Ф. И. О., книга, количество экземпляров. Вывести содержимое массива в виде таблицы, разработать процедуры редактирования таблицы (удаление, вставка, изменение поля некоторой записи).