Podstawy Programowania

Podobne dokumenty
Programowanie i struktury danych

Laboratorium nr 10. Temat: Funkcje cz.2.

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

Typy złożone. Struktury, pola bitowe i unie. Programowanie Proceduralne 1

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

Podstawy algorytmiki i programowania - wykład 5 C-struktury cd.

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

Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:

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

C-struktury wykład. Dorota Pylak

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

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

Algorytmy i język C++

Podstawy Programowania Obiektowego

Szablony funkcji i szablony klas

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

Podstawy Programowania

Wprowadzenie do szablonów szablony funkcji

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

Wprowadzenie do szablonów klas

Wykład 5: Klasy cz. 3

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

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

Wprowadzenie do szablonów szablony funkcji

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:

Podstawy Programowania

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

Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006)

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

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

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

Techniki Programowania wskaźniki

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

Ćwiczenie 7 z Podstaw programowania. Język C++, programy pisane w nieobiektowym stylu programowania. Zofia Kruczkiewicz

Konstruktor kopiujacy

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

Podstawy programowania w języku C++

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

Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1

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

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

ZASADY PROGRAMOWANIA KOMPUTERÓW

Programowanie obiektowe w C++ Wykład 1

Lab 9 Podstawy Programowania

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

C-struktury wykład. Dorota Pylak

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

Techniki Programowania wskaźniki 2

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Pola i metody statyczne

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

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Programowanie Obiektowe i C++

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Podstawy Programowania

Podstawy Programowania Obiektowego

Wykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Podstawy programowania w języku C++

PARADYGMATY PROGRAMOWANIA Wykład 3

Wprowadzenie do programowanie obiektowego w języku C++

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

Programowanie komputerowe. Zajęcia 3

// Potrzebne do memset oraz memcpy, czyli kopiowania bloków

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

Wstęp do informatyki- wykład 11 Funkcje

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

Referencje do zmiennych i obiektów

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

Wstęp do informatyki- wykład 9 Funkcje

Wykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Programowanie i struktury danych

Program 22. #include <iostream> using namespace std; struct Osoba { string Imie; string Nazwisko; char Plec; int RokUr; };

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

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

Plik klasy. h deklaracje klas

Język C++ zajęcia nr 2

Wartości domyślne, przeciażenia funkcji

EGZAMIN 2 (14 WRZEŚNIA 2015) JĘZYK C++

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

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Przeciążenie (przeładowanie nazw) funkcji

Wykład 8: klasy cz. 4

PARADYGMATY PROGRAMOWANIA Wykład 4

Operator przypisania. Jest czym innym niż konstruktor kopiujący!

Programowanie obiektowe w C++ Wykład 12

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Wstęp do Programowania 2

Programowanie Procedurale

Wstęp do programowania

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

Transkrypt:

Podstawy Programowania dr Elżbieta Gawrońska gawronska@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 1 / 18

Plan wykładu 1 Typ wyliczeniowy 2 Struktury jako składniki innych struktur 3 Zmienne typu strukturalnego jako argumenty funkcji 4 Przykład wykorzystania struktur i tablicy struktur Funkcja główna Definicje typów strukturalnych Definicja funkcji operujących na strukturach dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 2 / 18

Typ wyliczeniowy Typ wyliczeniowy enum DniTygodnia {Pn, Wt, Sr, Cz, Pt, Sb, N}; cout << Sb << endl; // 5 lub enum DniTygodnia {Pn = 1, Wt, Sr, Cz, Pt, Sb, N}; cout << Sb << endl; // 6 dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 3 / 18

Struktury jako składniki innych struktur Odwołanie do składnika struktury I składnikiem struktury może być także zmienna typu strukturalnego struct SSilnik{ float pojemnosc; int mom_obrotowy; }; struct SAuto{ int l_drzwi, rok_prod; char nazwa[64]; SSilnik silnik; }; dla zmiennej typu SAuto odwołanie do pojemności silnika: dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 4 / 18

Struktury jako składniki innych struktur Odwołanie do składnika struktury II SAuto nissan; nissan.silnik.pojemosc = 1.6; wprowadzając dodatkowo strukturę opisującą silnik SSilnik tworzy się możliwość wykorzystania zmiennych tego typu w innych strukturach, nie tylko w SAuto, np.: struct SSamolot{ int l_miejsc, l_silnikow; float ladownosc; SSilnik silnik; }; dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 5 / 18

Struktury jako składniki innych struktur Odwołanie do składnika struktury III struct SMotocykl{ int masa, rozm_kol; float osiagi; SSilnik * silnik; }; dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 6 / 18

Zmienne typu strukturalnego jako argumenty funkcji Przesyłanie zmiennych typu strukturalnego do funkcji I podobnie jak zwykłe zmienne, zmienne typu strukturalnego można przesłać do funkcji na trzy sposoby: przez wartość (funkcja tworzy kopię parametru aktualnego UWAGA!): void fun(sauto auto); przez wskaźnik (funkcja ma dostęp do oryginalnego parametru aktualnego): void fun_w(sauto * auto); przez referencję (funkcja ma dostęp do oryginalnego parametru aktualnego): void fun_r(sauto & auto); tworzenie kopii zmiennych typu strukturalnego o dużym rozmiarze w funkcjach, może powodować znaczny spadek wydajności programu przy wielokrotnym wywoływaniu takich funkcji stosuje się wtedy przesłanie zmiennych typu strukturalnego do funkcji poprzez referencję dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 7 / 18

Zmienne typu strukturalnego jako argumenty funkcji Przesyłanie zmiennych typu strukturalnego do funkcji II funkcja odbierająca zmienną przez referencję ma dostęp do oryginału (parametru aktualnego) i może go modyfikować aby zablokować możliwość modyfikacji parametru aktualnego należy w funkcji odebrać go poprzez referencję do stałej: void fun_r(const SAuto & auto); dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 8 / 18

Treść zadania Zaprojektować i zaimplementować funkcje: inicjalizujące wartościami początkowymi składowe struktury opisującej silnik, auto i komis samochodowy wyświetaljące zawartość struktury SSilnik, SAuto i SKomis W celu rozwiązania zadania utworzyć struktury opisujące: SSilnik poprzez jego pojemność, moc i rodzaj, SAuto poprzez napęd, rok produkcji, model, kolor i silnik, SKomis poprzez liczbę samochodów, adres i spis samochodów. Zdefiniowane funkcje przetestować podanym poniżej ciągiem instrukcji (funkcja main) dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 9 / 18

Funkcja główna Definicja funkcji main SSilnik sil1 = stworz_silnik ( 1. 6, 114, benzyna ) ; SSilnik sil2 = stworz_silnik ( 1. 4, 100, benzyna ) ; SSilnik sil3 = stworz_silnik ( 2. 0, 140, benzyna ) ; SSilnik sil4 = stworz_silnik ( 2. 5, 125, diesel ) ; SSilnik sil5 = stworz_silnik ( 3. 0, 158, diesel ) ; SAuto samtab = new SAuto [ 6 ] ; samtab [ 0 ] = stworz_auto ( dwa_kola, 2001, Almera, "zielony", sil2 ) ; samtab [ 1 ] = stworz_auto ( dwa_kola, 2006, Qashqai, "czerwony", sil1 ) ; samtab [ 2 ] = stworz_auto ( dwa_kola, 2003, Primera, "srebrny", sil3 ) ; samtab [ 3 ] = stworz_auto ( cztery_kola, 2000, Terrano, "czarny", sil4 ) ; samtab [ 4 ] = stworz_auto ( cztery_kola, 2004, Patrol, "czarny", sil5 ) ; SKomis kom = stworz_komis ( 5, "Czestochowa, al.wp 42", samtab ) ; pokaz_komis ( kom ) ; delete [ ] samtab ; dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 10 / 18

Definicje typów strukturalnych Definicja nowego typu (1) wyliczeniowego enum r_silnika {diesel, benzyna } ; enum r_modelu {Qashqai, Almera, Primera, Terrano, Patrol } ; enum r_napedu {dwa_kola, cztery_kola } ; strukturalnego opisującego silnik struct SSilnik { float pojemnosc ; int moc ; r_silnika rodzaj ; } ; dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 11 / 18

Definicje typów strukturalnych Definicja nowego typu strukturalnego (2) opisującego auto struct SAuto { r_napedu naped ; int rok_prod ; r_modelu model ; string kolor ; SSilnik silnik ; } ; opisującego komis samochodowy struct SKomis { int l_egz ; string adres ; SAuto samochod ; } ; dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 12 / 18

Definicja funkcji operujących na strukturach Definicja funkcji tworzącej silnik inicjalizującej wartościami początkowymi składowe struktury SSilnik SSilnik stworz_silnik ( float poj, int m, r_silnika rodz ) { SSilnik silnik = {poj, m, rodz } ; / l u b t a k : S S i l n i k s i l n i k ; s i l n i k. pojemnosc = p o j ; s i l n i k. moc = m; s i l n i k. r o d z a j = r odz ; / return silnik ; } dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 13 / 18

Definicja funkcji operujących na strukturach Definicja funkcji tworzącej auto inicjalizującej wartościami początkowymi składowe struktury SAuto SAuto stworz_auto ( r_napedu nap, int rok, r_modelu mod, string kol, const SSilnik& silnik ) { SAuto samochod = {nap, rok, mod, kol, silnik } ; / l u b t a k : SAuto samochod ; samochod. naped = nap ; samochod. rok_prod = rok ; samochod. model = mod ; samochod. k o l o r = k o l ; samochod. s i l n i k = s i l n i k ; / return samochod ; } dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 14 / 18

Definicja funkcji operujących na strukturach Definicja funkcji tworzącej komis inicjalizującej wartościami początkowymi składowe struktury SKomis SKomis stworz_komis ( int l_egz, string adr, SAuto samochod ) { SKomis komis = {l_egz, adr, samochod } ; / l u b t a k : komis. l _e g z = l _e g z ; komis. a d r e s = adr ; komis. samochod = samochod ; / return komis ; } dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 15 / 18

Definicja funkcji operujących na strukturach Definicja funkcji wyświetlającej silnik pokazującej wartości składowych struktury SSilnik void pokaz_silnik ( const SSilnik & silnik ) { cout << "\ tpojemnosc : " <<silnik. pojemnosc ; cout << "\tmoc: " << silnik. moc ; cout << "\trodzaj: " << silnik. rodzaj << endl ; } dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 16 / 18

Definicja funkcji operujących na strukturach Definicja funkcji wyświetlającej auto pokazującej wartości składowych struktury SAuto void pokaz_auto ( const SAuto & samochod ) { cout << "Naped: " << samochod. naped ; cout << "\trok prod.: " << samochod. rok_prod ; cout << "\tmodel: " << samochod. model ; pokaz_silnik ( samochod. silnik ) ; } dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 17 / 18

Definicja funkcji operujących na strukturach Definicja funkcji wyświetlającej komis pokazującej wartości składowych struktury SKomis void pokaz_komis ( const SKomis & komis ) { cout << "Liczba egzemplarzy : " << komis. l_egz ; cout << "\tadres: " << komis. adres << endl ; for ( int i = 0 ; i < komis. l_egz ; ++i ) / / p o k a z _ a u t o ( ( komis. samochod+ i ) ) ; pokaz_auto ( komis. samochod [ i ] ) ; } dr Elżbieta Gawrońska (ICIS) Podstawy Programowania 11 18 / 18