Základy programování (IZP)

Podobné dokumenty
Základy programování (IZP)

Základy programování (IZP)

Základy programování (IZP)

Základy programování (IZP)

Základy programování (IZP)

Základy programování (IZP)

Základy programování (IZP)

Základy programování (IZP)

Základy programování (IZP)

Základy programování (IZP)

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

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

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

Základy programování (IZP)

Programování v jazyce C pro chemiky (C2160) 4. Textové řetězce, zápis dat do souboru

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr

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

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

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

Základy programování (IZP)

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

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

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

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

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

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

Základy programování (IZP)

Základy jazyka C. Základy programování 1 Tomáš Kühr

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

Základy programování (IZP)

2 Datové typy v jazyce C

Programování v jazyce C pro chemiky (C2160) 5. Čtení dat ze souboru

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

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

IUJCE 07/08 Přednáška č. 4. v paměti neexistuje. v paměti existuje

Java Cvičení 01. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics

Práce se soubory. Základy programování 2 Tomáš Kühr

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

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

10 Algoritmizace Příklad 2 Word 2007/ VBA

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

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

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

Programovací jazyk C++ Hodina 1

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

2 Základní funkce a operátory V této kapitole se seznámíme s použitím funkce printf, probereme základní operátory a uvedeme nejdůležitější funkce.

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

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

Úvod do Operačních Systémů

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

Výuková laboratorní sestava seminář pro učitele

Programování v jazyce C pro chemiky (C2160) 7. Ukazatele, Funkce pro práci s řetězci

PROGRAMOVÁNÍ V SHELLU

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

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

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

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

Základy PERLu snadno a rychle

Programování v jazyce C pro chemiky (C2160) 6. Funkce, struktury

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

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

ISU Cvičení 2. Marta Čudová

Formátová specifikace má tvar (některé sekce nemají smysl pro načítání) %

ISU Cvičení 2. Marta Čudová

9. lekce Úvod do jazyka C 4. část Funkce, rekurze Editace, kompilace, spuštění Miroslav Jílek

C2110 Operační systém UNIX a základy programování

Úvod, jednoduché příkazy

Zápis programu v jazyce 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í

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

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

Algoritmizace a programování

Základy programování (IZP)

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

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

Řešení sady 1. Úvod do programování 1 Tomáš Kühr

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

Programovanie v jazyku C - pole treba poorat...

Připojení ke vzdálené aplikaci Target 2100

Skripty - úvod. Linux - skripty 2

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

Programovací jazyk C(++) C++ area->vm_mm->locked_vm -= len >> PAGE_SHIFT;

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

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

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

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

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

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

Nastavení programu pro práci v síti

Algoritmizace a programování

Úvod do programování

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

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 7

Programovací jazyk Pascal

IUJCE Přednáška č. 11. další prvky globální proměnné, řízení viditelnosti proměnných, funkcí

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

Textové popisky. Typ dat

Návod pro práci s SPSS

Transkript:

Základy programování (IZP) Druhé počítačové cvičení Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole Petr Veigend, iveigend@fit.vutbr.cz Verze 20180924_13:00 2. týden

Důležité informace Jmenuji se Petr Veigend Studijní poradce Můj profil: http://www.fit.vutbr.cz/~iveigend/ Kancelář: A221 Konzultační hodiny: po dohodě emailem, na profilu mám časy, kdy bývám obvykle na fakultě Karta Výuka odkaz na osobní stránky: IZP 2018/2019 Cvičení Materiály Komunikace: email prosím používejte předmět: IZP - <předmět emailu> Přestávky? IZP cvičení 1 2

Důležité informace FIT: http://www.fit.vutbr.cz/ CVT: http://www.fit.vutbr.cz/cvt/net/ WIS: https://wis.fit.vutbr.cz/ EMAIL: http://email.fit.vutbr.cz/ VUTBR: http://www.vutbr.cz/ SU FIT: http://www.su.fit.vutbr.cz/ Certifikáty: http://ca.vutbr.cz/pki/pub/policy.html Karta předmětu IZP: http://www.fit.vutbr.cz/study/course-l.php?id=12816 IZP cvičení 1 3

Náplň cvičení Programování vzdáleně, zdroje informací Jednoduché programy Řešení všech máte na wiki stránkách ale když už jsme tady, vyzkoušíme je aspoň trochu samostatně Pokud nebudete vědět, jak se zapisuje nějaká programová konstrukce (proměnná, podmínka, atd.), zapište si do zdrojového souboru komentář // tady se budou vypisovat dva řetězce /* toto je komentar na vice radku */ IZP cvičení 2 4

PROGRAMOVÁNÍ VZDÁLENĚ IZP cvičení 2 5

Programování vzdáleně (Windows) Ve Windows spusťte program PuTTY Plocha Network Apps PuTTY Nastavení PuTTY Category: Terminal Features zaškrtnout Disable application keypad mode (NumLock) Category: Session Host name: merlin.fit.vutbr.cz, protokol: SSH Přihlašovací jméno: xlogin00 (váš login) Saved Sessions: Merlin, potom Save Heslo: heslo, kterým se přihlašujete do WIS IZP cvičení 2 6

Programování vzdáleně (Linux) V Linuxu otevřete program Terminal Applications System Tools Terminal Na vzdálený server se lze připojit pomocí příkazu ssh ssh login@merlin.fit.vutbr.cz Ve školní síti stačí ssh merlin Přihlašovací jméno a heslo je stejné jako do WISu Dále je postup stejný jako při programování z Windows (vzdáleně) Kromě editoru nano lze také využít vývojové prostředí Code::Blocks IZP cvičení 2 7

Získávání nápovědy Nápovědu můžete získat z internetu: vygooglit název příkazu + c Výborný zdroj: http://www.cplusplus.com/ Doporučení AS: http://devdocs.io/ pomocí příkazu man (linux) Kniha např. pokud chcete získat informace o funkci printf, zadejte: man 3 printf Herout, P. Učebnice jazyka C. Mohla by ještě být v knihovně IZP cvičení 2 8

Code::Blocks lokálně Na školních serverech je poměrně stará verze prostředí Code::Blocks (Windows a asi i Linux) Doporučuji proto si Code::Blocks nainstalovat na disk P Ze stránek Code::Blocks si stáhněte codeblocks-17.12mingw-nosetup.zip A archiv rozbalte na disk P. Obsahuje i překladač, takže není potřeba nic dalšího A disk P máte k dispozici na všech školních počítačích IZP cvičení 2 9

Číselné proměnné a konstanty Základní pojmy Proměnná Pojmenované místo v paměti, ve kterém uchováváme data. Má určitý datový typ a její hodnota se může za běhu programu měnit. Příklad: int a=10; IZP cvičení 2 10

Číselné proměnné a konstanty Základní pojmy Proměnná Pojmenované místo v paměti, ve kterém uchováváme data. Má určitý datový typ a její hodnota se může za běhu programu měnit. Příklad: int a=10; Konstanta Pojmenované místo v paměti, ve kterém uchováváme data. Má určitý datový typ, její hodnota se nemůže za běhu programu měnit. Příklad: const int b=10; IZP cvičení 2 11

Číselné proměnné a konstanty Základní pojmy Inicializace Nastavení hodnoty proměnné nebo konstanty Příkaz Definuje činnost, kterou program vykoná (např. výpis textu na obrazovku) IZP cvičení 2 12

PŘÍKLADY IZP cvičení 2 13

Pár poznámek V příkladech budeme používat jedinou knihovní funkci printf() Funkce se nachází v knihovně stdio.h #include <stdio.h> Použití: printf("text"); int i = 10; printf("cislo: %d", i); char retezec[] = "Ahoj"; printf("retezec: %s", retezec); IZP cvičení 2 14

Hello world Napište program, který na obrazovku vypíše pozdrav světu Určitě si ho pamatujete z předchozího cvičení Kostra (může vypadat nějak takto, ostatní dnes sami): #include <stdio.h> // funkce main() // výpis pozdravu // návratová hodnota IZP cvičení 2 15

Číselné proměnné a konstanty Napište program, který: Vypíše na obrazovku číslo 38 (%d) Deklarujte proměnnou typu int (může se jmenovat libovolně) Do proměnné uložte hodnotu 38 K deklarované proměnné přičte hodnotu 4 Opět vypíše novou hodnotu na obrazovku (%d) IZP cvičení 2 16

Jednoduché podmínky (if) Základní pojmy podmíněný příkaz if (podmínka){ příkazy } else {příkazy} Napište program, který Deklaruje a inicializuje proměnnou typu int na hodnotu 42 K hodnotě této proměnné přičte 3 Pokud je hodnota proměnné větší než 44, program o tomto nějak informuje uživatele. Pokud je hodnota proměnné větší než 45, program o tomto informuje uživatele. V opačném případě program ohlásí, že zadaná hodnota není větší než 45. IZP cvičení 2 17

Argumenty programu Jednotlivé argumenty budeme oddělovat mezerou Argumenty, se kterými byl program spuštěn, se dají získat pomocí doplnění dvou parametrů do hlavičky funkce main: int main(int argc, char* argv[]) { } // argc počet argumentů // argv jednotlivé argumenty, argv[0] // (název souboru s programem) IZP cvičení 2 18

Argumenty programu int main(int argc, char* argv[]) { } // argc počet argumentů // argv jednotlivé argumenty, argv[0] // (název souboru s programem) Pro./hello sum 10 20 argc=4 argv[0] argv[1] argv[2] argv[3] "hello" "-sum" "10" "20" IZP cvičení 2 19

Spouštění programu s parametry Code::Blocks Project Set program s arguments OK Spustíme program Linux./program arg1 arg2 arg3 Jednotlivé argumenty jsou od sebe odděleny mezerou IZP cvičení 2 20

Výpis argumentů programu Napište program, který vypíše první tři argumenty, se kterými byl program spuštěn počet argumentů programu Tentokrát společně a pro společnou bezpečnost VELMI opatrně int main(int argc, char* argv[]) { } // argc počet argumentů // argv jednotlivé argumenty, argv[0] // (název souboru s programem) IZP cvičení 2 21

Výpis argumentů programu jednoduchý cyklus Cyklus (počítaný, nepočítaný) Cyklem myslíme opakování určité části programu Počítaný: známý počet průchodů (for) Nepočítaný: neznámý počet průchodů (while, do-while) Zatím si vystačíme s cyklem while while (podmínka) { tělo cyklu } IZP cvičení 2 22

Jak vytvořit cyklus? Bude to pro vás jedna z nejčastějších činností, takže je asi dobré to dostat do krve Použijeme příklad z wiki a na něm si ukážeme, jak se cyklus tvoří Budeme opět vypisovat všechny argumenty Nejdříve vypíšeme název programu a počet argumentů Poté inicializujeme proměnnou typu int, kterou budeme indexovat jednotlivé proměnné Pokud bude argc větší než hodnota proměnné typu int, vypíšeme obsah na obrazovku (argv[]) a inkrementujeme proměnnou A úplně stejně pro ostatní argumenty IZP cvičení 2 23

OK Zjevný problém u předchozího příkladu Mnohokrát opakujeme stejný kód Řešení: opakující se kód zkopírujeme do cyklu Co se mění u našeho příkladu? Jak tu změnu přepsat do cyklu? IZP cvičení 2 24

OK Zjevný problém u předchozího příkladu Mnohokrát opakujeme stejný kód Řešení: opakující se kód zkopírujeme do cyklu Co se mění u našeho příkladu? Jak tu změnu přepsat do cyklu? // inicializace while (argc > i) { } printf("argument %d: %s\n",i,argv[i]); i = i+1; // i++; IZP cvičení 2 25

Další úkoly Na Wiki stránkách je několik dalších jednoduchých příkladů, které určitě stojí za vyzkoušení Načtení vstupu a výstup z programu Načtení dvou čísel a jejich výpis Výpočty Základní cyklus Na dalších slidech najdete zadání a rady k řešení (hlavně abyste nemuseli otevírat wiki, pokud budete zkoušet příklady řešit samostatně) Pokud je nestihnete tady, důrazně doporučuji si úkoly doprogramovat na DÚ IZP cvičení 2 26

Načtení vstupů K načítání vstupů se používá funkce scanf scanf("formátovací řetězec",&proměnná) Formátovací řetězec indikuje formát dat, která načítáme např. %f, %d Proměnná indikuje proměnnou, do které budou zadaná data uložena Znak &: chceme adresu, na kterou ukládáme Pozor na řetězce/pole Příklad: int celecislo; // kam ukládáme scanf("%d",&celecislo); // načtení printf("%d\n",celecislo); // výpis IZP cvičení 2 27

Načtení vstupů Napište program, který načte z klávesnice celé číslo (datový typ int) a to poté vypíše Nezapomeňte vytvořit proměnnou pro uložení čísla Funkce scanf, formátovací řetězec pro int: %d Výpis na obrazovku pomocí funkce printf: %d Napište program, který načte z klávesnice desetinné číslo (datový typ float) a to poté vypíše Nezapomeňte vytvořit proměnnou pro uložení čísla Funkce scanf, formátovací řetězec pro float: %f Výpis na obrazovku pomocí funkce printf: %g IZP cvičení 2 28

Načtení vstupů Napište program, který načte z klávesnice znak (datový typ char) a ten poté vypíše Nezapomeňte vytvořit proměnnou pro uložení znaku Funkce scanf, formátovací řetězec pro char: %c Výpis na obrazovku pomocí funkce printf: %c (zkuste i %d) Napište program, který načte z klávesnice řetězce (datový typ char []) a maximální délce 9 znaků. Tyto řetězce budou reprezentovat jméno a příjmení. Proměnné: char jmeno[10], char prijmeni[10] Funkce scanf, formátovací řetězec pro char [10]: %9s Výpis na obrazovku pomocí funkce printf, použijte dva formátovací řetězce %s IZP cvičení 2 29

Načtení dvou čísel a jejich výpis Načtěte dvě čísla typu float, která budou reprezentovat souřadnice bodů Nezapomeňte vytvořit proměnné pro uložení čísel Funkce scanf, dva formátovací řetězce %f Výpis pomocí printf (%f) ve tvaru [prvnícislo,druhecislo] IZP cvičení 2 30

Výpočty spotřeba paliva Vytvořte program, který spočítá spotřebu pohonných hmot Uživatel bude muset zadat čtyři parametry Počáteční stav nádrže [l] Počáteční stav tachometru [km] Koncový stav nádrže [l] Koncový stav tachometru [km] Výstupem bude průměrná spotřeba paliva na 100 km IZP cvičení 2 31

Výpočty čas Napište program, který převede zadaný počet hodin a minut na sekundy. Ve výstupu musí být patrný počet hodin a sekund a převedená hodnota. Napište program, který zadaný počet sekund převede na hodiny, minuty a sekundy. Ve výstupu musí být patrný počet sekund a převedená hodnota. IZP cvičení 2 32

Evidence pacientů větší systém Během semestru budeme na cvičeních vytvářet větší progam Evidenci pacientů u lékaře Na cvičeních budeme postupně doplňovat do programu různé funkce Doktor Smrčka s ním bude pracovat na řízených democvičeních IZP cvičení 2 33

Evidence pacientů rok narození Napište program, který načítá roky narození jednotlivých pacientů Roky jsou odděleny bílým znakem (mezera, ENTER), načítání skončí, pokud uživatel zadá číslo 0. Program jako výstup vypíše celkový počet pacientů, pro které byla načtena data narození a počet pacientů, kterým je dle roku narození méně než 18 let. IZP cvičení 2 34

Děkuji za pozornost