Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałKlaudiusz Marzęcki Został zmieniony 11 lat temu
1
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
Grupa: 1A Prowadzący: Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Wydział Odlewnictwa Akademia Górniczo – Hutnicza im. Stanisława Staszica Kraków,
2
15 zajęć laboratoryjnych
Kalendarium zajęć 15 zajęć laboratoryjnych 11-10: Organizacyjne. 18-10: Typy, operatory, instrukcje warunkowe. 25-10: Pętle (zajęcia powtórkowe). 01-11: Wszystkich świętych 08-11: Pętle. 15-11: Tablice i operacje na nich. 22-11: Funkcje, deklaracja, argumenty 29-11: Wskaźniki i referencje. 06-12: Rekurencja i rekurencja. 13-12: String – jako tablica char’ów 20-12: Operacje IO – obsługa strumieni. 27-12: Święta 03-01: Wyjątki – idea i obsługa. 10-01: Struktury – idea i obsługa. 17,24-01: Uzupełnienie materiału + zaliczenia
3
Funkcje::Deklaracja, definicja użycie
Definicja funkcji: typ_zwracany nazwa_funkcji( argumenty ); Deklaracja funkcji: typ_zwracany nazwa_funkcji( argumenty ) { ciało funkcji }; Funkcja jest to część programu, która możemy wywołać w kodzie programu poprzez podanie jej nazwy w programie oraz poprzez (opcjonalne) przekazanie argumentów do funkcji. Uwaga! Możliwa jest jednoczesna deklaracja z definicja funkcji, ale musi się ona odbyć przed użyciem funkcji w kodzie Przekazywanie argumentów do funkcji jest opcjonalne. Możliwe jest również przekazywanie kilku argumentów jednocześnie. By to zrobić należy rozdzielić jest przecinkami. Przykład: int funkcja(int arg1, int arg2);
4
Funkcje::Przeładowanie
Może istnieć zdefiniowanych wiele funkcji o tej samej nazwie z różną liczbą argumentów jednak ich deklaracja ma być jednoznaczna!
5
Wskaźniki - inicjalizacja
Wskaźnik – zmienna wskaźnikowa – w której zapisywany jest nie obiekt, a adres komórki pamięci, inicjalizowana jest przez dodanie „*” przed nazwą zmiennej; Dzięki wskaźnikom możemy przechowywać np. adres innej zmiennej oraz umożliwić bezpośredni dostęp do tej zmiennej.
6
Referencja Typ referencyjny jest połączeniem funkcjonalności typu wskaźnikowego ze składnią typu bezpośredniego Definicja zmiennej typy referencyjnego tworzona jest przez dodanie symbolu „&” przez nazwą zmiennej typu wskaźnikowego.
7
Wskaźniki i referencje
Operacja Wskaźnik Referencja Zmienne bezpośrednie int a, b; Deklaracja bez inicjalizacji int *wskaznik; - BRAK - Deklaracja z inicjalizacją int *ptr = &a; Int &ref = a; Zmiana zmiennej wskazywanej ptr = &b;
8
Wskaźniki i referencje - przykład
Przykładowy program przedstawiający wykorzystanie wskaźników i referencji w przekazywaniu argumentów do funkcji. Linijka 11: a = 5, b = 7; Linijka 12: przekazanie obiektów do funkcji – brak rezultatów poza funkcją Linijka 14: przekazanie wartości obiektów do funkcji operującej na wskaźnikach – zamiana wartościami a i b poza funkcją Linijka 16: przekazanie referencji obiektów do funkcji – ponowna zamiana wartości zmiennych poza funkcją
9
Wskaźniki vs tablice Zapis: int tab[10] jest interpretowany jako ustalony wskaźnik na początek (pierwszy element) tablicy. Wywołanie samego tab zwróci nam adres pierwszego elementu w tablicy, a nie jego wartość; Zapis: int * p; p = tab; Jest równoznaczny z: p = &tab[0];
10
Wskaźniki vs tablice Nazwa tablicy jest wskaźnikiem na adres jej pierwszego elementu. int *wsk = tab; Zmienne wskaźnikowe można przesuwać, więc zapis tab[0] = 0; tab[1] = 1; … tab[9] = 9; Jest równoznaczny z: *wsk = 0; *(wsk+1) = 1; *(wsk+9) = 9;
11
Tablice dynamiczne Istnieje możliwość dynamicznej alokacji pamięci dla tablicy przy wykorzystaniu wskaźników. Generujemy wtedy tablicę o zalokowanej pamięci o zadanym rozmiarze. Istnieje możliwość zrobienia też dynamicznej tablicy wielowymiarowej, generuje się wtedy tablicę wskaźników na wskaźniki. int** tab = new int*[a];
12
Zadania 0 – nie oceniane Napisz prosty kalkulator (dodawanie, odejmowanie, mnożenie, dzielenie, modulo) wykorzystujący funkcje. Funkcje obliczające wartości powinny być typu zwracającego, Wyniki wyświetl na ekran, Parametry do funkcji przekaż jako: Zmienne Wskaźniki Referencje
13
Zadania 1 Napisz program wczytujący z klawiatury zmienną, a następnie przekaż tą zmienną do funkcji jako argument i wykonaj na niej operację zmieniającą jej wartość. Wynik zwróć do zmiennej. Po wyjściu z funkcji wyświetl wynik działania funkcji oraz zmienną przekazaną do funkcji. Wykonaj to samo zadanie przekazując do funkcji referencję do zmiennej.
14
Zadania 2 Napisz program, który generuje 2 wektory statyczne o zadanym stałym rozmiarze (użyj „const rozmiar = … ;”), a następnie napisz następujące funkcje: Dodawanie wektorów, Odejmowanie wektorów, Zwracanie wartości mniejszej z tych wektorów. Funkcje powinny mieć osobne nazwy i umożliwiać zwracanie wektora. Napisz funkcję „void wypisz()”, która umożliwi wyświetlanie wektorów.
15
Zadanie 3 Napisz program, który utworzy tablicę 3x3 i uzupełni je losowymi wartościami tylko na pierwszej przekątnej, pozostałe wartości mają wynosić 0. Następnie funkcję, która obliczy wskaźnik tej macierzy wiedząc, że: detA = tab[0][0]*tab[1][1]*tab[2][2];
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.