Технически университет – София | |
Катедра ПКТ, ФКСУ | |
Изготвил: Георги Минчев Фак. № 000000000, поток: 0, гр: 0 | Приел: гл.ас. Д.Минковска |
Протокол № 7 дата: 13.11.2009 Подпрограми. Подпрограми функцииПодпрограми. Същност - именуван, относително самостоятелен, логически завършен програмен модул (група оператори), който може а се извиква за изпълнение неограничен брой пъти на различни места в изискващата програма.Типове подпрограми: - подпрограми функции - функциите връщат към изискващата програма само една единствена тойност;- подпрограми процедури - процедурите могат да връщат произволен брой от стойности, една или нито една към изискващата програма.Видове подпрограми: - стандартни - декларирани са в езика на Паскал и са част от него. Те не се описват в декларативната част и са достъпни навсякъде впрограмата; - дефинирани от потребителя (потребителски програми) - описват се задължително в декларативната част на изискващата програма. Могат да бъдат използвани само в изпълнителната част на тази програма, в която са описани. Функции Същност - функцията е подпрограма, която след изпълнението си връща един единствен резултат чрез свое име Видове функции: - стандартни функции - декларирани са в езика Паскал и са част от него. Те не се описват в декларативната част и са достъпни навсякъде в програмата; - функции, дефинирани от потребителя - дефинирана от потрефителя подпрограма, която след изпълнението си връща един единствен резултат, чрез името на самата функция. Стойността на резултата се на името на функцията в изпълнителната част на самата функция, подобно на стойността на променлива. Синтаксис: <име>(<фактически параметри>) където: - <име> - е името на функцията; - <фактически параметри> - затворен в кръгли скоби списък от фактически параметри(изрази), разделени един от друг с разделител запетая. Рекурсия. Рекурсови функции. Същност - възможността на един обект да може да бъде дефиниран чрез самия себе си в математиката се нарича рекурсия. Рекурсията е свойство на определени алгоритми и структури данни. Езикът Паскал предвижда възможност за програмна реализация на рекурсивни алгоритми, проце8си и структури данни, чрез съставянето на рекурсивна програми. -1- | |
Задача 1 Да се състави програма, която да намира периметъра на правоъгален триъгилник чрез зададени чрез от клавиатурата дължини на неговите катети в сантиметри, които са цели числа. program zadacha1; var p : real; a,b : integer; function perimeter(k,l : integer) : real; var hip : real; begin hip := sqrt(sqr(k) + sqr(l)); perimeter := Hip + k + l; end; begin write('vavedete parviq katet: '); readln(a); write('vavedete vtoriq katet: '); readln(b); p := perimeter(a,b); writeln('Perimetarat e ',p:4:2,' sm.'); readln; end. -2- |
Задача 2 Да се състави програма, която да която да повдига на степен трета и четвърта цяло число Q, след което да повдига реално число Z на степен N. Стойностите на числата да се задават чрез въвеждане от клавиатурата. Изчисляването на степените да се осъществи с функция. program zadacha2; var q,n : integer; z : real; function findpower(f : real; P: integer) : real; var c : integer; t : real; begin if P = 0 then findpower := 1 else begin t := f; for c := 2 to abs(p) do t := t*f; if p < 0 then findpower := 1/t else findpower := t; end end; begin write('vavedete cqlo chislo: '); readln(q); writeln(q,' na treta stepen e = ',findpower(q,3):3:1); writeln(q,' na chetvarta stepen e = ',findpower(q,4):3:1); write('vavedete realno chislo: '); readln(z); write('vavedete stepen na realnoto chislo: '); readln(n); write(z:3:1,' na ',n,'-ta stepen e = '); writeln(findpower(z,n):6:5); readln; end. -3- |
Задача 3 Да се състави програма, която да намира максималните елементи на два едномерни масива А и В. За целта да се състави функция, която връща стойността на максималния елемент на едномерен масив. program zadacha3; const m = 100; type red = array[1..m] of real; var a,b : red; nn,pp,i : integer; amax,bmax : real; function max(t : red; f : integer) : real; var tmax : real; i : integer; begin tmax := t[1]; for i := 2 to f do if tmax < t[i] then tmax := t[i]; max := tmax; end; begin write('vavedete razmera na masiv A: '); readln(nn); for i := 1 to nn do begin write('a[',I,'] = '); readln(a[i]); end; write('vavedete razmera na masiv B: '); readln(pp); for i := 1 to pp do begin write('b[',I,'] = '); readln(b[i]); end; writeln; amax := max(a,nn); bmax := max(b,pp); writeln('masivat A ima stoinosti: '); for i := 1 to nn do write(a[i]:4:1,' '); writeln; write('maksimalniqt element na masiv A e: ',amax:4:1); writeln; writeln('masivat b ima stoinosti: '); for i := 1 to pp do write(b[i]:4:1,' '); writeln; write('maksimalniqt element na masiv B e: ',bmax:4:1); readln; end. -4- |
0 коментара:
Публикуване на коментар