Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лабораторная работа № 9. Теоретические сведения




Begin

Begin

Begin

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

ПОДПРОГРАММА-ФУНКЦИЯ

 

Цель работы – составление программ с использованием подпрограмм-функций; усвоение принципа локализации.

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

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

Структура описания функции имеет такой вид:

 

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

[<раздел описания>]

<перечисление операторов и программных единиц>

End;

 

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

<имя функции>:= <выражение>;

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

В качестве примера рассмотрим применение подпрограммы-функции к задаче 1 из лабораторной работы № 7.

 

Program Min3;

{Описание переменных}

Var a,b,c, {исходные данные задачи}

{Описание функции}

Function Min (x,y: real): real; { min – результат функции }

If x < y then min:= x

else min:= y

End;

 

{Ввод исходных данных задачи}

Writeln(‘Введите три числа’);

Readln(a,b,c);

{Вычисление и вывод результата}

Writeln (‘Наименьшее из введенных чисел - ’, min(min(a,b),c);

End.

 

Как видно из примера, для рассматриваемой задачи использование подпрограммы-функции позволяет наиболее компактно записать алгоритм. Результат сравнения переменных a и b сразу используется как фактический параметр функции при сравнении его с переменной с. Результат второго сравнения сразу выводится на печать.

 

Пример:

при x = 3.5; z = 10-5; b =4.

Программа расчета:

program lab_8;

var x1, z1, b1: real; {исходные данные}

f: text;

{функция для вычисления степени p положительного числа a }

function pov(a, p:real): real;

begin

pov:=exp(p*ln(a))

end;

{функция для вычисления выражения задачи}

function y(x,z,b:real): real;

var

ch,zn,y:real; {числитель, знаменатель дроби, результат }

begin

ch:=exp(x)+pov(z,6)-4.5E2*sqrt(x); {числитель для Y}

zn:=pov(z,x)+pov(b,3.5); {знаменатель}

y:=ch/zn; {значение Y }

end;

 

BEGIN

{ввод исходных данных из файла}

Assign(f, ‘inp.txt’);

Reset(f);

Readln(f,x1,z1,b1);

Close(f);

{вычисление y и вывод результата на экран}

WriteLn(' Arithmetic expression: Y=',y(x1,z1,b1):8:4);

END.

 

Файл исходных данных Inp.txt:

3.5 1.0e-5 4

Результаты расчета:

Arithmetic expression: Y= -6.3184

Варианты заданий взять из лабораторной работы № 2.

 




Поделиться с друзьями:


Дата добавления: 2014-12-26; Просмотров: 375; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.