Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG 2008-9)



Podobné dokumenty
Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

11. Přehled prog. jazyků

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

IB111 Programování a algoritmizace. Programovací jazyky

Matematika v programovacích

Maturitní otázky z předmětu PROGRAMOVÁNÍ

IB111 Úvod do programování skrze Python Přednáška 13

Algoritmizace- úvod. Ing. Tomáš Otáhal

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

DTP Základy programování Úvod do předmětu

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Programovací jazyky Přehled a vývoj

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

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

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

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

Úvod do programování. Lekce 1

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44

Programovací jazyk C# Úvod do programování v C#

Překladač a jeho struktura

Algoritmizace a programování

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

Programovací jazyk Úvod do programování v C#

Seznámení s prostředím dot.net Framework

Programovací jazyk C# Úvod do programování v C#

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Úvod. Programovací paradigmata

Výčtový typ strana 67

Preprocesor. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

C2184 Úvod do programování v Pythonu podzim Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita.

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

Algoritmizace a programování

Algoritmizace a programování

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Dědění, polymorfismus

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Základy C++ doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Semestrální práce z předmětu Teorie programovacích jazyků

Úvod do programování

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Programovací jazyk Pascal

Úvod do programovacích jazyků (Java)

Zápis programu v jazyce C#

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

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

Objektově orientované programování

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

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

Sada 1 - Základy programování

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

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

Programovací jazyk C++ Hodina 1

Datové typy strana 29

PHP. nejen pro začátečníky. $c; echo { Martin Pokorný. Vzdìlávání, které baví Nakladatelství a vydavatelství.

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

Úvod z historie. Kompilátory. Kompilace / Kompilátor Compile / Compiler. Pojem kompilátoru. Úvod z historie

Počítačové modelování

Úvod do programovacích jazyků (Java)

Java [džava] nebo [džáva] v americkém slangu "kafe" Sun Microsystems nyní Oracle

Standardní algoritmy vyhledávací.

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

Základy algoritmizace a programování

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

C2184 Úvod do programování v Pythonu podzim Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita. Úvod.

První kapitola úvod do problematiky

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

ISU Cvičení 2. Marta Čudová

Funkcionální programování. Kristýna Kaslová

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

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

Algoritmy I. Cvičení č.1 ALGI 2015/16

Preprocesor a koncepce (větších) programů. Úvod do programování 2 Tomáš Kühr

ALGORITMIZACE A PROGRAMOVÁNÍ

7. Datové typy v Javě

Algoritmizace a programování

Úvod Vývojová prostředí Štábní kultura Dokumentace Konec. Programování v C# Prostředí a doporučení 1 / 39

Algoritmizace. Cíle předmětu

1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata

Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.

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

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

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

DUM 20 téma: Test dávky

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

PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných

Maturitní témata Školní rok: 2015/2016

Formátové specifikace formátovací řetězce

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

1.5.1 Číselné soustavy

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

Ing. Igor Kopetschke TUL, NTI

Transkript:

Programování v C++ Úplnej úvod

Co se naučíte? tak samozřejmě C++, s důrazem na: dynamické datové struktury Objektově Orientované Programování STL (standardní knihovna šablon) vytváření vlastních šablon Objektově Orientované Programování (ano, je tu dvakrát, ale to proto, že je nejdůležitější) algoritmizace = pochopení a použití některých složitějších algoritmů a schopnost vytvářet vlastní a klidně i složitější programy další s programováním spojené věci Bude upřěsněno podle toho, co a jak a kdy mě napadne:-)

Jak vás oznámkuju? 10% malé písemky na počítačích, napsat nebo pochopit kód ~10-30 řádků 40% větší písemka nakonec, možná taky s počítačem, napsat, pochopit a vysvětlit delší a kompilovanější části kódu 50% projekt, což je váš větší program ~stovky řádků, v prvním pololetí určitě každý sám za sebe, v druhém pololetí možná i dohromady... bonusových až 20% za vaši prezentaci o hodinách

OK, ale jakou známku dostanu? nad 70% jednička 60-70% dvojka 50-60% trojka stupnice níž neexistuje, řešilo by se individuálně a neklasifikace = neodevzdáte projekt doklasifikace, když ho odevzdáte

A ještě kde mě najdete: na AG viz rozvrh mailem na maj@arcig.cz Jabber (GTalk, etc) na peeetax@googlemail.com ICQ # 274247800 ofc piště a mailujte když něco potřebujete když vám něco není jasný když máte připomínky, nápady, dotazy, atd nebo můžete nechat komentáře na stránkách předmětu které jsou tak důležité, že jim nechám následující slide

Stránky předmětu http://peeeta.wordpress.com/category/teaching/spr/

Teď vážně Úvod do programování

Co nás čeká? shrneme si základní teoretické znalosti většinu znáte z IVT (pamatujete?) řekneme si základní vlastnosti C++ ještě nebudeme programovat pouze si ukážeme, jak to bude krásné, až programovat budeme:-)

Nižší a Vyšší Jazyky počítač rozumí jen strojovému kódu (binární čísla) Assembler = čísla strojového kódu nahrazena zkratrkami názvů instrukcí člověk ale potřebuje vyšší míru abstrakce vyšší jazyky tuto abstrakci dovolují jenže těm zase nerozumí procesor je potřeba je nějak přeložit do strojového kódu kompilace interpretace hybridní jazyky

OMG WTF ROFL: (Linux Asm) SECTION SECTION.data msg db "Hello, world!",0xa ; len equ $ - msg.text global main main: mov eax,4 ; write system call mov ebx,1 ; file (stdou) mov ecx,msg ; string mov edx,len ; strlen int 0x80 ; call kernel mov eax,1 ; exit system call mov ebx,0 int 0x80 ; call kernel

Kompilované jazyky kompilátor (překladač) je program, který se spustí nad celým zdrojovým kódem. Celý program je tak najednou přeložen do strojového kódu, který pak může být sám o sobě spuštěn výhody: vysoká rychlost nevýhody dlouhá doba kompilace pro větší projekty (například OS (Linux) v řádu dní na běžném PC) špatná přenositelnost mezi platformami C/C++, Pascal

Interpretované jazyky místo programu se spustí interpret, který vezme zdrojový kód programu a jeho aktuální řádek vždy přeloží a spustí výhody výborná přenositelnost odpadá problém zdlouhavé kompilace nevýhody mnohonásobně pomalejší než kompilovaný program PHP, BASIC, částečně Python

Hybridní jazyky program je nejprve kompilován do tzv. bytecode (u.net intermediate language), což je strojový kód pro univerzální počítač (virtual machine) bytecode je pak interpretován na konkrétním hardware (překlad z bytecode do strojového kódu je mnohem snazší než přímo z jazyka) Výhody a nevýhody výborná přenositelnost jako interpretované jazyky není tak pomalé ( v současnosti Java asi 1.2x pomalejší než C) Java,.NET jazyky (C++, Delphi, C#), částečně Python

Obecně o C++ kompilovaný kromě C++ pro.net typový každý proměnná musí mít přesně definovaný typ, který se za běhu programu nesmí měnit objektově orientovaný (mimo jiné) podporuje vícenásobnou dědičnost velice volná definice všechno je dovoleno, jen něco málo je zakázáno

Elementy C++ literály (konstanty) operátory identifikátory (jména proměnných a funkcí) klíčová slova komentáře

Literály (konstanty) Čísla 1, 45, 10, 0x1f (hexadecimální prefix 0x) 1.125 Znaky 'a', '/n' řetězce Ja jsem retezec

Operátory Unární operátory Jeden vstup a jeden výstup Negace (!), mínus (-) Binární operátory Dva vstupy a jeden výstup Matematické operátory +,-,*,/, % (zbytek po dělení) Operátor přiřazení = (levé straně pravou) Relační (porovnávací operátory) Rovná se (==) Nerovná se (!=) Větší, menší, větší rovno, menší rovno (>, <, <=, >=)

Identifikátory názvy proměnných a funkcí jsou case sensitive (tj. záleží na velikosti písmen) první znak musí být písmeno nebo podrtžítko, další znaky mohou být čísla, písmena, nebo podtržítko

Klíčová slova slova rezervovaná jazykem, tedy taková slova, jejichž význam nesmí být předefinován také case sensitive typicky označují řídící struktury programovacího jazyka a control flow operace (další přednáška)

Komentáře Jednořádkový začíná // a končí s novou řádkou int i=1; // Tohle je deklarace promenne int j=2; Víceřádkový začíná /* a končí */ int i=1; /* Tohle je deklarace promenne int j=2; porad jsme v komentari */ Komentáře není možné vnořovat int i=1; /* zacatek 1 /* zacatek 2 konec vsech*/ */

Oddechněte si,... Pro dnešek vše...