А. В. Розина программирование на паскале методическое пособие
Вид материала | Методическое пособие |
СодержаниеТема 10. Подпрограммы В данном примере A,B – параметры-переменные. В данном примере A,B – параметр-значение.. Задачи и решения Переменные и константы типа REAL |
- Тема урока: Программирование ветвлений на Паскале, 61.32kb.
- Программирование ветвлений на Паскале Оператор ветвления на Паскале, 166.05kb.
- Программа элективного курса «Алгоритмизация и программирование», 95.38kb.
- Контрольная работа по темам «Линейное программирование на Паскале» и«Условный оператор», 4.21kb.
- Методическое пособие по выполнению курсовых работ по дисциплине, 450.1kb.
- В. И. Эльманович нейролингвистическое программирование методическое пособие, 781.36kb.
- В. И. Эльманович нейролингвистическое программирование методическое пособие, 924.82kb.
- В. А. Жернов апитерапия учебно-методическое пособие, 443.6kb.
- Тема урока: Программирование циклов на Паскале (9 класс, базовый уровень), 46.43kb.
- Кемеровский Государственный Университет; Д. Н. Долганов. Белово, 2005. 55. методическое, 704.81kb.
Тема 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
- Какие числа представлены в форме с плавающей запятой
- 2000
- 30.5Е+02
- 1234.867
- 9584
- 8.2Е0.1
- - 12.4Е-04
- 2000
- Какие из следующих соотношений неправильны:
- 3.44Е+02=344
- 20Е-03=0.02
- 0.2Е03=2000.0
- - 0.1Е-04=- 0.0001
- trunc (6.9) = 7
- round (5.8) = 6
- trunc (3.8) = 3
- round (2.4) = 2.5
- 3.44Е+02=344
- Составьте программу вычисления среднего арифметического 3-х чисел.
- Составьте программу вычисления размера оплаты за электроэнергию по введенным значениям расхода электроэнергии и тарифа (тариф – это стоимость 1 кВт/ч).
- Составьте программу вычисления длины окружность и площади круга по введенному значению радиуса. Для вычисления значения числа 3,141592... в Паскале использовать стандартную функцию с идентификатором PI.
- Составьте программу вычисления периметра квадрата по известному значению его площади.
- Часы показывают время. Написать программу нахождения угла поворота часовой стрелки относительно 00.00 часов в заданное время.
- Составьте программу вычисления периметра и площади треугольника по известным 3-м сторонам. По формуле Герона
где p – полупериметр, а,b,c – длины сторон, s – площадь.
- Город А находится в х милях от Лондона. Напишите программу, вычисляющую расстояние в километрах. Известно, что 5 миль=8 км.
- На заводе ежедневно сжигают А тонн топлива, при этом расходы на топливо за полгода В рублей. Составьте программу вычисляющую, сколько рублей будет сэкономлено, если ежедневно сжигать на С тонн меньше?
- Составьте программу вычисления значения выражения
- y = a x 2 + b x + c
- y =x + 4-x 2 - 3 x + 6
- y = x sin (x)