Úvod do programování. Lekce 3

Podobné dokumenty
Úvod do programování. Lekce 1

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů

Řídicí struktury. alg3 1

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

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

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

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

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

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

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

Základy algoritmizace a programování

Algoritmizace a programování

PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory

Strukturu lze funkci předat: (pole[i])+j. switch(výraz) velikost ukazatele

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

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

6 Příkazy řízení toku

Algoritmizace a programování

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

Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. November 16, 2017

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

for (int i = 0; i < sizeof(hodnoty) / sizeof(int); i++) { cout<<hodonoty[i]<< endl; } cin.get(); return 0; }

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

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

Výčtový typ strana 67

Větvení a cykly. Úvod do programování 1 Tomáš Kühr

Prostory jmen. při vkládání několika hlavičkových souborů může vzniknout kolize. logika.h const int x=5; typedef struct {...

Pokročilé programování v jazyce C pro chemiky (C3220) Vstup a výstup v C++

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

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

Základy algoritmizace a programování

Úvod do programování. Lekce 5

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

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

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

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

Datové proudy objektový vstup a výstup v C++

VISUAL BASIC. Práce se soubory

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

Algoritmy a datové struktury

Třídy a struktury v C++

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

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

Řídící struktury, if, while, switch

Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: Předmět: ZAP

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Lekce 04 Řídící struktury

Algoritmizace a programování

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

18. února 2015, Brno Připravil: David Procházka. Programovací jazyk C++

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

2 Datové typy v jazyce C

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

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

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

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

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

Martin Flusser. November 1, 2016

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

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

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

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

10 Práce s řetězci - pokračování

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

Inovace bakalářského studijního oboru Aplikovaná chemie

Algoritmizace a programování

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

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 -

Úvod do programovacích jazyků (Java)

PROGRAMOVÁNÍ V SHELLU

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Objektově orientované programování

Rozklad na prvočinitele. 3. prosince 2010

2. lekce Algoritmus, cyklus Miroslav Jílek

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1

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

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Basic256 - úvod do programování Příklady. ing. petr polách

- jak udělat konstantu long int: L long velka = 78L;

Řídící struktury, if, while, switch

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

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

Příkazy if, while, do-while, for, switch

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

C# konzole Podíl dvou čísel, podmínka IF

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr)

cyklus s daným počtem opakování cyklus s podmínkou na začátku (cyklus bez udání počtu opakování)

Řídicí příkazy KAPITOLA 3. Vstup znaků z klávesnice

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Algoritmizace a programování

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Jazyk C# a platforma.net

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

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

Programování v C++ První kroky

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

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

Vstupní a vstupní proudy v C++

Transkript:

Úvod do programování Lekce 3

Řízení běhu programu - pokračování /2 příklad: program vypisuje hodnotu sin x dx pro různé délky integračního kroku 0 #include<iomanip> #include<cmath> // budeme pouzivat funkci sin() #define RADKU 6 // zde zadam pocet radku tabulky #define KROK_INI 0.1 main(){ double x,krok,integral; int radek; cout << " krok integral\n"; // zahlavi tabulky cout << "=======================\n"; krok = KROK_INI; // nastavi pocatecni delku kroku for(radek = 1;radek < RADKU + 1; radek++){ integral = 0; for(x = 0;x < M_PI/2.;x += krok) integral += sin(x); // vytvari sumu integral *= krok; // nasobeni dx cout << fixed << setprecision(6) << krok; cout << setw(15) << setprecision(8) << integral << endl; krok *= 0.1; // zmenseni kroku pro dalsi radek tabulky poznámky: v programu často používané konstanty je dobré definovat jako makra na začátku programu nebo v hlavičkovém souboru; změna všech výskytů dané konstanty se pak snadno provede změnou hodnoty makra náhradu maker provádí preprocesor před vlastním překladem zdrojového kódu za definicí makra není středník: pokud bychom psali #define pi 3.14; vytvořil by preprocesor z x=pi+x chybný výraz x=3.14;+x proměnná krok by mohla přímo sloužit jako řídící proměnná cyklu; pokud ale požadujeme určitý přesně daný počet opakování, je lépe pro řízení cyklu definovat novou proměnnou celočíselného typu, jako ve výše uvedeném příkladu konstanta π je definovana makrem M_PI v cmath příklad: program vypíše Fibonacciho posloupnost, vypočítá zlatý řez z posledních dvou členů #include<cmath> // budeme pouzivat funkci sqrt() int clenu,fi1,fi2,i,pom; double zlatyrez; cout << "kolik clenu Fibonacciho rady: "; // vyzva

cin >> clenu; fi1 = fi2 = 1; //prvni dva cleny cout << fi1 << endl << fi2 << endl; for(i = 3; i <= clenu; i++){ pom = fi2; // uschova druhy clen fi2 += fi1; // scita cleny fi1 = pom; // ulozeni fi2 do fi1 zlatyrez = fi2/ (double) fi1; // nechceme celociselne deleni cout << fi2 << " " << zlatyrez << endl; cout << "spravne: " << (sqrt(5)+1)/2. << endl; // presna hodnota přepínač switch (výraz) { case hodnota_a : příkaz_a; break; case hodnota_b : příkaz_b; break;... default : příkaz_def; break; mnohonásobné větvení podle hodnoty výrazu (typu int nebo char) pokud není větev ukončena příkazem break program neopouští příkaz switch a zpracovává následující větev pokud nevyhovuje žádná hodnota uvedená za case, vykoná se větev default obvykle použijeme příkaz switch pro volání různých funkcí v závislosti na vstupu - např. zpracování vstupu textovým editorem příklad: program podle zadaného znaku vypočte x 2, x 3, nebo x #include<cmath> double x,vysledek; char druh; int chyba=1; cout << "zadej x: "; cin >> x; while(chyba){ // opakuje dokud je chyba v zadani cout << "zvol druh vypoctu\n"; cout << "a: druha mocnina\n"; cout << "b: treti mocnina\n"; cout << "c: druha odmocnina\n"; cin >> druh; switch(druh){ case 'a': cout << "x^2=" << x*x << endl; chyba=0; break; case 'b': cout << "x^3=" << pow(x,3) << endl; chyba=0; break;

case 'c': cout << "sqrt(x)=" << sqrt(x) << endl; chyba=0; break; default: cout << endl << "chyba: spatny vstup!\n\n"; break; poznámky: větve case ruší příznak chyby, větev default nikoliv: to vede k opakované volbě druhu výpočtu v případě výskytu chyby pokud je příkaz switch vnořen do cyklu (for, while,...), ukončuje break ve větvi příkaz switch a nikoli cyklus více příkazů ve větvích není nutno uzavírat do složených závorek větev default nemusí být uvedena Práce se soubory hlavičkový soubor <fstream> implementuje vstupní a výstupní operace se soubory ifstream infile; // vstupní proud ofstream outfile; // výstupní proud otevření souboru přiřazení souboru k datovému proudu - volání metody open() open(jméno, režim) základní režimy ios::in - textový soubor pro čtení (defaultní pro ifstream) ios::out - textový soubor pro zápis (defaultní pro ofstream) ios::app - textový soubor pro připsání na konec příklady pro výše definované outfile, infile outfile.open("vysledky.dat"); otevře soubor "vysledky.dat" pro zápis pokud soubor "vysledky.dat" již existuje je jeho obsah zničen! infile.open("vysledky.dat"); otevře existující soubor "vysledky.dat" pro čtení od začátku souboru úspěšné otevření lze testovat funkcí infile.is_open() uzavření souboru close() pokud byl soubor měněn zapíší se fyzicky všechny změny do souboru po skončení práce se souborem je vhodné soubor uzavřít

formátovaný vstup a výstup obdobně jako u standardního vstupu a výstupu např. outfile << x // zápis proměnné do souboru infile >> x // čtení proměnné ze souboru příklad: program přečte délky odvěsen ze souboru a vypočtenou přeponu zapíše do souboru #include<fstream> #include<cmath> ifstream fr; // objekty pro pristup k souboru ofstream fw; double a,b,c; fw.open("prepona.txt"); // oteviram soubor pro zapis fr.open("odvesny.txt"); // oteviram soubor pro cteni if(!fr.is_open()){ // kontrola uspesneho otevreni cout << "chyba otevreni souboru! \n"; exit(1); // ukonceni programu fr >> a >> b; // ctu delky odvesen cout << "precteno a=" << a << ", b=" << b << endl; // kontrolni vypis c=sqrt(a*a+b*b); fw << "delka odvesny: " << c << endl; // zapis vysledku fr.close(); fw.close(); poznámka: funkce is_open() je použita pro kontrolu, zda byl soubor úspěšně otevřen při chybě, např. pokud soubor neexistuje, je program ukončen