КАТЕГОРИИ: Архитектура-(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:
Результаты расчета: Arithmetic expression: Y= -6.3184 Варианты заданий взять из лабораторной работы № 2.
Дата добавления: 2014-12-26; Просмотров: 399; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |