SlideServe
Menu
Préférences
© SlideServe · v2026

Wprowadzenie do programowania

iwalani avatar
15 diapositives · 402 Views · Jul 29, 2012

Przeciazenie (przeladowanie) nazwy funkcji. Przeladowanie (przeciazenie) nazwy funkcji polega na tym, ze w danym zakresie waznosci (np. pliku) jest wiecej niz jedna funkcja o takiej samej nazwie.To, ktra z tych funkcji zostanie w danym przypadku uaktywniona, zalezy od liczby i typu argumentw dla

Wprowadzenie do programowania - slide 1
01 / 15Wprowadzenie do programowania
1 / 17

Télécharger la présentation

Wprowadzenie do programowania
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation

    1. Wprowadzenie do programowania wyklad 6 Agata Pólrola Wydzial Matematyki UL 2005/2006 http://www.math.uni.lodz.pl/~polrola

    2. Przeciazenie (przeladowanie) nazwy funkcji Przeladowanie (przeciazenie) nazwy funkcji polega na tym, ze w danym zakresie waznosci (np. pliku) jest wiecej niz jedna funkcja o takiej samej nazwie. To, która z tych funkcji zostanie w danym przypadku uaktywniona, zalezy od liczby i typu argumentów dla których jest ona wywolywana przyklady – prog59-przeciazania.cpp prog510-przeciazania_tylko_typ.cpp

    3. Funkcje o takich samych nazwach MUSZA róznic sie liczba lub typem argumentów (inaczej kompilator zwróci blad). dopuszczalna jest tez sytuacja, gdy dwie funkcje maja argumenty tego samego typu, ale w róznej kolejnosci: int wypisz (char z, int k); int wypisz (int k, char zz); Przy rozróznianiu funkcji typ zwracanej wartosci nie jest brany pod uwage

    4. przeladowanie „od srodka”: dla kompilatora przeladowane funkcje maja RÓZNE nazwy – kompilator pamieta nazwy funkcji wraz z typami argumentów, np. void fkcja (void); to fkcja__Fv void fkcja(int,double); to fkcja__Fid void fkcja(double, int); to fkcja__Fdi itd

    5. Zmienne globalne i lokalne jeszcze raz Mozemy zdefiniowac pewne zmienne, które beda widoczne we wszystkich funkcjach danego programu – sa to tzw zmienne globalne Wewnatrz funkcji mozna definiowac zmienne, które sa zmiennymi lokalnymi tej funkcji

    6. Nazwa zadeklarowana na zewnatrz wszystkich funkcji ma zasieg globalny, czyli jest dostepna wewnatrz wszystkich funkcji umieszczonych w danym pliku ... przy czym jest widziana dopiero ponizej linii w której zostala zadeklarowana Nazwa (obiekt) lokalny danej funkcji jest widoczna tylko w tej funkcji w której zostala zadeklarowana ... równiez ponizej linii w której zostala zadeklarowana Nie mozna zatem w jednej funkcji odwolac sie do zmiennej lokalnej innej funkcji... ... a dwie funkcje moga miec zmienne lokalne o takich samych nazwach

    7. Jesli w obrebie funkcji definiujemy jakies zmienne, to sa one zazwyczaj pamietane na tzw. stosie (czyli w obszarze „podrecznym”). Sa to tzw. zmienne automatyczne zmienne globalne (i zmienne z przestrzeni nazw) sa pamietane w „normalnym” obszarze pamieci „Normalny” obszar pamieci przed uruchomieniem programu jest zerowany. Niezainicjalizowana zmienna globalna ma zatem na poczatku wartosc 0 (odpowiednia dla danego typu) Zmienne automatyczne nie sa zerowane przy „powolywaniu do zycia”. Maja wartosc losowa

    8. Po zakonczeniu bloku, w którym zostala powolana do zycia zmienna automatyczna, przestaje ona istniec. dokladny moment likwidacji danego obiektu zalezy od kompilatora, ale w kazdym razie nie mozna liczyc, ze po zakonczeniu bloku zmienna istnieje Przy ponownym wejsciu do danego bloku – np. ponownym wywolaniu tej samej funkcji – zmienna jest powolana do zycia po raz kolejny oczywiscie przerwanie wykonywania jednej funkcji przez wywolanie innej nie powoduje zlikwidowania zmiennych pierwszej funkcji znajdujacych sie na stosie

    9. Obiekty lokalne statyczne Jesli chcielibysmy, aby zmienna lokalna dla danej funkcji nie „ginela”, tylko przy ponownym wejsciu do tej funkcji miala te sama wartosc jak przy ostatnim opuszczeniu tej funkcji, to musimy ja zdefiniowac jako statyczna deklaracja zmiennej statycznej rózni sie od deklaracji zmiennej „normalnej” tylko slowem static na poczatku: static typ_zmiennej nazwa; obiekty statyczne sa przechowywane w „normalnej” pamieci przyklad: prog514-zliczanie_wywolan.cpp

    10. Funkcje rekurencyjne Funkcja moze wywolywac sama siebie. Jest to tzw. rekurencja (rekursja). Moze to robic kazda funkcja, tyle ze jesli nie ma w niej warunku zatrzymujacego rekurencje, to funkcja bedzie sie wywolywala sie w nieskonczonosc, tzn. az do wyczerpania pamieci przyklad – prog511-silnia_rek.cpp

    11. Funkcja rekurencyjna - zmienne Gdy funkcja rekurencyjna wywoluje sama siebie, na stosie sa juz zmienne automatyczne bedace wlasnoscia pierwszego wywolania tej funkcji. Kolejne jej wywolanie umieszcza na stosie swoje wlasne zmienne automatyczne Zmienne zadeklarowane jako statyczne nie tylko nie gina po zakonczeniu wywolania funkcji, ale sa równiez wspólne dla wszystkich rekurencyjnych wywolan tej funkcji. przyklad – prog512-sumator_rek.cpp

    12. Instrukcja typedef Instrukcja typedef jezyka C++ umozliwia nadanie innej nazwy pewnemu juz istniejacemu typowi: typedef int ocena; ocena s; Dzieki temu mozemy w programie latwo zmienic typ sluzacy do reprezentowanie ocen, jesli zachodzi taka potrzeba przyklad – prog60-typedef.cpp

    13. Rekordy i struktury Jesli potrzebujemy zlozonego typu danych „laczacego w jedna calosc” elementy róznych typów, to: w Pascalu i Adzie mozemy zdefiniowac odpowiedni typ rekordowy przyklad – prog61-osoba.adb w C++ mozemy uzyc tzw. struktury

    14. strukture mozemy zdefiniowac nastepujaco: struct nazwa_struktury { deklaracje elementów }; przyklady: prog61-osoba.cpp prog62-struktura.cpp prog63-punkty.cpp tak naprawde w C++ struktury istnieja glównie dla zgodnosci z C – lepiej uzywac klas – ale na razie mozemy z nich korzystac

    15. Ciagi znaków (lancuchy) Standardowo do reprezentacji napisu uzywa sie tablicy znaków Tablica zawiera napis oraz znak konca napisu Mozna uzywac funkcji gets() i puts() do pobierania/wypisywania napisów przyklad: prog64-zdania.cpp wygodniejszym sposobem jest korzystanie z klasy string (przyklad – prog65-strings.cpp)