Třídy a struktury v C++

Podobné dokumenty
Odvozené a strukturované typy dat

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Programování v C++ 1, 1. cvičení

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) 28. prosince Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Bitové operátory a bitová pole. Úvod do programování 2 Tomáš Kühr

Úvod do programovacích jazyků (Java)

Strukturované typy a ukazatele. Úvod do programování 1 Tomáš Kühr

Programování v C++ 3, 3. cvičení

Sada 1 - Základy programování

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Algoritmizace a programování

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Jazyk C++ I. Šablony

Mělká a hluboká kopie

Opakování programování

Assembler - 5.část. poslední změna této stránky: Zpět

Jazyk C++ 1. Blok 3 Objektové typy jazyka C++ Třída. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

Elementární datové typy

Výrazy, operace, příkazy

Objektově orientované programování. Úvod

Programovací jazyk C++ Hodina 1

Výrazy, operace, příkazy

Základy C++ I. Jan Hnilica Počítačové modelování 18

Data, výrazy, příkazy

7. OBJEKTOVĚ ORIENTOVANÉ PROGRAMOVÁNÍ

Úvod do programování. Lekce 3

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

2 Datové typy v jazyce C

PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury Příklad PROG_

IUJCE 07/08 Přednáška č. 1

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

V dalších letech se pak začaly objevovat první normy pro jazyk C++ (ISO/IEC 14882:1998; ISO/IEC 9899:1999; ISO/IEC 14882:2003; ISO/IEC 14882:2011).

Stručný obsah První týden Druhý týden 211 Třetí týden 451 Rejstřík 787

PB161 Programování v jazyce C++ Přednáška 10

Základy programování (IZP)

Spojová implementace lineárních datových struktur

Algoritmizace a programování

Pokročilé programování v jazyce C pro chemiky (C3220) Třídy v C++

Uplatnění metod na zvolený jazyk

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

PB161 Programování v jazyce C++ Přednáška 10

PROGRAMOVÁNÍ V C++ CVIČENÍ

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Zápis programu v jazyce C#

Rozšíření ksh vůči sh při práci s proměnnými

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Základy programování (IZP)

Algoritmizace prostorových úloh

Programování v C++ 2, 4. cvičení

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Cvičení z programování v C++ ZS 2016/2017 Přemysl Čech

PROGRAMOVÁNÍ V C++ URČENO PRO VZDĚLÁVÁNÍ V AKREDITOVANÝCH STUDIJNÍCH PROGRAMECH ROSTISLAV FOJTÍK

Číselné soustavy. Binární číselná soustava

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

NPRG031 Programování II --- 2/2 Z, Zk

O datových typech a jejich kontrole

PB161 Programování v jazyce C++ Přednáška 4

7. Datové typy v Javě

Úvod do programování. Lekce 1

int ii char [16] double dd název adresa / proměnná N = nevyužito xxx xxx xxx N xxx xxx N xxx N

ADT/ADS = abstraktní datové typy / struktury

Ukazka knihy z internetoveho knihkupectvi

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

Jazyk C++, některá rozšíření oproti C

Paměť počítače. alg2 1

Algoritmizace prostorových úloh

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

- dělají se také pomocí #define - podobné (použitím) funkcím - předpřipravená jsou např. v ctype.h. - jak na vlastní makro:

MQL4 COURSE. By Coders guru -3 DATA TYPES. Doufám, že předchozí lekce SYNTAX se vám líbila. V té jsme se pokoušeli zodpovědět:

Prezentace a vysvětlení programového prostředí NXC

V dalších letech se pak začaly objevovat první normy pro jazyk C++ (ISO/IEC 14882:1998; ISO/IEC 9899:1999; ISO/IEC 14882:2003; ISO/IEC 14882:2011).

Ing. Igor Kopetschke TUL, NTI

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

C++ objektově orientovaná nadstavba programovacího jazyka C

Programování v jazyce C a C++

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

NPRG030 Programování I, 2015/16 1 / :25:32

IB111 Programování a algoritmizace. Objektově orientované programování (OOP)

Např.: // v hlavičkovém souboru nebo na začátku // programu (pod include): typedef struct { char jmeno[20]; char prijmeni[20]; int rok_nar; } CLOVEK;

Programování v C++ 1, 6. cvičení

Rozsáhlé programy = projekty

Algoritmizace a programování

5 Přehled operátorů, příkazy, přetypování

IUJCE Přednáška č. 1. programování v C na vyšší úrovni základy objektově orientovaného programovaní v (C++, C#)

Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru

int => unsigned int => long => unsigned long => float => double => long double - tj. bude-li:

katedra informatiky FEI VB-TU Ostrava 10. jna 2005 etr aloun (katedra informatiky FEI VB-TU Ostrava) Dal vrazy 10. jna / 25

Šablonové metaprogramování v C++ Miroslav Virius KSI FJFI ČVUT

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Sdílení dat mezi podprogramy

Lekce 6 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C

Telemetrický komunikační protokol JETI

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

VYSOKÁ ŠKOLA BAŇSKÁ TECHNICKÁ UNIVERZITA KURZ C++ Materiál ze systému Autoři: Jiří Šebesta, Jakub Sztefek

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

Objektové programování

Transkript:

katedra informatiky FEI VŠB-TU Ostrava 7. prosince 2015

Odvozené a strukturované typy dat v C základní datové typy součást normy jazyka, preprocesor použití netypových maker, raději voĺıme konstanty d e f i n e MAKRO hodnota vs c o n s t i n t makro = hodnota ; odvozené datové typy v C t y p e d e f <type d e f i n i t i o n > < i d e n t i f i e r >; vlastní definice datového typu strukturované datové typy struct a union vlastní definice struktury, v C se spojuje s typedef.

Třídy v C++ základ objektově orientovaného programování v C++, obalení, polymorfismus, dědičnost, tvorba tříd: class, struct, union v PR1 použijeme obalení (zapouzdření), pro usnadnění použijeme struct, konstrukci typoedef z C nepoužíváme.

struct ukázka s t r u c t ukazka { i n t i n t e g e r ; double d b l ; s t r i n g s t r ; } ; ukazka o b j ; o b j. i n t e g e r = 1 23; o b j. d b l = 9 8 7. 6 5 4 ; c i n >> o b j. s t r ; cout << o b j. i n t e g e r << o b j. d b l << o b j. s t r ;

Výčtový typ umožňuje definovat konstanty výčtového typu. enum [ tag ] {enum l i s t } [ d e c l a r a t o r ] ; enum je klĺıčové slovo, zahajuje definici hodnot výčtového typu; tag je nepovinná visačka, využívvaná zejména ve stylu K&R jazyka C, s konstrukcí typedef četnost jejího používání klesá i v C; enum-list je seznam konstant výčtového typu s možnou explicitní přiřazenou hodnotou, viz příklad dále, jinak nabýví první konstanta výčtového typu hodnoty nula, druhá hodnoty jedna,..., každá následující konstanta má hodnotu o jedničku vyšší; declarator je nepovinný seznam proměnných daného typu enum.

Použití konstant výčtového typu enum use.c t y p e d e f enum { Back = 8, Tab = 9, Esc = 27, Enter = 13, Down = 0 x0150, L e f t = 0x014b, Right = 0x014d, Up = 0 x0148, NUL = 0 x0103, S h i f t T a b = 0 x010f, Del = 0 x0153, End = 0 x014f, Home = 0 x0147, I n s = 0 x0152, PgDn = 0 x0151, PgUp = 0 x0149 } k e y t ; i n t znak ;... e l s e i f ( ( znak == L e f t ) ( znak == Back ) )... e l s e i f ( znak == Enter )... e l s e i f ( znak == Esc )... e l s e i f...

Třída konstrukce struktura V PR1 budeme používat struct s t r u c t [< c l a s s name>] { [< type> <item name [, item name,... ] > ] ; [< type> <item name [, item name,... ] > ] ;... } [< o b j e c t ( s ) >] ;. tečka selektor struktury (záznamu), např. u objektu. -> selektor struktury, prostřednictvím ukazatele.

Příklad struktur struct01.cpp s t r u c t complex { double re, im ; } ; i n t main ( ) { complex c i s l o, i m j e d n o t k a = {0, 1 } ; c i s l o. r e = 1 2. 3 4 5 6 ; c i s l o. im = 987.654; cout << r e = << i m j e d n o t k a. r e << im = << i m j e d n o t k a. im << e n d l ; cout << r e = << c i s l o. r e << im = << c i s l o. im << e n d l ;

Příklad struktur struct02.cpp s t r u c t vyrobek { i n t e v c i s l o ; s t r i n g nazev ; i n t n a s k l a d e ; double cena ; } ; i n t main ( ) { vyrobek z b o z i [ 5 ] ; vyrobek a = {8765, nazev z b o z i na s k l a d e, 100, 1 2 3. 9 9 } ; z b o z i [ 0 ]. cena = 1 2. 3 4 ; z b o z i [ 0 ]. e v c i s l o = 7 ; z b o z i [ 0 ]. nazev = nazev vyrobku 0 ; z b o z i [ 0 ]. n a s k l a d e = 9 9 ; cout << a. cena << a. e v c i s l o << a. nazev << a. n a s k l a d e << e n d l ; cout << z b o z i [ 0 ]. cena << z b o z i [ 0 ]. e v c i s l o << z b o z i [ 0 ]. nazev << z b o z i [ 0 ]. n a s k l a d e << e n d l ;

Příklad struktury FILE * datové proudy v C Typ FILE, definice v hlavičkovém souboru cstdio je: t y p e d e f s t r u c t { s h o r t l e v e l ; u n s i g n e d f l a g s ; char f d ; u n s i g n e d char h o l d ; s h o r t b s i z e ; u n s i g n e d char b u f f e r, curp ; u n s i g n e d istemp ; s h o r t token ; } FILE ;

Konstrukce union v C union [< union c l a s s name>] { <type> <item names> ;... } ; Syntaxe jako struct. Sémantika (!) z položek unie lze používat v jednom okamžiku pouze jednu. Ostatní mají nedefinovanou hodnotu. Realizace: pamět ové místo, vyhrazené pro unii je tak veliké, aby obsáhlo jedinou (pamět ově největší) položku. Je na programátorovi, pracuje li s prvkem unie, který je určen správně či nikoliv.

Bitová pole Bitová pole je celé číslo, umístěné na určeném počtu bitů. Tyto bity tvoří souvislou oblast paměti. Bitové pole může obsahovat více celočíselných položek. Můžeme vytvořit bitové pole tří tříd: 1 prosté bitové pole, 2 bitové pole se znaménkem, 3 bitové pole bez znaménka. Bitové pole můžeme deklarovat pouze jako členy struktury či unie. Výraz, který napíšeme za identifikátorem položky a dvojtečkou, představuje velikost pole v bitech.

Struktura ftime detailní ukázka. s t r u c t f t i m e { u n s i g n e d f t t s e c : 5 ; / Two s e c o n d s / u n s i g n e d f t m i n : 6 ; / Minutes / u n s i g n e d f t h o u r : 5 ; / Hours / u n s i g n e d f t d a y : 5 ; / Days / u n s i g n e d ft month : 4 ; / Months / u n s i g n e d f t y e a r : 7 ; / Year 1980 / } ;