Tytu³: Funkcja - zwraca warto¶æ Wiadomo¶æ wys³ana przez: admin Marzec 07, 2011, 13:07:32 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; Tytu³: Odp: Funkcja - zwraca warto¶æ Wiadomo¶æ wys³ana przez: admin Marzec 07, 2011, 13:08:53 Przyk³ad 1.
Program a1; Var c, d:real; function suma:real; begin suma:=c+d; end; Begin Write(‘podaj a =’);readln (c); Write(podaj b= ‘);readln (d); Writeln(’suma liczb wynosi ‘,suma); readkey; End. Tytu³: Odp: Funkcja - zwraca warto¶æ Wiadomo¶æ wys³ana przez: admin Marzec 14, 2011, 12:02:22 Zadanie 2. Napisaæ program w którym funkcje bêd± oblicza³y sumê ,ró¿nicê, iloraz i iloczyn dwóch wprowadzonych liczb. program a1; uses crt,dos; var c,d:integer; function suma:real; begin suma:=c+d; end; function roznica:real; begin roznica:=c-d; end; function iloraz:real; begin iloraz:=c/d; end; function iloczyn:real; begin iloczyn:=c*d; end; begin clrscr; write('Podaj a= ');readln(c); write('Podaj b= ');readln(d); writeln('Suma liczb= ',suma:0:2); writeln('Roznica liczb= ',roznica:0:2); writeln('Iloczyn liczb= ',iloczyn:0:2); writeln('Iloraz liczb= ',iloraz:0:2); readkey; end. Tytu³: Odp: Funkcja - zwraca warto¶æ Wiadomo¶æ wys³ana przez: admin Marzec 14, 2011, 12:21:02 Zadanie 3. Program wykorzystuj±cy twierdzenie Talesa do obliczenia wysoko¶ci budynku. Korzystaj±c z trójk±ta Talesa napisaæ program który wyliczy wysoko¶æ budynku. a- d³ugo¶æ podstawy trójk±ta, b- wysoko¶æ trójk±ta, c- odleg³o¶æ od budynku, d- wysoko¶æ budynku (do obliczenia).
program a1; uses crt,dos; var a,b,c:real; function tales:real; begin tales:=b/a*c; end; begin clrscr; a:=0.2; write('Podaj w m b= ');readln(b); write('Podaj odleglosc od obiektu c= ');readln(c); writeln('Wysokosc budynku= ',tales:0:2, ' m'); readkey; end. Tytu³: Odp: Funkcja - zwraca warto¶æ Wiadomo¶æ wys³ana przez: admin Marzec 14, 2011, 12:36:55 Zadanie 4. Napisz program który korzystaj±c z funkcji troj obliczy pole powierzchni trójk±ta wprowadzaj±c z klawiatury dane: a - d³ugo¶æ podstawy trójk±ta, h - wysoko¶æ trójk±ta.
Tytu³: Odp: Funkcja - zwraca warto¶æ Wiadomo¶æ wys³ana przez: admin Marzec 14, 2011, 13:30:41 Zadanie 5.
program a1; uses crt,dos; var imie:string; x,y:integer; procedure podaj; begin gotoxy(10,1);write('Podaj imie: ');readln(imie); end; function ile: integer; begin ile :=length(imie); end; procedure slupek (ile:integer); var x:integer; begin for x:=1 to ile do begin gotoxy(20+y,20-x); write(chr(178));delay(300); end; end; begin clrscr;y:=1; repeat podaj;slupek(ile);readkey;inc(y); until ile=10; end. Tytu³: Odp: Funkcja - zwraca warto¶æ Wiadomo¶æ wys³ana przez: admin Marzec 21, 2011, 09:14:55 program a2;
uses crt,dos; var a,b:real; function roznica:real; begin roznica:=a-b; end; begin readkey; end. ----------------------------------------------------------------- program a2; uses crt,dos; var a,b:real; function srednia:real; begin srednia:=(a+b)/2; end; begin clrscr; write('Podaj pierwsza zmienna: ');readln(a); write('Podaj druga zmienna: ');readln(b); write('srednia z liczb: ',a:0:2,' ',b:0:2,' = ',srednia:0:2); readkey; end. ---------------------------------------------------------- program a2; uses crt,dos; var c,d:real; function srednia(a,b:real):real; begin srednia:=(a+b)/2; end; begin clrscr; write('Podaj pierwsza zmienna: ');readln(c); write('Podaj druga zmienna: ');readln(d); write('srednia z liczb: ',c:0:2,' ',d:0:2,' = ',srednia(c,d):0:2); readkey; end. Tytu³: Odp: Funkcja - zwraca warto¶æ Wiadomo¶æ wys³ana przez: admin Kwiecieñ 04, 2011, 10:18:29 Zadanie 4. 4.04.2011
program r7; uses crt,dos; var x,y,z:real; procedure dziel; begin clrscr; write('Podaj pierwsza liczbe: ');readln(x); write('Podaj druga liczbe: ');readln(y); end; function dziela(a,b:real): real; begin if (b=0) then writeln('Nie dziele przez zerooooooooo!!!!!!') else dziela:=a/b; end; begin dziel;write(dziela(x,y):0:2); readkey; end. |