Programování a algoritmizace 1

Slides:



Advertisements
Podobné prezentace
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Advertisements

Dualita úloh lineárního programování a analýza citlivosti
HYPERTEXT PREPROCESSOR. PROGRAMOVÁNÍ. DEFINICE POJMŮ Problém Problém nevyřešený, nežádoucí stav obvykle vyžaduje nějaké řešení Neřešitelný problém Neřešitelný.
Algoritmizace Vývojové diagramy.
Cvičení Úloha 1: Rozhodněte zda posloupnost znaků v poli délky n tvoří palindrom (slovo, které je stejné při čtení zprava i zleva). Př.: [a,l,e,l,a] [a,n,n,a]
Úvod Klasifikace disciplín operačního výzkumu
ALGO – Algoritmizace 1. cvičení
Zpracování seminárních a kvalifikačních prací
Genetické algoritmy. V průběhu výpočtu používají náhodné operace. Algoritmus není jednoznačný, může projít více cestami. Nezaručují nalezení řešení.
Algoritmizace Cíl předmětu - naučit se sestavovat algorimy řešení základních problémů a zapisovat je v jazyku Java. Jádrem předmětu jsou data, typy, výrazy.
Algoritmizace 9. Ročník.
Vývojové diagramy a základy algoritmizace
ALGORITMIZACE ÚVODNÍ PŘEDNÁŠKA 2 SLOVO ALGORITMUS VZNIKLO ZE JMÉNA ARABSKÉHO MATEMATIKA AL-KHWARIZMIHO, KTERÝ V DEVÁTÉM STOLETÍ SEPSAL ROZSÁHLOU KOLEKCI.
Struktury, qsort, mergesort BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií.
Informatika pro ekonomy II přednáška 1
Algoritmizace a programování
Největší společný dělitel – teorie a procvičování
Řešení dynamických problémů s podmínkami Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta.
Jazyk vývojových diagramů
Řadicí algoritmy autor: Tadeáš Berkman.
Seminář – Základy programování
Algoritmizace.
Informatika a práce s počítačem
KIV/PRO Cvičení Nalezení maxima Nalezněte (co nejefektivněji) maximum v následující posloupnosti: – 2; 12; 8; 39; 9; 4; 3; 20; 28; 19;
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
Algoritmus po krocích rozepsaný návod k nějaké činnosti
Informatika I 2. přednáška
Algoritmizace a základy programování
Základy algoritmizace a programování
ALGO – Algoritmizace 2. cvičení
Úvod do algoritmizace Obsah: Algoritmus, algoritmizace
Gramatiky a jazyky Přednáška z předmětu Řízení v komplexních systémech
Jazyk vývojových diagramů
Časová složitost algoritmů, řazení a vyhledávání
Obchodní akademie, Náchod, Denisovo nábřeží 673
INFORMAČNÍ SYSTÉMY Semestrální projekt 2013/2014 Podmínky udělení zápočtu Ing. Roman Danel, Ph.D. Institut ekonomiky a systémů řízení.
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ Ústav technologie, mechanizace a řízení staveb Fakulta stavební VUT v Brně © Ing. Václav Rada, CSc. 15. PŘEDNÁŠKA.
Realloc a qsort examples BI-PA1 Programování a algoritmizace 1 Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Algoritmizace a programování Algoritmizace – základní pojmy - 01
doc. RNDr. Zdeněk Botek, CSc.
ALGO – Algoritmizace 4. cvičení 1.ročník, ZS Ing. Zdena DOBEŠOVÁ, Ph.D.
Algoritmus a jeho vlastnosti
Gymnázium, Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Hodonín Úvod do programování.
Ukazatele BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
doc. RNDr. Zdeněk Botek, CSc.
Algebra v informatice Antonín Jančařík.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Sylabus V rámci PNV budeme řešit konkrétní úlohy a to z následujících oblastí: Nelineární úlohy Řešení nelineárních rovnic Numerická integrace Lineární.
ZÁSADY KONCIPOVÁNÍ LOGISTICKÝCH SYSTÉMŮ KAPITOLA 5: VZTAH STRATEGIE PODNIKU A LOGISTICKÉHO PLÁNOVÁNÍ, CÍLE, METODY A NÁSTROJE PLÁNOVÁNÍ, POSTUPOVÉ KROKY.
Úvod do programování Vyučující: Mgr. Vítězslav Jersák
Programování v MATLABu © Leonard Walletzký, ESF MU, 2000.
Orbis pictus 21. století Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky Blokové schéma počítače.
Algoritmizace a programování Algoritmy 4 – Vývojové diagramy (cykly)
Algoritmizace a programování Algoritmy 1 - Úvod. Základní pojmy Počítačový program Počítačový program zápis zdrojového kódu, kterému rozumí počítač zápis.
Základní informace o předmětu1. Přednášející: RNDr. Martin Hála, CSc. katedra matematiky, B105, Další informace a soubory ke stažení.
KURZ ALGORITMIZACE A PROGRAMOVÁNÍ V JAZYCE C Lekce č. 2: Základní pojmy Bc. Radek Libovický.
Základní pojmy v automatizační technice
Inf Cykly ve vývojových diagramech
Algoritmizace – základní pojmy
Základní pojmy v automatizační technice
C# konzole – Podíl dvou čísel, podmínka IF
Inf Algoritmus.
Vytváření dokumentace algoritmů
2018/6/10 Počítačový model Kateřina Růžičková.
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Algoritmizace a programování
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Algoritmizace a datové struktury (14ASD)
Transkript prezentace:

Programování a algoritmizace 1 2012-2013 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Algoritmy BI-PA1 Programování a algoritmizace 1, ZS 2014-2015 Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké učení technické první přednáška

Programování a algoritmizace 1 2012-2013 Kdo je kdo v PA1? Ing. Miroslav Balík, Ph.D. - přednášející a garant předmětu Ing. Ladislav Vagner, Ph.D. - prosemináře, Progtest Ing. Josef Vogel, CSc - přednášející, prosemináře Cvičící a asistenti Studenti Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 Organizace předmětu Výuka 2 hod. přednášek 2 hod. prosemináře 2 hod. cvičení týdně v počítačové učebně Studijní materiály a další informace budou postupně zveřejňovány na webu: http://edux.fit.cvut.cz/courses/BI-PA1/ Doporučená literatura Herout: Učebnice jazyka C, KOPP, Č. Budějovice Virius: Jazyky C a C++, GRADA, Praha Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 Osnova předmětu Přednášky Algoritmus Proměnné, vstup, výstup Výrazy Větvení, cykly Funkce Rekurze Pole, řetězce Ukazatele Soubory Složitost algoritmů Struktury Spojové struktury Modulární programování Cvičení Učebna, číselné soustavy Proměnné, vstup, výstup Reálné typy, výrazy Podmíněné příkazy Cykly, posloupnosti Funkce Rekurze Pole a řetězce Ukazatele Soubory Složitost algoritmů Struktury Spojové struktury Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 Cíl předmětu Náš cíl naučit Vás sestavovat algoritmy pro řešení jednoduchých problémů a zapisovat je v jazyku C Váš cíl získat zápočet a zkoušku za A  Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 Hodnocení předmětu Zdroje bodů pro hodnocení Body domácí úkoly 8*5 = 40b soutěžní úloha až 15 bodů znalostní testy 4*2,5 = 10 b test u počítače v semestru 20 b praktický zkouškový test 30 b (min. 15 b) teoretický zkouškový test 20 b (min. 10 b) zápočet >= 25 b Klasifikace (na základě bodového hodnocení) klasifikace počet bodů číselně slovně A > 90 1 výborně B 80 - 89 1,5 velmi dobře C 70 - 79 2 dobře D 60 – 69 2,5 uspokojivě E 50 - 59 3 dostatečně F < 50 4 nedostatečně Detaily na http://edux.fit.cvut.cz/courses/BI-PA1/classification/start Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Algoritmus a jeho vlastnosti Programování a algoritmizace 1 2012-2013 Algoritmus a jeho vlastnosti Definice postup při řešení určité třídy úloh, který je tvořen seznamem jednoznačně definovaných příkazů a zaručuje, že pro každou přípustnou kombinaci vstupních dat se po provedení konečného počtu kroků dospěje k požadovaným výsledkům Vlastnosti hromadnost měnitelná vstupní data determinovanost každý krok je jednoznačně definován konečnost a resultativnost pro přípustná vstupní data se po provedení konečného počtu kroků dojde k požadovaným výsledkům Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 Algoritmus Algoritmus – syntetický model postupu řešení obecných úloh Prostředky pro zápis algoritmu přirozený jazyk, vývojové diagramy, struktogramy, pseudojazyk, programovací jazyk - C Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Problém číslo 1, myš na Zemi a ve vesmíru Programování a algoritmizace 1 2012-2013 Problém číslo 1, myš na Zemi a ve vesmíru Problém: Předpokládejme, že naše Země je omotána na rovníku tlustou mašlí. Otázka zní, pokud tuto mašli prodloužíme o jeden metr, vznikne dostatečná mezera, aby se pod ní protáhla myš? Jak se změní odpověď pokud nebudeme uvažovat Zemi, ale Měsíc? Země(Apollo 17): Myš: . Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Řešení 1. velmi naivní algoritmus Programování a algoritmizace 1 2012-2013 Řešení 1. velmi naivní algoritmus Chytnu myš seženu velmi dlouhou mašli, natáhnu ji po rovníku, přidám k ní jeden metr, zkontroluji, zda je všude povolená stejně, vhodně motivovanou myš požádám, aby zkusila prolézt, zapíši výsledek. Modifikace pro Měsíc: seženu grant, koupím vesmírnou loď, skafandr pro sebe a myš, pokračuji jako na Zemi ,raději živou, bude muset prolézat Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Požadavky na algoritmus, aneb je tento naivní algoritmus algoritmem? Programování a algoritmizace 1 2012-2013 Požadavky na algoritmus, aneb je tento naivní algoritmus algoritmem? Konečnost - Každý algoritmus musí skončit v konečném počtu kroků. Tento počet kroků může být libovolně velký (podle rozsahu a hodnot vstupních údajů), ale pro každý jednotlivý vstup musí být konečný. Ano, skončí. Determinovanost - Každý krok algoritmu musí být jednoznačně a přesně definován; v každé situaci musí být naprosto zřejmé, co a jak se má provést, jak má provádění algoritmu pokračovat. S rezervou, ale ano. Vstup - Algoritmus obvykle pracuje s nějakými vstupy, veličinami, které jsou mu předány před započetím jeho provádění, nebo v průběhu jeho činnosti. Vstupy mají definované množiny hodnot, jichž mohou nabývat. Vstupem jsou myš a planeta (mají velikost), 1metr. Výstup - Algoritmus má alespoň jeden výstup, veličinu, která je v požadovaném vztahu k zadaným vstupům, a tím tvoří odpověď na problém, který algoritmus řeší. (Algoritmus vede od zpracování hodnot k výstupu - Resultativnost) Ano, projde x neprojde. Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 Požadavky na algoritmus II, aneb je tento naivní algoritmus algoritmem? Efektivita - Obecně požadujeme, aby algoritmus byl efektivní, v tom smyslu, že požadujeme, aby každá operace požadovaná algoritmem, byla dostatečně jednoduchá na to, aby mohla být alespoň v principu provedena v konečném čase pouze s použitím tužky a papíru. (tj. byla elementární) Tady je největší slabina navrženého algoritmu Obecnost (Hromadnost) Algoritmus neřeší jeden konkrétní problém (např. „jak spočítat 9×7“), ale obecnou třídu obdobných problémů (např. „jak spočítat součin dvou celých čísel“). Ano. V praxi jsou proto předmětem zájmu hlavně takové algoritmy, které jsou v nějakém smyslu kvalitní. Takové algoritmy splňují různá kritéria, měřená např. počtem kroků potřebných pro běh algoritmu, nebo jednoduchost či elegance algoritmu. Problematikou efektivity algoritmů, tzn. metodami, jak z několika známých algoritmů řešících konkrétní problém vybrat ten nejlepší, se zabývají odvětví informatiky nazývané algoritmická analýza a teorie složitosti.Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Řešení 2. - výpočetní algoritmus Programování a algoritmizace 1 2012-2013 Řešení 2. - výpočetní algoritmus Zjistím velikost poloměru příslušné planety, označím jej r, velikost myši označím mys, budu ji uvádět v metrech, vypočtu rovníkový obvod planety podle vztahu obvod = 2*π*r, vypočtu poloměr r2 povolené mašle podle vztahu r2 = (obvod + 1)/(2* π), jestliže mys + r < r2 odpověď je Ano, jinak Ne Modifikace pro Měsíc: Změním poloměr a postup opakuji. Konečnost, determinovanost, vstup, výstup, efektivita, obecnost - Hromadnost Determinovanost si vynucuje jednoznačný zápis, např. v C. K tomu potřebujeme proměnné, výrazy, vstup a výstup. Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Algoritmus – šťastné číslo Šťastné číslo je v matematice: vezměme libovolné kladné celé číslo, nahraďme jej součtem druhých mocnin jeho cifer a tento proces opakujme, dokud se nedostaneme k číslu jedna (kde se proces zastaví) nebo dokud se nám v posloupnosti neobjeví některé číslo dvakrát (tzn. posloupnost se zacyklí). Ta čísla, která tímto způsobem skončí jedničkou, nazýváme šťastná, ostatní pak nešťastná. 7 → 49 → 16+81 = 97 → 81+49=130 → 1+9+0=10 → 1+0=1 šťastné 150 → 1+25+0=26 → 4+36=40 → 16+0=16 →1+36=37 → 9+49=58 → 25+64=89 → 64+81=145 → 1+16+25=42 → 16+4=20 → 4 → 16 nešťastné Dvojková soustava je šťastná soustava Ing. Miroslav Balík, Ph.D. - BI-PA1- 01

Programování a algoritmizace 1 2012-2013 Algoritmy - NSD Úloha: najděte největšího společného dělitele čísel 6 a 15 (co je největší společný dělitel dvou přirozených čísel?) Řešení: Popišme postup tak, aby byl použitelný pro dvě libovolná přirozená čísla, nejen pro 6 a 15: označme zadaná čísla x a y a menší z nich d není-li d společným dělitelem x a y, pak zmenšíme d o 1, test opakujeme a skončíme, až d bude společným dělitelem x a y Poznámka: Význam symbolů x, y a d použitých v algoritmu: jsou to proměnné (paměťová místa), ve kterých je uložena nějaká hodnota, která se může v průběhu výpočtu měnit Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 NSD 2 Úloha: najděte největšího společného dělitele Přesnější popis: Vstup: přirozená čísla x a y Výstup: nsd(x,y) Postup: Je-li x<y, pak d má hodnotu x, jinak d má hodnotu y Opakuj krok 3, pokud d není dělitelem x nebo d není dělitelem y Zmenši d o 1 Výsledkem je hodnota d Sestavili jsme algoritmus pro výpočet největšího společného dělitele dvou přirozených čísel Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 NSD - příklad Úloha: najděte největšího společného dělitele čísel 6 a 15 krok x y d poznámka 6 15 ? zadání vstupních dat 1 6 15 6 2 6 15 6 d není dělitelem y, proveď krok 3 3 6 15 5 2 6 15 5 d není dělitelem x, proveď krok 3 3 6 15 4 2 6 15 4 d není dělitelem x ani y, proveď krok 3 3 6 15 3 2 6 15 3 d je dělitelem x i y, proveď krok 4 4 6 15 3 výsledkem je číslo 3 Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 NSD – vývojový diagram nsd(x, y) ano ne x < y d := x d := y ne d není dělitelem x nebo d není dělitelem y ano d := d - 1 nsd := d Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 NSD - Struktogram nsd(x, y) x < y ano ne d := x d := y pokud d není dělitelem x nebo d není dělitelem y opakuj d := d - 1 nsd :=d Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 NSD - pseudojazyk Zápis algoritmu v pseudojazyku nsd(x,y): if x<y then d:=x else d:=y; while d „není dělitelem“ x or d „není dělitelem“ y do d:=d-1; nsd:=d; Zápis algoritmu v programovacím jazyku C int nsd(int x, int y) { int d; if (x<y) d=x; else d=y; while (x%d!=0 || y%d!=0) d--; return d; } Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programy a programovací jazyky Programování a algoritmizace 1 2012-2013 Programy a programovací jazyky Program je předpis pro provedení určitých akcí počítačem zapsaný v programovacím jazyku (je to vždy zápis algoritmu?) Programovací jazyky strojově orientované strojový jazyk = jazyk fyzického procesoru assembler (jazyk symbolických adres) vyšší jazyky imperativní (příkazové, procedurální) neimperativní (např. funkcionální, deklarativní,...) Hlavní rysy imperativních jazyků (např. C, C++, Java, Pascal, Basic, ...) zpracovávané údaje mají formu datových objektů různých typů, které jsou v programu reprezentovány pomocí proměnných resp. konstant program obsahuje deklarace a příkazy deklarace definují význam jmen (identifikátorů) příkazy předepisují akce s datovými objekty nebo způsob řízení výpočtu Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Vlastnosti programovacích jazyků Programování a algoritmizace 1 2012-2013 Vlastnosti programovacích jazyků Syntaxe souhrn pravidel udávajících přípustné tvary dílčích konstrukcí a celého programu Sémantika udává význam jednotlivých konstrukcí Prostředky pro popis syntaxe syntaktické diagramy různé formy Backus-Naurovy formy Sémantika je obvykle popsána slovně Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 Syntaktické diagramy Příklad: identifikátor je posloupnost písmen a číslic začínající písmenem Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 Rozšířená BNF Rozšířená Backus-Naurova forma – EBNF Příklad: identifikátor identifikátor = písmeno {písmeno | číslice} písmeno = 'A' | 'B' | 'C' | 'D' | ... | 'X' | 'Y' | 'Z' číslice = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '9' Neterminály: identifikátor, písmeno, číslice Terminály: ‘A’, ‘B’, ... Význam metasymbolů: {x} žádný nebo několik výskytů x x | y x nebo y [x] žádný nebo jeden výskyt x Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Implementace programovacích jazyků Programování a algoritmizace 1 2012-2013 Implementace programovacích jazyků Dvě základní metody: interpretační kompilační Interpretační metoda: Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Implementace programovacích jazyků Programování a algoritmizace 1 2012-2013 Implementace programovacích jazyků Kompilační metoda: Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 Úvod do jazyka C Pro prezentaci, návrh a ověřování algoritmů použijeme jazyk C Z historie jazyka C 1972 D. Ritchie Bell Laboratories PDP11 1978 Kernighan, Ritchie: The C Programming Language (K&R C) Systémový jazyk operačního systému Unix ANSI pracovní skupina X3J11 ANSI X3.159-1989 (ANSI C, C89) převzatá ISO/IEC 9899:1990 1999 nová norma ISO 9899:1999 (C99) Budeme používat ANSI C Objektově orientovaným rozšířením C je jazyk C++, se kterým se seznámíme v předmětu PA2 Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 Úvod do jazyka C Přednosti jazyka C jde o vyšší, obecně použitelný programovací jazyk neobsahuje „černé schránky“, veškeré konstrukce jsou srozumitelné a snadno ilustrovatelné umožňuje operace blízké strojovému kódu (operace s adresami) překladače optimalizují, výsledný kód je velice efektivní vytvořené programy jsou dobře přenositelné (portabilní), pokud se nepoužívají počítačově závislé triky syntaxi výrazů a příkazů převzala řada dalších jazyků Hlavní nevýhoda překladačů jazyka C pro začátečníka nízká zabezpečenost (při běhu programu se neprovádějí žádné kontroly) Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

První program v jazyku C Programování a algoritmizace 1 2012-2013 První program v jazyku C Příklad programu, který vypíše daný text na obrazovku: #include <stdio.h> #include <stdlib.h> int main(void) { printf("\nNazdar, toto je prvni program\n"); system("PAUSE"); return 0; } Po překladu a spuštění se na obrazovku vypíše Nazdar, toto je prvni program Pokračujte stisknutím libovolné klávesy ... Nejjednodušší zdrojový program Jeden soubor obsahující hlavní funkce main vložení deklarací knihovních funkcí definice hlavní funkce oddělovač řádků příkaz pro výpis řetězce Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Překladače a vývojová prostředí Programování a algoritmizace 1 2012-2013 Překladače a vývojová prostředí Co budeme používat pro tvorbu programů NetBeans + GCC (Cygwin) CodeBlocks (freeware) Dále je možno použít C++ Builder (Borland Inc.) Visual C++ (Microsoft) Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 Program v CodeBlocks Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Programování a algoritmizace 1 2012-2013 Příklady k přednáškám První program a všechny další, které budou prezentovány na přednáškách, jsou v adresáři prednasky/priklady Struktura adresáře: p1 prvni.c nsd.c p2 ... Kompilace a spuštění programu z příkazové řádky: gcc -Wall -pedantic nsd.c -o nsd && ./nsd soubor s projektem zdrojový soubor Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška

Program pro výpočet NSD Programování a algoritmizace 1 2012-2013 Program pro výpočet NSD #include <stdlib.h> #include <stdio.h> /* nsd.c */ int nsd(int x, int y) { int d; if (x<y) d=x; else d=y; while (x%d!=0 || y%d!=0) d--; return d; } int main(void) { int a, b, v; printf("\nNejvetsi spolecny delitel\n"); printf("Zadej dve prirozena cisla\n"); scanf("%d %d", &a, &b); if (a<=0 || b<=0) printf("cisla musi byt vetsi nez nula\n"); else printf("nsd(%d,%d)=%d\n", a, b, nsd(a,b)); return 0; } Ing. Miroslav Balík, Ph.D. - BI-PA1- 01 první přednáška