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

Podobne dokumenty
C-struktury wykład. Dorota Pylak

C-struktury wykład. Dorota Pylak

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

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

Wstęp do informatyki- wykład 11 Funkcje

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

Wstęp do informatyki- wykład 9 Funkcje

Struktury Struktura polami struct struct struct struct

Podstawy algorytmiki i programowania - wykład 1 Tablice powtórzenie Tablice znaków Tablice dwuwymiarowe

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

Wstęp do informatyki- wykład 7

Wstęp do informatyki- wykład 9 Pętla while, do while,for -pętla w pętli- przykłady Funkcje

Programowanie - wykład 4

Podstawy algorytmiki i programowania - wykład 6 Sortowanie- algorytmy

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

Wstęp do informatyki- wykład 6

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

Wstęp do informatyki- wykład 7

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

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

Podstawy algorytmiki i programowania - wykład 3 Funkcje rekurencyjne Wyszukiwanie liniowe i binarne w tablicy

Podstawy Programowania

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

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

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

1,3,4,2,3,4,0,1,4,5,0. Wówczas największa suma trzech kolejnych liczb (zaznaczone na czerwono) wynosi:

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

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

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Techniki Programowania wskaźniki

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne

Wstęp do programowania

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

Algorytmy i język C++

Część 4 życie programu

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

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

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

tablica: dane_liczbowe

Funkcje. Deklaracja funkcji. Definicja funkcji. Wykorzystanie funkcji w programie.

Wstęp do programowania

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

Pytania sprawdzające wiedzę z programowania C++

Wstęp do informatyki- wykład 8 Pętla while, do while,for -pętla w pętli- przykłady Operator rzutowania Manipulatory

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

Operacje wejścia/wyjścia odsłona pierwsza

Paostwowa Wyższa Szkoła Zawodowa w Płocku Dariusz Wardowski

Techniki Programowania wskaźniki 2

Wzorce funkcji (szablony)

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

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

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

ZASADY PROGRAMOWANIA KOMPUTERÓW

Globalne / Lokalne. Wykład 15. Podstawy programowania (język C) Zmienne globalne / lokalne (1) Zmienne globalne / lokalne (2)

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Pliki wykład 2. Dorota Pylak

Wstęp do Programowania 2

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

KLASY cz.1. Dorota Pylak

TEMAT : KLASY POLIMORFIZM

wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy

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

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

Wstęp do programowania. Wykład 1

#include <iostream> using namespace std; void ela(int); int main( ); { Funkcja 3. return 0; }

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy

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

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

Do czego służą klasy?

Spis treści PROGRAMOWANIE OBIEKTOWE W JĘZYKU C++: FUNKCJE ZAPRZYJAŹNIONE Z KLASĄ, PRZEŁADOWANIE OPERATORÓW. Informatyka 2

Wstęp do Informatyki

Wstęp do programowania

Programowanie obiektowe w C++ Wykład 1

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

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

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

DYNAMICZNE PRZYDZIELANIE PAMIECI

Programowanie Obiektowew języku C++ Zadania L4

Język C++ wykład VI. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VI. dr Jarosław Mederski.

I - Microsoft Visual Studio C++

Programowanie obiektowe W3

Podstawy Programowania

Rozwiązanie. #include <cstdlib> #include <iostream> using namespace std;

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

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

Wprowadzenie do programowania i programowanie obiektowe

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

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

Pliki wykład 2. Dorota Pylak

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

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

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

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

Wstęp do programowania

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

MACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata

Do czego służą klasy?

Tablice są typem pochodnym. Poniżej mamy przykłady deklaracji różnych tablic:

Transkrypt:

1 Podstawy algorytmiki i programowania - wykład 5 C-struktury cd. Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz, Opus magnum C++11, Helion, 2017 B. Stroustrup, Język C++. Kompendium wiedzy. Wydanie IV, Helion, 2014 S. B. Lippman, J. Lajoie, Podstawy języka C++, WNT, Warszawa 2003.

2 Struktura jest zbiorem zmiennych występujących pod wspólna nazwą. Zmienne wchodzące w skład struktury nazywane są polami lub elementami. Struktury używamy, jeśli chcemy zgrupować zmienne jako jeden rekord.

3 struct Data ; int dzien, rok; string miesiac; W tym przypadku nie mamy żadnej zmiennej. Określony jest typ Data będący strukturą o trzech polach. Aby zadeklarować teraz zmienną tego typu to należy zapisać Data dataurodzin; Dopiero po napotkaniu deklaracji zmiennej kompilator przydziela odpowiedni obszar pamięci. DEKLARACJA STRUKTURY

Struktury jako parametry i wyniki funkcji. 4 Struktury zachowują się podobnie jak typy wbudowane, można na przykład przekazywać je jako parametry funkcji, można definiować też funkcje zwracające strukturę jako swój wynik. Użycie struktury jako parametru funkcji jest przekazaniem przez wartość (parametr aktualny musi być tego samego typu). Uwaga: Oczywiście jeśli chcemy korzystać ze struktur w funkcjach musimy strukturę zdefiniować globalnie (przed main()) Przykład. Zdefiniujmy strukturę do przechowywania liczb zespolonych i napiszmy funkcje pobierającą strukturę, wyświetlającą, obliczającą i sumę.

PROGRAM- struktury i funkcje #include<iostream> #include <cmath> using namespace std; struct Zesp double re,im; ; //f-cja która pobiera strukture od użytkownika void pobierz(zesp &z) cout << "Re: "; cin >> z.re; cout << "Im: "; cin >> z.im; //f-cja wyświetla strukturę będącą jej parametrem void wyswietl(zesp z) cout<<z.re<<"+"<<z.im<<"i"; 5

PROGRAM- struktury i funkcje //f-cja zwraca moduł liczby będącej jej parametrem float modul(zesp z) return sqrt(z.re*z.re+z.im*z.im); //f-cja oblicza w wyniku sumę liczb zespolonych, //będących parametrami funkcji Zesp suma(zesp z1,zesp z2) Zesp z; z.re = z1.re + z2.re; z.im = z1.im + z2.im; return z; 6

PROGRAM- struktury i funkcje cd. int main() Zesp z; pobierz(z); Zesp s = 1.0, 2.0; wyswietl(z); wyswietl(s); z = suma(z,s); wyswietl(z); return 0; 7

8 Tablice struktur Tablice struktur definiujemy analogicznie jak inne tablice. Przykłady definiowania tablic struktur: struct Punkt double x,y; ; Punkt tab[10];//tablica 10 punktów Punkt tab2[2]=1,1,-3,4;//z inicjalizacja oraz korzystania z elementów tablic: tab[1] = tab2[1];// struktura przypisana strukturze tab[1].x = tab[0].x + 11;

Tablice struktur 9 struct Punktdouble x,y; ; Punkt tab[10];//tablica 10 punktów Pobierzmy od użytkownika elementy tablicy tab: for(int i = 0; i<10; i++) cout << "podaj wspolrzedne "<< i <<" punktu/n"; cout << "x= "; cin >> tab[i].x; cout << "y= "; cin >> tab[i].y; Wyświetlmy elementy tablicy tab: for(int i = 0; i<10; i++) cout<<"( "<< tab[i].x <<","<< tab[i].y <<")"<<endl;

10 Struktury z tablicami struktur przykład Dla danej struktury struct Auto string marka; string model; int rok_produkcji; double pojemnosc; ; napisz funkcję wczytajauto typu void, która pobierze z klawiatury informacje o samochodzie i zwróci je jako parametr typu Auto. void wczytajauto(auto &sam) cout<<"marka: "; cin>>sam.marka; cout<<"model: "; cin>>sam.model; cout<<"rok produkcji: "; cin>>sam.rok_produkcji; cout<<"pojemnosc: "; cin>>sam.pojemnosc;

11 Struktury z tablicami struktur przykład Wykorzystując strukturę Auto z poprzedniego zadania oraz strukturę struct Komis int ilsam; //liczba samochodow Auto tabsam[100]; ; A) napisz funkcję która wyświetla dane komisu void wyswietlkomis(const Komis &k)//& by nie kopiować // dużej struktury i const by zaznaczyć, że nie chcemy jej zmieniać if(k.ilsam>0) for (int i=0;i<k.ilsam;i++) cout<<k.tabsam[i].marka<<", " <<k.tabsam[i].model<<", " <<k.tabsam[i].rok_produkcji<<", " <<k.tabsam[i].pojemnosc<<endl; else cout<<"brak aut w komisie"<<endl; Uwaga: Gdy funkcja nie modyfikuje wartości struktury lepiej strukturę przekazać do funkcji przez stałą referencję const Komis &k

12 Struktury z tablicami struktur przykład c.d. B) napisz dwuparametrową funkcję int ileaut(const Komis &k, int granica) zwracającą liczbę całkowitą równą liczbie samochodów w komisie k o roku produkcji większym od wartości drugiego parametru granica lub lub -1 w przypadku braku samochodów w komisie int ileaut(const Komis &k, int granica) if (k.ilsam <= 0) return -1; int ile = 0; //zerujemy licznik //przeglądamy wszystkie auta w komisie for (int i=0; i < k.ilsam; i++) if (k.tabsam[i].rok_produkcji > granica) ile++; return ile;

13 Struktury z tablicami struktur przykład c.d. C) napisz funkcję o nagłówku int najstarszeauto(komis & k); która dla przekazanego jako parametr komisu k wyznaczy indeks najstarszego samochodu w komisie (czyli o najmniejszym roku produkcji) lub -1 w przypadku braku samochodów w komisie. Jeśli w komisie jest kilka aut o tym samym najmniejszym roku produkcji, funkcja ma zwracać indeks pierwszego z nich. int najstarszeauto(komis & k) if (k.ilsam <= 0) return -1; //na początku przyjmujemy, ze 0-we auto ma min rok prod int indmin = 0; int wiekmin = k.tabsam[0].rok_produkcji; //przeglądamy pozostałe auta w komisie for (int i=1; i < k.ilsam; i++) //jeśli spotkamy starsze czyli o mniejszym roku prod. if(k.tabsam[i].rok_produkcji < wiekmin) //zapamiętujemy jego indeks i rok produkcji indmin = i; wiekmin = k.tabsam[i].rok_produkcji; return indmin;

14 Struktury z tablicami struktur przykład c.d. int main() Komis autokomis = 3,"opel","zafira",2015,2.0, "citroen","c3",2012,1.7, "kia","sportage",2005,1.9 ; wyswietlkomis(autokomis); int ind = najstarszeauto(autokomis); if(ind >= 0) else cout<<"indeks najstarszego auta "<<ind<<endl; cout<<"nie ma aut w komisie"<<endl;

Struktury z tablicami struktur przykład c.d. 15 int ile = ileaut(autokomis,2010); if(ile >= 0) cout<<"w komisie mamy "<<ile <<" aut wyprodukowanych po 2010 roku"; else cout<<"nie ma aut w komisie"<<endl; return 0;

Struktury z tablicami struktur przykład c.d. 16 Wyniki działania powyższego programu: opel, zafira, 2015, 2 citroen, c3, 2012, 1.7 kia, sportage, 2005, 1.9 indeks najstarszego auta 2 w komisie mamy 2 aut wyprodukowanych po 2010 roku