1. Informace o předmětu, úvod do programování

Podobne dokumenty
Úvodní informace. 18. února 2019

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Mocninné řady 1 / 18

B0B99PRPA Procedurální programování

TGH01 - Algoritmizace

Martin Pergel. 26. února Martin Pergel

TGH01 - Algoritmizace

PA152,Implementace databázových systémů 2 / 25

Kombinatorika a grafy I

B0B99PRPA Procedurální programování. Stanislav Vítek

MATEMATIKA 3. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Matematika 2, vzorová písemka 1

ggplot2 Efektní vizualizace dat v prostředí jazyka R Martin Golasowski 8. prosince 2016

Inverzní Z-transformace

Wstęp do programowania

Numerické metody a statistika

Kristýna Kuncová. Matematika B3

Elementární funkce. Edita Pelantová. únor FJFI, ČVUT v Praze. katedra matematiky, FJFI, ČVUT v Praze

Kapitola 4: Soustavy diferenciálních rovnic 1. řádu

Internet a zdroje. (Zdroje na Internetu) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17.

Edita Pelantová, katedra matematiky / 16

Geometrická nelinearita: úvod

Funkce zadané implicitně. 4. března 2019

Numerické metody 8. května FJFI ČVUT v Praze

Aproximace funkcí 1,00 0,841 1,10 0,864 1,20 0,885. Body proložíme lomenou čarou.

Cauchyova úloha pro obyčejnou diferenciální rovnici

1 Soustava lineárních rovnic

Reprezentace dat. BI-PA1 Programování a Algoritmizace I. Ladislav Vagner

Kristýna Kuncová. Matematika B2 18/19

Necht je funkce f spojitá v intervalu a, b a má derivaci v (a, b). Pak existuje bod ξ (a, b) tak, že f(b) f(a) b a. Geometricky

Quick sort, spojové struktury

GENETICKÉ PROGRAMOVÁNÍ S JAZYKEM BRAINFUCK

(1) Derivace. Kristýna Kuncová. Matematika B2 17/18. Kristýna Kuncová (1) Derivace 1 / 35

Automatové modely. Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Kristýna Kuncová. Matematika B2

DFT. verze:

(2) Funkce. Kristýna Kuncová. Matematika B2. Kristýna Kuncová (2) Funkce 1 / 25

Anna Kratochvílová Anna Kratochvílová (FJFI ČVUT) PDR ve zpracování obrazu / 17

Vybrané kapitoly z matematiky

B0B99PRPA Procedurální programování

Matematika (KMI/PMATE)

(13) Fourierovy řady

Numerické metody minimalizace

Obsah: CLP Constraint Logic Programming. Úvod do umělé inteligence 6/12 1 / 17

Obsah Atributová tabulka Atributové dotazy. GIS1-2. cvičení. ČVUT v Praze, Fakulta stavební, katedra mapování a kartografie

IEL Přechodové jevy, vedení

Diferenciální rovnice základní pojmy. Rovnice se

Univerzita Palackého v Olomouci

Paralelní implementace a optimalizace metody BDDC

5. a 12. prosince 2018

Logika V. RNDr. Kateřina Trlifajová PhD. Katedra teoretické informatiky Fakulta informačních technologíı BI-MLO, ZS 2011/12

Linea rnı (ne)za vislost

Wskaźniki. Przemysław Gawroński D-10, p Wykład 1. (Wykład 1) Wskaźniki / 9

Powyższe reguły to tylko jedna z wersji gry. Istnieje wiele innych wariantów, można też ustalać własne zasady. Miłej zabawy!

IB047. Pavel Rychlý. 21. února

Matematická analýza II pro kombinované studium. Konzultace první a druhá. RNDr. Libuše Samková, Ph.D. pf.jcu.cz

MATEMATIKA 3 NUMERICKÉ METODY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Co nám prozradí derivace? 21. listopadu 2018

katedra informatiky FEI VŠB-TU Ostrava etr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Začínáme s C/C září / 25

Určitý (Riemannův) integrál a aplikace. Nevlastní integrál. 19. prosince 2018

Stavový popis Stabilita spojitých systémů (K611MSAP) Katedra aplikované matematiky Fakulta dopravní ČVUT. čtvrtek 20. dubna 2006

Matematika 1 Jiˇr ı Fiˇser 24. z aˇr ı 2013 Jiˇr ı Fiˇser (KMA, PˇrF UP Olomouc) KMA MAT1 24. z aˇr ı / 52

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 13.2.

Paradoxy geometrické pravděpodobnosti

podle přednášky doc. Eduarda Fuchse 16. prosince 2010

IB109 Návrh a implementace paralelních systémů

Obsah. Zobrazení na osmistěn. 1 Zobrazení sféry po částech - obecné vlastnosti 2 Zobrazení na pravidelný konvexní mnohostěn

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Úvod 1 / 32

Matematika III Stechiometrie stručný

Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Vysvětlování modelovacích chyb 133 / 156

NÁVOD K POUŽITÍ KEZELÉSI KÉZIKÖNYV INSTRUKCJA OBSŁUGI NÁVOD NA POUŽÍVANIE. Česky. Magyar. Polski. Slovensky

Kristýna Kuncová. Matematika B2 18/19. Kristýna Kuncová (1) Vzorové otázky 1 / 36

Biosignál II. Lékařská fakulta Masarykovy univerzity Brno

Wykład I. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik

Výzvy, které před matematiku staví

K SAMOSTATNÉ MODULOVÉ SCHODY MONTÁŽI. asta

Vlastnosti. Příprava. Czech - 2 -

Paradigmata programování 2

Formálne jazyky Automaty. Formálne jazyky. 1 Automaty. IB110 Podzim

Typy danych. Przemysław Gawroński D-10, p lutego Wykład 1. (Wykład 1) Typy danych 25 lutego / 11

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

x2 + 2x 15 x 2 + 4x ) f(x) = x 2 + 2x 15 x2 + x 12 3) f(x) = x 3 + 3x 2 10x. x 3 + 3x 2 10x x 2 + x 12 10) f(x) = log 2.

Laplaceova transformace

ČVUT FEL, K October 1, Radek Mařík Ověřování modelů II October 1, / 39

Zadání: Vypočítejte hlavní momenty setrvačnosti a vykreslete elipsu setrvačnosti na zadaných

TVL LED NÁVOD K POUŽITÍ NÁVOD NA POUŽITIE

Design of Experiment (DOE) Petr Misák. Brno 2016

Průvodce studiem V této kapitole se budeme zabývat diferenciálním počtem pro funkce více

Katedra kybernetiky skupina Inteligentní Datové Analýzy (IDA) Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

XML data na disku jako databáze

GEM a soustavy lineárních rovnic, část 2

GENETICKÉM PROGRAMOVÁNÍ

Wykład 1

z předmětu Matematika 2: Funkce dvou a více

Operace s funkcemi [MA1-18:P2.1] funkční hodnota... y = f(x) (x argument)

návod k použití instrukcja obsługi

PROGRAMOWANIE w C prolog

XXXIII Olimpiada Wiedzy Elektrycznej i Elektronicznej Krosno 2010

Kapitola 2. Nelineární rovnice

PŘENOS GEOMETRIE 3D SCÉNY PO SÍTI

Zásuvný modul QGISu. QGIS plugin pro práci s katastrálními daty

Transkrypt:

1. Informace o předmětu, úvod do programování B0B99PRPA Procedurální programování Stanislav Vítek Katedra radioelektroniky Fakulta elektrotechnická České vysoké učení v Praze 1/39

Přehled témat Část 1 O předmětu Organizace předmětu Dostupné prostředky Studijní výsledky Část 2 O programování Než začneme programovat První program Druhý program Část 3 Zadání 0. domácího úkolu 2/39

Část I O předmětu 3/39

I. O předmětu Organizace předmětu Dostupné prostředky Studijní výsledky 4/39

Předmět a lidé Webové stránky předmětu https://cw.fel.cvut.cz/b191/courses/b0b99prpa Moodle pouze částečně (PDF přednášek a zdrojové kódy) https://moodle.fel.cvut.cz Přednášející a garant předmětu Stanislav Vítek, viteks@fel.cvut.cz http://mmtg.fel.cvut.cz/personal/vitek/ Cvičící Martin Mudroch, mudromar@fel.cvut.cz, BRUTE Ondřej Nentvich, nentvond@fel.cvut.cz Václav Navrátil, vaclav.navratil@fel.cvut.cz Václav Vencovský, vecovac@fel.cvut.cz 5/39

Cíle předmětu Motivovat k programování Programování je kĺıčová dovednost, která může hrát rozhodující roli na trhu práce Naučit se algoritmizovat Formulace problému a návrh řešení Rozklad problému na dílčí úlohy Identifikace opakujících se vzorů Získat zkušenosti s programováním Základní programovací konstrukce Proměnné, cykly, podmínky, jednodušší algoritmy Programovací jazyk C, řada principů obecně použitelných Cvičení, domácí úkoly, zkouška Povědomí o tom, jaké úlohy lze výpočetně řešit Programátorovi nestačí perfektní znalost programovacího jazyka, ale především musí vědět, jak vůbec danou úlohu řešit Hledání chyb, práce s dokumentací 6/39

Proč C? Quora: Is it necessary to learn C in 2019? Is learning C still worthwhile? Why does the C programming language refuse to die? 7/39

Organizace a hodnocení předmětu B0B99PRPA Procedurální programování pro EK a EEM Rozsah: 2p+2c Zakončení: KZ Kredity: 4 Studijní výsledky Průběžná práce v semestru domácí úkoly a test Zápočtový a případně implementační test Docházka Přednášky jsou nepovinné, ale velmi doporučené Cvičení jsou povinná, možné dvě omluvené absence Na cvičení je třeba se připravit, nejlépe návštěvou přednášky a studiem podkladů (příklady) Řešení problémů Obracejte se na svého cvičícího Při komunikaci e-mailem pište vždy ze své fakultní adresy Do předmětu zprávy uvádějte zkratku předmětu PRPA V případě zásadních problémů uvádějte do CC též přednášejícího 8/39

Zdroje a literatura Pavel Herout Učebnice jazyka C Kopp, 2011 ISBN 978-80-7232-383-8 Stephen G. Kochan Programming in C Addison-Wesley 2014 ISBN 978-0321776419 K. N. King C Programming: A Modern Approach W. W. Norton & Company 2008 ISBN 860-1406428577 9/39

Zdroje a literatura Brian W. Kernighan Dennis M. Ritchie The C Programming Language (ANSI C) Prentice Hall 1988 ISBN 978-0131103627 Pavel Herout Učebnice jazyka C 2. díl Kopp 2008 ISBN 978-80-7232-367-8 Peter van der Linden Expert C Programming: Deep C Secrets Prentice Hall 1994 ISBN 978-0131774292 10/39

I. O předmětu Organizace předmětu Dostupné prostředky Studijní výsledky 11/39

Počítačové učebny OS Linux (Ubuntu) Síťové bootování a síťové domovské adresáře (NFS v4) Přenos a synchronizace souborů owncloud, SSH, FTP, USB Vývoj v C: Překladače gcc a clang https://gcc.gnu.org a http://clang.llvm.org Sestavení projektu nástrojem make (GNU make) Ukážeme si později na přednáškách a cvičení Textový editor gedit, atom, sublime, vim https://atom.io, http://www.sublimetext.com C/C++ vývojová prostředí Visual Studio Code Geany https://www.geany.org Code::Blocks http://www.codeblocks.org NetBeans, Eclipse 12/39

Služby akademické sítě SVTI http://svti.fel.cvut.cz/cz Diskové úložiště owncloud https://owncloud.cesnet.cz Zasílání velkých souborů https://filesender.cesnet.cz Rozvrh a termíny https://portal.fel.cvut.cz FEL Google Account http://google-apps.fel.cvut.cz autentizovaný přístup do Google Apps for Education Gitlab FEL https://gitlab.fel.cvut.cz Přístup k informačním zdrojům https://dialog.cvut.cz IEEE Xplore, ACM, Science Direct, Springer Link Akademické a kampusové licence https://download.cvut.cz MetaCentrum http://www.metacentrum.cz Národní Gridová Infrastruktura 13/39

I. O předmětu Organizace předmětu Dostupné prostředky Studijní výsledky 14/39

Domácí úkoly Samostatná práce s cílem osvojit si praktické zkušenosti Průběžná práce a řešení úkolů. Jednotné zadání na prednášce a jednotný termín odevzdání Odevzdání domácích úkolů prostřednictvím systému BRUTE https://cw.felk.cvut.cz/upload Nahrání archivu s nezbytnými zdrojovými soubory Ověření správnosti implementace automatickými testy Penalizace za překročení počtu uploadů Detekce plagiátů Cílem řešení úkolů je získat vlastní zkušenost Úkoly jsou jednoduché a navrhované tak, aby byly stihnutelné Pokud nečemu nerozumíte, ptejte se! 15/39

Přehled domácích úkolů Domácí úkoly s povinným a případně bonusovým zadáním https://cw.fel.cvut.cz/wiki/courses/b0b99prpa/hw/start 1. HW00 První program, Hello PRPA! (1) 2. HW01 Načítání vstupu, výpočet a výstup (2) 3. HW02 První cyklus (3) 4. HW03 RLE kodér (4) 5. HW04 Kreslení (ASCII art) (4+3) 6. HW05 Caesarova šifra (4) 7. HW06 Maticové počty (4+3) 8. HW07 Zpracování číselné řady (4) 9. HW08 Analýza textového souboru (4+3) 10. HW09 Kruhová fronta v poli (4) 11. HW10 Zpracování strukturovaného textu (4+3) Podmínkou zápočtu je odevzdání všech úkolů Celkem lze získat za povinná zadání 38b, za bonusová dalších 12b. 16/39

Kontrola domácích úkolů Odevzdávací systém BRUTE Bundle for Reservation, Uploading, Testing and Evaluation Formální kontrola kompilace programu Testování funkčnosti a správnosti kontrola výstupu pro daný vstup Veřejné vstupy a odpovídající výstupy / neveřejné vstupy Před uploadem programu si program otestujete sami S využitím dostupných vstupů a výstupů Vytvořením vlastních vstupů a laděním programu Porozumění kódu a kontrola možných stavů Schopnost vysvětlit roli každého řádku kódu Pro každou funkci nebo načtení vstupu od uživatele analyzujte možné vstupní hodnoty nebo návratové hodnoty funkcí Pokud je z hlediska funkčnosti vstup nebo návratová hodnota zásadní, proveďte kontrolu vstupu a/nebo příslušnou akci, např. vypsání hlášení a ukončení programu Např. očekávaný vstup je číslo a uživatel zadá něco jiného. 17/39

Hodnocení Zdroj bodů Maximum Nutné minimum Domácí úkoly 50 Test v semestru 10 35 Zápočtový test 35 15 Implementační test 15 - Součet 110 Za práci v semestru je třeba získat nejméně 35 bodů, všechny domácí úkoly musí být odevzdány a to nejpozději do 12.1.2020 ve 23:59 CET! Implementační test schopnost pochopit problém a napsat krátký program (cca 4 hodiny) 18/39

Klasifikace Klasifikace Bodové rozmezí Slovní hodnocení A C 90 výborně B 80 89 velmi dobře C 70 79 dobře D 60 69 uspokojivě E 50 59 dostatečně F @ 50 nedostatečně 19/39

Přehled přednášek 1. Informace o předmětu, úvod do programování 24.9. HW00 2. Základy programování v C, překlad, chyby 1.10. HW01 3. Reprezentace dat v paměti, základní řídící struktury 8.10. HW02 4. Řídící struktury, výrazy, funkce 15.10. HW03 5. Strukturované datové typy, ukazatele 22.10. HW04 6. Textové řetězce 29.10. HW05 7. Práce s pamětí, zásobník, halda 5.11. HW06 8. Vnitřní reprezentace datových typů 12.11. HW07 9. Spojové struktury, abstraktní datový typ 19.11. HW08 10. Generický datový typ, ukazatele na funkce 26.11. HW09 11. Standardní a externí knihovny 3.12. HW10 12. Studentská volba 1 10.12. 13. Studentská volba 2 17.12. 14. Zápočtový test 7.1. 20/39

Studentská volba 1. Programování v Pythonu Seznámení s jazykem a kĺıčovými knihovnami (numpy,...) Praktické přiklady: výpočty, kreslení grafů, zpracování textových souborů 2. Pokročilé partie programování v C Paralení programování, paralelní výpočty a synchronizační primitiva (semafory, zprávy a sdílená paměť) Vícevláknové programování, modely aplikací, POSIX vlákna C11 vlákna 3. Úvod do programování v C++ Stručné seznámení s jazykem Velmi lehký úvod do objektového programování O náplni 12. a 13. přednášky rozhodne hlasování pomocí internetového formuláře, který bude otevřen ve třetím týdnu. 21/39

Část II O programování 22/39

II. O programování Než začneme programovat První program Druhý program 23/39

Řešení problémů 1. formulace problému 2. analýza možných řešení a návrh algoritmu 3. implementace v programovacím jazyce 4. testování, ověření funkčnosti 5. optimalizace 6. oprava chyb 7. implementace nových požadavků, údržba 8. dokumentace 24/39

Řešení problémů 25/39

Co je to program? Program je recept posloupnost kroků (výpočtů), popisující průběh řešení nějakého problému pomocí dostupných prostředků programovací prostředí, počítač,... Receptu budeme říkat algoritmus. 26/39

Co je to algoritmus? Návod, jak provést určitou činnost. Vlastnosti algoritmu: 1. Skládá se z konečného počtu jednoduchých činností kroků. Je elementární. 2. Po každém kroku lze určit, jak se má pokračovat nebo skončit. Je determinovaný. 3. Počet opakování jednotlivých kroků algoritmu je vždy konečný. Je konečný. 4. Vede ke správnému výsledku. Je rezultativní. 5. Algoritmus lze použít k řešení celé (velké) skupiny podobných úloh. Je hromadný. Slovo algoritmus vzniklo odvozením od jména perského matematika Al-Chorezmího, jehož jméno bylo ve středověku latinizováno jako Al-Gorizmí. 27/39

Základní složky algoritmu V případě programování jde zpravidla o transformaci množiny vstupních dat na množinu dat výstupních. Kombinace základních složek algoritmu umožňuje vytvářet komplexní programy. Posloupnost (sekvence) tvořena jedním nebo několika kroky, které se provedou právě jednou v daném pořadí. Cyklus (iterace) opakování nějaké posloupnosti, dokud je splněna podmínka opakování. Větvení (podmíněná operace) volba posloupnosti instrukcí na základě vyhodnocení podmínky. Pokud se některé části algoritmu opakují, je vhodné poslupnosti orgranizovat do větších celků: procedur a funkcí (podprogramů). 28/39

Zápis algoritmu Existují 4 hlavní způsoby, jakými lze algoritmus popsat: slovně Vyjádříme slovně postup řešení a jednotlivé kroky graficky Použití vývojových diagramů a struktogramů matematicky jednoznačnný popis matematickou konstrukcí (např. rovnicí nebo konstrukčním popisem geometrické úlohy) programem kroky algoritmu jsou popsány instrukcemi procesoru, resp. převedeny z vyššího programovacího jazyka, tedy algoritmus programujeme Návrhy algoritmů: shora dolů problém rozděĺıme na několik podúloh, které řešíme a spojením dostaneme celý algoritmus zdola nahoru z triviálních úloh skládáme vyšší úlohy a spojením dostaneme celý algoritmus kombinace obou metod V praxi vždy záleží především na komplexnosti a povaze řešeného algoritmus, který postup bude nejlepší aplikovat. 29/39

Programování je když... Programování je schopnost samostatně tvořit programy dekomponovat úlohy na menší celky sestavovat z dílčích částí větší programy řešící komplexní úlohu Jak začít? Scratch MIT Media Lab https://scratch.mit.edu/ Angry Birds https://studio.code.org/hoc/1/ Code with Anna and Elsa https://studio.code.org/s/frozen/ 30/39

Programování může být skvělá zábava Arduino Open Source Procesory AVR http://arduino.cc Nucleo ST Microelectronics Procesory ARM http://st.com BBC Micro:bit Open Source Procesory ARM http://microbit.org 31/39

Programování počítače Počítač počítá, tj. pracuje s čísly Výpočet je realizován aritmeticko-logickou jednotkou (ALU) Číselné hodnoty jsou uloženy v paměti počítače Jejich význam je pak určen datovým typem Předpis jak a co počítat je zapsán programem Opět jako posloupnost číselných hodnot se specifickým významem Výpočty probíhají ve dvojkové soustavě V minulosti se používala i desítková (ENIAC) nebo trojková soustava (Setuň) jednotkou pro uložení informace je bit bity jsou organizovány do skupin byte (= 8 bitů) 32/39

Data v paměti počítače Paměťová místa s daty jsou odkazována proměnnými pojmenované místo v paměti počítače vytvoří se základě deklarace, ve které sděĺıme její jméno (identifikátor) a datový typ počítač zachází s proměnnou prostřednictvím její adresy v programu je adresa vyjádřena jménem proměnné Příklad deklarace proměnných pro uložení celých čísel datového typu int int a; int b; // dále zacházime s proměnnými běžným způsobem a = 10; b = a - 3; 33/39

II. O programování Než začneme programovat První program Druhý program 34/39

První program 1 #include <stdio.h> 3 int main() 4 { 5 printf("hello PRPA!\n"); 6 return 0; 7 } Program můžeme zkompilovat a spustit $ gcc hello.c Někde na disku existuje soubor stdio.h, který potřebuji k překladu. Kód spustitelného programu obsahuje funkci main(). Kód je organizován do bloků ohraničených {}. Funkce printf tiskne text na displej. Program (funkce) má návratovou hodnotu. Na displej počítače (standardní výstup) se vypíše textová informace $./a.out 35/39

První program 1 #include <stdio.h> 3 int main() 4 { 5 printf("hello PRPA!\n"); 6 return 0; 7 } Program můžeme zkompilovat a spustit $ gcc hello.c Někde na disku existuje soubor stdio.h, který potřebuji k překladu. Kód spustitelného programu obsahuje funkci main(). Kód je organizován do bloků ohraničených {}. Funkce printf tiskne text na displej. Program (funkce) má návratovou hodnotu. Na displej počítače (standardní výstup) se vypíše textová informace $./a.out 35/39

První program 1 #include <stdio.h> 3 int main() 4 { 5 printf("hello PRPA!\n"); 6 return 0; 7 } Program můžeme zkompilovat a spustit $ gcc hello.c Někde na disku existuje soubor stdio.h, který potřebuji k překladu. Kód spustitelného programu obsahuje funkci main(). Kód je organizován do bloků ohraničených {}. Funkce printf tiskne text na displej. Program (funkce) má návratovou hodnotu. Na displej počítače (standardní výstup) se vypíše textová informace $./a.out 35/39

První program 1 #include <stdio.h> 3 int main() 4 { 5 printf("hello PRPA!\n"); 6 return 0; 7 } Program můžeme zkompilovat a spustit $ gcc hello.c Někde na disku existuje soubor stdio.h, který potřebuji k překladu. Kód spustitelného programu obsahuje funkci main(). Kód je organizován do bloků ohraničených {}. Funkce printf tiskne text na displej. Program (funkce) má návratovou hodnotu. Na displej počítače (standardní výstup) se vypíše textová informace $./a.out 35/39

První program 1 #include <stdio.h> 3 int main() 4 { 5 printf("hello PRPA!\n"); 6 return 0; 7 } Program můžeme zkompilovat a spustit $ gcc hello.c Někde na disku existuje soubor stdio.h, který potřebuji k překladu. Kód spustitelného programu obsahuje funkci main(). Kód je organizován do bloků ohraničených {}. Funkce printf tiskne text na displej. Program (funkce) má návratovou hodnotu. Na displej počítače (standardní výstup) se vypíše textová informace $./a.out 35/39

II. O programování Než začneme programovat První program Druhý program 36/39

Druhý program alokuj paměť 1 #include <stdio.h> 3 int main() 4 { 5 int a, b; 7 scanf ("%d", &a); 8 scanf ("%d", &b); 10 if (a > b) 11 printf ("a > b"); 12 else 13 printf ("a < b"); načti a a b a > b ne vytiskni "a < b" ano vytiskni "a > b" 15 return 0; 16 } konec Program načte dvě čísla ze standardního vstupu Na standardní výstup se vypíše textová informace 37/39

Druhý program alokuj paměť 1 #include <stdio.h> 3 int main() 4 { 5 int a, b; 7 scanf ("%d", &a); 8 scanf ("%d", &b); 10 if (a > b) 11 printf ("a > b"); 12 else 13 printf ("a < b"); načti a a b a > b ne vytiskni "a < b" ano vytiskni "a > b" 15 return 0; 16 } konec Program načte dvě čísla ze standardního vstupu Na standardní výstup se vypíše textová informace 37/39

Druhý program alokuj paměť 1 #include <stdio.h> 3 int main() 4 { 5 int a, b; 7 scanf ("%d", &a); 8 scanf ("%d", &b); 10 if (a > b) 11 printf ("a > b"); 12 else 13 printf ("a < b"); načti a a b a > b ne vytiskni "a < b" ano vytiskni "a > b" 15 return 0; 16 } konec Program načte dvě čísla ze standardního vstupu Na standardní výstup se vypíše textová informace 37/39

Druhý program alokuj paměť 1 #include <stdio.h> 3 int main() 4 { 5 int a, b; 7 scanf ("%d", &a); 8 scanf ("%d", &b); 10 if (a > b) 11 printf ("a > b"); 12 else 13 printf ("a < b"); načti a a b a > b ne vytiskni "a < b" ano vytiskni "a > b" 15 return 0; 16 } konec Program načte dvě čísla ze standardního vstupu Na standardní výstup se vypíše textová informace 37/39

Druhý program alokuj paměť 1 #include <stdio.h> 3 int main() 4 { 5 int a, b; 7 scanf ("%d", &a); 8 scanf ("%d", &b); 10 if (a > b) 11 printf ("a > b"); 12 else 13 printf ("a < b"); načti a a b a > b ne vytiskni "a < b" ano vytiskni "a > b" 15 return 0; 16 } konec Program načte dvě čísla ze standardního vstupu Na standardní výstup se vypíše textová informace 37/39

Druhý program alokuj paměť 1 #include <stdio.h> 3 int main() 4 { 5 int a, b; 7 scanf ("%d", &a); 8 scanf ("%d", &b); 10 if (a > b) 11 printf ("a > b"); 12 else 13 printf ("a < b"); načti a a b a > b ne vytiskni "a < b" ano vytiskni "a > b" 15 return 0; 16 } konec Program načte dvě čísla ze standardního vstupu Na standardní výstup se vypíše textová informace 37/39

Část III Zadání 0. domácího úkolu (HW00) 38/39

Zadání 0. domácího úkolu (HW00) Téma: První program Motivace: Seznámení se s odevzdávacím systémem BRUTE Cíl: Osvojit si kompilaci a odevzdávání domácích úkolů Zadání: https://cw.fel.cvut.cz/wiki/courses/b0b99prpa/hw/hw00 Napište program, který vytiskne na obrazovku text Hello PRPA! zakončený znakem nového řádku \n Termín odevzdání: 19.09.2019, 23:59:59 CET 39/39