Читайте также: |
|
Обращение к процедуре с фактическими параметрами a,b,c, получение
результатов х1,х2. root(a,b,c,x1,x2);
Обращение к процедуре с фактическими параметрами s,t,p, получение
результатов z1,z2. root(s,t,p,z1,z2);
Обращение к процедуре с фактическими параметрами k,n,m, получение
результатов y1,y2. root(k,n,m,y1,y2);
Подпрограммой называется имеющая имя логически законченная группа операторов, возможно со своими описаниями, к которой по ее имени можно обратиться для выполнения неограниченное количество раз из различных мест основной программы, возможно с различным, но фиксированным набором входных величин и результатов. Подпрограммы могут быть оформлены в виде функций или процедур.
Функции применяют тогда, когда результат работы подпрограммы один. Обращение к функции может записываться в выражениях. Например: (a+b)/cos(x)
Здесь cos(x) есть обращение к подпрограмме типа функция, правда стандартной, а не написанной пользователем. Встретив имя cos машина с входной величиной (аргументом) х обращается к подпрограмме, вычисляет с помощью ряда функцию cos(x) и результат работы этой подпрограммы в виде значения функции возвращается в арифметическое выражение.
Функция может иметь несколько входных параметров, но всегда один результат.
Обращение к функции помещается в выражение путём указания имени функции с фактическими (теми, которые нужны в данном обращении) параметрами.
Процедура может иметь несколько входных параметров, и несколько результатов.
Несколько — это 0, или 1, или 2, или 3 и т.д. результатов. Обращение к процедуре состоит из отдельного оператора, следовательно оно не может помещаться в выражение.
Подпрограммы как функции, так и процедуры могут быть стандартными, например sin(x), cos(x), sqrt(x), succ(y), ord(y) и т.п., библиотечными, которые становятся доступными при подключении модулей и библиотек, например Math, и определенные пользователем, т.е. написанные программистом для решения своей задачи.
Лабораторная работа 6.
Подпрограммы-функции, определенные пользователем.
Функции пользователя описываются в разделе описания функций и процедур основной программы. Описание функции строится как законченная программа, т.е. может состоять из заголовка и шести разделов: описания, меток, констант, типов, переменных, функций и процедур и раздела операторов. Заканчивается описание функции символом точка с запятой.
Написать программу, вычисляющую с помощью подпрограммы-функции, выражения:
fl(x)=x+256.4; f2(y)=y+256.4; f3(z)=z+256.4;
program project_6_1; {$APPTYPE CONSOLE}
uses Math, SysUtils;
var
x,y,z, f1 f2, f3:real;
function f(x:real):real; {заголовок функции;}
{f - имя функции, это же и имя результата, х формальный параметр}
begin f:=x+256.4; end; {тело функции}
BEGIN {начало основной программы}
writeln('input x,y,z’); readln(x,y,z);
f1:=f(х); {обращение к подпрограмме f с фактическим параметром х}
f2:=f(y); {обращение к подпрограмме f с фактическим параметром у}
f3:= f(z); {обращение к подпрограмме f с фактическим параметром z}
writeln(‘f1= ‘,fl:5:3,’f2= ‘, f2:5:3,’f3= ‘f3:5:3); {вывод результатов f1,f2,f3}
readln; END.
Как видно из программы, описание подпрограммы-функции начинается зарезервированным словом function, за которым следует имя функции f, после чего в скобках указываются формальные параметры, необходимые для вычисления результата, с указанием типа параметров. (в нашем случае это x типа real), затем указывается тип результата - real. Имя результата будет f.
При описании данной функции нам не понадобились разделы описаний.
Написать программу, вычисляющую
если 1<=x<3
G= если 3<=x<5
если 5<=x<=9
0 в остальных случаях
Оформим вычисление (ln(a)+sin(b))2/(cos(a)*eb) в виде подпрограммы-функции.
program project_6_2; {$APPTYPE CONSOLE}
uses Math, SysUtils;
var h,x,y,z:real; function f(a,b:real):real; {входные формальные параметры a,b}
begin
f=sqr(ln(a) +sin(b))/(cos(a) *exp(b)); end; {тело функции }
BEGIN writeln('введите положительные h,x,y,z readln(h,x,y,z););
tf(x>=1) and (x<3) then witeln('G=’,h+f(x,y)) else
if (x>=3) and (x<5) then writeln('G=',sqrt(h)+f(z,y)) else
if (x>=5) and (x<=9) then writeln('G=',sqr(h)+f(y,z)) else writeln('G=0'); readln; END.
В этой программе описание функции начинается словом function имя функции f, результат вычисления функции типа real. Тело функции заключено в операторные скобки begin, end; a, b называются формальными параметрами. При описании данной функции нам не понадобились разделы описаний которые могут присутствовать, при необходимости, в виде описания меток, типов данных, констант, переменных, а также описания функций и процедур, используемых в описываемой подпрограмме.
При выполнении основной программы, которая начинается BEGIN, встречается выражение f(x, у). Встретив такое выражение, машина по имени f(согласно описания имени f) определяет, что это обращение к функции. Затем машина проверяет совпадение количества и типа фактических параметров (х, у) с формальными (а, b). При совпадении, в тело функции вместо формальных параметров подставляются фактические и тело выполняется, полученный результат используется при вычислении выражения, стоящего в операторе writeln.
ВАРИАНТЫ ЗАДАНИЙ
Вариант 1.
1. Вычислить D = 2f{a,b,k) + 6f(k,a,b) - f2{a,b,k2)
При а=0.6, b=3.2, k=1.8, если f{x,y,z) = z2 - 2xy /z.
Вариант 2.
Вычислить О = tg(f(xt k,b)) + -f2(b + 0.1, к -1, хг)
Прих=6.5, b=8.9, к=4.5, если f(x,y,z) = z + х2 -у2.
Вариант 3.
Вычислить В = f(m,x,y) + 0.6 f2(y,m,x)+f(x,y+m,y-m)
При m=0.5, x=3.3, y=0.45 если f(x,y,z) = x + 2y + 3z2
Вариант 4.
Вычислить B = Ln(f(b,a,k) + f2{a, 0,8 + b,k)
При а=5,5, b=-2,5, к=1,9, если f(x,y,z) = х + y2z - ху2'
Вариант 5.
Вычислить С = 2f(b,a,I) + 2f(I,a,b + 0,3)
При a=0,8, b=240, l=-1,5,
Если f(x,y,z) = x/y + zx -1.
Вариант 6
Вычислить В = -F2(D,A,I)+Ln(F(D,A,2*I))
При a=3,5, 0,61, i=5,3, Если F(x,y,z) =| x2 - y2 - z |
Вариант 7.
Вычислить A= tg{f{x,k,y) + cos(f(2k,x3,y))
При x=-3,5, y=50, k=2,8,
Если f (x, y, z) = x + 8y + 3,1z
Вариант 8.
Вычислить С = ef(a,b,i) +
При а=4,5, b=3,9, d=10, i=0,51, Если f(x,y, z)=х2-у+z
Вариант 9.
Вычислить P=f(b,j,a)+f2(a,d,j)+(a*b+j)/f(a*b,b*j,J*a)
При a=0.73, b=2.4, j=3.17 Если f(x,y,z)=sin(x)+sin(x2)+z
Вариант 10.
Вычислить А = f(m,x,y) + 0,5f2(m,y,x) + f(x,y + m*х,у – m*х)
При т=0,5, х=3,1, у=0,45, Если f(x,y,z)=х+2у+3z2.Вариант 11.
Вычислить В = 0,5f(х, к, b) + bf(b, х, 1,2) –sin(f(ax, кх,5,5))
При а=0,8, Ь=-1,3, х=130, к=1,7, Если f((х,у,г) = х2 + у - 0,5z
Вариант 12.
Вычислить С = 3f{a,x,b,) + f2(b, a + 0.3, j) -
при а=0,8, b=1,55, x=130,j-15,1, если f(x,y,z) = xy2 + yz
Вариант 13.
Вычислить у = tg(f(x, bt m)) + cos(f2(m, m, x)) - 0,5f(2b, 2b, m)
при b=-5,1, x=4,3, m=0,52, если f{x,y,z) = X2 + у + z
Вариант 14.
Вычислить P = 1/ f{a,x,k) + sin(n(f{x,a,4k2)) + f2{k,xta)
при а=-0,9, x=150, k=3,14,
если f(x,y,z) = x + у4 - z
Вариант 15.
Вычислить H = Lg(f(a,b,c)) + tg(f{b,C,j)) - f2(0,5j, b, а)
при а=2,5, b=1,8, с=3,14, j=30, если f(x,y,z) = х2 - е_у(1 - z).
Вариант 16.
Вычислить В = f(a,x,i) + sin(f(x, i, 0,8)) - f2(i,x2,a)
при а=8,1, х=1,з, i=650,
если f (x, y, z) = 0,8x + 3,5y + z.
Вариант 17.
Вычислить B =f((х,k,у) + 0,8f:2(у,k,х)+ f(х,у,у-к)
при к=0,6, х=3,8, у=0,042,
если f(x,y,z) = 2у + х + 4z2
Вариант 18.
Вычислить В = 2f2(b,a,m) + 2f(m, а + b, b + 0,2) - 0,7f(m,a,b)
при а=0,б, b=21, т=-3,8, если f{x, y,z) = у /1,8 + 6х - у2.
Вариант 19.
Вычислить D = - f2(d,a,i)
при а=3,5, d=0,64, 1=5,3,
если f(х, у, z) =| х — у — z |
Вариант 20.
Вычислить Р = tg(f{x,b,k)) + -f2(b + 0,1,k, х2)
при х=6,5, Ь=8,9, к=4,5, если f(x,y,z) = х2 - у2 + z
Вариант 21.
Вычислить B = f(a,X,i) + COS(f(x, i, 0,8)) – f2(i, X2, а)
при а=3,2, x=2,5, i=15, если
f(x, y, z) = x2 - 3,5y + 0,8z
В ариант 22.
Вычислить С = 3f(a,b,к) + 5f(k,a,b) - f2(2a,b,k2)
при a=0,5, b=1,8, k=4,6,
если f(x,y,z) = z2 + у2 - 2xy I z
Вариант 23.
Вычислить A = f(d,n,b) + f(d, n3, b3) + 0,5Ln(f(bd, d, n))
при b=4,12, d=1,6, n=0,08, если f(x,y,z) = x(y + z- )
Вариант 24.
Вычислить S = ln(f(a,1,i)) + sin(f(i,b,a) - f 2 (2b,i,c)
при a=1,8, b=2,5, c=90,1=4,5,
если f(x,y,z) = x3 + 3,14y2 - 0,1z
Вариант 25.
Вычислить С = f(a,b,l) + f2(b, l, a + 0,5) – f(l - 1,7, а, Ь)
при a=0,5, b=4,1, l=5,4, если f(x,ytz) = x - (у + (x2 - y)z)
Вариант 26.
Вычислить О = f(x,y) + 3(f(a,b) + f(0.1, x) +
при x=100, y=-0,021, a=0,357, b=-0,12 если f(x,y) = X2 + 2 I xy I
Вариант 27.
Вычислить Е = f(j,a,b) + f2(atb,j) +(aj+b)/f(ab,ia,bi)
при а=0,71, Ь=2,1, j=2,51, если
f(x,y,z) = sin х + sin2 у + z
Вариант 28.
Вычислить С +sin(f(x,b,0.5)-f(n,b,x)/3.37
при х=126, Ь=0,37, п=360, если f(x, у, z) = х + 0,5у - z2
Вариант 29.
Вычислить С = 3f(a,b,k) + 5f(k,a,b) - f2(2a, k, b2)
При а=1,8, b=4,6, k=1,33,
Если f(x,y,z) = 2z-x2 + y2
Вариант 30.
Вычислить р = Ln(f{а,к,Ь)) + f 3(k + 1.2, b, к2)
при а=0,3, Ь=1,33, к=6,8, если f(х,у,z) = ху3 -хz
Дата добавления: 2015-07-26; просмотров: 259 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
КЛАССИФИКАЦИЯ ХОЛОДИЛЬНИКОВ | | | КЛАСИФІКАЦІЯ |