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

Podobne dokumenty
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 10

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

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

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

Tworzenie kwerend. Nazwisko Imię Nr indeksu Ocena

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

"Pies" P i e s \0. Prawidłowy zapis wymaga wykorzystania funkcji strcpy() z pliku nagłówkowego string.h: char txt[10]; strcpy(txt, Pies );

Języki C i C++ Wykład: 1. Wstęp Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Języki C i C++, sem.

stworzyliśmy najlepsze rozwiązania do projektowania organizacji ruchu Dołącz do naszych zadowolonych użytkowników!

1 Historia i cechy C++ 2 PRZYDATNE KONSTRUKCJE

Podstawy programowaniu. Wykład: 3. Budowa programu Operacje we/wy Instrukcje wyboru. dr Artur Bartoszewski - Podstawy programowania, sem.

Jzyk C++ cz 2. Jarosław Gramacki Instytut Informatyki i Elektroniki

1 Podstawy c++ w pigułce.

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

WYKŁAD 2 Historia rozwoju technik programowania. Granica pomiędzy programem a agentem. Cykl życia i podstawowe elementy składowe agenta.

Na ekranie monitora zostaną wyświetlone w dwu liniach teksty Pierwsza linia Druga linia

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

Baza Aktów Własnych Opis produktu. Zastosowanie, Wykaz funkcjonalności, Cennik.

Część 4 życie programu

Język C++ wykład VIII

Słowa kluczowe i nazwy

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

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

Języki programowania - podstawy

Instrukcja korzystania z serwisu Geomelioportal.pl. - Strona 1/12 -

1 Podstawy c++ w pigułce.

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

Bożena Czyż-Bortowska, Biblioteka Pedagogiczna w Toruniu

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

Język ludzki kod maszynowy

I - Microsoft Visual Studio C++

Statystyka - wprowadzenie

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

Nowe funkcje w module Repozytorium Dokumentów

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

Oznaczenie CE. Ocena ryzyka. Rozwiązanie programowe dla oznakowania

Nowe funkcje w programie Symfonia e-dokumenty w wersji Spis treści:

Poniżej krótki opis/instrukcja modułu. Korekta podatku VAT od przeterminowanych faktur.

Lekcja 1:.Powtórka. <head> <title>kurs HTML</title> </head> <body> <p>to jest tresc...</p> </body>

Zintegrowany system obsługi przedsiębiorstwa. Migracja do Firebird 2.x

Opis i specyfikacja interfejsu SI WCPR do wybranych systemów zewnętrznych

Jak założyć blog na platformie blogów CEO w 3 krokach

Wymagania edukacyjne z przedmiotu Systemy baz danych dla klasy 3iA Nauczyciel: Kornel Barteczko Rok szkolny: 2015/2016

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy

SZCZEGÓŁOWY OPIS PRZEDMIOTU ZAMÓWIENIA

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

Wymagania edukacyjne z przedmiotu Pracownia aplikacji internetowych dla klasy 3iA Nauczyciel: Kornel Barteczko Rok szkolny: 2015/2016

Programowanie strukturalne i obiektowe

amjam 2015 Regulamin

Inżynieria Oprogramowania 2013/14. Testy integracyjne

Polityka Prywatności. Kto jest administratorem danych osobowych?

Wymagania edukacyjne z przedmiotu Pracownia Baz danych dla klasy 3iA Nauczyciel: Mariusz Walendzewicz Rok szkolny: 2015/2016

Projektowanie klas c.d. Projektowanie klas przykład

Instrukcja dla użytkownika Płockiej Platformy Teleinformatycznej E - Urząd

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

Zarządzanie pamięcią operacyjną

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

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

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

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

Specyfikacja dotycząca modernizacji przepompowni ścieków należącej do oczyszczalni ścieków w Podrzeczu.

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

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

WPROWADZENIE Kurs DO WIT INTERNETU WSISIZ Wyższa Szkoła Informatyki Stosowanej i Zarządzania WIT

1 Historia i cechy C++ 2 PRZYDATNE KONSTRUKCJE

Programowanie obiektowe w C++ Wykład 12

Programowanie warstwy klienta w aplikacji Java EE

GEO-I FO V Państwowy Rejestr Granic

Wyjątki. Wyjątki. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

WYMAGANIA EDUKACYJNE Z PRZEDMIOTU PRACOWNIA URZĄDZEŃ TECHNIKI KOMPUTEROWEJ. dla klasy 1ia. Rok szkolny 2015/2016 Nauczyciel: Agnieszka Wdowiak

Techniki Programowania

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Optymalne przydzielanie adresów IP. Ograniczenia adresowania IP z podziałem na klasy

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

imię kod ulica prześlij Dzięki formularzom możliwe jest pobieranie danych, a nie tylko ich wyświetlanie.

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31

Moduł Konsolidacji Sprawozdań wersja

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

Podstawy języka C++ Marek Pudełko

Przestrzeń papier / model

Partner projektu F5 Konsulting Sp. z o.o. ul. Składowa 5, Poznań T: F:

Materiały. Języki programowania II (Java+AVR-GCC) Literatura

Język C - podstawowe informacje

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

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

ZESPÓŁ LABORATORIÓW TELEMATYKI TRANSPORTU ZAKŁAD TELEKOMUNIKACJI W TRANSPORCIE WYDZIAŁ TRANSPORTU POLITECHNIKI WARSZAWSKIEJ

Programowanie komputerowe. Zajęcia 1

Programowanie strukturalne język C - wprowadzenie

Kontrola przebiegu programu

Podstawy Programowania

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

Writer edytor tekstowy.

Wstęp do Programowania 2

B2B by CTI. Lista funkcjonalności

TEMAT: Rysowanie krzyżówek z wykorzystaniem programu komputerowego Microsoft Word.

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

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

Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Transkrypt:

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 3 1

JĘZYKI PROGRAMOWANIA Dlaczeg C++? na cś trzeba się zdecydwać...; bardz duże mżliwści; szybkść działania; zwięzła składnia; przenśnść (dstępne kmpilatry na różne systemy peracyjne); język hybrydwy (patrz: następne slajdy). Skąd taka (dziwna) nazwa? był C (Dennis Ritchie, 1972) mgł być D (istnieje zresztą taki język, 2007) x++ znacza x+1 zatem: C++ (Bjarne Strustrup, 1983) t nawiązanie d C i jeg rzszerzenie (przy zachwaniu maksymalnej zgdnści z C) 2

JĘZYKI PROGRAMOWANIA Prgramwanie strukturalne zrób najpierw t, a ptem tamt ; hierarchiczne dzielenie kdu na blki, z 1 punktem wejścia i jednym (lub wielma) punktami wyjścia; nieużywanie (lub graniczenie) instrukcji skku (gt). dbre struktury t np. instrukcje warunkwe (if, if...else), pętle (while, d...while); złe struktury (zakłócające strukturalnść) t np. break, cntinue, switch (w C itp.); prgramwanie strukturalne twrzy prgramy bardziej zrzumiałe niż niestrukturalne, łatwiejsze d sprawdzania i usuwania błędów raz d mdyfikacji. 3

JĘZYKI PROGRAMOWANIA Prgramwanie strukturalne Każdy prgram da się napisać (bez użycia gt) w parciu trzy struktury sterujące: sekwencja wyknanie instrukcji w kreślnej klejnści (np. peratr sekwencji w C i C++ t średnik). wybór wyknanie jednej z kilku instrukcji zależnie d stanu prgramu (if...else, switch...case). iteracja pwtarzanie instrukcji tak dług, jak dług spełniny (lub niespełniny) jest dany warunek (np. pętle while, d...while, fr). 4

JĘZYKI PROGRAMOWANIA Prgramwanie rientwane biektw bardziej (wbrew pzrm?) intuicyjne pisanie prgramów; prgram jest zbirem kmunikujących się ze sbą biektów (jednstek zawierających kreślne dane i ptrafiących wyknywać na nich kreślne peracje); pwiązanie danych (zmienne, pla) z peracjami na nich (funkcje, metdy) w całść, stanwiącą drębną jednstkę biekt; biekty są elementami d pnwneg użycia, twrznymi z planów zwanych klasami; mechanizm dziedziczenia mżliwść definiwania nwych, bardziej złżnych biektów, na pdstawie biektów już istniejących; C++ jest językiem hybrydwym: - umżliwia zarówn prgramwanie strukturalne, jak i prgramwanie rientwane biektw. 5

JĘZYKI PROGRAMOWANIA Elementy języka prgramwania Składnia (syntaktyka) języka prgramwania: Opisuje rdzaje dstępnych symbli i zasady ich łączenia w większe struktury. Klrwanie składni - częst wykrzystywane w edytrach kdu, ułatwia czytanie kdu: int main() { unsigned int Li; cut<<"ciag Fibnaccieg rekurencyjnie..."<<endl; d { cut << "Pdaj liczbe naturalna " << endl; cin>>li; cut<<"wynik t: "<<fib(li)<<endl; } while (getch()!='k'); return 0; } Semantyka języka prgramwania: Definiuje precyzyjnie znaczenie pszczególnych symbli raz ich funkcję w prgramie; Semantykę najczęściej definiuje się słwnie. Błędem semantycznym jest np. dwłanie się d nieistniejącej funkcji. 6

JĘZYKI PROGRAMOWANIA Elementy języka prgramwania Typy danych: Każdy język prgramwania peruje na pewnym zestawie danych. Niezbędne jest pdzielenie danych na dpwiednie typy, zdefiniwane ich właściwści raz peracji na nich. Większść języków psiada różne typy danych d reprezentwania: liczb całkwitych (różne zakresy); liczb zmiennprzecinkwych (różne stpnie dkładnści); ciągów tekstwych. Bibliteka standardwa: Dla większści języków zawiera pdstawwy zestaw funkcji pzwalających realizwać wszystkie najważniejsze peracje, np.: bsługę WE-WY; bsługę plików; zarządzanie pamięcią; pdstawwe typy danych i funkcje d zarządzania nimi; peracje na ciągach tekstwych. 7

ETAPY TWORZENIA PROGRAMU Twrzenie prgramu etapy: 1. Opracwywanie kdu (tekstu) źródłweg prgramu; 2. Kmpilacja; 3. Linkwanie (łączenie). Ad. 1. Zapis kdu prgramu za pmcą instrukcji daneg języka (np. C++) w pstaci pliku tekstweg (zwykle z rzszerzeniem.cpp). C++ (również C) jest językiem tzw. wlnym frmacie. Tzw. białe znaki (spacje, tabulatry, znaki nweg wiersza) są prawie zawsze ignrwane. Wstawianie tych znaków służy prgramiście d zwiększenia czytelnści kdu. D pisania tekstów prgramów służą edytry, zwykle dstępne wraz z kmpilatrem. Zazwyczaj ferują ne tzw. klrwanie składni, zwiększające czytelnść prgramu. Należy krzystać z edytrów, które nie ddają d tekstu innych infrmacji (np. jeg frmatwaniu). 8

ETAPY TWORZENIA PROGRAMU Twrzenie prgramu etapy: 1. Opracwywanie kdu (tekstu) źródłweg prgramu; 2. Kmpilacja; 3. Linkwanie (łączenie). Ad. 2. Tłumaczenie kdu źródłweg prgramu na język maszynwy. Kmpilacja zwykle dbywa się autmatycznie p wybraniu stswnej pcji w śrdwisku. W wyniku kmpilacji trzymuje się skmpilwaną wersję prgramu (jeszcze niepełną). Ad. 3. Jest t prces łączenia prgramu z biblitekami wyknywany przez prgram zwany linkerem. Łączy n skmpilwany prgram z biblitekami, których nagłówkach pinfrmwaliśmy kmpilatr dyrektywami #include (by kmpilatr mógł sprawdzić pprawnść ich użycia). Plska nazwa linkwania w pstaci: knslidacji nie przyjęła się... Operacja linkwania jest zwykle wyknywana autmatycznie tuż p kmpilacji. W efekcie uzyskiwany jest prgram w pstaci pliku wyknywalneg (z rzszerzeniem.exe) 9

PRZYKŁADOWY PROGRAM #include <istream> using namespace std; int main() { int a; cut<<"n t zaczynamy!"<<endl; cut<<"\npdaj jakas liczbe calkwita: "; cin>>a; cut<<"pdales<<a; return 0; } Wrócimy d teg prgramu 10

BIBLIOTEKA STANDARDOWA C++ Prgramy w C++ składają się z części zwanych klasami i funkcjami. Bibliteka standardwa C++ zawiera bgaty zbiór: funkcji d przeprwadzania peracji matematycznych, funkcji d manipulacji napisami i znakami, funkcji sterujących peracjami wejścia/wyjścia, funkcji sprawdzania błędów i wielu innych użytecznych peracji Krzystanie z biblitek bardz ułatwia pracę prgramisty (brak kniecznści pwtórneg wymyślania kła ). Prgramy w C++ są zazwyczaj twrzne przez łączenie nwych funkcji i klas, napisanych przez prgramistę, z funkcjami i klasami z bibliteki standardwej C++ raz z innych niestandardwych biblitek klas ( wielkrtne użycie prgramwania ). Funkcje i klasy bibliteki standardwej są udstępniane jak część śrdwiska prgramistyczneg C++ (zwykle dstarczane przez dstawców kmpilatrów). Wiele biblitek klas specjalneg przeznaczenia jest dstarczanych przez niezależnych dstawców prgramwania. 11

BIBLIOTEKA STANDARDOWA C++ Standardwe pliki nagłówkwe C++: <algrithm> <cstdarg> <is> <stream> <bitset> <cstddef> <isfwd> <queue> <cassert> <cstdi> <istream> <set> <cctype> <cstdlib> <istream> <sstream> <cerrn> <cstring> <iteratr> <stack> <cflat> <ctime> <limits> <stdexcept> <cis646> <cwchar> <list> <streambuf> <climits> <cwctype> <lcale> <string> <clcale> <deque> <map> <typeinf> <cmath> <exceptin> <memry> <utility> <cmplex> <fstream> <new> <valarray> <csetjmp> <functinal> <numeric> <vectr> <csignal> <imanip> Mżna twrzyć własne pliki nagłówkwe, które pwinny się kńczyć rzszerzeniem.h. Plik nagłówkwy zdefiniwany przez prgramistę jest dłączany pdbnie jak pliki nagłówkwe biblitek standardwych przez użycie stswnej dyrektywy preprcesra, np. #include mja_bibliteka.h 12

PRZYKŁADOWY PROGRAM #include <istream> using namespace std; int main() { int a; cut<<"n t zaczynamy!"<<endl; cut<<"\npdaj jakas liczbe calkwita: "; cin>>a; cut<<"pdales<<a; return 0; } 13

PRZYKŁADOWY PROGRAM #include <istream> /* dyrektywa preprcesra włączająca plik nagłówkwy bibliteki istream d prgramu */ using namespace std; //użycie nazw z bszaru biblitek standardwej int main() //funkcja główna prgramu { int a; //definicja (i deklaracja) zmiennej typu całkwiteg cut << "N t zaczynamy!" << endl; //wyświetlenie tekstu na ekran // cut<<"n t zaczynamy!\n;" //przejście d nwej linii inaczej // std::cut<<"n t zaczynamy!"<<endl; //gdyby nie był "using..." cut<<"\npdaj jakas liczbe calkwita: "; cin>>a; // Wczytanie danych z klawiatury cut<<"pdales "<<a; return 0; //funkcja main() zwraca 0 (prawidłwe zakńczenie prgramu) } 14

PRZYKŁADOWY PROGRAM Fragment pliku nagłówkweg istream 15

WAŻNE! Prgramy w C++ rzpczynają wyknywanie d funkcji głównej prgramu main(). Wszystkie zmienne w C++ muszą być zadeklarwane przed ich użyciem. Każda instrukcja w języku C++ MUSI kńczyć się średnikiem; Nazwa zmiennej jest dwlnym dzwlnym identyfikatrem, który jest serią znaków składającą się z liter, cyfr i znaków pdkreślenia, która nie rzpczyna się cyfrą. C++ rzróżnia wielkść znaków (małe/wielkie litery). Język C++ jest językiem tzw. wlnym frmacie, tzn. kd prgramu mże się znaleźć w każdym miejscu linii, lub mże być rzpisany na wiele linii. Pza nielicznymi sytuacjami, w dwlnym miejscu instrukcji mżna przejść d nwej linii i kntynuwać pisanie (dlateg, że każda instrukcja kńczy się średnikiem ) 16

NAZWY ZAREZERWOWANE Słwa kluczwe w C++ (będziemy je stpniw pznawać ): asm aut bl break case catch char class cnst_cast cntinue default delete d duble else enum dynamic_cast extern false flat fr unin unsigned using friend gt if inline int lng mutable virtual namespace new peratr private prtected public register vid reinterpret_cast return shrt signed sizef static static_cast vlatile struct switch template this thrw true try typedef typeid unsigned wchar_t while Tzw. zamienniki peratrów: and and_eq bitand bitr cmpl nt nt_eq r r_eq xr xr_eq 17

CZĘSTE BŁĘDY: Próba skrzystania z jakiejś funkcji biblitecznej bez dłączenia dpwiednieg nagłówka (dyrektywą preprcesra #include). Kmpilatr wygeneruje kmunikat błędzie. Brak średnika na kńcu instrukcji jest błędem składni. Kmpilatr nie mże rzpznać instrukcji i wygeneruje kmunikat błędzie. Błędem składni jest rzdzielanie identyfikatrów przez wstawianie znaków dstępu (spacji) w ich nazwach, np. pisanie ma in zamiast main. 18

DOBRY STYL PROGRAMISTY Pisz swje prgramy w prsty i bezpśredni spsób. Każdy prgram pwinien rzpczynać się kmentarzem pisującym swje przeznaczenie. Stsuj kmentarze w tekście prgramu ułatwią jeg późniejszą analizę (np. p latach). Nadawaj zmiennym nazwy w taki spsób, aby ddawały ich przeznaczenie. Pmaga t prgramwi być samdkumentującym, przez c łatwiejsze jest zrzumienie prgramu przez jeg sam czytanie. Unikaj nazw zmiennych (identyfikatrów), które rzpczynają się znakiem pjedynczeg lub pdwójneg pdkreślenia kmpilatr mże używać takich nazw dla swich celów. 19

TYPY DANYCH Zmienna biekt, który mże się zmieniać pdczas wyknywania prgramu. Zmienne mają kreślne nazwy i są kreślnych typów. W C++ każda nazwa musi zstać zadeklarwana przed użyciem. Deklaracja infrmuje kmpilatr, że dana nazwa reprezentuje biekt daneg typu (c mże być w niej przechwywane). Sama deklaracja nie rezerwuje miejsca w pamięci. Definicja ddatkw rezerwuje miejsce w pamięci pwłuje biekt d życia. Definicja jest również deklaracją (ale nie dwrtnie...) Przykłady: flat Cisnienie // deklaracja i definicja w jednym extern flat Cisnienie // tylk deklaracja (definicja np. // w innym pliku D deklaracji i definicji wrócimy np. przy mawianiu funkcji 20

TYPY DANYCH Pdział typów (1): wbudwane składniki języka C++ zdefiniwane przez użytkwnika Pdział typów (2): fundamentalne pdstawwe złżne wykrzystujące w swej budwie typy fundamentalne T, ile zmienna daneg typu zajmuje pamięci zależy d typu kmputera raz d kmpilatra. Sprawdzenie rzmiaru typu (wynik w bajtach): cut<<sizef(int); 21

TYPY FUNDAMENTALNE Typ wbudwany reprezentujący znaki alfanumeryczne: char Znak= a ; //znaki w kdzie ASCII, a ma kd 97 Typy wbudwane reprezentujące liczby całkwite: shrt Mala_calkwita=5; //inna nazwa: shrt int int Jakas_calkwita=32700; lng Duza_calkwita=13e6; //inna nazwa: lng int Typy wbudwane reprezentujące liczby zmiennprzecinkwe: flat Srednica=13.76; duble Odleglsc=32.7e+8; lng duble Masa=13.236e+23; Wszystkie pwyższe typy mgą być w dwóch wariantach: ze znakiem (signed) bez znaku (unsigned). Przez dmniemanie typ występuje ze znakiem, np. int a znacza signed int a (czyli mże przechwywać wartści ddatnie i ujemne). 22

TYPY FUNDAMENTALNE Typ wbudwany reprezentujący rzszerzny zestaw znaków alfanumerycznych: wchar_t Typ wbudwany reprezentujący biekty lgiczne: bl czy_prawda=true; // true=1, false=0 Typ Szerkść (bajty) Typwy przedział wartści (signed) char 1-128 127 unsigned char 1 0 255 wchar_t 2 0 65535 (signed) shrt int 2-32768 32767 unsigned shrt int 2 0 65535 (signed) int 4-2147483648 2147483647 unsigned int 4 0 4294967295 (signed) lng int 4-2147483648 2147483647 unsigned lng int 4 0 4294967295 flat 4 3.4E-38 3.4E+38 duble 8 1.7E-208 1.7E+308 lng duble 10 3.4E-4932.. 1.1E+4932 23

TYPY FUNDAMENTALNE C się dzieje p przekrczeniu zakresu? Zadanie dmwe (prszę uruchmić): #include <istream> using namespace std; int main() { int a=2147483647; //kraniec zakresu int cut<<a<<endl; ++a; //ddajemy 1... cut<<a<<endl; //niespdzianka! } return 0; Są t błędy trudne d wykrycia 24

TYPY DANYCH Typ wyliczeniwy enum - sbny typ dla liczb całkwitych. Przydaje się, gdy w biekcie typu całkwiteg chcemy przechwywać pewien rdzaj infrmacji. Przykład: enum KIERUNEK1 {gra, dl, lew, praw}; enum KIERUNEK2 {wschd=0, zachd, plnc=5, pludnie}; Definicja zmiennych typu wyliczeniweg KIERUNEK1 raz KIERUNEK2: KIERUNEK1 ruch_typu_1; KIERUNEK2 ruch_typu_2; D zmiennych ruch_typu_1 i ruch_typu_1 mżna pdstawić tylk jedną z wartści na liście wyliczeniwej. Czyli: dzwlne są następujące peracje: ruch_typu_1=gra; ruch_typu_2=zachd; Niedzwlne są następujące peracje: ruch_typu_1=0; ruch_typu_2=5; Przez dmniemanie lista wyliczeniwa zaczyna się d 0 i dalej c 1. Prgramista mże t wyliczanie dwlnie kreślić. 25

TYPY DANYCH #include <istream> using namespace std; int main() { enum GDZIE {gra, dl, lew, praw=5}; // definiujemy typ wyliczeniwy cut<<gra<<" "<<dl<<" "<<lew<<" "<<praw<<endl; // wyświetlamy wartści z listy GDZIE ruch=dl; // definiujemy zmienną typu GDZIE i przypisujemy... //...wartść z listy cut<<endl<<ruch; if (ruch==5) cut<<"\n ruch w praw"; // w zależnści czy ruch==5 else cut<<"\n ruch nie w praw..."<<endl; ruch=praw; // przypisujemy inną wartść z listy wyliczeniwej cut<<endl<<ruch; if (ruch-5) cut<<"\n ruch nie w praw"<<endl; //inaczej (wrócimy d teg...) else cut<<"\n ruch w praw..."<<endl; //niec inaczej... //ruch=0; //BLAD! Tak nie wln! } return 0; 26

TYPY POCHODNE Typy pchdne znacza się stsując nazwę typu, d któreg pchdzą, raz peratr deklaracji typu pchdneg. Operatry d twrzenia biektów typów pchdnych: [] tablica biektów daneg typu; () funkcja zwracająca wartść daneg typu; * wskaźnik d pkazywania na biekty daneg typu; & referencja (przezwisk) biektu daneg typu. W deklaracjach typów złżnych mże się pjawiać słw vid (pusty) w miejscu, gdzie stawia się nazwę typu. Np.: vid wypisz(); znacza, że funkcja wypisz() nie zwraca żadnej wartści. Więcej typach pchdnych na klejnych wykładach 27