Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałJolanta Majak Został zmieniony 11 lat temu
1
Podstawy informatyki Powtórka 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
Kalendarium zajęć 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 (zajęcia powtórkowe). 13-12: Rekurencja i rekurencja. 20-12: String – jako tablica char’ów 27-12: Święta 03-01: Operacje IO – obsługa strumieni. 10-01: Wyjątki – idea i obsługa. 17-01: Struktury – idea i obsługa. 24-01: Uzupełnienie materiału + zaliczenia
3
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.
4
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.
5
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;
6
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ą
7
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];
8
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;
9
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];
10
Zadanie 1 - pętle Napisz program, który przy pomocy dowolnej pętli oblicza dwudziesty element ciągu arytmetycznego: a(n+2) = 3*a(n+1)^2 – 4*a(n) + 3; dla: a(0) = 0; a(1) = 5;
11
Zadanie 2 – tablice i operacje
Na podstawie poprzedniego zadania zapisz wybraną z klawiatury ilość elementów do tablicy. utwórz dynamiczną tablicę o zadanym rozmiarze operuj na wartościach tablicy, a nie na zmiennych!
12
Zadanie 3 – funkcje Na podstawie programu z poprzedniego zadania obliczanie kolejnego elementu umieść w funkcji, tak by każdy kolejny element ciągu był wynikiem zwracanym przez funkcje. Funkcja ma być trybu zwracającego Funkcja zwraca bezpośrednio do tablicy kolejny element ciągu
13
Zadanie 4 – Wskaźniki i referencja
Na podstawie programu z poprzedniego zadania zmodyfikuj funkcję w taki sposób by przekazywany był wskaźnik dwie pierwsze wartości (zmienne): Przekaż całą tablicę do funkcji, Funkcja zwraca tablicę Wykorzystaj fakt, że nazwa tablicy jest wskaźnikiem na jej pierwszy element
14
Zadanie 5 – Wskaźniki i referencja
Napisz funkcję, która wyświetli wszystkie elementy w tablicy (przekaż ją jako wskaźnik do funkcji) w formacie: element 1 = wartość element 2 = wartość …
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.