| 
			| 
					
						| admin | 
								|  | «  : Luty 27, 2013, 08:08:24 » |  | 
 
 Programowanie strukturalne przedstawia program jako seriê procedur, dzia³aj±cych na danych.Funkcja jest zestawem specyficznych, wykonywanych jedna po drugiej instrukcji.
 Dane s± ca³kowicie odseparowane od funkcji, zadaniem programisty by³o zapamiêtanie,
 która funkcja wywo³uje inne funkcje, oraz jakie dane by³y w wyniku tego zmieniane.
 G³ówn± ide± programowania strukturalnego jest: „dziel i rz±d¼.” Program komputerowy mo¿e byæ uwa¿any za zestaw zadañ.
 Ka¿de zadanie, które jest zbyt skomplikowane aby mo¿na by³o je ³atwo opisaæ, jest rozbijane na zestaw mniejszych zadañ sk³adowych, a¿ do momentu gdy, wszystkie zadania s± wystarczaj±co ³atwe do zrozumienia.
 Programowanie strukturalne stanowi niezwykle efektywny sposób rozwi±zywania z³o¿onych problemów. Posiada kilka ograniczeñ nie pozwalaj±cych na bardziej efektywne u¿ywanie kodu.
 
 Jêzyk C++ jest zorientowanym obiektowo, pozwala to na zastosowanie w nim trzech zasad charakterystycznych dla programowania obiektowego: hermetyzacjê (kapsu³kowanie), dziedziczenie oraz polimorfizm.
 Hermetyzacja(kapsu³kowanie) oznacza ukrycie metod w czê¶ci prywatnej.
 Dziedziczenie to specjalny mechanizm, który umo¿liwia  tworzenie klas pochodnych, czyli bêd±cych niejako rozbudowan± wersj± klas ju¿ istniej±cych.
 Polimorfizm w programowaniu obiektowym oznacza wykorzystanie tego samego kodu do operowania na obiektach przynale¿nych ró¿nym klasom, dziedzicz±cym od siebie. Zjawisko to jest zatem ¶ci¶le zwi±zane z klasami i dziedziczeniem, aczkolwiek w C++ nie dotyczy ono ka¿dej klasy, a jedynie okre¶lonych typów polimorficznych.
 Programowanie obiektowe - pozwala na operowanie w programie struktur± która nosi nazwê obiektu.
 Obiekt = Dane +Metody.
 Dane - (w³a¶ciwo¶ci/ properties) to warto¶ci opisuj±ce obiekt, odpowiadaj± zmiennym w programowaniu strukturalnym. Mo¿na im przypisywaæ warto¶ci za pomoc± operatora = .
 Metody - to funkcje wykorzystywane dla ¶ci¶le okre¶lonych danych.
 Obiekt jest elementem pewnej klasy.
 W C++ nale¿y na pocz±tku zadeklarowaæ klasê i dopiero potem obiekty bêd±ce potomkami klasy.
 
 
 Metoda zstêpuj±ca polega na:
 Roz³o¿yæ ca³y problem na ¶ci¶le okre¶lone podproblemy i udowodniæ, ¿e je¶li ka¿dy podproblem jest rozwi±zany poprawnie, a te rozwi±zania s± po³±czone w okre¶lony sposób, to pierwotny problem te¿ jest rozwi±zany poprawnie. Proces dzielenia na podproblemy nale¿y prowadziæ tak d³ugo, a¿ ich rozwi±zanie mo¿na zapisaæ za pomoc± kilku wierszy w wybranym jêzyku programowania.
 |  
						| 
								|  |  
								|  |  Zapisane | 
 |  |  | 
	| 
			| 
					
						| admin | 
								|  | « Odpowiedz #1 : Luty 27, 2013, 08:31:44 » |  | 
 
 #include <cstdlib>#include <iostream>
 
 using namespace std;
 class osoba
 {protected:
 char imie[255], nazwisko[255];
 int dlug;
 public:
 osoba();
 osoba(char *aimie, char anazwisko, int adlug){};
 private: int wiek;
 };
 
 int main(int argc, char *argv[])
 { osoba miecio;
 system("PAUSE");
 return EXIT_SUCCESS;
 }
 osoba::osoba(){};
 
 W programie przedstawionym wy¿ej napisa³em dwie metody o nazwie osoba. Osoba to równie¿ nazwa klasy. Takie dzia³anie nazywane jest przeci±¿eniem nazwy metody , kompilator rozpozna w³a¶ciw± metodê na podstawie liczby parametrów.
 
 Kolejn± nowo¶ci± jest sposób deklaracji cia³a metody. Podobnie jak przy deklarowaniu funkcji w programowaniu strukturalnym cia³o mo¿na umie¶ciæ przy deklaracji prototypu
 (osoba(char *aimie, char anazwisko, int adlug){};) lub poza deklaracj± klasy (osoba::osoba(){}).
 Wtedy jednak trzeba napisaæ do jakiej klasy przypisana jest dana metoda, s³u¿y temu podwójny dwukropek :: . Operator :: nazywany jest operatorem widoczno¶ci.
 
 Do ograniczenia dostêpu do danych konieczne jest zadeklarowanie z jakimi zmiennymi ma program do czynienia. Istniej± trzy poziomy dostêpno¶ci:
 public - oznacza,¿e umieszczone za nim pola i metody s± dostêpne w ca³ym programie.
 protected - s± dostêpne w sposób bezpo¶redni, przez u¿ycie operatora wyboru sk³adowej - kropki ( o tym pó¼niej) tylko w klasach pochodnych od danej klasy.
 private - brak jest bezpo¶redniego dostêpu do do pól.
 Je¿eli zmienna jest typu public, to mo¿na do niej siê do niej odwo³aæ stosuj±c wywo³anie:
 miecio.osoba();
 
 Je¿eli zmienna jest typu private  lub protected to na zewn±trz klasy nie mo¿na tego zrobiæ, trzeba wykorzystaæ metodê która bêdzie typu public, ale o tym pó¼niej.
 |  
						| 
								|  |  
								|  |  Zapisane | 
 |  |  | 
	| 
			| 
					
						| admin | 
								|  | « Odpowiedz #2 : Marzec 06, 2013, 09:19:59 » |  | 
 
 By³o ciê¿ko spróbujemy trochê ³atwiej. Proszê sobie wyobraziæ,¿e piszemy grê wojenn± w której uczestnicz± pojazdy takie jak czo³gi, transportery, samochody pancerne.
 Zadeklarujmy zatem klasê czolg, która bêdzie posiada³a w³a¶ciwo¶ci : amunicja, predkosc,  odpornosc, strzal.
 #include <cstdlib>
 #include <iostream>
 
 using namespace std;
 class czolg
 {public:
 int amunicja;
 int predkosc;
 int odpornosc;
 int strzal;};
 int main(int argc, char *argv[])
 {
 system("PAUSE");
 return EXIT_SUCCESS;
 }
 -------------------- wersja z klas± transporter ------------------------------------
 #include <cstdlib>
 #include <iostream>
 
 using namespace std;
 class czolg
 {public:
 int amunicja;
 int predkosc;
 int odpornosc;
 int strzal;};
 class transporter
 {public:
 int amunicja;
 int predkosc;
 int odpornosc;
 int strzal;
 int osoby;
 };
 int main(int argc, char *argv[])
 {
 system("PAUSE");
 return EXIT_SUCCESS;
 }
 
 ------------------------------------ wersja uproszczona wykorzystuj±ca dziedziczenie -----------
 #include <cstdlib>
 #include <iostream>
 
 using namespace std;
 class czolg
 {public:
 int amunicja;
 int predkosc;
 int odpornosc;
 int strzal;};
 class transporter :public czolg
 {public:
 int osoby;
 };
 int main(int argc, char *argv[])
 {
 system("PAUSE");
 return EXIT_SUCCESS;
 }
 |  
						| 
								|  |  
								|  |  Zapisane | 
 |  |  | 
	| 
			| 
					
						| admin | 
								|  | « Odpowiedz #3 : Marzec 06, 2013, 09:44:50 » |  | 
 
 #include <cstdlib>#include <iostream>
 
 using namespace std;
 class czolg
 {public:
 int amunicja;
 int predkosc;
 int odpornosc;
 int strzal;};
 class transporter :public czolg
 {public:
 int ludzie;};
 
 int main(int argc, char *argv[])
 {czolg t34;
 transporter rosomak;
 rosomak.predkosc=40;
 rosomak.ludzie=12;
 t34.amunicja=5;
 system("PAUSE");
 
 }
 ------------------- krzaczek, agrest i inne  drzewka---------------------------
 
 
 #include <cstdlib>
 #include <iostream>
 
 using namespace std;
 class krzaczek
 {public:
 int wysokosc(int x){};};
 class ciernisty : public krzaczek{};
 class drzewo
 {public:
 int wysokosc;};
 class lisciast:public drzewo{};
 int main(int argc, char *argv[])
 {lisciast brzoza;
 brzoza.wysokosc=5;
 system("PAUSE");
 return EXIT_SUCCESS;
 }
 |  
						| 
								|  |  
								| « Ostatnia zmiana: Marzec 13, 2013, 10:28:57 wys³ane przez admin » |  Zapisane | 
 |  |  | 
	| 
			| 
					
						| admin | 
								|  | « Odpowiedz #4 : Marzec 13, 2013, 09:08:51 » |  | 
 
 Destruktor i konstruktor. Programowanie obiektowe wprowadza dwie funkcje pe³ni±ce szczególn± rolê.
 Konstruktor - który s³u¿y do automatycznego inicjowania obiektów.
 Destruktor -funkcja s³u¿±ca do kasowania obiektu. Kiedy wykorzystywany jest destruktor? Destruktor wykorzystywany jest wtedy , kiedy przed usuniêciem obiektu musz± byæ wykonane pewne dzia³ania, np. usuniêcie z pamiêci danych, wys³anie zapytania, czy u¿ytkownik jest pewien swojego dzia³ania.
 Konstruktor tworzy, a destruktor usuwa obiekt i zwalnia zarezerwowan± dla obiektu pamiêæ.
 
 Konstruktory i Destruktory domy¶lnie s± zawsze funkcjami bezargumentowymi-  czyli nie zwracaj± rezultatu.
 Nazwa Konstruktora jest identyczna jak nazwa klasy do której jest przypisany.
 W jêzyku C++ mo¿na przeci±¿aæ Konstruktory, nie mo¿na przeci±¿aæ Destruktorów.
 
 W jêzyku C++ deklaracja konstruktora nie jest konieczna. W przypadku braku zadeklarowanego konstruktora kompilator jêzyka C++ automatycznie dodaje konstruktor bezparametrowy, który niczego nie wykonuje. Brak konstruktora jest jednak pewnym odstêpstwem od regu³y.
 Obecno¶æ konstruktora, to kompletna klasa.
 
 
 #include <cstdlib>
 #include <iostream>
 #include<string>
 using namespace std;
 class motocykl
 {
 int rocznik;
 std::string producent;
 public:
 std::string model;
 motocykl();
 ~motocykl();                                               //DEKLARACJA DESTRUKTORA
 };
 motocykl::motocykl()
 {
 cout<<"Do tej pory  nasz obiekt ma dane: \n";
 cout<<"\n Producent: "<<producent;
 cout<<"\n Rocznik"<<rocznik;
 cout<<"\n Model"<<model;
 cout << "\n Teraz konstruktor nadaje poczatkowe \n";
 cout << " wartosci danym obiektu \n";
 producent="Yamaha";
 model="YZF - R1";
 rocznik=2008;
 cout<<"\n Kostruktor nadal wartosci: \n";
 cout<<"\n Producent: "<<producent;
 cout<<"\n Model: "<<model;
 cout<<"\n Rocznik: "<<rocznik;
 }
 
 motocykl::~motocykl() {                               // DEFINICJA DESTRUKTORA
 cout << "\n \n zniszczylem ERLANA";
 }
 
 int main(int argc, char *argv[])
 {
 motocykl ERLAN;
 cout<<"\n-----------------------";
 cout << "\n zmieniam model";
 ERLAN.model="R6";              //ODWO£ANIE SIÊ DO SK£ADOWEJ OBIEKTU
 cout << " \n teraz model to: " << ERLAN.model;
 return(0);
 }
 
 
 |  
						| 
								|  |  
								| « Ostatnia zmiana: Marzec 13, 2013, 09:13:01 wys³ane przez admin » |  Zapisane | 
 |  |  | 
	| 
			| 
					
						| admin | 
								|  | « Odpowiedz #5 : Marzec 20, 2013, 09:38:06 » |  | 
 
 #include <cstdlib>#include <iostream>
 using namespace std;
 class klasa
 { public: char imie[255];
 public: char nazwisko[255];
 int wiek;
 int lpier;
 klasa();
 ~klasa();
 };
 klasa:: klasa(){cout<<"witaj";};
 
 
 int main(int argc, char *argv[])
 {
 system("PAUSE");
 return EXIT_SUCCESS;
 }
 
 |  
						| 
								|  |  
								|  |  Zapisane | 
 |  |  | 
	| 
			| 
					
						| admin | 
								|  | « Odpowiedz #6 : Maj 08, 2013, 11:15:54 » |  | 
 
 #include <cstdlib>#include <iostream>
 
 using namespace std;
 class czlowiek{  public: float wiek,masa;
 public: czlowiek(){};
 ~czlowiek(){};};
 
 class kobieta:  public czlowiek{char wyksz;
 public: kobieta(){};};
 class facet: czlowiek{int sila;};
 
 int main(int argc, char *argv[])
 {facet kuba , blizniak1, blizniak2;
 kobieta aska, ela, monika;
 cout<<endl<<"Podaj wiek= ";cin>>aska.wiek;
 system("PAUSE");
 return EXIT_SUCCESS;
 }
 
 |  
						| 
								|  |  
								|  |  Zapisane | 
 |  |  | 
	|  |