1 Definiowanie prostych klas



Podobne dokumenty
1 Dziedziczenie. 1.1 Koncepcja dziedziczenia. Ćwiczenie 3

Ćwiczenia podstawowe, zestaw 5, część 1

Wprowadzenie do programowanie obiektowego w języku C++

Programowanie - wykład 4

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

Mechanizm dziedziczenia

Programowanie obiektowe w języku C++

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Wyjątki (exceptions)

TEMAT : KLASY POLIMORFIZM

dr inż. Jarosław Forenc

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

class Student Deklaracja klasy Osoba: Deklaracja klasy Student:

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

Mechanizm dziedziczenia

Programowanie Obiektowew języku C++ Zadania L4

TEMAT : KLASY DZIEDZICZENIE

Zaawansowane programowanie w języku C++ Programowanie obiektowe

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.

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

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

#include <stdio.h> int main( ) { int x = 10; long y = 20; double s; s = x + y; printf ( %s obliczen %d + %ld = %f, Wynik, x, y, s ); }

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

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

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

Język C++ wykład VIII

Programowanie Obiektowew języku C++ Zadania L4

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

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

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

Programowanie komputerowe. Zajęcia 7

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

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

WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy

Wstęp do informatyki- wykład 11 Funkcje

Programowanie w języku C++

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

Podstawy Programowania Obiektowego

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

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

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

Podstawy Programowania Podstawowa składnia języka C++

Do czego służą klasy?

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

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

Zadania z podstaw programowania obiektowego

Część 4 życie programu

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

I - Microsoft Visual Studio C++

Programowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 3. Instrukcje wyboru

Programowanie w C++ - wybrane przykłady szablonów Opracowanie: dr hab. Mirosław R. Dudek, prof. UZ

Programowanie obiektowe język C++

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

Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18

Podstawy programowania w języku C++ Zadania - dziedziczenie i polimorfizm

Programowanie Obiektowew języku C++ Zadania L8

Kilka prostych programów

Projektowanie klas c.d. Projektowanie klas przykład

Plik klasy. h deklaracje klas

Wstęp do programowania

Laboratorium 1 - Programowanie proceduralne i obiektowe

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

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

Informatyka 2. Informatyka 2. Wykład nr 1 ( ) Dane podstawowe. - Wydział Elektryczny. Politechnika Białostocka. Program wykładu (1/2)

Dokumentacja do API Javy.

Język ludzki kod maszynowy

Operacje wejścia/wyjścia (odsłona druga) - pliki

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

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.

Języki programowania obiektowego

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Wprowadzenie do obiektowości

Wstęp do programowania

Programowanie komputerowe. Zajęcia 1

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

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

Programowanie Obiektowo Zorientowane w języku C++ Klasy, pola, metody

Szablony funkcji i szablony klas

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

Zajęcia nr 5 Algorytmy i wskaźniki. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

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

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

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

Wstęp do informatyki- wykład 9 Funkcje

Wstęp do informatyki- wykład 7

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM

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

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

PARADYGMATY PROGRAMOWANIA Wykład 2

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

C++ wprowadzanie zmiennych

Wykład :37 PP2_W9

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

Polimorfizm w pigułce

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

Do czego służą klasy?

Transkrypt:

Ćwiczenie 1 1 Definiowanie prostych klas Ćwiczenie to poświęcone jest poznaniu podstawowych zagadnień związanych z definiowaniem prostych klas. Obejmuje m.in. ćwiczenia pozwalające opanować definiowanie konstruktorów, funkcji składowych spełniających rolę akcesorów i realizatorów. Ćwiczenie obejmuje również poznanie podstawowych możliwości obiektowej biblioteki strumieniowej oraz predefiniowanych obiektów cout i cin. Materiał teoretyczny, niezbędny dla zrozumienia prezentowanych przykładów zawierają materiały wykładowe dostępne online, w postaci dokumentu pdf, pod adresem: http://zsi.tech.us.edu.pl/~romek/dyd/pjp/pjp_cxx.pdf. Biblioteka strumieniowa: str. 5-8, informacje dotyczące klas i obiektów: str. 9-20. 1.1 Krok pierwszy Należy napisać obiektową wersję programu pozwalającego na obliczanie pola kwadratu. Program pozwala na wprowadzenie liczby rzeczywistej reprezentującej bok kwadratu, oblicza jego pole i wyprowadza do strumienia wyjściowego programu. Obliczenia ma realizować obiekt reprezentujący kwadrat. Niech obiekt nazywa się s, i należy do klasy Square. Przykładowy kod funkcji main może mieć następującą postać: double num; Square s; cout << endl << "Obliczam pole kwadratu" << endl; cout << "Podaj bok: "; cin >> num; s.setside( num ); cout << "Pole kwadratu wynosi: " << s.area(); Przykłady i ćwiczenia

Definiowanie prostych klas Funkcja składowa setside umożliwia ustalenie długości boku obiektu s. Funkcja area pozwala na obliczenie pola. Program należy oczywiście uzupełnić o włączenie odpowiednich plików nagłówkowych oraz definicję klasy Square. Warto również przed zakończeniem programu wstawić sekwencję zatrzymująca jego wykonanie, tak, aby wyniki jego działania były widoczne. Kompletny program nie zawierający jednak konstruktorów zawiera przedstawiony dalej kod źródłowy. #include <iostream> using namespace std; class Square public : void setside( double side ); double getside(); double area(); private: double side; ; void Square::setSide( double side ) Square::side = side; double Square::getSide() return side; double Square::area() return side * side; double num; Square s; cout << endl << "Obliczam pole kwadratu" << endl; cout << "Podaj bok: "; cin >> num; s.setside( num ); cout << "Pole kwadratu wynosi: " << s.area(); cin.ignore(); cin.get(); Wprowadzenie do programowania w języku C++

Przedstawioną powyżej klasę Square należy rozszerzyć o konstruktor domyślny. Zobacz str. 13 materiałów wykładowych. 1.2 Krok drugi Rozszerzyć program o możliwość obliczania pól innych figur: prostokąta, trójkąta, okręgu, trapezu. Dla każdej z figur należy zdefiniować odpowiednią klasę: Rectangle, Triangle, itp.. Funkcję main należy rozbudować o proste menu pozwalające na wybranie typu figury. Szablon takiego rozwiązania zawiera przedstawiony dalej kod źródłowy. char c; cout << endl << "Wybierz figure:" << endl; cout << "1.Kwadrat\n2.Prostokat\n3.Trojkat\n>"; cin >> c; switch( c ) case '1' : cout << "Obliczenia dla kwadratu" << endl; case '2' : cout << "Obliczenia dla prostokata" << endl; case '3' : cout << "Obliczenia dla trojkata" << endl; cin.ignore(); cin.get(); Aby umożliwić wielokrotne wykonywanie obliczeń bez konieczności powtórnego uruchamiania programu, można go rozbudować o iterację, co ilustruje przedstawiony dalej kod źródłowy. Oczywiście menu programu należy rozbudować o opcję np. identyfikowaną przez kolejny numer pozwalającą na wybranie zakończenia programu. Przykłady i ćwiczenia

... do cout << endl << "Wybierz figure:" << endl; cout << "1.Kwadrat\n2.Prostokat\n3.Trojkat\n4.Koniec\n>"; cin >> c; switch( c ) case '1' : cout << "Obliczenia dla kwadratu" << endl; case '2' : cout << "Obliczenia dla prostokata" << endl; case '3' : cout << "Obliczenia dla trojkata" << endl; while( c!= '4' );... 1.3 Krok trzeci Program w wersji dla kilku figur się rozrasta, rozrasta się również jego funkcja main. Można oczywiście podzielić program na funkcje ale nasz program zacznie wtedy być hybrydą proceduralno-obiektową! Proponuję wprowadzić obiekt, który będzie reprezentował nasz program. Niech obiekt nazywa się myprog a jego klasa Program. Przykład funkcji main wykorzystującej taki obiekt może wyglądać następująco: Program myprog; myprog.run(); Definicja klasy Program: class Program public : Program(); ; void run(); void squarearea(); void rectanglearea(); void trianglearea();

Implementacja funkcji składowych: Program::Program() cout << endl << "Program obliczający pola figur" << endl; void Program::run() char c; do cout << endl << "Wybierz figure:" << endl; cout << "1.Kwadrat\n2.Prostokat\n3.Trojkat\n4.Koniec\n>"; cin >> c; switch( c ) case '1' : squarearea(); case '2' : rectanglearea(); case '3' : trianglearea(); while( c!= '4' ); void Program::squareArea() cout << "Obliczenia dla kwadratu" << endl; void Program::rectangleArea() cout << "Obliczenia dla prostokata" << endl; void Program::triangleArea() cout << "Obliczenia dla trojkata" << endl; 1.4 Krok czwarty i ostatni W oparciu o przedstawione w poprzednich punktach przykłady należy opracować program, obliczający pola figur (kwadrat, prostokąt, koło, trójkąt, trapez). Program

ma wyświetlać menu umożliwiające wybór figury, po dokonaniu tego wyboru program wczytuje niezbędne dane, wyświetla wyniki, po czym wraca do menu umożliwiając dokonanie powtórnych obliczeń. Każda figura posiada klasę reprezentującą ją w programie, wszelkie obliczenia realizowane są przy wykorzystaniu funkcji składowej area każdej z klas. Obliczenie nadzoruje klasa reprezentująca program, przybierając postać podobna do klasy Program. 1.5 Co po tym ćwiczeniu należy umieć? Zakładam, że po tym ćwiczeniu każdy potrafi odpowiedzieć na pytanie: 1. Co to jest obiekt a co to jest klasa? 2. Co to jest pole i funkcja składowa? 3. Jakie są reguły dostępu do składowych public a jakie do składowych private? 4. Co to jest konstruktor i do czego służy? 5. Co to jest konstruktor domyślny, kiedy jest aktywowany i jak się go deklaruje? 6. Co to jest konstruktor ogólny, kiedy jest aktywowany i jak się go deklaruje? 7. Co to są akcesory, realizatory i do czego służą? Zakładam również, że każdy potrafi napisać od podstaw klasę o stopniu skomplikowania zbliżonym do przećwiczonych klas reprezentujących figury, oraz że każdy wie jak wyprowadzać dane z wykorzystaniem strumienia cout i wczytywać dane z wykorzystaniem strumienia cin.