А. В. Розина программирование на паскале методическое пособие

Вид материалаМетодическое пособие

Содержание


Тема 10. Подпрограммы
В данном примере A,B – параметры-переменные.
В данном примере A,B – параметр-значение..
Задачи и решения Переменные и константы типа REAL
Подобный материал:
1   2   3   4   5   6   7   8   9   10

Тема 10. Подпрограммы



Подпрограммы - это именованные части программы, реализующие определенный алгоритм, которые можно вызывать из программы, при этом можно передавать входные данные и получать выходные. Входные и выходные данные называются аргументами или параметрами. Фактическими параметрами являются параметры, с которыми обращаются к подпрограммам. Формальными параметрами являются параметры подпрограмм.

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

ПРОЦЕДУРЫ



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


PROCEDURE < имя > (<описание параметров>);

< описание внутренних переменных >

BEGIN

< операторы, реализующие алгоритм процедуры >

END;


Параметры могут быть описаны 2 способами:

1 способ.

PROCEDURE MNP (VAR A: REAL; VAR B: CHAR);

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

В данном примере A,B – параметры-переменные.


2 способ.

PROCEDURE MNP (A: REAL; B: CHAR);


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

В данном примере A,B – параметр-значение..


Пример. Нахождение максимального значения из 2-х значений.


var a, b, C;


PROCEDURE MAX (L,M : INTEGER; VAR N : INTEGER);

BEGIN

IF L >M THEN N := L ELSE N := M;

END;


BEGIN

READ(A,B);

MAX(A,B,C);

WRITELN (‘MAX=’, C);

END.

Функции



Отличие функции от процедуры заключается в следующем: функция всегда вычисляет некоторое значение и это значение присваивается имени функции. Тип этого значения указывается при описании функции. Поэтому среди параметров функции нет выходных, а имя функции и является по сути этим выходным параметром. Естественно, что вызов функции осуществляется внутри выражения.

Функция состоит из заголовка и тела функции.

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

Тело функции – это набор операторов языка Паскаль, где обязательно имени функции присваивается значение.

FUNCTION <имя> (список формальных параметров) : <тип результата>;

BEGIN

<тело функции>;

END;


Пример

Нахождение максимального значения из 2-х значений и его увеличение в 2 раза.


var a, b;

FUNCTION MAX (L,M : INTEGER): INTEGER;

BEGIN

IF L >M THEN MAX := L ELSE MAX := M;

END;


BEGIN

READ(A,B);

C := maX (A,B)*2;

WRITELN (‘C =’, C));

END.

Задачи и решения




Переменные и константы типа REAL




  1. Какие числа представлены в форме с плавающей запятой
    1. 2000
    2. 30.5Е+02
    3. 1234.867
    4. 9584
    5. 8.2Е0.1
    6. - 12.4Е-04
  2. Какие из следующих соотношений неправильны:
    1. 3.44Е+02=344
    2. 20Е-03=0.02
    3. 0.2Е03=2000.0
    4. - 0.1Е-04=- 0.0001
    5. trunc (6.9) = 7
    6. round (5.8) = 6
    7. trunc (3.8) = 3
    8. round (2.4) = 2.5
  3. Составьте программу вычисления среднего арифметического 3-х чисел.
  4. Составьте программу вычисления размера оплаты за электроэнергию по введенным значениям расхода электроэнергии и тарифа (тариф – это стоимость 1 кВт/ч).
  5. Составьте программу вычисления длины окружность и площади круга по введенному значению радиуса. Для вычисления значения числа 3,141592... в Паскале использовать стандартную функцию с идентификатором PI.
  6. Составьте программу вычисления периметра квадрата по известному значению его площади.
  7. Часы показывают время. Написать программу нахождения угла поворота часовой стрелки относительно 00.00 часов в заданное время.
  8. Составьте программу вычисления периметра и площади треугольника по известным 3-м сторонам. По формуле Герона






где p – полупериметр, а,b,c – длины сторон, s – площадь.
  1. Город А находится в х милях от Лондона. Напишите программу, вычисляющую расстояние в километрах. Известно, что 5 миль=8 км.
  2. На заводе ежедневно сжигают А тонн топлива, при этом расходы на топливо за полгода В рублей. Составьте программу вычисляющую, сколько рублей будет сэкономлено, если ежедневно сжигать на С тонн меньше?
  3. Составьте программу вычисления значения выражения
    1. y = a x 2 + b x + c
    2. y =x + 4-x 2 - 3 x + 6
    3. y = x sin (x)