Laboratorium 1 - Programowanie proceduralne i obiektowe



Podobne dokumenty
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 INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

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

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

dr inż. Jarosław Forenc

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

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

Programowanie obiektowe

Programowanie obiektowe

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

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Podstawy Programowania Obiektowego

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

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Informatyka II. Laboratorium Aplikacja okienkowa

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Informatyka I : Tworzenie projektu

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

TEMAT : KLASY DZIEDZICZENIE

Programowanie obiektowe

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

Wykład 8: klasy cz. 4

Programowanie obiektowe

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

Język programowania. Andrzej Bobyk

PROE wykład 4 pozostałe operatory, forward declaration, dziedziczenie. dr inż. Jacek Naruniec

Programowanie obiektowe

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Programowanie obiektowe

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

W2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :

Do czego służą klasy?

Zofia Kruczkiewicz, ETE8305_2 1

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

Języki i paradygmaty programowania

public: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje

Wykład 5 Okna MDI i SDI, dziedziczenie

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Lokalizacja Oprogramowania

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

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 wiadomości teoretycznych (nie, nie jest to masło maślane ani wstęp, wstępów proszę cierpliwie czytać)

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Podstawy Programowania 2

Mechanizm dziedziczenia

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Technologie i usługi internetowe cz. 2

Multimedia JAVA. Historia

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Mechanizm dziedziczenia

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

Wstęp do programowania. Wykład 1

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

Materiały do zajęć VII

Klasy i obiekty cz II

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

Wykład 5: Klasy cz. 3

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie obiektowe zastosowanie języka Java SE

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

Aplikacje w środowisku Java

Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy

Programowanie Komputerów 2FD. Materiały pomocnicze do laboratorium

Programowanie obiektowe

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

Polimorfizm w pigułce

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

C# /.NET. Copyright by 3bird Projects 2018,

Aplikacje w środowisku Java

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

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

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.

PARADYGMATY PROGRAMOWANIA Wykład 2

KLASY cz.1. Dorota Pylak

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

Do czego służą klasy?

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Podstawy i języki programowania

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

Różne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Języki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk. tel: Konsultacje: piątek:

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

Wprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class).

OBIEKTY PHP. G. Panuś

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

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Programowanie obiektowe

Programowanie obiektowe w języku C++ Zarządzanie procesami. dr inż. Jarosław Forenc. Przeładowanie (przeciążanie) operatorów

Programowanie obiektowe - 1.

Wstęp do Programowania 2

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

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

Rozdział 4 KLASY, OBIEKTY, METODY

Co to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu.

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

Transkrypt:

Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje? (b) Przykładowa struktura programu 2. Programowanie obiektowe (a) Różnica pomiędzy programowaniem proceduralnym a obiektowym? i. Czym jest obiekt? (b) Podstawowe paradygmaty programowania obiektowego: i. Abstrakcja ii. Hermetyzacja iii. Dziedziczenie iv. Polimorfizm 2 Tworzenie nowego projektu w MS Visual Studio 2010 W celu utworzenia programu, należy najpierw stworzyć Projekt, w którym umieścimy pliki źródłowe i nagłówkowe. Po uruchomieniu Visual Studio pojawi się ekran wyboru poprzednio używanych projektów oraz możliwość stworzenia nowego. Po kliknięciu New Project pojawi się menu wyboru typu projektu. Można wybrać spośród dostępnych języków programowania. Dla języka C++ jest możliwość utworzenia programu uruchamianego w konsoli lub jako aplikację okienkową. Na potrzeby laboratorium należy utworzyć pusty projekt (Epmpty Project). 1

Po utworzeniu projektu, w lewej części pojawi się eksplorator plików (Solution Explorer). Klikając prawy klawisz myszy można dodać nowy plik.cpp poprzez Add New Item. 2

Następnie po wyświetleniu się menu wyboru pliku, należy wybrać plik.cpp i nadać mu nazwę np. main (.cpp jest domyślne dodawane). 3 Zadanie do rozwiązania na zajęciach Zakładamy hodowlę wirtualnych kotów, na początku posiadamy dwa: Mruczusia i Miałczusia. Każdemu z nich należy nadać imię oraz poziom najedzenia, gdzie 0 oznacza bardzo głodny a 100 najedzony. Dodatkowo mamy mieć możliwość nakarmienia kota do poziomu 100. 3.1 Programowanie Proceduralne W podejściu proceduralnym musimy przypisać każdemu elementowi zmienną o odpowiednim typie. Dla imion kotów należy utworzyć zmienne typu string, przechowujący tekst.poziom jedzenia będzie zmienną int. W celu łatwiejszego rozpoznania zmiennych nazwy będą nadawane następująco: kot IMIEKOTA ATRYBUT. Program musi zawierać łącznie 4 zmienne oraz musi zostać stworzona funkcja nakarm zmieniająca poziom jedzenia na 100. 3

1 #i n c l u d e <iostream > 2 #i n c l u d e <s t r i n g > 3 4 u s i n g namespace std ; 5 6 i n t n a k a r m ( ) { 7 r e t u r n 1 0 0 ; 8 } 9 10 void main ( ) { 11 // zakladamy hodowle kotow 12 13 // nadajemy imiona 14 string ko t _ mruczus_ imie = Mruczus ; 15 s t r i n g k o t _ m i a l c z u s _ i m i e = M i alczus ; 16 17 // nadajemy poziom j e d z e n i a 100% najedzony 18 19 i n t k o t _ m r u c z u s _ j e d z e n i e = 8 0 ; //% 20 i n t k o t _ m i a l c z u s _ j e d z e n i e = 3 0 ; //% 21 22 cout<<k o t _ m r u c z u s _ i m i e << j e d z e n i e : <<k o t _ m r u c z u s _ j e d z e n i e <<endl ; 23 cout<<k o t _ m i a l c z u s _ i m i e << j e d z e n i e : <<k o t _ m i a l c z u s _ j e d z e n i e <<endl ; 24 25 // karmimy kota 26 cout<< karmimy M i a l c z u s i a <<endl ; 27 k o t _ m i a l c z u s _ j e d z e n i e=n a k a r m ( ) ; 28 29 cout<<k o t _ m r u c z u s _ i m i e << j e d z e n i e : <<k o t _ m r u c z u s _ j e d z e n i e <<endl ; 30 cout<<k o t _ m i a l c z u s _ i m i e << j e d z e n i e : <<k o t _ m i a l c z u s _ j e d z e n i e <<endl ; 31 32 s y s t e m ( PAUSE ) ; 33 } Efektem wykonania programu jest wypisanie imienia oraz wartości jedzenia kotów przed i po karmieniu. W Visual Studio kompilacji dokonuje się poprzez naciśnięcie klawisza F7 (Build Solution). Program uruchamia się przyciskiem F5. 4

3.2 Programowanie Obiektowe Ten sam program można napisać za pomocą programowania obiektowego. W programowaniu obiektowym można tworzyć obiekty będące pojedynczym bytem ale posiadające w sobie wiele zmiennych i funkcji. Aby stworzyć obiekt danego typu należy najpierw zadeklarować jego strukturę: zmienne, funkcje, konstruktory i destruktory. W tym celu należy skorzystać ze zmiennej typu class. Wewnątrz umieszczamy wszystkie elementy składowe, można je pogrupować w zależności od hermetyzacji: pubic, protected, private. 1 c l a s s k l a s a { 2 p u b l i c : 3 i n t a ; // Zmienna 4 i n t f u n k c j a ( ) ; // Funkcja 5 p r i v a t e : 6 i n t b ; // Zmienna 7 } ; Definiowanie działania funkcji może zostać dokonane na zewnątrz klasy. Do danej funkcji odwołujemy się w następujący sposób 1 T y p Z m i e n n e j N a z w a K l a s y : : N a z w a F u n k c j i ( A r g u m e n t y W e j s c i o w e ) Obiekty danej klasy tworzymy jak zwykłe zmienne np. typu int. Natomiast do pól klasy odwołujemy się poprzez kropki. 1 k l a s a A ; // s t w o r z e n i e o b i e k t u typu k l a s a 2 A. a = 1 ; // p r z y p i s a n i e zmiennej i n t a o b i e k t u A w a r t o s c i 1 3 A. f u n k c j a ( ) // Uruchomienie f u n k c j i o b i e k t u A Zadanie z kotami zrealizowane poprzez program napisany proceduralne, można zapisać obiektowo. W tym celu należy tworzyć obiekty typu Kot zawierające w sobie pola: imię, jedzenie oraz funkcje nakarm. 1 #i n c l u d e <iostream > 2 #i n c l u d e <s t r i n g > 3 4 u s i n g namespace std ; 5 6 c l a s s kot { 7 p u b l i c : 8 string imie ; 9 i n t j e d z e n i e ; 10 void n a k a r m ( ) ; 11 } ; 12 void kot : : n a k a r m ( ) { 13 j e d z e n i e = 1 0 0 ; 14 } 15 16 void main ( ) { 17 // zakladamy hodowle kotow 18 19 //Tworzymy o b i e k t y k l a s y kot 20 kot mruczus ; 21 kot mialczus ; 22 23 24 5

25 // nadajemy imiona 26 mruczus. imie = Mruczus ; 27 mialczus. imie = Mialczus ; 28 29 // nadajemy poziom j e d z e n i a 100% najedzony 30 31 mruczus. jedzenie = 8 0 ; 32 mialczus. jedzenie = 3 0 ; 33 34 cout<<m r u c z u s. imie<< j e d z e n i e : <<m r u c z u s. jedzenie <<endl ; 35 cout<<m i a l c z u s. imie<< j e d z e n i e : <<m i a l c z u s. jedzenie <<endl ; 36 37 // karmimy kota 38 cout<< karmimy M i a l c z u s i a <<endl ; 39 m i a l c z u s. n a k a r m ( ) ; 40 41 cout<<m r u c z u s. imie<< j e d z e n i e : <<m r u c z u s. jedzenie <<endl ; 42 cout<<m i a l c z u s. imie<< j e d z e n i e : <<m i a l c z u s. jedzenie <<endl ; 43 s y s t e m ( PAUSE ) ; 44 } Rezultat uruchomienia jest identyczny jak w poprzednim. Jednak struktura programu jest bardziej czytelna, ponieważ tworzymy tylko dwa obiekty. 6

4 Zadania indywidualne Termin oddania 11-03-2014 4.1 Ocena 3.0 ˆ Zadanie z laboratorium ˆ Stworzyć 4 obiekty klasy kot, które będą zawierać takie informacje jak: imię, jedzenie, wiek, rasa. Uzupełnić informacje oraz wyświetlić je w konsoli. ˆ Rozszerzyć funkcję nakarm() o dodawanie własnej wartości. Należy pamiętać aby zabezpieczyć program przed podaniem przez użytkownika liczby spoza zakresu od 0 do 100. ˆ Wykonać funkcję nakarm z wartościami : -10, 10, 100, 130. Wyświetlić wyniki tych operacji. 4.2 Ocena 4.0 ˆ Zadanie z laboratorium ˆ Zadanie na 3.0 ˆ Dodać pole śpi, które będzie mogło przyjmować wartość true lub false. ˆ Dodać funkcję śpij(), obudź() które będą modyfikować pole śpi oraz funkcję czyśpi(), która sprawdzi czy kot śpi. ˆ Wykorzystać czyśpi(), aby nie można było zastosować funkcji śpij() gdy śpi, i obudź() gdy nie śpi. ˆ Stworzyć funkcję wyświetlająca wszystkie dane kota. 4.3 Ocena 5.0 ˆ Zadanie z laboratorium ˆ Zadanie na 3.0 ˆ Zadanie na 4.0 ˆ Stworzyć nowy plik.cpp ˆ Przerobić poprzedni program tak, aby dokonać pełnej hermetyzacji klasy kot, przy zachowaniu jej funkcjonalności. 7