Programowanie w C++ Wykład 4. Katarzyna Grzelak. 19 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37

Podobne dokumenty
Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Programowanie w C++ Wykład 3. Katarzyna Grzelak. 12 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 35

Techniki Programowania wskaźniki

Techniki Programowania wskaźniki 2

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

> C++ wskaźniki. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki 26 kwietnia 2017

1 Wskaźniki. 1.1 Główne zastosowania wskaźników

Techniki Programowania przeładowanie funkcji

Podstawy programowania. Wykład: 6. Tablice statyczne. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Wykład nr 3. Temat: Wskaźniki i referencje. Edward Morgan Forster

Programowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27

Podstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia

Wskaźniki. Informatyka

Podstawy programowania w języku C++

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Laboratorium nr 9. Temat: Wskaźniki, referencje, dynamiczny przydział pamięci, tablice dynamiczne. Zakres laboratorium:

Wykład 1: Wskaźniki i zmienne dynamiczne

Wskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17

Laboratorium nr 10. Temat: Funkcje cz.2.

Języki i metodyka programowania. Wskaźniki i tablice.

Wstęp do wskaźników w języku ANSI C

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

Wskaźniki. nie są konieczne, ale dają językowi siłę i elastyczność są języki w których nie używa się wskaźników typ wskaźnikowy typ pochodny:

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

IX. Wskaźniki.(3 godz.)

KURS C/C++ WYKŁAD 6. Wskaźniki

Lab 9 Podstawy Programowania

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Wykład 3 Składnia języka C# (cz. 2)

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

Podstawy programowania. Wykład: 8. Wskaźniki. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

DYNAMICZNE PRZYDZIELANIE PAMIECI

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

Materiał Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Wskaźniki Tablice dynamiczne Referencje Funkcje

W dowolnym momencie można zmienić typ wskaźnika.

Wstęp do programowania

XV. Wskaźniki Odczytywanie adresu pamięci istniejących zmiennych Wskaźniki pierwsze spojrzenie.

Język C zajęcia nr 11. Funkcje

Część 4 życie programu

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 21 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 24

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Wstęp do programowania

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

Programowanie komputerowe. Zajęcia 4

Wstęp do informatyki- wykład 11 Funkcje

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

tablica: dane_liczbowe

Wstęp do informatyki- wykład 9 Funkcje

Programowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 4. Karol Tarnowski A-1 p.

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31

Algorytmika i programowanie. Wykład 2 inż. Barbara Fryc Wyższa Szkoła Informatyki i Zarządzania w Rzeszowie

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

typ y y p y z łoż o on o e n - tab a lice c e w iel e owym m ar a o r we, e stru r kt k ury

Tablice (jedno i wielowymiarowe), łańcuchy znaków

Wykład 4: Klasy i Metody

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

KURS C/C++ WYKŁAD 8. Deklaracja funkcji informuje komplilator jaką wartość funkcja będzie zwracała i jakiego typu są jej argumenty.

Konstruktor kopiujacy

Wstęp do programowania obiektowego, wykład 7

ZASADY PROGRAMOWANIA KOMPUTERÓW

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

Referencje do zmiennych i obiektów

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

main( ) main( void ) main( int argc, char argv[ ] ) int MAX ( int liczba_1, liczba_2, liczba_3 ) źle!

Tablice, funkcje, wskaźniki - wprowadzenie

Podstawy programowania 1

Wskaznik. Przekazywanie wyniku funkcji przez return. Typy i zmienne wskaznikowe. Zmienna wskazywana. typ * nazwa_wkaznika

Podstawy algorytmiki i programowania - wykład 4 C-struktury

Język C++ zajęcia nr 2

Programowanie w języku C++

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32

ISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje

Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40

Języki programowania obiektowego Nieobiektowe elementy języka C++

Język C++ Różnice między C a C++

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Podstawy programowania skrót z wykładów:

Programowanie 2. Język C++. Wykład 3.

Programowanie komputerowe. Zajęcia 2

Języki programowania. Przetwarzanie tablic znaków. Część druga. Autorzy Tomasz Xięski Roman Simiński

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Podstawy programowania

Przekazywanie argumentów wskaźniki

Wskaźniki w C. Anna Gogolińska

Podstawy algorytmiki i programowania - wykład 2 Tablice dwuwymiarowe cd Funkcje rekurencyjne

Tablice i funkcje. Marcin Makowski. 26 listopada Zak lad Chemii Teoretycznej UJ

część 8 wskaźniki - podstawy Jarosław Gramacki Instytut Informatyki i Elektroniki Podstawowe pojęcia

Języki i techniki programowania Ćwiczenia 2

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1

Transkrypt:

Programowanie w C++ Wykład 4 Katarzyna Grzelak 19 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 37

Funkcje cd K.Grzelak (Wykład 1) Programowanie w C++ 2 / 37

Funkcja powtórzenie Funkcje == podprogramy Funkcję uruchamia się podajac jej nazwę i w okragłym nawiasie argumenty (wartości zmiennych na których pracuje funkcja) K.Grzelak (Wykład 1) Programowanie w C++ 3 / 37

Funkcja powtórzenie int potega(int podstawa, int wykladnik){ int wynik=1; for(int i=0;i<wykladnik;i++){ wynik=wynik*podstawa; } return wynik; } potega nazwa funkcji (int podstawa, int wykladnik) argumenty funkcji za return to co funkcja zwraca przed nazwa funkcji typ wyniku K.Grzelak (Wykład 1) Programowanie w C++ 4 / 37

Przykłady deklaracji i wywołania funkcji Deklaracje int fun1(); double f2(double czas, int typ); void rysuj(char znak, int n); Przykładowe wywołania powyższych funkcji int wynik1=fun1(); cout «f2(158.6,5) «endl; rysuj( A,10); K.Grzelak (Wykład 1) Programowanie w C++ 5 / 37

Liczenie n! bez funkcji K.Grzelak (Wykład 1) Programowanie w C++ 6 / 37

Liczenie n! w funkcji K.Grzelak (Wykład 1) Programowanie w C++ 7 / 37

Liczenie n! rekurencyjnie K.Grzelak (Wykład 1) Programowanie w C++ 8 / 37

Przesyłanie argumentów do funkcji Poprzedni wykład Przesyłanie argumentów do funkcji przez wartość Przesyłanie argumentów do funkcji przez referencję Nowe Przesyłanie argumentów do funkcji przy użyciu wskaźników K.Grzelak (Wykład 1) Programowanie w C++ 9 / 37

Wskaźniki K.Grzelak (Wykład 1) Programowanie w C++ 10 / 37

Wskaźniki int *wsk; wsk jest wskaźnikiem do pokazywania na obiekty typu int adres w pamięci gdzie znajduje się dany obiekt K.Grzelak (Wykład 1) Programowanie w C++ 11 / 37

Wskaźniki co zrobić żeby wskaźnik na coś pokazywał? int *wski; int liczba=150; wski= &liczba; K.Grzelak (Wykład 1) Programowanie w C++ 12 / 37

Wskaźniki Wskaźniki pokazuja na obiekty konkretnego typu. int *wski; double *wskd; K.Grzelak (Wykład 1) Programowanie w C++ 13 / 37

Wskaźniki jak odczytać zawartość obiektu na który pokazuje wskaźnik char *wskc; char znak= A ; wskc= &znak; cout «Wskaźnik pokazuje na literę «(*wski) «endl; L-wartość (l-value) Możliwe przypisanie typu *wskc= C ; K.Grzelak (Wykład 1) Programowanie w C++ 14 / 37

Wskaźniki Przykładowy rezultat działania programu: wsk * 0xbfde1498 0xbfde149c numer & 0xbfde149c 855 K.Grzelak (Wykład 1) Programowanie w C++ 15 / 37

Do czego potrzebne sa wskaźniki Przesyłanie argumentów do funkcji (podobnie jak w przypadku referencji funkcja pracuje na oryginale obiektu) Dynamiczna rezerwacja pamięci Praca z tablicami... K.Grzelak (Wykład 1) Programowanie w C++ 16 / 37

Przesyłanie argumentów do funkcji Argumenty przesyłane przez referencje K.Grzelak (Wykład 1) Programowanie w C++ 17 / 37

Przesyłanie argumentów do funkcji Argumenty funkcji sa wskaźnikami K.Grzelak (Wykład 1) Programowanie w C++ 18 / 37

Przesyłanie argumentów do funkcji Przesyłanie prostych obiektów mniej wygodne niż przez referencje (w języku C nie ma referencji) Konieczne przy przesyłaniu tablic K.Grzelak (Wykład 1) Programowanie w C++ 19 / 37

Tablice K.Grzelak (Wykład 1) Programowanie w C++ 20 / 37

Tablice Definicja Tablica to ciag obiektów tego samego typu, zajmujacy ciagły obszar pamięci. Przykłady int tab1[100]; double rzecz[250]; int *twsk[15]; char znaki[10]; int tab2d[10][5]; K.Grzelak (Wykład 1) Programowanie w C++ 21 / 37

Tablice Przykład int tab[6]; Kolejne elementy tablicy to: tab[0], tab[1], tab[2], tab[3], tab[4], tab[5] Ważne! Numeracja tablicy zaczyna się od zera! Ostatni element n-elementowej tablicy ma numer n-1! K.Grzelak (Wykład 1) Programowanie w C++ 22 / 37

Tablice Ważne! Próba odwołania do nieistniejacego elementu tablicy powoduje katastrofę. K.Grzelak (Wykład 1) Programowanie w C++ 23 / 37

Inicjalizacja tablic Równoważne inicjalizacje int tab[6]={5,15,4,0,0,0}; int tab[6]={5,15,4}; int tab[]={5,15,4,0,0,0}; K.Grzelak (Wykład 1) Programowanie w C++ 24 / 37

Adres poczatku tablicy Ważne! Nazwa tablicy (np. tab) jest adresem w pamięci jej zerowego elementu. Równoważne zapisy: tab &tab[0] K.Grzelak (Wykład 1) Programowanie w C++ 25 / 37

Wskaźniki a tablice Wskaźnik można ustawić na dowolnym elemencie tablicy: int *wsk; int tab[10]; wsk=tab; wsk=&tab[5]; K.Grzelak (Wykład 1) Programowanie w C++ 26 / 37

Wskaźniki a tablice Przesuwanie wskaźnika Wskaźnik pokazujacy na kolejny element tablicy: wsk=wsk+1; lub wsk++ Dodanie liczby całkowitej n do wskaźnika powoduje że pokazuje on na element połozony n elementów dalej. K.Grzelak (Wykład 1) Programowanie w C++ 27 / 37

Wskaźniki a tablice Ważne! Wskaźnik pokazuje na obiekt konkretnego typu => wiedza o ile bajtów musi się przesunać. K.Grzelak (Wykład 1) Programowanie w C++ 28 / 37

Wskaźniki - arytmetyka Kolejne przykłady przesuwania wskaźników wsk++; wsk--; wsk=wsk+10; wsk=wsk-5; K.Grzelak (Wykład 1) Programowanie w C++ 29 / 37

Przesuwanie wskaźników - przykład K.Grzelak (Wykład 1) Programowanie w C++ 30 / 37

Przesuwanie wskaźników - wynik działania programu K.Grzelak (Wykład 1) Programowanie w C++ 31 / 37

Przekazywanie tablicy do funkcji Ważne! Tablicę przesyła się do funkcji podajac adres jej poczatku (i jej rozmiar). K.Grzelak (Wykład 1) Programowanie w C++ 32 / 37

Przekazywanie tablicy do funkcji - przykład Zapis z nawiasami kwadratowymi K.Grzelak (Wykład 1) Programowanie w C++ 33 / 37

Przekazywanie tablicy do funkcji - przykład Zapis wskaźnikowy K.Grzelak (Wykład 1) Programowanie w C++ 34 / 37

Przekazywanie tablicy do funkcji - przykład Zapis mieszany K.Grzelak (Wykład 1) Programowanie w C++ 35 / 37

Przekazywanie tablicy do funkcji - przykład Wszystkie trzy funkcje wywołuje się tak samo. K.Grzelak (Wykład 1) Programowanie w C++ 36 / 37

Na następnym wykładzie Tablice znakowe Tablice wielowymiarowe Dynamiczna alokacja tablicy Argumenty funkcji main... K.Grzelak (Wykład 1) Programowanie w C++ 37 / 37