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. |