1 / 13

Procedury i funkcje

Procedury i funkcje. Podprogram Podprogram (inaczej funkcja lub procedura) - termin związany z programowaniem proceduralnym. Podprogram to wydzielona część programu wykonująca jakieś operacje. Podprogramy stosuje się, aby uprościć program główny i zwiększyć czytelność kodu.

ferrol
Download Presentation

Procedury i funkcje

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Procedury i funkcje

  2. Podprogram Podprogram (inaczej funkcja lub procedura) - termin związany z programowaniem proceduralnym. Podprogram to wydzielona część programu wykonująca jakieś operacje. Podprogramy stosuje się, aby uprościć program główny i zwiększyć czytelność kodu. Funkcja w odróżnieniu od procedury zwraca wartość.

  3. Procedury i funkcje w języku Pascal: procedure nazwa_procedure (argumenty); begin instrukcje; end; function nazwa_funkcji (argumenty) : zwracany_typ; begin instrukcje; nazwa_funkcji := zwracana_wartosc; end;

  4. Przykład: program p1; {zmienne globalne} var n,m:integer; c:char; s:string; {procedury} procedure wyswietl(n:integer;z:char); var j:integer; {zmienne lokalne} begin for j:=1 to n do write(z); writeln; end; procedure wyswietl(n:integer;z:string); var j:integer; {zmienne lokalne} begin for j:=1 to n do write(z); end; begin n:=2; writeln('Podaj znak'); readln(c); writeln('Podaj ilo˜ść'); readln(m); writeln('Podaj ciąg'); readln(s); wyswietl(m,c); wyswietl(m,s); readln; end.

  5. Przekazywanie argumentów do podprogramów w języku Pascal: • przez nazwę • function max (a,b:integer):integer; • przez zmienną • function max (var a,b:integer):integer; • przez wskaźniki • type: wsk:^integer; • function max(a,b:wsk):integer;

  6. Przykład: program procedura_zamiana; {zmienne globalne} var a,b:real; {procedura} procedure zamiana(var a,b:real); var pom:real; begin pom:=a; a:=b; b:=pom; end; {program gˆłówny} begin writeln('Podaj a'); readln(a); writeln('Podaj b'); readln(b); zamiana(a,b); writeln('a: ', a:4:2); writeln('b: ', b:4:2); readln; end.

  7. Funkcje w języku C++: Typ_zwracany nazwa_funkcji (argumenty) //nagłówek funkcji { instrukcje; //ciało funkcji } Przykład: void wypisz(int i, char c) { cout<<i<< ” ”<<c<<endl; } int max (int a, int b) { if (a>b) return a; else return b; }

  8. Przekazywanie argumentów do podprogramów w języku C++: • przez wartość • int max(int a, int b); • przez referencje • int max (int &a, int &b); • przez wskaźniki • int max (int *a, int *b);

  9. Przykłady: #include <iostream> using namespace std; void zamiana (int &a, int &b) { int pom = a; a = b; b = pom; } int main() { int a = 5; int b = 3; cout<<"a = "<<a<<endl; cout<<"b = "<<b<<endl; cout<<"Po zamianie mamy \n"; zamiana(a,b); cout<<"a = "<<a<<endl; cout<<"b = "<<b<<endl; system("PAUSE"); return 0; }

  10. Argumenty domniemane: #include <iostream> using namespace std; double potega (double , int = 2); int main() { double x; int n; cout<<"Program liczący wartość x do potęgi n"<<endl<<endl; cout<<"Podaj x: (liczba rzeczywista)"<<endl; cin>>x; cout<<"Podaj n: (liczba całkowita)"<<endl; cin>>n; cout<<"x do potęgi 2 wynosi: "<<potega(x)<<endl; cout<<"x do potęgi n wynosi: "<<potega(x,n)<<endl; system("PAUSE"); return 0; }

  11. double potega (double x, int n) { double w = 1;//wynik int k; k = (n<0)?-n:n; for(int i = 0; i<k ; ++i) w*=x; if(n>=0) return w; else return 1/w; }

  12. Funkcja rekurencyjna (rekursja): Funkcję rekurencyjną nazywamy taką funkcję która wywołuje samą siebie. Funkcja taka musi posiadać warunek zakończenia rekurencji. Jeżeli takiego warunku by nie posiadała funkcja wywoływała by siebie bez końca. Funkcja taka jest wykonywana trochę wolniej niż funkcja nierekurencyjna, ale kod jest zdecydowanie krótszy i prostszy w niektórych wypadkach. Najlepszym przykładem na funkcję rekurencyjną jest silnia. unsigned long silnia(unsigned int n) { if(n<=1) return 1; else return n*silnia(n-1); }

  13. Koniec

More Related