Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lab_rab_Pascal_OZO / Lab_07_Процедуры

.doc
Скачиваний:
18
Добавлен:
21.03.2015
Размер:
67.07 Кб
Скачать

Лабораторная работа № 7.

Процедуры.

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

Оборудование и программное обеспечение: компьютер, Turbo Pascal 7.0.

Место проведения:

Время:

Теоретические сведения:

Процедура – независимая именованная часть программы, которую можно вызвать по имени для выполнения определенных действий. Структура процедуры почти повторяет структуру программы, и выглядит следующим образом:

Procedure <имя процедуры>[(формальные параметры)];

Uses <имена модулей>;

Label <имена меток>;

Const <имена констант>;

Type <имена типов пользователя>;

Var <имена локальных переменных>;

<раздел объявления подпрограмм>;

Begin

<операторы>;

End;

Процедуры без параметра.

Вызов процедуры без параметров осуществляется по имени данной процедуры в теле программы. Имя процедуры воспринимается как оператор. При выполнении этого оператора выполняется вся подпрограмма. Область доступности переменных (объектов):

1. Имена объектов, описанных в некотором блоке, считаются известными в пределах данного блока, включая и все вложенные блоки.

2. Имена объектов, описанных в блоке, должны быть уникальны в пределах данного блока и могут совпадать с именами объектов из других блоков.

3. Если в некотором блоке описан объект, имя которого совпадает с именем объекта, описанного в объемлющем блоке, то это последнее имя становится недоступным в данном блоке.

Пример 1: Даны два натуральных числа a и b. Найти НОД(a+b, |a-b|, a*b).

Program NOD1;

Var a,b,k,m,n:integer;

Procedure Evklid;

begin

while m<>n do

if m>n then m:=m-n

else n:=n-m;

k:=m;

end;

Begin

Write('а = ');

Readln(a);

Write('b = ');

Readln(b);

m:=a+b;

n:=abs(a-b);

Evklid;

m:=k;

n:=a*b;

Evklid;

Writeln(‘НОД равен ’,k);

End.

Процедуры с параметрами.

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

Указанные после имени процедуры параметры указывают на то, что для выполнения данной процедуры необходимы дополнительные данные.

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

параметры, передаваемые процедуре во время её вызова в программе называются фактическими параметрами. Фактическими параметрами могут быть как непосредственные значения, так и переменные в которых хранятся требуемые значения. Например: SetColor(t);

В одной процедуре могут использоваться несколько параметров как одного типа данных

Window(X1, Y1, X2, Y2: byte);

так и нескольких переменных различных типов данных

Bar3D(X1, Y1, X2, Y2: integer; Depth: word; Top: boolean).

Категории параметров:

  1. Параметры-значения используются для передачи данных из программы в подпрограмму.

  2. Параметры-переменные используются для передачи данных как из программы в подпрограмму, так и из подпрограммы в программу.

  3. Параметры-константы используется для передачи данных из программы в подпрограмму.

Пример 2: Даны два натуральных числа a и b. Найти НОД(a+b, |a-b|, a*b).

Program NOD2;

Var a,b,c:integer;

Procedure Evklid(m,n:integer; var k:integer);

begin

while m<>n do

if m>n then m:=m-n

else n:=n-m;

k:=m;

end;

Begin

Write('а = ');

Readln(a);

Write('b = ');

Readln(b);

Evklid(a+b,abs(a-b),c);

Evklid(c,a*b,c);

Writeln(‘НОД равен ’,c);

End.

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

Задание: Создать и отладить программу для решения следующую задачу (см. Приложение), используя

  1. процедуру без параметра;

  2. процедуру с параметром.

Содержание отчета по каждому заданию:

  • исходные данные (условие задачи);

  • алгоритм (блок-схема) решения задачи;

  • текст программы (или основной фрагмент программы);

  • результаты выполнения программы

  • тестовый вариант в форме с фиксированной точкой.

Контрольные вопросы:

  1. Что называется процедурой?

  2. Как описываются процедуры без параметров?

  3. В каких случаях целесообразно применять процедуры без параметров?

  4. Какие преимущества предоставляют подпрограммы с параметрами?

  5. В чём заключается разница между формальными и фактическими параметрами?

  6. Как оформляется группа формальных параметров, фактических параметров?

Приложение: (ваш номер по журналу соответствует номеру варианта)

  1. Составить программу определения гипотенузы, площади, периметра прямоугольного треугольника по введённым с клавиатуры катетам.

  2. Треугольник задан координатами своих вершин. Составить программу для вычисления его площади.

  3. Составить программу для нахождения наибольшего общего делителя и наименьшего общего кратного двух натуральных чисел НОК(A,B)=A*B/НОД(А,В).

  4. Составить программу для нахождения наибольшего общего делителя четырех натуральных чисел.

  5. Составить программу для вычисления суммы факториалов всех четных чисел от m до n.

  6. Составить программу для нахождения наименьшего общего кратного трех натуральных чисел.

  7. Даны стороны двух треугольников. Найти сумму их периметров и сумму их площадей.

  8. Написать программу для нахождения суммы большего и меньшего из трех чисел.

  9. Вычислить площадь правильного шестиугольника со стороной а, используя подпрограмму вычисления площади треугольника.

  10. Посчитать количество цифр в заданном натуральном числе.

  11. Даны основания и высоты двух равнобедренных трапеций. Найти сумму их периметров и сумму их площадей.

  12. Даны три целых числа. Определить, сумма цифр которого из них больше.

  13. Составить программу для вычисления суммы факториалов всех нечетных чисел от 3 до 7.

  14. Найти сумму цифр заданного натурального числа.

  15. Составить программу, определяющую, в каком из данных двух чисел больше цифр.