Tytu³: Funkcje -deklaracja Wiadomo¶æ wys³ana przez: admin Styczeñ 30, 2012, 10:27:28 Funkcja jest fragmentem kodu umieszczonym w programie. W przeciwieñstwie do procedury funkcja zwraca warto¶æ!!!!
Procedura wymienia dane z wywo³uj±cym poprzez listê parametrów, nie daje jednak mo¿liwo¶ci zwrócenia pojedynczej warto¶ci (liczby). Dlatego w Pascalu wprowadzono pojecie funkcji. Jest ona rodzajem procedury, która po wywo³aniu zwraca obliczon± przez siebie warto¶æ. Function nazwa(lista_parametrów):typ_wyniku; {deklaracje sta³ych i zmiennych typów} Begin {tre¶æ funkcji, i przypisanie} nazwa:=obliczona_warto¶æ_wyniku; End; Przyk³ad 1. Program a1; uses crt,dos; Var c, d:real; function suma:real; begin suma:=c+d; end; Begin clrscr; write(‘podaj a =’);readln (c); write ('podaj b= ‘);readln (d); write(’suma liczb wynosi ‘,suma:0:3); readkey; End. -------------------------- nowa wersja z wprowadzonymi argumentami funkcji ----------------- program a1; uses crt,dos; var c,d :real; function suma(a,b:real):real; begin suma:=a+b; end; begin clrscr; write('podaj a= ');readln(c); write('podaj b= ');readln(d); write('suma liczb wynosi ',suma(c,d):0:3); readkey; end. Tytu³: Odp: Funkcje -deklaracja Wiadomo¶æ wys³ana przez: admin Styczeñ 30, 2012, 11:15:07 Zadanie 1. Napisaæ program któy prosi o podanie dwóch liczb a nastêpnie podanie dzia³ania na tych liczbach (+, -,*, /). Wybranie okre¶lonego dzia³ania uruchamia odpowiedni± funkcjê która oblicza wynik. Nastêpnie wynik jest wy¶wietlany na ekranie.
program blizniak; uses crt, dos; var a:char; b,c:real; function dziel(a,b:real):real; var v:real; begin if b<>0 then begin v:=a/b; dziel:=v;end else write('Blad!!!!!!!'); end; function suma(a,b:real):real; begin suma:=a+b; end; function roznica(a,b:real):real; begin roznica:=a-b; end; function iloczyn(a,b:real):real; begin iloczyn:=a*b; end; begin clrscr; write('podaj pierwsza liczbe: ');readln(b); write('podaj druga liczbe: ');readln(c); write('podaj znak dzialania: ');readln(a); case a of '+':write(suma(b,c):0:2); '-' : write(roznica(b,c):0:2); '*':write(iloczyn(b,c):0:2); '/' :write(dziel(b,c):0:2) else write('zly znak'); end; readkey; end. ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- program blizniak; uses crt, dos; var a:char; b,c:real; function dziel(a,b:real):real; var v:real; begin if b<>0 then begin v:=a/b; dziel:=v;end else write('Blad!!!!!!!'); end; function suma(a,b:real):real; begin suma:=a+b; end; function roznica(a,b:real):real; begin roznica:=a-b; end; function iloczyn(a,b:real):real; begin iloczyn:=a*b; end; function srednia(a,b:real):real; begin srednia:=(a+b)/2; end; begin clrscr; write('podaj pierwsza liczbe: ');readln(b); write('podaj druga liczbe: ');readln(c); write('podaj znak dzialania: ');readln(a); case a of '+':write(suma(b,c):0:2); '-' : write(roznica(b,c):0:2); '*':write(iloczyn(b,c):0:2); '/' :write(dziel(b,c):0:2); 's': write(srednia(b,c):0:2) else write('zly znak'); end; readkey; end. Tytu³: Odp: Funkcje -deklaracja Wiadomo¶æ wys³ana przez: admin Luty 06, 2012, 08:31:54 Zadanie 2. Napisz program w którym zadeklarowano funkcjê suma, zwracaj±c± sumê liczb od 1 do podanej z klawiatury (algorytm sumowania ma znajdowaæ siê w funkcji).
program asx; uses crt,dos; var x:integer; function suma (a:integer):integer; var x,y:integer; begin y:=0; for x:=1 to a do y:=y+x; suma:=y; end; begin clrscr; write('Podaj liczbe: ');readln(x); write('suma liczb= ',suma(x)); readkey; end. Tytu³: Odp: Funkcje -deklaracja Wiadomo¶æ wys³ana przez: admin Luty 06, 2012, 12:08:33 Zadanie 3. Sprawd¼ czy Twój pesel jest prawdziwy.
program asd; uses crt,dos; var x:word; s:string; a,b,c,d,e,f,g,h,i,j,k:char; a1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,y,z:integer; begin clrscr; write('Podaj PESEL :');readln(s); a:=s[1];b:=s[2];c:=s[3];d:=s[4];e:=s[5];f:=s[6];g:=s[7];h:=s[8]; i:=s[9];j:=s[10];k:=s[11]; val(a,a1,x); val(b,b1,x); val(c,c1,x); val(d,d1,x); val(e,e1,x); val(f,f1,x); val(g,g1,x); val(h,h1,x); val(i,i1,x); val(j,j1,x); val(k,k1,x); y:=1*a1+3*b1+7*c1+9*d1+1*e1+3*f1+7*g1+9*h1+1*i1+3*j1; y:=y mod 10; if y=0 then z:=0 else z:=10-y; if z=k1 then write('Prawda') else write('Falsz'); readkey; end. Tytu³: Odp: Funkcje -deklaracja Wiadomo¶æ wys³ana przez: admin Luty 13, 2012, 09:31:20 Zadanie 4. Program obliczaj±cy iloraz z dóch podanych liczb. Dzielenie wykonywane jest przez funkcjê dziel.
program almodovagirypitowianowicz; uses crt,dos; var a,b:real; function dziel(var x: real; y:real): real; begin dziel:=x/y; end; begin clrscr; write(' Podaj wartosc dzielnej:= ');readln(a); clrscr; repeat write(' Podaj wartosc dzielnika:= ');readln(b); if b=0 then begin clrscr ;writeln('Wprowadzon wartosc zeroooooo!');end; until b<>0; write(a:0:2,' / ', b:0:2,' = ',dziel(a,b):0:2); readkey; end. |