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

Podobné dokumenty
Programování v C++ 1, 14. cvičení

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

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

Opakování programování

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

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

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

Úvod do programování - Java. Cvičení č.4

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

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

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

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

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

Programovací jazyk C++ Hodina 1

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

Ukazka knihy z internetoveho knihkupectvi

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

8 Třídy, objekty, metody, předávání argumentů metod

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

Algoritmizace a programování

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

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

Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -

Operační systémy. Cvičení 4: Programování v C pod Unixem

Úvod do programování. Lekce 1

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

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

AUTHOR : Robert Follner DATE. Abstrakt ABSTRACT: Několik poznatků autora (Robert Follner) z programování

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

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).

Odvozené a strukturované typy dat

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

Programování v jazyce C a C++

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

Jazyk C++ I. Šablony

Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný

Operační systémy. Cvičení 3: Programování v C pod Unixem

Úvod do programování. Lekce 3

Třídy a struktury v C++

Jazyk C++ I. Polymorfismus

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

Základy programování (IZP)

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

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

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

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

IAJCE Přednáška č. 7. řízení semaforu na křižovatce = přepínání červená/oranžová/zelená

Algoritmizace a programování

Funkce pokročilé možnosti. Úvod do programování 2 Tomáš Kühr

Jazyk C# a platforma.net

Objektově orientované programování

Úvod do programovacích jazyků (Java)

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

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

Jazyky C a C++ kompletní průvodce 2., aktualizované vydání. Miroslav Virius

Mělká a hluboká kopie

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

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

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

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

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Více o konstruktorech a destruktorech

Zápis programu v jazyce C#

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

Výrazy, operace, příkazy

Vector datový kontejner v C++.

Funkce, intuitivní chápání složitosti

Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody

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

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

Základní datové typy, proměnné - deklarujeme předem - C je case sensitive rozlišuje malá a velká písmena v názvech proměnných a funkcí

ADT/ADS = abstraktní datové typy / struktury

Jazyk C++ I. Šablony 2

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

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

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

Abstraktní třídy, polymorfní struktury

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Data, výrazy, příkazy

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

6. Příkazy a řídící struktury v Javě

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

DUM č. 20 v sadě. 29. Inf-5 RoboLab a Lego Mindstorms

Rozklad na prvočinitele. 3. prosince 2010

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

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Standardní algoritmy vyhledávací.

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

Výčtový typ strana 67

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

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

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

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

Polymorfismus. Časová náročnost lekce: 3 hodiny Datum ukončení a splnění lekce: 30.března

Jazyk C++ II. Šablony a implementace

Struktura programu v době běhu

URČITÝM ZPŮSOBEM PODOBNÉ

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

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

Výrazy, operace, příkazy

Transkript:

Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019

Přehled 1 2 Shrnutí procvičených pojmů 3

Předpokládaný obsah cvičení opakování neobjektových vlastností jazyka C++ objektové typy v C++ přetěžování operátorů šablony výjimky dynamická identifikace typů (RTTI) prostory jmen objektové datové proudy standardní šablonová knihovna

Kontaktní informace Místnost: T-044c (vchod přes dveře T-045) Web přednášky: http://tjn.fjfi.cvut.cz/~virius/prednes/cpp1.htm Web cvičení: https://vyuka.vladimirjary.cz/ E-mail: Vladimir.Jary@fjfi.cvut.cz konzultace po předchozí domluvě

Požadavky k zápočtu 1 aktivní účast na cvičení, povoleny 4 neomluvené absence 2 domácí úkoly 3 zápočtový program zadání bude upřesněno v průběhu prosince

Přehled Shrnutí procvičených pojmů 1 2 Shrnutí procvičených pojmů 3

Příkazy Shrnutí procvičených pojmů prázdný příkaz (;) složený příkaz ({}) výrazový příkaz (volání podprogramu, přiřazovací výraz) selekce příkaz if příkaz switch iterace příkaz while příkaz do while příkaz for příkazy pro přenos řízení příkaz return příkaz break příkaz continue příkaz goto

Datové typy Shrnutí procvičených pojmů Základní typy celá čísla se znaménkem (short, int, long) bez znaménka (unsigned short, unsigned, unsigned long) znakové typy (char) racionální čísla (float, double, long double) logické hodnoty (bool, jen C++) typ void Uživatelem definované typy výčtový typ (enum) pole struktury struct unie union

Podprogramy Shrnutí procvičených pojmů význam podprogramů volání podprogramů předávání parametrů hodnotou předávání parametrů odkazem (jen C++) návrat z podprogramu definice, deklarace dopředná deklarace hlavičkové soubory přetěžování funkcí výpustka ukazatel na funkci funkce main

Další dovednosti Shrnutí procvičených pojmů práce s řádkovým překladačem a vývojovým prostředím komentáře dynamická alokace paměti ukazatel operátor new operátor delete preprocesor vkládání souborů podmíněný překlad definice maker práce s knihovnami práce se vstupy a výstupy

Eukleidův algoritmus Zadání Napište program, který pro zadáné celá čísla vypočítá jejich nejmenší společný násobek a největší společný dělitel. Příklad 1: Eukleidův algoritmus Bud te a, b Z, a > b. Potom, dokud je b různé od nuly, opakuj následující kroky: 1 do m ulož zbytek po dělení a číslem b 2 do a přiřad b 3 do b přiřad m Po skončení algoritmu je v proměnné a největší společný dělitel zadaných čísel.

Eukleidův algoritmus Zadání Napište program, který pro zadáné celá čísla vypočítá jejich nejmenší společný násobek a největší společný dělitel. Příklad 1: Eukleidův algoritmus Bud te a, b Z, a > b. Potom, dokud je b různé od nuly, opakuj následující kroky: 1 do m ulož zbytek po dělení a číslem b 2 do a přiřad b 3 do b přiřad m Po skončení algoritmu je v proměnné a největší společný dělitel zadaných čísel.

Řešení 1 int gcd(int a, int b){ 2 int m; 3 while(b!= 0){ 4 m = a % b; 5 a = b; 6 b = m; 7 } 8 return a; 9 } 10 11 int lcf(int a, int b){ 12 return a*b/gcd(a,b); 13 }

Překlad z příkazové řádky GNU Compiler Collection: GNU C++ Compiler: g++ GNU C Compiler: gcc Postup: 1 Překlad: g++ -c eukleid.cpp 2 Linkování: g++ eukleid.o -o eukleid Alternativně: g++ eukleid.cpp -o eukleid Důležité přepínače překlad s podporou pro ladění: -g zapnutí všech varování: -Wall zapnutí optimalizací: -O MinGW

Směnárníkova úloha Příklad 2: směnárníkova úloha Napište program, který vrátí nejmenší počet bankovek a mincí, kterými lze zaplatit účet v zadané hodnotě (v Kč). Např. pro hodnotu 403,-Kč vrátí 2 200 + 1 2 + 1 1.

Řešení 1 const int pocet = 12; 2 int bankovky[] = {5000, 2000, 1000, 3 500, 200, 100, 50, 20, 10, 5, 2, 1}; 4 5 void vyplat(int obnos){ 6 int n; 7 for(int i=0; i < pocet; i++){ 8 n = obnos / bankovky[i]; 9 if(n > 0){ 10 cout << n << "*" << bankovky[i] << endl; 11 obnos = obnos % bankovky[i]; 12 } 13 } 14 }

Shrnutí opakování základních pojmů příkazy datové typy práce s funkcemi seznámení s IDE QtCreator jednoduché příklady Eukleidův algoritmus směnárníkova úloha