Programování v jazyce C++

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Standardní knihovní funkce pro práci s textovými řetězci
Pro začátek něco lehčího
Programování v C jazyku - SEMINÁŘ
Programovací jazyk C++
Programování funkcí v Excelu
Základy jazyka C.
Prezentace a vysvětlení programového prostředí NXC
Pole, ukazatele a odkazy
Preprocess Úvod do tvorby funkcí Princip preprocesoringu Direktivy preprocesoru Podmíněný překlad Základy tvorby funkcí Zjednodušený popis principu předávaní.
C# pro začátečníky Mgr. Jaromír Osčádal
Programování v C++ Cvičení.
Algoritmizace a programování
Programování v Pascalu Přednáška 7
Materiály k přednášce Úvod do programování Ondřej Čepek.
Generování mezikódu Jakub Yaghob
J a v a Začínáme programovat Lucie Žoltá. Odkazy - oficiální stránky (překladače, help, metody, vývojové prostředí NetBeans,...)
Datové typy 6 A1PRG - Programování – Seminář
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Jednoduché datové typy
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
A1PRG - Programování – Seminář Ing. Michal Ukazatele a pole 10 Verze
Počítače a programování 1
Cvičení.
VISUAL BASIC PRALG.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
Programovací jazyk PASCAL
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro vstup a výstup 12 Verze
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
IB111 Programování a algoritmizace
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
STRING A UKAZATELE. Co to je řetězec? Řetězec v Javě je samostatný objekt. Je konstantní, co znamená, že jednou vytvořený řetězec nelze změnit. Chceme-li.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
IB001 – Úvod do programování skrze C
Pokročilé programování v C++ (část B)
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část I.
Počítače a programování 1 2.přednáška. Základní lexikální struktura programu Program v jazyce Java je tvořen symboly a oddělovači Program Java je psán.
Pokročilé datové typy (struktury, unie, dynamické proměnné)
Úvod do programování2 Vyučující: Mgr. Vítězslav Jersák Web: xjv.webnode.cz.
Jazyk C++ Přednáška 1.. Přednáška C++ č.12 Název C++ –Starší verze jazyka, společně označované jako „C with Classes“ (česky C s třídami), byly používány.
Funkce Přednáška č. 5. Funkce (functions)  posloupnost příkazů uvedená hlavičkou  využití – opakovaně volaná sekvence – strukturování programu – ošetření.
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
Překladače 1. Překladače a programovací jazyky © Milan Keršlágerhttp:// Obsah:
Programovací jazyk C# 2. část. Datové typy C# rozeznává dva druhy datových typů, hodnotové a referenční. Hodnotové datové typy Proměnné hodnotového datového.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Datové typy a operátory Základní programové.
Překladače 6. Sémantická analýza
Programování v jazyce C++ Představení jazyků C a C++
Programování ÚVOD, PROMĚNNÉ, OPERÁTORY A PODMÍNĚNÝ PŘÍKAZ ERIK KRÁL.
Programování v jazyce C++ Speciality jazyka C++, úvod do OOP.
Makra v Excelu syntaxe. Zápis nahraného makra SubEnd Sub O klíčová slova Sub a End Sub – začátek a konec makra O komentáře O text za znakem ', až do konce.
Typ struktura (1) Datový typ struktura (struct) je agrego-vaný heterogenní datový typ Jedná se o skupinu několika proměnných, které mohou mít různé datové.
M1160 – Úvod do programování I
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Vícerozměrná pole (1) Jazyk C povoluje, aby pole mělo více rozměrů (dimenzí) než jeden Z vícerozměrných polí bývá nejčastěji použí-váno pole dvourozměrné.
Výukový materiál zpracován v rámci projektu
Překladače Syntaktická analýza
Programovací jazyk C Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Jitka Vlčková. Dostupné z Metodického portálu ISSN.
Algoritmizace a programování
Programování v jazyce C++
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Oblast platnosti identifikátoru (1)
C# přehled vlastností.
Proměnné (1) Proměnná: Definice proměnných:
Union neboli sjednocení Bitová pole
CU01 Informatika II 2/13 Základy algoritmizace
Transkript prezentace:

Programování v jazyce C++ Představení jazyků C a C++

Představení jazyka C Programovací jazyk nízké úrovně: pracuje pouze se základními typy, Strukturovaný programovací jazyk: umožňuje strukturovat kód do bloků a funkcí, Není vázán na konkrétní operační systém nebo stroj, Velice úzce spjat s operačním systémem UNIX, Existuje mnoho variant jazyka C (K&R, ANSI), my budeme používat ANSI C.

Představení jazyka C++ Programovací jazyk vyšší úrovně: podporuje objektově orientované programování (OOP), Není čistě objektový: podporuje i procedurální programování, Není též pouhým rozšířením jazyka C: některé záležitosti řeší jinak, V pozdější době se z něho vyvinul jazyk C#

Historie jazyků C a C++ 1972 – 1973 – D. Ritchie navrhl a implementoval C na počítači DEC, 1978 – D. Ritchie a B. Kernighan vydali knihu Programming Language C, 1983 – B. Stroustrup – C with Classes, 1985 – B. Stroustrup – C++, 1989 – ANSI C, 1990 – standard adoptován organizací ISO.

Způsob zpracování programu Preprocesor – zpracuje program před předáním překladači, výstupem je textový soubor, Překladač – překládá soubor do relativního objektového kódu, výstupem je soubor .obj, Linker – sestavovací program, který přiřadí relativním adresám proměnných absolutní, výstupem je spustitelný soubor, Debugger – ladící program, slouží k odladění chyb.

Překladač gcc Slouží ke kompilaci zdrojových kódů v C, Řádkově orientovaný překladač, Součást snad každé linuxové distribuce, Použití: gcc program.c, Takto vytvoří binárku s názvem a.out, Chcete-li změnit jméno souboru nebo chování překladače, musíte použít parametry z příkazové řádky,

Překladač g++ slouží ke kompilaci zdrojových kódů v C i C++, je taktéž řádkově orientovaný a je obsažen ve většině linuxových distribucí, při zavolání bez parametrů taktéž vytvoří spustitelný soubor a.out

Parametry překladačů gcc a g++ -o soubor: název spustitelné binárky, -c: pouze přeložit, bez linkování, -g: vytvořit informace pro debugger, -lknihovna: další knihovna pro linkování, -ansi: ctí normu ANSI 89, -pedantic: velmi přísná kontrola souladu s normou, -Wvarování: správa warningů, další informace lze získat příkazem man.

Používané parametry v X36PJC gcc -ansi -pedantic -o program program.c, g++ -Wall -Wno-long-long -pedantic -o program program.cpp.

Debugger gdb Je to opět řádkově orientovaný program. Slouží pro odladění chyb v programu. Odladí ale pouze chyby vzniklé za běhu programu, nikoliv chyby ve zdrojovém kódu. Pomocí něho můžete najít, kde program spadl a případně i proč. Použití: gdb program. Činnost je řízena pomocí příkazů.

Příkazy debuggeru gdb run parametry: spouští běh programu break číslo_řádku: nastaví breakpoint delete číslo_breaku: zruší daný breakpoint continue: pokračuje až do dalšího přerušení next: provede 1 řádek programu step: při volání funkce skončí na jejím začátku display výraz: vypíše hodnotu výrazu při každém přerušení help: nápověda quit: hádejte :-)

Hello World v C++ #include <stdio.h> int main(void) { int a = 0; printf("Hello World\n"); printf("%d", a); return 0; }

Hello World v C #include <iostream> using namespace std; int main(void) { int a = 0; cout << "Hello World" << endl; cout << a << endl; return 0; }

Lexikální elementy I identifikátory: klíčová slova: operátory: malá a velká písmena a podtržítko, klíčová slova: if, else, while, for, … vždy malými písmeny, operátory: {}, (), +, -, *, /, %, … celá čísla: 1, -5, 065, 0x12, 0X6F, 123L, 468638l

Lexikální elementy II desetinná čísla: znaky: řetězce: komentáře: 7.8, .4, 127., 5.97e7, -7E8, .8 znaky: ’a’, ’t’, 97, ’\n’ řetězce: "tohle je řetězec" reprezentovány jako posloupnost zakončená 0. komentáře: /* */, // (norma ansi uznává jen první)

Speciální a netisknutelné znaky speciální znaky: \", \’, \?, \\, netisknutelné znaky: \n – nový řádek, \r – návrat kurzoru, \t – tabulátor, \a – píp, \0 – konec řetězce.

Celočíselné typy Číselné se znaménkem: short = signed short = signed short int int = signed = signed int long = long int = signed long = signed long int Číselné bez znaménka: unsigned short = unsigned short int unsigned = unsigned int unsigned long = unsigned long int

Reálné typy float, double, long double, Norma požaduje, aby platilo float <= double <= long double. Pohyblivá řádová čárka: znaménko, mantisa, exponent.

Logický typ V C neexistuje typ pro reprezentaci logických hodnot: 0 nebo ““ reprezentují FALSE, cokoliv jiného pak TRUE. V C++ existuje typ bool

Řetězce V C neexistuje typ pro reprezentaci textových řetězců: řetězce jsou reprezentovány pomocí pole charů ukončeného znakem ’\0’. V C++ existuje typ string.

Výčtový typ Příklad: enum Color {Red, Blue, Green}; Literály jsou synonyma číselných hodnot od nuly číslovaných v daném pořadí, Hodnotu možno nastavit explicitně: enum Masky {Nula, Jedna, Dva, Ctyri = 4}; Proměnné jsou reprezentovány stejně jako int.

Struktura Složený nehomogenní datový typ. Jednotlivé položky jsou uloženy za sebou. Velikost struktury je dána součtem velikostí dílčích hodnot. Vytvoření nové struktury: struct jmeno {jednotlive polozky} promenna; Další proměnné se deklarují takto: struct zlomek a, b;

Union Složený nehomogenní datový typ. Jednotlivé položky jsou uloženy přes sebe. Velikost struktury je dána velikostí největší dílčí položky. Vytvoření nové struktury: union jmeno {jednotlive polozky} promenna; Další proměnné se deklarují stejně jako u struktury.

Další datové typy pole, pointer, reference (pouze v C++), třída (pouze v C++), o nich více v průběhu semestru.

Vytvoření vlastních datových typů K vytvoření vlastních datových typů slouží operátor typedef typedef definice_typu nazev_typu; Příklady: typedef struct{int cit, int jm} zlomek; typedef enum {bila, modra, cervena} barva; apod.

Deklarace proměnných I. Deklarace proměnných vypadá takto: [pametova_trida] [kvalifikator] typ deklaratory ; Paměťová třída v deklaraci proměnné určuje způsob přidělení paměti: auto – dynamické přidělení paměti na zásobníku, register – proměnná v registru, static – statické přidělení paměti resp. lokální v souboru, extern – bez přidělení paměti.

Deklarace proměnných II. Kvalifikátor udává další vlastnosti deklarovaného objektu: const – konstantní objekt, volatile – proměnná může být změněna mimo náš program, Specifikace typu: void – prázdná hodnota, označení aritmetického typu popis výčtového typu, struktury, sjednocení nebo třídy identifikátor typu

Platnost proměnných Globální proměnné platí v celém souboru, Je-li třeba sdílet proměnnou mezi více soubory, stačí ji v jednom souboru definovat jako externí. Jsou ukládány staticky (není-li uvedeno jinak), Lokální proměnné platí pouze v daném bloku, Jsou ukládány na zásobníku (není-li uvedeno jinak).

A víc už Vám dnes neřeknu! Děkuji za pozornost