Programování I. Mgr. Jarmila Halšková. Zlepšování podmínek pro využívání ICT ve výuce a rozvoj výuky angličtiny na SPŠei Ostrava

Rozměr: px
Začít zobrazení ze stránky:

Download "Programování I. Mgr. Jarmila Halšková. Zlepšování podmínek pro využívání ICT ve výuce a rozvoj výuky angličtiny na SPŠei Ostrava"

Transkript

1 Programování I. Mgr. Jarmila Halšková Zlepšování podmínek pro využívání ICT ve výuce a rozvoj výuky angličtiny na SPŠei Ostrava OP VK CZ.1.07/1.1.07/ Ostrava 2011

2 Obor: Informační technologie Předmět: Programování Ročník: 2. Autor: Mgr. Jarmila Halšková Doporučená literatura a další zdroje: Herout, P. Učebnice jazyka C, Kopp, České Budějovice, 1996, ISBN Herout, P. Učebnice jazyka C - 2.díl, Kopp, České Budějovice, 1995, ISBN Fikar, Z.,Frimlová, I., Kukal, J., Letoš, R. Programátorský babylón, Grada, Praha 1992, ISBN Schildt, H. Nauč se sám C. Třetí vydání, SoftPress, Praha Autorizovaný překlad z originálního anglického vydání Teach Yourself C.ISBN X Šaloun, P. Programování v jazyce C, [online] Dostupné na www< Kračmar, S., Vogel, J. Programovací jazyk C, [online] Dostupné na www: < Mgr. Jarmila Halšková Střední průmyslová škola elektrotechniky a informatiky, Ostrava, příspěvková organizace

3 OBSAH Úvod Algoritmizace základní pojmy Problém Algoritmus Možnost zápisu algoritmu Vlastnosti algoritmu Elementárnost Determinovanost Konečnost Rezultativnost Hromadnost Efektivnost Grafické vyjádření algoritmu Značky vývojového diagramu Konstrukce vývojového diagramu Etapy řešení algoritmické úlohy Formulace problému Analýza úlohy Vytvoření algoritmu úlohy Sestavení vývojového diagramu Sestavení programu Historie a charakteristika jazyka C Historie programovacích jazyků Standardizace Obecné charakteristiky jazyka C Stavba programu a způsob jeho zpracování Způsob zpracování programu Stavba programu Elementy jazyka Klíčová slova Identifikátory Konstanty Datové typy Rozdělení datových typů Celočíselné typy Reálné typy Typ void Logický datový typ Typová konverze...53

4 9 Použití datových typů v programech Proměnná Deklarace a definice proměnných Statická proměnná Lokální a globální proměnné Výraz, přiřazení a příkaz Vícenásobné přiřazení Operandy, operátory a jejich dělení podle počtu operandů Unární operátory Binární operátory Ternární operátor Dělení operátorů podle jejich funkčnosti Aritmetické operátory Logické operátory Relační operátory Přiřazovací operátory Bitové operátory Operátory bitového posuvu Přístupové operátory Oddělovací operator Priorita a pořadí vyhodnocování Postranní efekty Použití operátorů v programech Tvorba matematických výrazů Matematické funkce Vstup a výstup Formátovaný vstup a výstup Formátová specifikace Používané řídící znaky Vstup a výstup znaku Bloky Založení projektu konzolové aplikace Sekvence a řídící struktury Řídící struktury Sekvence - posloupnost Typy větvení, větvení úplné Úplné větvení se sekvencí příkazů Větvení - ternární operátor

5 20.1 Generátor náhodných čísel Větvení - ošetření nežádoucích důsledků Ošetření nežádoucích důsledků Větvení neúplné Neúplné větvení se sekvencí příkazů Větvení vnořené Větvení vícenásobné Větvení procvičování Typy cyklů, cyklus s podmínkou na začátku Typy cyklů Cyklus s podmínkou na začátku Cyklus s podmínkou na konci Cykly řízené podmínkou - procvičování Cyklus s řídící proměnnou Řídící proměnná - parametr Skoky, přerušení a ukončení cyklu Break Continue Goto a návěští Cykly vnořené a procvičování cyklů Vnořené cykly Procvičování cyklů Ladění programu Činnost programu krok za krokem Sledování proměnných Změna hodnoty proměnné za běhu programu Činnost programu krok za krokem Sledování proměnných Faktoriál Faktoriál řešený cyklem for Faktoriál řešený cyklem while Faktoriál řešený cyklem do - while Sumy a řady Opakování probrané látky

6 Vysvětlivky k používaným symbolům Obsah hodiny popisuje náplň hodiny Cíl hodiny specifikace dovedností a znalostí, které si studující osvojí během hodiny Klíčová slova nové pojmy, specifické termíny či cizí slova, jejichž význam je v textu vysvětlen Definice definování a vysvětlení nového pojmu či jevu objasnění nebo konkretizování problematiky na příkladu ze života, z praxe, ze společenské reality apod. Shrnutí shrnutí probrané látky, shrnutí kapitoly Kontrolní otázky a úkoly prověřují, do jaké míry studující text a problematiku pochopil, zapamatoval si podstatné a důležité informace a zda je dokáže aplikovat při řešení problémů Otázky k zamyšlení - úkoly rozšiřující úroveň základních znalostí Literatura literatura a zdroje pro doplnění a rozšíření poznatků kapitoly

7 9 Úvod Studijní text, který máte před sebou, je adresován žákům 2. ročníků oboru Informační technologie a zájemcům o studium předmětu Programování. Cílem tohoto studijního textu je seznámit vás s problematikou tvorby algoritmů a základů programování a to aplikací na konkrétní, komerčně velmi rozšířený a využívaný programovací jazyk C. Studium tohoto modulu nepředpokládá žádné vstupní znalosti, ať už z všeobecného programování, algoritmizace nebo teoretické informatiky. Po absolvování modulu budete umět vytvářet programy a jednoduché aplikace v tomto jazyce. Získané znalosti využijete v návazných modulech Programování II a Programování III. Dovednosti a znalosti z jazyka C uplatníte v programovacích jazycích C++ a Java.

8 10 1 Algoritmizace základní pojmy Obsah hodiny Seznámíme se s pojmem problém, algoritmus a program. Cíl hodiny Po této hodině budete schopni: pojmenovat problém nalézt postup řešení definovat pojem algoritmus vyjádřit algoritmus slovně a písemně Klíčová slova Problém, algoritmus, postup řešení. 1.1 Problém Základem změn v našem životě jsou určité překážky, které se snažíme překonat. Právě překážky nás ženou dopředu. O takových překážkách hovoříme, že jsou problémem. Problém stav, ve kterém je rozdíl mezi tím, co v daném čase máme ( známe), a tím co potřebujeme ( chceme). Pojem problém musíme brát subjektivně. To znamená, že pokud je něco pro někoho problémem, pro druhého to problém nemusí být. Našim subjektem při řešení problému bude počítač a pro ten je většina věcí problémem. Pro něj musíme najít řešení problému. Tuto činnost si můžeme rozdělit do dvou částí: nalezení postupu řešení, vykonání postupu řešení. Nalezení postupu řešení je činnost, při které tvoříme sled událostí, které máme vykonat, abychom dospěli k požadovanému výsledku. Je to tvořivá činnost, a proto ji musí vykonávat člověk, neboť zatím neexistuje takové zařízení, které by mělo vlastní tvořivou mysl. Na každý problém může existovat mnoho různých řešení. Nejlepší je ten nejjednodušší.

9 11 Vykonání postupu řešení je to činnost, při které realizujeme nalezený postup řešení. Na to již nepotřebujeme tvořivou činnost, a proto tím můžeme pověřit kohokoliv, kdo je schopen tuto činnost vykonat. Může to být člověk i stroj v našem případě počítač. Snažte se počítači vysvětlit, co má dělat, stejně vás nebude poslouchat. Počítač vůbec netuší, co vykonává, ani co má být výsledkem jeho činnosti. On totiž není žádná myslící bytost, a proto nebudeme hovořit o postupu řešení, ale o algoritmu. 1.2 Algoritmus Tento pojem patří mezi základní pojmy informatiky a setkáváme se s množstvím jeho definic. Z mnoha vybírám: Algoritmus postup, jehož realizací získáme ze zadaných vstupních údajů po konečném počtu činností, v konečném čase správný výsledek. Důležitou součástí tvorby algoritmu je přizpůsobení algoritmu znalostem a schopnostem potenciálního uživatele. Algoritmus práce s počítačem bude jiný pro člověka, který k počítači usedá poprvé, než pro člověka, který už má určité zkušenosti. Uveďme si nějaký algoritmus, se kterým jste se možná již setkali: 1. Vynes smetí 2. Napiš si domácí úkol 3. Ohřej si a sněz večeři, která je v lednici Přijdeme kolem Tento vzkaz napsali rodiče své ratolesti. Sestavili postup, podle kterého má vykonávat dané činnosti.

10 Možnost zápisu algoritmu slovní vyjádření matematické vyjádření graficky vyjádření počítačový program Slovní vyjádření Používá se pro skupinu lidí, která nemá programátorské vzdělání - návody k obsluze, recepty, postup práce. Výhodou je, že se lze domluvit i s laikem. Nevýhodou je malá přehlednost a absence nástrojů k dodržení vlastností algoritmu. Algoritmus přípravy polévky ze sáčku. Formulace problému: Uvař polévku ze sáčku. Analýza úlohy Vstupní údaje: polévka, voda, hrnec, lžíce, vařič Výstupní údaje: uvařená polévka Analýza: Polévku nesmíme převařit ani vyvařit Sestavení algoritmu Slovní popis: 1. Vyber požadovanou polévku. 2. Napusť do hrnce studenou vodu. 3. Rozmíchej polévku ve studené vodě lžící. 4. Zapni vařič. 5. Vař polévku 10 minut. 6. Vypni vařič. V algoritmech velmi často nastává situace, kdy se musíme na základě podmínky rozhodnout k vykonání určité činnosti, nebo některé činnosti musíme zopakovat. Buď přesně známe, kolikrát se má činnost opakovat, nebo opakování závisí na vzniku určité situace.

11 13 Algoritmus přechodu křižovatky, která je řízena semaforem. Formulace problému: Přejdi na druhou stranu ulice. Analýza úlohy Vstupní údaje: přechod, semafor Výstupní údaje: pozice na druhé straně ulice Analýza: Přes přechod se nechodí na červenou Sestavení algoritmu Slovní popis: 1. Dojdi až k semaforu. 2. Svítí na semaforu červená? ANO - čekej, vrať se na bod 2. NE - pokračuj bodem Přejdi přes přechod. Algoritmus zatloukání hřebíků. Formulace problému: Zatluč hřebík do desky. Analýza úlohy Vstupní údaje: kladivo, hřebík, deska Výstupní údaje: hřebík zatlučen do desky Analýza: Tlouct tak dlouho, dokud není hřebík zatlučen až po hlavičku Sestavení algoritmu Slovní popis: 1. Vezmi kladivo a hřebík. 2. Přilož hřebík k desce. 3. Uhoď kladivem na hlavičku. 4. Je hřebík zatlučen? ANO - Pokračuj bodem 5. NE - Vrať se na bod Ukonči činnost a odlož kladivo.

12 14 Matematické vyjádření Používá se tam, kde je možné daný problém popsat matematickými vztahy. Výhodou je, že jednoznačný. Nevýhodou může být, že při neošetření vstupních podmínek nemusí být věcně správný Grafické vyjádření Vývojové diagramy a strukturogramy. Jedna z nejdokonalejších forem zápisu algoritmu. Jsou to symbolické, algoritmické jazyky, které se používají pro názorné zobrazení algoritmu. Používají se jako komunikační prostředek, při týmové spolupráci analytiků s programátory. Jsou přehledné a mají nástroje k dodržení vlastností algoritmu. Výborně se hodí k dokumentačním účelům, kde jsou přehlednější než výpis programu. Nevýhodou může být, že jim laik nemusí rozumět. Jedná se o značky ( ovály, obdélníky, kosočtverce ), jejichž význam je stručně popsán v kapitole Vývojové diagramy a strukturogramy. Počítačovým programem Je to algoritmus zapsaný v jazyce, kterému počítač rozumí a umí z něho vytvořit strojový kód. Tomuto vyjádření rozumí pouze programátor, který umí konkrétní programovací jazyk. Program není napsán přímo v jazyce počítače, tím je strojový kód. Ale je napsaný v jazyce, se kterým si počítač poradí, pokud je vybaven příslušným překladačem. Překladač je program, který umí přeložit program napsaný v programovacím jazyce do strojového kódu. V dnešní době bývá překladač součástí integrovaného vývojového programátorského prostředí. Důležitou součástí tvorby algoritmu je přizpůsobení algoritmu znalostem a schopnostem potenciálního uživatele. Algoritmus práce s počítačem bude jiný pro člověka, který k počítači usedá poprvé, než pro člověka, který už má určité zkušenosti. Kontrolní otázky a úkoly Sestavte algoritmus: 1) Nákupu kávy ve školním automatu. 2) Přípravy čaje. 3) Ranního stávání (od zvonění budíku až k odchodu z domova).

13 15 Literatura Samotné slovo algoritmus pochází ze jména perského matematika Abú Abd Alláh Muhammada ibn Músá al-chwárezmího, který kolem roku 825 napsal knihu, v níž položil základy algebry. V latinském překladu začínala tato kniha větou: Algorithmi dici, což znamená: Al-Chvarezmi hovoří Shrnutí kapitoly Algoritmus je postup řešení, které vede k dosažení stanoveného cíle. Algoritmy nejčastěji znázorňujeme v grafické podobě ve formě vývojových diagramů, protože tím zajistíme srozumitelnost a názornost řešení pro potenciální uživatele. Při kreslení vývojových diagramů používáme předem domluvené značky. Do algoritmu zařazujeme posloupnosti příkazů, rozhodovací bloky a bloky pro cyklické opakování některých činností ty jsou obsahem další kapitoly.

14 16 2 Vlastnosti algoritmu Obsah hodiny Seznámíme se s vlastnostmi algoritmu Cíl hodiny Po této hodině budete schopni: pojmenovat jednotlivé vlastnosti algoritmu popsat vlastnosti algoritmu Klíčová slova Elementárnost, determinovanost, rezultativnost, hromadnost, konečnost, efektivnost Algoritmus můžeme definovat jako instrukci či přesný návod, kterým lze vyřešit daný typ úlohy. Je ale každý postup algoritmem? Každý postup opravdu nelze považovat za algoritmus. Jaký je tedy rozdíl mezi algoritmem a běžným souborem pokynů nezbytných k provedení nějakého úkolu? Algoritmem se rozumí pouze takové postupy, které splňují přesně stanovené požadavky tzv. vlastnosti algoritmu. Vlastnosti správného algoritmu Elementárnost - algoritmus se skládá z konečného počtu jednoduchých kroků, které jsou pro realizátora srozumitelné. Determinovanost v každé fázi zpracování musí být určen další postu. Konečnost činnost algoritmu skončí v reálném čase. Rezultativnost algoritmus dává pro stejné vstupní údaje vždy stejné výsledky. Hromadnost algoritmus musí být použitelný pro všechny úlohy stejného typu. Efektivnost algoritmus se uskuteční v co nejkratším čase a při nejmenším počtu činnosti.

15 17 Věnujme se nyní podrobnějšímu popisu jednotlivých vlastností s uvedením příkladů ze života. 2.1 Elementárnost Ve slovníku cizích slov bychom pod pojmem element našli, že je to základní, prvopočáteční článek. Tedy něco, co realizátor algoritmu postupu, umí zpracovat. Opět si musíme uvědomit, pro koho je daný algoritmus určený. Pokud se jedná o počítač, musí být algoritmus napsaný abecedou jazyka, kterému bude rozumět. Pokud se jedná o člověka, je nutné si ujasnit, komu je algoritmus určený. To co může být elementární pro jednoho, nemusí být pro druhého. Děti ve třetí třídě na ZŠ dostali od paní učitelky dva následující příklady: V prvním příkladu měli vypočítat kolik je 2 3. V druhém příkladu měli vypočítat kolik je 2 x 2 x 2. S prvým příkladem si neuměli poradit, ale druhý příklad vypočítali bez problémů. Proč? Protože počítat s mocninami se ještě neučili. Násobit čísla už umí, je to pro ně elementární. 2.2 Determinovanost Ve slovníku cizích slov bychom pod pojmem determinovaný našli, že to znamená vymezený, určený, stanovený, předurčený. Jednoduše řečeno přesně určený pořadím činností. V každé situaci musí být zřejmé, co a jak se má provést a jak má provádění algoritmu pokračovat. Proč je tato vlastnost tak důležitá? Nejdříve uvedu příklad a potom vysvětlím. Našim úkolem je sestavit algoritmus pro telefonování z veřejného mincového telefonního automatu. Předpokládejme, že chceme místní volání. Návod by mohl vypadat následovně: 1. Zvedni telefonní sluchátko. 2. Vhoď minimální hodnotu pro zvolené telefonní spojení. 3. Vyťukej správně volané číslo. 4. Pokud uslyšíš tón vyzvánění, čekej. 5. Po navázání spojení hovoř. 6. Po ukončení hovoru odlož sluchátko opět do vidlice.

16 18 Proč je tedy důležitá determinovanost? Člověk už na základě intuice ví, jak má pokračovat. Teda, že nemůže vhodit minci pokud ještě nemá zvednuté sluchátko, že minimální cena hovoru je např. 5 Kč apod. Avšak nemyslící zařízení to neví. Proto je přesný postup vykonávání činností velmi důležitý. Kontrolní otázky a úkoly Sestavte návod na obsluhu: 1) parkovacího automatu 2) jízdenkového automatu 2.3 Konečnost Člověk jako myslící tvor má výhodu proti strojům. Pokud vykonává určitou činnost, která nevede k žádnému cíli, jednoduše ji ukončí. Opraví postup a může vylepšenou činnost opakovat. To však stroj nedokáže, a proto musíme vytvářet takové algoritmy, které určitě končí. Existuje i jiný druh nekonečnosti. Některé postupy se zdají být konečné a algoritmicky správné, mohou však trvat tak dlouho, že jsou nerealizovatelné. Takové postupy se dají sestavit například na zjištění počtu zrnek soli v zakoupeném sáčku. Aby bylo řešení problému konečné je výhodné zjednodušit jej a řešit ho přibližně. V takových případech je třeba zadat velikost chyby, kterou jsme ochotni tolerovat. 2.4 Rezultativnost Tento pojem je odvozený ze slova result výsledek. Měli bychom přemýšlet nad tím, že algoritmus může dávat různé výsledky při stejných vstupních datech. Vysvětleme si tuto skutečnost na příkladu. Tři sourozenci dostali od rodičů úkol, koupit si něco k večeři. Každý z nich přinesl jiný nákup. Proč? Protože každý z nich má jiné chutě. Proto nezapomínejte! Když dva dělají totéž, není to totéž. 2.5 Hromadnost Algoritmus slouží k řešení celé třídy ( skupiny) navzájem si podobných úloh. Úlohy jsou si podobné, ale liší se vstupními daty. Abychom tuto vlastnost dodrželi, musí být algoritmus napsaný všeobecně ( univerzálně).

17 19 Z matematiky víme, že zevšeobecnit zápis umožňují proměnné. Ukažme si to na následujícím příkladě. Již na základní škole nás učili výpočet obsahu obdélníka S = a.b, kde a, b jsou strany obdélníka. V žádném případě jsme se neučili S = 3.5. Na první pohled je patrné, že první může být příkazem algoritmu, avšak druhý ne. Zajímavé je, že algoritmus musí být napsaný všeobecně, ale jeho realizace nabývá konkrétních hodnot v závislosti na vstupních údajích bývá s konkrétními hodnotami. 2.6 Efektivnost Ve slovníku cizích slov bychom pod pojmem efektivnost našli, že je to nějaký přínos, zisk z činnosti vzhledem k vynaloženému úsilí. Tato vlastnost je důležitá především tehdy, když zpracováváme velké množství údajů. Tehdy hledáme postup, který bude trvat nejkratší dobu a bude při něm vykonávat co nejméně instrukcí (činností). Žáci byli s paní učitelkou na Velké Pardubické. V cíli dostihu měli spočítat kolik koní doběhlo. Pepíčkovi to trvalo déle než ostatním. Tak se paní učitelka zeptala, jakým způsobem to počítal. Pepíček odpověděl: Spočítal jsem všechna kopyta a vydělil čtyřmi. Co můžeme usoudit z Pepíčkovy odpovědi? Podle mého názoru, Pepíček zvolil nejméně efektivní metodu. Více efektivnější by bylo, kdyby spočítal koňské hlavy. Otázky k zamyšlení Pokud danou úlohu řeší více algoritmů, podle jakých kriterií vybíráme ten nejefektivnější?

18 20 3 Grafické vyjádření algoritmu Obsah hodiny Seznámíme se s možnostmi grafického vyjádření algoritmu pomicí vývojových diagramů. Cíl hodiny Po této hodině budete schopni: vyjádřit algoritmus graficky použít předdefinované prvky pro sestavení vývojových diagramů zakreslit jednoduchý problém ve vývojovém diagramu Klíčová slova Vývojový diagram, značky vývojového diagramu Vývojový diagram je symbolický algoritmický jazyk, který se používá pro názorné zobrazení algoritmu. Ke kreslení vývojových diagramů používáme standardní grafické symboly. 3.1 Značky vývojového diagramu Vývojové diagramy mohou obsahovat mnoho různých grafických symbolů a značek. Z mnoha vybíráme ty nejpoužívanější: Začátek - start nebo konec - cíl programu Vstup. Znázorňuje načtení dat potřebných pro činnost programu.uvnitř značky je Čti: Výstup. Znázorňuje zobrazení výstupu na zobrazovacím zařízení. Uvnitř značky je Tisk:

19 21 Zpracování. Znázorňuje nějakou činnost programu. V bloku může být zapsána jedna nebo více instrukcí. Rozhodovací blok. Slouží k rozvětvení programu na základě podmínky, která je uvedena uvnitř. Značka podprogramu (funkce). Znázorňuje samostatnou část programu, která může obsahovat větší množství kroků. Cyklus. Cyklus o známém počtu opakování. Podrobnější vysvětlení naleznete v kapitole cykly. Spojka. Umožňuje spojit dvě části vývojového diagramu, které nebylo možné nakreslit souvisle. Spojky na konci přerušení a na začátku pokračování musí být označeny stejnými čísly. Vývojové diagramy se skládají z jednotlivých symbolů, jež jsou mezi sebou spojeny orientovanými čárami, které jsou označeny šipkou vyjadřující směr postupu algoritmu. Obecně vžitý postup psaní značek je od shora dolů a zleva doprava. V některých případech tento postup nemůže být dodržen (například v cyklech se čára vrací o několik kroků zpět). V těchto případech je šipka nezbytně nutná.

20 Konstrukce vývojového diagramu V dnešním světě objektového programování se často nesetkáváme se strukturovaným programováním. To však nijak neubírá vývojovým diagramům na užitečnosti. Zejména pro začátečníky a nováčky v oboru algoritmizace jsou vývojové diagramy velmi komfortními pomocníky, s nimiž je pochopení struktury programu daleko jednodušší. Největší výhodou vývojových diagramů je jejich vizualizace algoritmu. Jak je známo, člověk lépe a efektivněji pracuje s obrázkovými informacemi než s pouhou množinou alfanumerických znaků. Nyní se seznámíme s již hotovými vývojovými diagramy, které oblékají algoritmus do grafického kabátku. První vývojový diagram zobrazuje algoritmus známé písničky Pes jitrničku sežral.

21 23 Kontrolní otázky a úkoly Proveďte analýzu ukázkového vývojového diagramu. a) sledujte, z jakých symbolů se skládá. b) všimněte si podmínky v závěru vývojového diagramu, která umožňuje ukončit opakování písničky. c) zaměňte textová návěští ANO a NE u spojnic rozhodovacího bloku identickými matematickými symboly + a -. Sestavte algoritmus a následně vývojový diagram, podle kterého se dá zjistit, zda je tělesná hmotnost osoby adekvátní ve vztahu k její výšce. Vypočtěte si svůj vlastní BMI. Řešení: Vědci odvodili pro index BMI ( Body Mass Index) vzoreček: index BMI = m / v 2 Kde m je hmotnost osoby v kilogramech a v představuje výšku osoby v metrech. Algoritmus pro výpočet indexu BMI může vypadat takto: 1. Zjistíme hmotnost a výšku zkoumané osoby 2. Zjištěné údaje doplníme do vzorce, jehož výpočtem získáme výsledek 3. Pokud hodnota výsledku bude z intervalu <19;25>, můžeme prohlásit, že hmotnost osoby se pohybuje v normálních mezích ( není ani hubená. Ani obtloustlá). 4. Pokud je hodnota BMI menší než 19, pak je hmotnost ve vztahu k výšce nízká. 5. Naopak, je-li vypočtená hodnota větší než 25, hmotnost osoby vykazuje nadváhu. Výše uvedený vzorec můžete aplikovat na osobu, která : měří 1,68 m a váží 55 kg její Index BMI získáme po dosazení do vzorce : 55 / 1,68 2 = 19,49 Hodnota Indexu BMI u této osoby je v normálu.

22 Jste s výsledkem svého BMI spokojen/ a? 24

23 25 Častou operací, kterou využijete jako součást dalších algoritmů, je záměna obsahu dvou proměnných. Popište pomocí vývojového diagramu algoritmus záměny obsahu dvou proměnných. Formulace problému: Výměna dvou proměnných. Analýza úlohy: Vstupní údaje: dvě proměnné A = 3, B = 5 Výstupní údaje: dvě proměnné A = 5, B =3 Řešení: Záměna dvou proměnných pomocí třetí proměnné - POM: Představte si, že máte sklenici označenou písmenem A, kde je mléko, a sklenici B, ve které je káva. Chcete-li dostat do sklenice A kávu a do sklenice B mléko, pak musíte použít další pomocnou nádobu, která bude zpočátku prázdná a bude označena POM. 1. krok: Vezměte sklenici A a její obsah ( mléko) nalijete do prázdné sklenice POM. Nyní máte mléko v pomocné sklenici POM a sklenici A jste vyprázdnili. Vztah bude mít formu zápisu: POM = A (Obsah A si schovám do pomocné proměnné POM) 2. krok: Vezměte sklenici B a její obsah ( kávu) nalijete do vyprázdněné sklenice A. Nyní je káva ve sklenici A a sklenice B je volná. Vztah bude mít formu zápisu: A = B (Do A přesunu to, co je v B) 3. krok: Sklenice B je prázdná. Vezměte sklenici POM a její obsah (mléko) nalijete do vyprázdněné sklenice B. Nyní je mléko ve sklenici B a sklenice POM je opět prázdná, tak jako byla na začátku. Vztah bude mít formu zápisu: B = POM ( Do B přesunu to, co mám schováno v POM)

24 Vývojový diagram výměny, který přehledně zobrazuje výše uvedený postup. 26

25 27 Otázky k zamyšlení Proveďte záměnu obsahu dvou proměnných bez použití pomocné proměnné. (Malá nápověda použijte sčítání a odčítání.) Shrnutí kapitoly Vývojový diagram je symbolický algoritmický jazyk, který se používá pro názorné zobrazení algoritmu. K jeho kreslení používáme standardní grafické symboly. Jednotlivé symboly spojujeme čárami a spojkami. Ve vývojovém diagramu dodržujeme směr shora dolů, proto není nutné svislé čáry kreslit se šipkou. Čáru zakončujeme šipkou v případě, kdy se směr mění, např. při naznačení cyklu. Spojky použijeme v případě, že se vývojový diagram nevejde na jednu stránku a pokračuje na straně další. Pak je vhodné pomocí spojek označit návaznosti.

26 28 4 Etapy řešení algoritmické úlohy Obsah hodiny Seznámíme se s jednotlivými etapami řešení algoritmické úlohy. Cíl hodiny Po této hodině budete schopni: formulovat problém analyzovat úlohu sestavit a vytvořit vývojový diagram jednoduchých příkladů Klíčová slova Etapy řešení problému, formulace problému, analýza úlohy, vytvoření algoritmu, sestavení vývojového diagramu, sestavení programu. Algoritmizace je postup při tvorbě programu pro počítač, kterým lze prostřednictvím algoritmu řešit nějaký problém. Algoritmizaci lze rozdělit do několika etap: formulace problému, analýza úlohy, vytvoření algoritmu, sestavení vývojového diagramu. Po zvládnutí programovacího jazyka v dalších kapitolách, pak můžeme přidat další dvě etapy a to: sestavení programu a jeho následné odladění. 4.1 Formulace problému V této etapě je třeba přesně formulovat požadavky, určit výchozí hodnoty, vytýčit požadované výsledky, jejich formu a přesnost řešení.

27 Analýza úlohy Při analýze úlohy si ověříme, zda je úloha řešitelná a uděláme si první představu o jejím řešení. Dále zjistíme, zda výchozí hodnoty jsou k řešení postačující a zda má úloha více řešení. Podle charakteru úlohy vybereme nejvhodnější řešení. 4.3 Vytvoření algoritmu úlohy Sestavíme jednoznačný sled jednotlivých operací, které je třeba provést, aby byla úloha správně vyřešena. Algoritmus přesně popisuje postup zpracování daného úkolu, nedává však odpověď na daný problém, ale pouze postup, jak ji získat. 4.4 Sestavení vývojového diagramu Zakreslíme algoritmus v přehledné a srozumitelné podobě, tedy ve formě vývojových diagramů. Ve vývojových diagramech již budeme používat zápis v souladu s programovacím jazykem, který v další etapě zajistí zpracování algoritmu ve formě programu. My budeme používat programovací jazyk C. 4.5 Sestavení programu Na základě algoritmu řešené úlohy sestavíme program (zdrojový text) v konkrétním programovacím jazyce. Ze zdrojového textu se pomocí překladače do strojového kódu vytvoří spustitelný program. Dá se tedy říci, že dobře provedená analýza úlohy a algoritmizace daného problému je základním předpokladem sestavení programu pro počítač. Sestavte pomocí vývojového diagramu algoritmus výpočtu obvodu a obsahu čtverce. Formulace problému: Výpočet obvodu a obsahu čtverce Analýza úlohy a řešení: Použijeme známé vzorce pro výpočet : O = 4. a S = a. a Sestavíme algoritmus řešení ve formě vývojového diagramu.

28 30 V bloku může být zapsána jedna nebo více instrukcí. Sestavte vývojový diagram dělení dvou čísel. Jsou dána čísla A a B, o nichž není známo nic bližšího. Sestavte vývojový diagram pro výpočet jejich podílu: C = A / B. Formulace problému: Podíl dvou čísel. Analýza úlohy a řešení: Mohou nastat dvě možnosti:

29 31 B!=0, pak můžeme čísla bez obav vydělit B = 0, pak čísla dělit nemůžeme a zobrazíme upozornění Pokud bychom hodnotu jmenovatele neošetřili, program zhotovený podle takto nesprávného algoritmu by právě při B = 0 zhavaroval.

30 32 Shrnutí kapitoly Dá se tedy říci, že dobře provedená analýza úlohy a algoritmizace daného problému je základním předpokladem sestavení vývojového diagramu a po zvládnutí programovacího jazyka i programu pro počítač. Při analýze úlohy si ověříme, zda je úloha řešitelná a uděláme si první představu o jejím řešení. Dále zjistíme, zda výchozí hodnoty jsou k řešení postačující a zda má úloha více řešení. Podle charakteru úlohy vybereme nejvhodnější řešení. Vytvořením algoritmu sestavíme jednoznačný sled jednotlivých operací, které je třeba provést, aby byla úloha správně vyřešena. Na základě algoritmu řešené úlohy sestavíme vývojový diagram, v němž budeme používat zápis v konkrétním programovacím jazyce. Kontrolní otázky a úkoly Proveďte analýzu, sestavte postup řešení a zakreslete vývojový diagram následujících příkladů: 1) Je dán plánovaný počet výrobků a počet výrobků, které podnik opravdu vyrobil. Na základě těchto dvou hodnot určete, na kolik procent podnik splnil svůj plán výroby. 2) Na základě zadané výše vkladu ( v Kč) a roční úrokové míry (v procentech) spočítejte, jaký bude zůstatek na účtu na konci roku. 3) Je dán poloměr koule. Spočítejte její objem a povrch podle známých 3 matematických vzorců. 4 V = π r, 2 S = 4πr 3 4) Spočítejte výšku rotačního kužele, je-li zadán jeho objem a poloměr podstavy. 5) Je dán poloměr podstavy a výška nádoby tvaru válce (v centimetrech). Vypočítejte objem vody (v litrech), která se vejde do nádoby. 6) Jsou zadány hodnoty dvou odporů v ohmech. Určete hodnotu celkového odporu při jejich sériovém a paralelním zapojení. 7) Nádrž má čtvercové dno o straně velikosti A. Přitéká do mí voda rychlostí N litrů za sekundu. Na základě vstupních údajů A (v metrech) a N (litry za sekundu) spočítejte, jak dlouho musí voda přitékat, aby hladina stoupla o dva metry.

31 33 5 Historie a charakteristika jazyka C Obsah hodiny Seznámíme se základními informacemi o historii, vývoji a stručnou charakteristikou programovacího jazyka C. Cíl hodiny Po této hodině budete schopni: orientovat se v historii jazyka popsat etapy vývoje jazyka vyjmenovat předchůdce i následníky programovacího jazyka C charakterizovat základní vlastnosti programovacího jazyka C Klíčová slova Fortran, Algol, jazyk B, jazyk C, typovost jazyka, case senzitivnost. 5.1 Historie programovacích jazyků Jazyk C navazoval na jazyk FORTRAN (FORmula TRANslation jazyk pro vědeckotechnické výpočty), který v roce 1957 vytvořila firma IBM. Dalším jeho významným předchůdcem byl ALGOL (r.1960, ALGOrithmic Language jazyk pro zápis algoritmů. Stal se základem pro návrh dalších jazyků SIMULA 67 (první jazyk s prvky objektově orientovaného programování), ALGOL 68, CPL (Combined Programing Language) a z něho navržený BCPL (Basic CPL). V roce 1970 na Cambridgi odvodil Ken Thomson z jazyka BCPL jazyk B pro OS UNIX. V roce1972 vytvořili Brian W. Kerninghan a Dennis M. Ritchie u firmy AT&T nový jazyk, který úzce navazoval na jazyk B (jazyk C se od jazyka B liší především existencí datových typů). Jazyk C byl navržen pro lepší práci pod OS UNIX. Původní verze B.W. Kerninghana a D.M. Ritchieho se někdy značí zkratkou K&R nebo klasické C. K popularitě jazyka C přispěla jeho možnost snadné a elegantní práce s ukazateli (adresami v paměti). Na jazyk C úzce navazuje jeho rozšíření tj. jazyk C++, který navrhl Bjarne Stroustrup z Bellových laboratoří AT&T. Ten pro svou práci na

32 34 simulaci modelu pro distribuované systémy zjistil, že se mu velmi dobře hodí objektový přístup. Nejprve použil jazyk SIMULA, ale ten se příliš neosvědčil, a proto se zaměřil na návrh nového jazyka, který by nejen podporoval objektový přístup, ale byl i dostatečně rychlý. Jako základ použil existující jazyk C, nový jazyk dostal nejprve název C with Classes (C s třídami). Později se prosadil název C++ ( následník C ). 5.2 Standardizace Jazyk C se stal, po krátké době, velmi populární. Začaly vznikat překladače nového jazyka pro různé hardware. To s sebou však neslo problémy. Jazyk C nebyl nijak standardizován a mnoho překladačů si při jeho implementaci přidalo další různé specifické vlastnosti. Tím ale vznikaly potíže s přenositelností kódu, jednou z velkých předností Céčka. V roce 1978 D. M. Ritchie a B. W. Kerninghan vydali první vydání knihy The C Programming Language. Tato kniha, mezi programátory známá jako K&R C. Jazyk C byl kodifikován normou ANSI Americký národní úřad pro normalizaci) - dostal označení ANSI C. Tato norma definuje jazyka C jako moderní vyšší programovací jazyk všeobecného použití. Shodný standard definuje ISO. Proto se někdy uvádí spojení jako norma ANSI/ISO norma. ANSI jazyk je bezpečnější, navíc umožňuje převzetí zdrojových kódů vytvořených ve stylu K&R. Standardizační komise přidala několik vlastností jako funkční prototypy a schopnější processor. ANSI C je podporováno všemi rozšířenými překladači. Většina kódů psaného v současné době v C je založena na ANSI C ( American National Standard for Information systéme Programming language C ). Norma C99 vznikla v roce Následně byla přijata jako ANSI standard. Přináší několik nových vlastností jako inline funkce a deklarace proměnných kdekoliv. 5.3 Obecné charakteristiky jazyka C Jazyk C je velmi rozšířený univerzální programovací jazyk, který není vázán k určitému OS nebo určitému počítači. Jsou v něm napsány OS, ovladače, i běžné aplikace. Je to obecně použitelný programovací jazyk nespecializuje se jen na jednu oblast používání. Má velmi úsporné vyjadřování a je důsledně strukturovaný. Umožňuje definovat funkce a proměnné, vykonávat na nich jednoduché operace, pracovat s pamětí a řídit tok programu. Jazyk C nepodporuje práci se složitějšími datovými typy, jako jsou textové řetězce nebo pokročilejší správa paměti. Dokonce nepodporuje na své úrovni vstupy či výstupy nebo práci se soubory. To však neznamená, že nemůžeme

33 35 se všemi těmito prvky běžných programovacích jazyků pracovat. Můžeme, avšak musíme používat funkce, které nám všechny tyto vysokoúrovňové vlastnosti poskytují. Proto je součástí každé implementace jazyka C velké množství funkcí, které jsou umístěny do tzv. knihoven funkcí, nebo jednoduše do knihoven. Tento návrh pomáhá oddělit vlastnosti jazyka od vlastností spojených s konkrétním procesorem či architekturou. Velkou předností je, že uživateli poskytuje možnosti jeho rozšiřování vytvářením vlastních knihoven. Mezi jeho další nepřehlédnutelnou vlastnost patří jeho typovost. Znamená to, že všem proměnným je na počátku určen typ, nebo-li rozsah hodnot, které mohou uchovávat a tento typ už později nelze měnit. Při každé operaci se také kontroluje, zda je vykonávána na proměnných odpovídajících typů. Podobná striktní pravidla jsou aplikována i na parametry a návratové hodnoty funkcí a na jejich použití. Důsledně rozlišuje malé a velké písmena, je tedy case senzitivní. Proto Muj, muj a MUJ jsou jednoznačně různé identifikátory. Jazyk C má ještě mnoho dalších charakteristických rysů, které si postupně představíme. Neodpustím si však ještě zmínit jeden z často vyvyšovaných a jindy zase proklínaných rysů. Je jim silná podpora práce s ukazateli. Jazyk C je důležitý i z jiného důvodu. Je bránou k dalším celosvětovým profesionálním programovacím jazykům: C++, C#, Java. Jazyk C je tak základem veškerého moderního programování a znalost C je základem pro úspěšné vytvoření vysoce výkonného a kvalitního softwaru. Jednoduše řečeno, být dnes profesionálním programátorem znamená, že ovládáte C.

34 36 Shrnutí kapitoly Programovací jazyk C patří dnes mezi velmi populární jazyk, zvlášť mezi profesionály. Za autory jazyka jsou považování Dennis Ritchie a Ken Thompson, kteří jej sestavili na počátku sedmdesátých let. Byl vytvořen jazyk s bohatými datovými typy, přičemž byla zachována jednoduchost a přímý přístup k hardware. Programy vytvořené pomocí jazyka C mají poměrně krátkou dobu provádění, nízké nároky na paměť a dají se lehce přenášet na jiné počítače( portabilita). Neobsahuje funkce pro provádění vstupu a výstupu, alokaci paměti, práci s obrazovkou a řízení procesů. Tyto funkce jsou v systémových knihovnách. Popis jazyka je realizován podle normy ANSI C. Kontrolní otázky a úkoly 1) Ve které roce byla vydána kniha The C Programming Language.? 2) Ve kterých letech vznikl jazyk C a jaký jeho standard je nejvíce používaný? 3) Jaké jsou výhody a nevýhody programovacího jazyka C?

35 37 6 Stavba programu a způsob jeho zpracování Obsah hodiny Popíšeme hlavní části programu v jazyce C. Seznámíme se s průběhem zpracování programu od zapsaného kódu v editoru po spustitelný exe soubor. Jednotlivé části zpracování podrobně popíšeme. Sestavíme jednoduchý program, v němž vysvětlíme jednotlivé části zdrojového kódu. Cíl hodiny Po této hodině budete schopni: rozlišit a popsat jednotlivé fáze zpracování programu vysvětlit účel jednotlivých části zpracování programu popsat hlavní části programu zapsat hlavní funkci nadeklarovat proměnné zapsat komentář Klíčová slova Editor, preprocesor, compiler, linker, debugger, stavba programu, hlavička, globální a lokální deklarace, hlavní funkce, komentář, case sensitivní. 6.1 Způsob zpracování programu Zpracování programu probíhá v několika fázích. Nejprve je potřeba v editoru napsat zdrojový soubor, který má většinou příponu c. Dále přichází

36 38 na řadu preprocesor, který bývá součástí překladače a který dále zpracovává zdrojový text. Například vkládá hlavičkové soubory, rozvíjí makra, atd. V další fázi compiler (překladač, kompilátor) provádí překlad upraveného zdrojového textu do relativního kódu (někdy kódu relativních adres) a vytvoří soubor s příponou obj. V této fázi nejsou ještě známy adresy proměnných a funkcí. Následuje spojování (sestavování) programu pomoci linkeru, který zajišťuje nahrazení relativních adres adresami absolutními a provede odkazy na příslušné knihovní funkce. Výsledkem této činnosti je již spustitelný soubor s příponou exe (případně com). Debugger ( odvšivovač ) je ladící program, který běží zároveň se spuštěným programem a hledá chyby, které nastanou při běhu programu. Je také určený pro krokování programu a hledání chyb. Umožňuje sledovat běh programu řádek po řádku a sledovat při tom hodnoty proměnných, registrů nebo dokonce vybraných míst v paměti. Během kompilace programu je potřeba nejprve soubor uložit. Některá vývojová prostředí totiž obsahují kompilátory jazyka C i C++ (což jsou do značné míry rozdílné programovací jazyky). Nástroje většinou implicitně připojují ke zdrojovému souboru koncovku cpp a spouští kompilátor C++. Nehledě k tomu, že spouštět neuložený program, je hazardování s textem, který programátor v potu tváře vytvořil! Po napsání a uložení zdrojového souboru se nesnažte program okamžitě spustit. Ale nejprve soubor překompilujte a zkontrolujte si errors i warnings. Warnings (upozornění) nemusí ještě stoprocentně znamenat chybu, ale upozorňují na podezřelou nebo neobvyklou konstrukci. Pozor! Nikdy nekompilujte a nespouštějte neuložený zdrojový soubor. Mohli by jste přijít o svou práci. 6.2 Stavba programu Pojďme se podívat, z jakých částí je složen zdrojový kód programu. V úvodu programu se pro lepší orientaci tvůrce uvádí základní charakteristika programu: jméno souboru, stručný popis programu a jeho verze, jméno autora a datum vytvoření programu. Na dalším řádku se nachází direktiva preprocesoru #include, která určuje hlavičkový soubor stdio.h, jenž je důležitý pro správné provádění vstupně výstupních datových operací. Hlavičkové soubory obsahují definice konstant

37 39 a deklarace funkcí. Snadno je poznáte podle přípony *.h. Direktiva #include říká preprocesoru, aby provedl tyto operace. Našel a otevřel hlavičkový soubor stdio.h Vybral do bloku veškerý zdrojový kód, jenž je v uvedeném hlavičkovém souboru uložen, zkopíroval jej a umístil do zdrojového souboru program.c přesně na ten řádek na němž se nachází direktiva #include. Deklarace proměnných se v jazyce C provádí následujícím způsobem: int a; float x, y1, soucet; Deklarace proměnných může být spojená s její inicializací na počáteční hodnotu: int a = 5, b = 21; I ten nejjednodušší program v jazyce C musí mít hlavní funkci main( ). Mějte na paměti, že název funkce je zapsán malými písmeny. Program touto funkcí zavolá operační systém pokaždé, když dojde ke spuštění programu. Tělo hlavní funkce je ohraničeno levou a pravou složenou závorkou. Složené závorky nám podávají informaci o tom, kde začíná a kde končí tělo hlavní funkce main. V těle se nacházejí příkazy, které se budou provádět po každém spuštění programu a budeme se jim blíže věnovat v následujících kapitolách. Poslední příkaz vrací nulu, která působí jako návratová hodnota funkce main( ). Kam je tato hodnota posílána? Jejím přijímatelem je operační systém, který dokáže určit, zda program skončil normálně, nebo byl jeho běh nečekaným způsobem přerušen.

38 40 // Hlavička /* Zdrojovy text, v C v.1.0 jméno souboru a verze * Stavba programu v jazyce C stručný popis programu * Albert Znaly autor a datum vytvoření */ // y preprocesoru #include <stdio.h> //vloženi hlavičkového souboru #define CISLO 13 // symbolická konstanta // Globální deklarace globální proměnné jsou automaticky nulovány int soucet ; // deklarace celočíselné proměnné int x = 50 ; // deklarace s inicializací // Hlavní program vždy začíná hlavní funkcí main int main() { // začátek // Lokální deklarace - lokální proměnné nejsou automaticky nulovány. soucet = x + CISLO; printf(" Soucet je %d ",soucet); return (0); //konec Naučit se programovat v libovolném jazyce je nejlepší na praktických příkladech. Proto se budeme této osvědčené zkušenosti držet i v dalších kapitolách. Pro ilustraci toho jak vypadá program v C si uvedeme jednoduchý program, který vypisuje text: Hurá, můj první program v C!. Řešení: /* První.c * Můj první program * Jan Sova */

39 41 #include < stdio.h> #include<conio.h> // pro funkčnost getch() int main() { getch(); return(0); printf ( Hura, muj prvni program v C! ); // Hlavni funkce V prvním řádku se vyskytuje komentář. V jazyce C jsou víceřádkové komentáře ohraničeny mezi znaky /* a */. Jednořádkový komentář a poznámky jsou za dvojznakem //. Pozor na vložené komentáře, neboť poznámka je vždy ukončena první dvojicí znaků */. /* Mezi těmito znaky je nějaký komentář */ /* zde je nějaký vložený komentář */ Tato část již není považována za komentář Dále se vyskytuje direktiva (příkaz preprocesoru) #include <stdio.h>, která zajišťuje připojení knihovny funkcí. V tomto případě stdio.h pro standardní formátovaný vstup a výstup. Hlavní program je zapsán do funkce main(), kterou musí obsahovat každý program. Začátek a konec programu zapisujeme pomocí bloku {.Definice funkcí i hlavní funkce main() většinou obsahují nepovinný příkaz return. V těle programu je funkce pro tisk na standardní výstup printf() a po ní funkce getch(), která je zde jen proto, aby se okno programu nezavřelo hned po spuštění. V tomto programu se jednalo o pouhé nastínění toho, jak má program v C vypadat. V dalších kapitolách se dozvíte vše podrobněji.

40 42 Shrnutí kapitoly V Editoru vytvořený zdrojový kód programu uložený s příponou *.c zpracovává nejprve Preprocesor, který zdrojový kód jen upraví. Compiler provede syntaktickou kontrolu kódu, převede jej od relativního kódu a uloží do objektového souboru *.obj. Následuje spojování (sestavování) programu pomoci Linkeru, který zajišťuje nahrazení relativních adres adresami absolutními a provede odkazy na příslušné knihovní funkce. Výsledkem této činnosti je již spustitelný soubor s příponou *.exe (případně com). Ladící program Debugger hledá chyby, které nastanou za běhu programu. Sestavený algoritmus přepíšeme prostřednictvím programovacího jazyka do programu, který má přesně danou strukturu. Programovací jazyk C je case senzitivní - důsledně rozlišuje velká a malá písmena. Kontrolní otázky a úkoly 1) Co se zdrojovým kódem provádějí jednotlivé části zpracování programu? 2) Jakou příponu má zdrojový soubor po zápisu v editoru? 3) V které části zpracování se provádí překlad upraveného zdrojového textu do relativního kódu? 4) Proč vkládáme do kódu programu komentáře? 5) Kolik musí mít každý program, vytvořený v jazyce C, nejméně funkcí? 6) Čím je ohraničeno tělo hlavní funkce? Literatura Herout, P. Učebnice jazyka C, Kopp, České Budějovice, 1996, ISBN

41 43 7 Elementy jazyka Obsah hodiny Seznámíme se se základními prvky jazyka C a jejich vlastnostmi, které jsou nezbytné pro tvorbu programu. Cíl hodiny Po této hodině budete schopni: rozlišit klíčová slova účelně vytvářet identifikátor zapsat definici konstanty rozlišit jednotlivé druhy konstant a vysvětlit jejich účel Klíčová slova Identifikátor, konstanta, globální, lokální, ASCII tabulka. V této kapitole se budeme zabývat základními prvky programovacího jazyka. Každý program, tak jak jsme měli možnost vidět v předchozí kapitole, se skládá z několika prvků. Jsou jimi různá klíčová slova jako je např. for, return, int, která tvoří množinu slov, jimž překladač jazyka C rozumí a má je ve své slovní zásobě. 7.1.Klíčová slova V jazyce C jsou následující klíčová slova, tj. jména, která mají pro překladač speciální význam a nesmí být použita jako identifikátory. Následující řádky kódu způsobí chybu při překladu programu: int MojeJmeno; for; float case; Proměnná MojeJmeno má správně vytvořený název, avšak proměnná for nebo case způsobí chybu, protože jsou to klíčová slova jazyka C.

42 44 Programátor sice může použít identifikátory se stejným názvem, ale musí být napsány jinou výškou písma. Například slovo for nesmí být použito jako identifikátor, zatí co For, for a FOR jsou již v pořádku. Následující tabulka shrnuje klíčová slova definovaná normou ANSI: auto double int struct break Else long switch case Enum register typedef char Extern return union const Float short unsigned continue For signed void default Goto sizeof volatile do If static while Tato slova jsou vyhrazenými identifikátory, žádný jiný identifikátor nemůže mít ve fázi překladu stejné znění jako klíčové slovo daného jazyka. 7.2.Identifikátory V jazyce pojmenováváme identifikujeme nejen proměnné, konstanty ale i funkce. Pro tvorbu identifikátorů jsou přesně stanovená pravidla, která jsou velmi jednoduchá. Pro vytvoření jména můžeme použít: písmena a..z, A..Z číslice 0..9 znak podtržítka (_) prvním znakem nesmí být číslice maximální délka je 31 znaků Jména proměnných, konstant a funkcí volíme podle toho co představují, např.:suma, Sum, Soucet volíme pro identifikátor součtu. Pro lepší orientaci nepoužíváme podobné identifikátory, např.: sum, suma. V žádném případě nepožíváme dva stejné identifikátory rozlišené jen typem písma, např.: prom, Prom, PROM.

43 Konstanty Konstanta je datový prvek, jehož hodnota je neměnná. Překladač přiřadí konstantě typ, který této hodnotě odpovídá. Uvozuje se klíčovým slovem const. Dělíme je na: Číselné konstanty Číselné konstanty mohou být v desítkové, osmičkové nebo šestnáctkové soustavě. Desítkové celé číslo je vyjádřeno posloupnosti číslic, z niž první nesmí být nula. Např. 165, 12, 1. V osmičkové (oktálové) začíná posloupnost číslic nulou následována posloupností osmičkových číslic (0-7): 061, 07. Číslo zapsáno v šestnáctkové (hexadecimální) soustavě je vytvořené posloupnosti nuly, malého či velkého znaku x a hexadecimálními znaky (0-9, A F, a - f). U záporných čísel se píše znaménko mínus. Různých zápisů celočíselných hodnot: desítkové 12, 0, 3 oktálové 065, 015, 0, hexadecimální 0x12, E1, FF, ac, 0X3A, 0Xcd, 0xa Reálné konstanty Reálné konstanty se zapisují s desetinou tečkou. Například: 3.14, 0.65, 12.,.65. Můžeme je psát také v semilogaritmickém tvaru, kde mantisa a exponent jsou odděleny znakem E (resp. e). Například: 5e12, 1E-5, 2.32e5, 5.52 e Znakové konstanty Znakové konstanty jsou ohraničeny apostrofy: 'a', 'B', '+', '7'. Hodnota znakových konstant je odvozena z odpovídající kódové tabulky nejčastěji ASCII. Velikost znakové konstanty je kupodivu int a ne char. Některé obvykle používané znaky mají své znakové vyjádření a využívají se zejména ve výstupních funkcích jako printf( ). O těchto znakových konstantách se dozvíte více v další kapitole.

44 46 Jazykem počítačů jsou čísla. Aby počítač mohl komunikovat s aplikacemi a dalšími počítači, převádí znaky a symboly na jejich číselná vyjádření. V 60.letech 20. století v důsledku nutnosti standardizace vznikl standard ASCII (American Standard Code for Information Interchange). Tabulka znaků ASCII obsahuje 256 čísel, která jsou přiřazena odpovídajícím znakům. Standard ASCII umožňuje počítači ukládání a výměnu dat s dalšími počítači a aplikacemi. Prostřednictvím internetu nalezněte kódovou tabulku ASCII. Následně zjistěte, jaký znak se v této tabulce nachází na pořadovém místě: 46, 65, 91, 97,123? Zjistěte jejich hexadecimální případně oktálové vyjádření Řetězcové konstanty Konstantní řetězce literály jsou na rozdíl od znakových konstant tvořeny více než jedním znakem, zpravidla slovem či větou. Řetězcové konstanty jsou ohraničeny uvozovkami. : "Nejaky text". Řetězcová konstanta "a" je tvořena písmenem a, tedy řetězec délky jeden znak. Nesmíme ji zaměňovat se znakovou konstantou. Znaková konstanta, bez ohledu na její zápis představuje jeden znak, zatímco řetězová konstanta může mít i značnou délku. Konstanty definujeme po klíčovém slovu const následovaném typem konstanty, jejím identifikátorem a po rovnítku její hodnotou ukončenou středníkem. const int kon = 123; cnst zapor = - 65; const float x = 5.52 e -10; const char male_a = a ;

45 47 Shrnutí kapitoly Většina objektů, označených identifikátorem, musí být deklarována dříve, než je použita. Konstanty k takovým objektům patří. Konstanty jsou symboly, reprezentující neměnnou číselnou nebo jinou hodnotu. Konstanty definujeme po klíčovém slově const následovaném typem konstanty, jejím identifikátorem a po rovnítku její hodnotou ukončenou středníkem. Kontrolní otázky a úkoly 1) Jak se definuje znaková konstanta z na hodnotu A? 2) Jaký znak se nachází v ASCII tabulce na 42. místě? 3) Na kterém místě v ASCII tabulce se nachází znak Z, m,!, )?

Algoritmizace. 1. Úvod. Algoritmus

Algoritmizace. 1. Úvod. Algoritmus 1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá

Více

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

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií 1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední

Více

Algoritmy a algoritmizace

Algoritmy a algoritmizace Otázka 21 Algoritmy a algoritmizace Počítačové programy (neboli software) umožňují počítačům, aby přestaly být pouhou stavebnicí elektronických a jiných součástek a staly se pomocníkem v mnoha lidských

Více

Výukový materiál zpracován v rámci projektu EU peníze školám

Výukový materiál zpracován v rámci projektu EU peníze školám Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ. 1.07/1.5.00/34.0637 Šablona III/2 Název VY_32_INOVACE_39_Algoritmizace_teorie Název školy Základní škola a Střední

Více

Algoritmizace- úvod. Ing. Tomáš Otáhal

Algoritmizace- úvod. Ing. Tomáš Otáhal Algoritmizace- úvod Ing. Tomáš táhal Historie 9. století perský matematik a astronom Mohammed Al-Chorezím v latinském přepise příjmení= algoritmus Nejstarší algoritmus Euklides řecký matematik, 4. století

Více

Identifikátor materiálu: ICT-4-01

Identifikátor materiálu: ICT-4-01 Identifikátor materiálu: ICT-4-01 Předmět Téma sady Informační a komunikační technologie Téma materiálu Počítačové algoritmy Autor Ing. Bohuslav Nepovím Anotace Student si procvičí / osvojí Počítačové

Více

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem. Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou

Více

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,

Více

Lekce 01 Úvod do algoritmizace

Lekce 01 Úvod do algoritmizace Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů Lekce 01 Úvod do algoritmizace Tento projekt CZ.1.07/1.3.12/04.0006 je spolufinancován Evropským sociálním

Více

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu.

Algoritmus. Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Algoritmus Cílem kapitoly je seznámit žáky se základy algoritmu, s jeho tvorbou a způsoby zápisu. Klíčové pojmy: Algoritmus, vlastnosti algoritmu, tvorba algoritmu, vývojový diagram, strukturogram Algoritmus

Více

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

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Algoritmizace. Obrázek 1: Přeložení programu překladačem

Algoritmizace. Obrázek 1: Přeložení programu překladačem Algoritmizace V každém okamžiku ví procesor počítače přesně, co má vykonat. Pojmem procesor se v souvislosti s algoritmy označuje objekt (např. stroj i člověk), který vykonává činnost popisovanou algoritmem.

Více

Základy algoritmizace

Základy algoritmizace Algoritmus Toto je sice na první pohled pravdivá, ale při bližším prozkoumání nepřesná definice. Například některé matematické postupy by této definici vyhovovaly, ale nejsou algoritmy. Přesné znění definice

Více

ALGORITMIZACE Příklady ze života, větvení, cykly

ALGORITMIZACE Příklady ze života, větvení, cykly ALGORITMIZACE Příklady ze života, větvení, cykly Cíl kapitoly: Uvedení do problematiky algoritmizace Klíčové pojmy: Algoritmus, Vlastnosti správného algoritmu, Možnosti zápisu algoritmu, Vývojový diagram,

Více

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

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

1 Základy algoritmizace a programování. 1.1 Algoritmus. 1.1.1 Možnosti zápisu algoritmů. Základy algoritmizace a programování

1 Základy algoritmizace a programování. 1.1 Algoritmus. 1.1.1 Možnosti zápisu algoritmů. Základy algoritmizace a programování 1 Základy algoritmizace a programování 1.1 Algoritmus Algoritmus je posloupnost operací, která řeší daný úkol v konečném počtu kroků. Je to přesný postup, který je potřeba k vykonání určité činnosti. Jinak

Více

Opakování programování

Opakování programování Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování

Více

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

Algoritmizace a programování. Ak. rok 2012/2013 vbp 1. ze 44 Algoritmizace a programování Ak. rok 2012/2013 vbp 1. ze 44 Vladimír Beneš Petrovický K101 katedra matematiky, statistiky a informačních technologií vedoucí katedry E-mail: vbenes@bivs.cz Telefon: 251

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

Úvod do programování. Lekce 1

Úvod do programování. Lekce 1 Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento

Více

Programovací jazyk C++ Hodina 1

Programovací jazyk C++ Hodina 1 Programovací jazyk C++ Hodina 1 Používané překladače Bloodshed Dev C++ http://www.bloodshed.net/devcpp.html CodeBlocks http://www.codeblocks.org pokud nemáte již nainstalovaný překladač, stáhněte si instalátor

Více

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

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,

Více

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

9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h> 9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte

Více

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: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

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

IUJCE 07/08 Přednáška č. 1 Úvod do předmětu Literatura Záznamy přednášek a vaše poznámky Harbison, S. P., Steele, G. L.: Referenční příručka jazyka C Herout, P.: Učebnice jazyka C Kernighan, B. W., Ritchie, D. M.: The C Programming

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 21. září 2009 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Organizace předmětu Přednášky 1. 5. Základní

Více

6 Příkazy řízení toku

6 Příkazy řízení toku 6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní

Více

Základy algoritmizace a programování

Základy algoritmizace a programování Základy algoritmizace a programování Přednáška 1 Olga Majlingová Katedra matematiky, ČVUT v Praze 19. září 2011 Obsah Úvodní informace 1 Úvodní informace 2 3 4 Doporučená literatura web: http://marian.fsik.cvut.cz/zapg

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

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: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus

Pracovní listy - programování (algoritmy v jazyce Visual Basic) Algoritmus Pracovní listy - programování (algoritmy v jazyce Visual Basic) Předmět: Seminář z informatiky a výpočetní techniky Třída: 3. a 4. ročník vyššího stupně gymnázia Algoritmus Zadání v jazyce českém: 1. Je

Více

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

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 Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární

Více

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

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr) Základy jazyka C Základy programování 1 Martin Kauer (Tomáš Kühr) Organizační záležitosti Konzultace Pracovna 5.076 Úterý 15:00 16:30 Emailem martin.kauer@upol.cz Web předmětu http://tux.inf.upol.cz/~kauer/index.php?content=var&class=zp1

Více

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

Formátové specifikace formátovací řetězce 27.2.2007 Formátové specifikace formátovací řetězce - je to posloupnost podle které překladač pozná jaký formát má výstup mít - posloupnosti začínají znakem % a určující formát vstupu/výstupu - pokud chcete

Více

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

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

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

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19 Algoritmy I Cvičení č. 2, 3 1 ALG I, informace Cvičící RNDr. Eliška Ochodková, Ph.D., kancelář EA439 eliska.ochodkova@vsb.cz www.cs.vsb.cz/ochodkova Přednášející doc. Mgr. Jiří Dvorský, Ph.D., kancelář

Více

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

Lekce 6 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ JAZYK C Identifikační údaje školy Číslo projektu Název projektu Číslo a název šablony Autor Tematická oblast Číslo a název materiálu Anotace Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace

Více

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2 * násobení maticové Pro čísla platí: Pro matice - násobení inverzní maticí inv inverzní matice A -1 k dané matici A je taková matice, která po vynásobení s původní maticí dá jednotkovou matici. Inverzní

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

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

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 Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální

Více

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: CZ.1.07/1.5.00/34.0410 Číslo šablony: 1 Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek:

Více

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Jak v Javě primitivní datové typy a jejich reprezentace BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické Obsah Celočíselný datový typ Reálný datový typ Logický datový typ, typ Boolean

Více

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

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

Více

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

Programování v C++ 1, 1. cvičení 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

Více

3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3

3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3 Obsah Obsah 1 Program přednášek 1 2 Podmínky zápočtu 2 3 Co je algoritmus? 2 3.1 Trocha historie............................ 2 3.2 Definice algoritmu.......................... 3 3.3 Vlastnosti algoritmu.........................

Více

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

Operační systémy. Cvičení 3: Programování v C pod Unixem Operační systémy Cvičení 3: Programování v C pod Unixem 1 Obsah cvičení Editace zdrojového kódu Překlad zdrojového kódu Základní datové typy, struktura, ukazatel, pole Načtení vstupních dat Poznámka: uvedené

Více

Pojem algoritmus a jeho základní vlastnosti

Pojem algoritmus a jeho základní vlastnosti DUM Algoritmy DUM III/2-T1-1-1 PRG-01A-var1 Téma: Úvod do algoritmů - výklad Střední škola Rok: 2012 2013 Varianta: A Zpracoval: Mgr. Pavel Hrubý VÝKLAD Pojem algoritmus a jeho základní vlastnosti Obsah

Více

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

- jak udělat konstantu long int: L long velka = 78L; Konstanty (konstatní hodnoty) Např.: - desítkové: 25, 45, 567, 45.678 - osmičkové: 045, 023, 03 vždy začínají 0 - šestnáctkové: 0x12, 0xF2, 0Xcd, 0xff, 0xFF - jak udělat konstantu long int: 245566553L

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Strukturované proměnné Struktura, union Jazyk C České vysoké učení technické Fakulta elektrotechnická A8B14ADP Jazyk C - Strukturované proměnné Ver.1.10 J. Zděnek 20151 Struktura

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

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

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole Příkaz switch Příkaz switch provede příslušnou skupinu příkazů na základě hodnoty proměnné (celočíselné

Více

Vývojové diagramy 1/7

Vývojové diagramy 1/7 Vývojové diagramy 1/7 2 Vývojové diagramy Vývojový diagram je symbolický algoritmický jazyk, který se používá pro názorné zobrazení algoritmu zpracování informací a případnou stručnou publikaci programů.

Více

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,

Více

5 Přehled operátorů, příkazy, přetypování

5 Přehled operátorů, příkazy, přetypování 5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování

Více

ŠVP Gymnázium Ostrava-Zábřeh. 4.8.16. Úvod do programování

ŠVP Gymnázium Ostrava-Zábřeh. 4.8.16. Úvod do programování 4.8.16. Úvod do programování Vyučovací předmět Úvod do programování je na naší škole nabízen v rámci volitelných předmětů v sextě, septimě nebo v oktávě jako jednoletý dvouhodinový kurz. V případě hlubšího

Více

Programy na PODMÍNĚNÝ příkaz IF a CASE

Programy na PODMÍNĚNÝ příkaz IF a CASE Vstupy a výstupy budou vždy upraveny tak, aby bylo zřejmé, co zadáváme a co se zobrazuje. Není-li určeno, zadáváme přirozená čísla. Je-li to možné, používej generátor náhodných čísel vysvětli, co a jak

Více

ALGORITMIZACE A PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení

Více

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

Koncepce (větších) programů. Základy programování 2 Tomáš Kühr Koncepce (větších) programů Základy programování 2 Tomáš Kühr Parametry a návratová hodnota main Již víme, že main je funkce A také tušíme, že je trochu jiná než ostatní funkce v programu Funkce main je

Více

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)

Více

Program a životní cyklus programu

Program a životní cyklus programu Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy

Více

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

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

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

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 -

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 - 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 - Preprocesor je možné ovládat pomocí příkazů - řádky začínající

Více

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b Výrazy a operátory i = 2 i = 2; to je výraz to je příkaz 4. Operátory Unární - unární a unární + Např.: +5-5 -8.345 -a +b - unární ++ - inkrement - zvýší hodnotu proměnné o 1 - unární -- - dekrement -

Více

ALGORITMIZACE. Výukový materiál pro tercii osmiletého gymnázia

ALGORITMIZACE. Výukový materiál pro tercii osmiletého gymnázia ALGORITMIZACE Výukový materiál pro tercii osmiletého gymnázia Možnosti zápisu algoritmů 1. Slovní vyjádření 2. Matematický zápis 3. Rozhodovací tabulky 4. Vývojové diagramy 5. Počítačové programy Slovní

Více

ZÁKLADY PROGRAMOVÁNÍ & ALGORITMIZACE VE VBA

ZÁKLADY PROGRAMOVÁNÍ & ALGORITMIZACE VE VBA ZÁKLADY PROGRAMOVÁNÍ & ALGORITMIZACE VE VBA Anna Mecová, Zuzana Sedlaříková, Barbora Vrbasová, Alexandra Sečányová, Nikol Istenčinová, Dagmar Strouhalová ALGORITMUS Algoritmus je přesný návod či postup,

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

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

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury... 11-1 11.2 Příklad PROG_11-01... 11-2 11.

PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury... 11-1 11.2 Příklad PROG_11-01... 11-2 11. David Matoušek Programování v jazyce C v pøíkladech Praha 2011 David Matoušek Programování v jazyce C v pøíkladech Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo

Více

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

Prezentace a vysvětlení programového prostředí NXC Úvod Další jazyk, který je možno použít pro programování NXT kostky je NXC Not exatly C Na rozdíl od jazyku NXT-G, kde jsme vytvářeli program pomocí grafických prvků přesněji řečeno pomocí programovacích

Více

Odvozené a strukturované typy dat

Odvozené a strukturované typy dat Odvozené a strukturované typy dat Petr Šaloun katedra informatiky FEI VŠB-TU Ostrava 14. listopadu 2011 Petr Šaloun (katedra informatiky FEI VŠB-TU Ostrava) Odvozené a strukturované typy dat 14. listopadu

Více

DUM 06 téma: Tvorba makra pomocí VBA

DUM 06 téma: Tvorba makra pomocí VBA DUM 06 téma: Tvorba makra pomocí VBA ze sady: 03 tematický okruh sady: Tvorba skript a maker ze šablony: 10 Algoritmizace a programování určeno pro: 4. ročník vzdělávací obor: 18-20-M/01 Informační technologie

Více

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

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou

Více

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM CÍLE KAPITOLY Využívat pokročilé možnosti formátování, jako je podmíněné formátování, používat vlastní formát čísel a umět pracovat s listy. Používat

Více

1.5.2 Číselné soustavy II

1.5.2 Číselné soustavy II .. Číselné soustavy II Předpoklady: Př. : Převeď do desítkové soustavy čísla. a) ( ) b) ( ) 4 c) ( ) 6 = + + + = 7 + 9 + = a) = 4 + 4 + 4 = 6 + 4 + = 9 b) 4 = 6 + 6 + 6 = 6 + 6 + = 6 + + = 69. c) 6 Pedagogická

Více

Výrazy, operace, příkazy

Výrazy, operace, příkazy Výrazy, operace, příkazy Karel Richta a kol. katedra počítačů FEL ČVUT v Praze Přednášky byly připraveny s pomocí materiálů, které vyrobili Ladislav Vágner, Pavel Strnad Karel Richta, Martin Hořeňovský,

Více

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

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

Více

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG 2008-9)

Programování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG 2008-9) Programování v C++ Úplnej úvod Co se naučíte? tak samozřejmě C++, s důrazem na: dynamické datové struktury Objektově Orientované Programování STL (standardní knihovna šablon) vytváření vlastních šablon

Více

Princip funkce počítače

Princip funkce počítače Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování

Více

Tabulkový procesor. Základní rysy

Tabulkový procesor. Základní rysy Tabulkový procesor Tabulkový procesor je počítačový program zpracovávající data uložená v buňkách tabulky. Program umožňuje použití vzorců pro práci s daty a zobrazuje výsledné hodnoty podle vstupních

Více

Assembler - 5.část. poslední změna této stránky: Zpět

Assembler - 5.část. poslední změna této stránky: Zpět 1 z 5 19.2.2007 7:52 Assembler - 5.část poslední změna této stránky: 9.2.2007 1. Pseudoinstrukce a direktivy Zpět Kromě instrukcí můžete v Assembleru psát také další konstrukce, které se obšem nepřekládají

Více

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

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

Více

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

Začínáme vážně programovat. Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Začínáme vážně programovat Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů Podmínky a cykly Dokončení stručného přehledu řídících struktur jazyka C. Složený příkaz, blok Pascalské

Více

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí) Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog

Více

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

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové

Více

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í

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í 02 Jazyk C - je imperativní říkáme, co se má udělat, voláme příkazy - další imperativní jazyky: Pascal, Java, C/C++ apod. - na rozdíl od jazyků deklarativních např. Prolog, Haskell, Scheme, Lisp (funkcionální

Více

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

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

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

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace Předmět: Algoritmizace a programování Téma: Algoritmy Vyučující: Ing. Milan Káža Třída: EK2 Hodina: 3 Číslo: V/5 Programování

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém

Více

VISUAL BASIC. Přehled témat

VISUAL BASIC. Přehled témat VISUAL BASIC Přehled témat 1 ÚVOD DO PROGRAMOVÁNÍ Co je to program? Kuchařský předpis, scénář k filmu,... Program posloupnost instrukcí Běh programu: postupné plnění instrukcí zpracovávání vstupních dat

Více