Государственное образовательное учреждение среднего профессионального образования
ВОРКУТИНСКИЙ ГОРНО-ЭКОНОМИЧЕСКИЙ КОЛЛЕДЖ
РАССМОТРЕНО УТВЕРЖДАЮ:
На заседании цикловой комиссии Зам. директора по УВР
«___»_____________2008 г. ______________З.Г. Штокалюк
Председатель цикловой комиссии «___»___________2008 г.
____________ О.В. Гармаш
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к лабораторной работе № 13
Тема:
«Организация функций»
Дисциплина: «Программирование на языке высокого уровня»
для студентов специальности 230101
Разработал преподаватель Баев А.В.
2008 г.
Лабораторная работа №13
Организация функций
Цель работы:
1. Получить навыки разработки программ с использованием функций.
Краткие сведения из теории
Подпрограммы - функции (Function) имеют следующие отличительные особенности (по сравнению с процедурами):
1. Функция имеет только один результат выполнения. Этот результат обозначается именем функции и передается в вызвавшую эту функцию программу.
2. Раздел операторов функции должен содержать хотя бы один оператор присваивания имени функции;
3. Обращение к функции — не оператор, а выражение.
4. Для функции обязательно указывается ее тип. Тип может быть простым (скалярным) или строковым.
Описание функции в Паскале имеет вид:
Function Имя функции (формальные параметры):Тип результата;
Раздел описаний |
Begin
|
End;
Вызов функции производится по ее имени с указанием фактических параметров. Аналогично процедурам, фактические и формальные параметры в функции могут отсутствовать.
Правила использования фактических и формальных параметров, а также локальных и глобальных переменных, совпадают с использованием их в процедурах.
Если функция кроме выдачи своего значения меняет значения каких-либо глобальных переменных, то говорят, что она имеет побочный эффект.
Рассмотрим пример создания программ с использованием функций. Пусть необходимо произвести следующие вычисления:
,
где a, b, n, m - целые переменные;
{xi}, {yj} - массивы, содержащие n и m вещественных чисел, соответственно.
В Паскале нет стандартных функций сумммирования элементов массива и возведения чисел в степень больше 2. Разработаем свои функции для решения этих задач и будем использовать их для решения поставленной задачи.
Текст программы
Uses crt;
Type
Tmas=array[1..100] of real;
Var a,b,n,m,i,j:byte;
X,Y:Tmas;
S:Real;
Function Summa(Dlmas:byte; Mas:Tmas):Real;
Var Sum:real; i:byte;
Begin
Sum:=0.0;
For i:=1 to Dlmas do
Sum:=Sum+Mas[i];
Summa:=Sum;
End;
Function step(St:byte;Osn:byte):real;
Var i:byte; P:real;
Begin
P:=Osn;
For i:=2 to St do
P:=P*Osn;
step:=P;
End;
{ Главная программа}
BEGIN
Write(' Введите длину первого массива - N '); Readln(N);
Write(' Введите длину второго массива - M '); Readln(M);
Writeln(' Введите элементы массива X');
For i:=1 to N do Read(X[i]); readln;
Writeln(' Введите элементы массива Y');
For j:=1 to M do Read(Y[j]); readln;
Write(' Введите a и b '); Readln(a,b);
S:=(Summa(N,X)+Summs(M,Y))/(step(N,a)+step(M,b));
Writeln(' Полученный результат S = ',S);readkey;
END.