Základní pojmy algoritmizace a programování ALGORITMUS INSTRUKCE STROJOVÝ KÓD VYŠŠÍ PROGRAMOVACÍ JAZYK ZDROJOVÝ KÓD KOMPILACE



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

Microsoft Small Basic. Úvod do programování

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

VISUAL BASIC. Přehled témat

10 Algoritmizace Příklad 2 Word 2007/ VBA

Microsoft Small Basic. Úvod do programování

Lekce 01 Úvod do algoritmizace

Program a životní cyklus programu

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

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

Algoritmizace. 1. Úvod. Algoritmus

Comenius Logo. Princip programování. Prostředí Comenius Logo

Comenius Logo. Úterý 20. března. Princip programování. Prostředí Comenius Logo

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

01. HODINA. 1.1 Spuštění programu VB Prvky integrovaného vývojového prostředí. - pomocí ikony, z menu Start.

MALUJEME. ZÁKLADNÍ VZDĚLÁVÁNÍ, INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE, 1. STUPEŇ ZŠ. Autor prezentace Mgr. Hana Nová

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

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

1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata

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

Varianta: 1201 TEST STUDIJNÍCH PŘEDPOKLADŮ 4 strany 1. strana INSTRUKCE

Programovací jazyk Pascal

Algoritmizace a programování

Psaní programu pro PLC SIMATIC S7-300 pomocí STEP 7

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

Cvičné příklady Tematický celek 01

Algoritmizace prostorových úloh

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

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

Hodnocení soutěžních úloh

IB111 Programování a algoritmizace. Programovací jazyky

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

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

Popis základního prostředí programu AutoCAD

8 Makra Příklad 4 Excel 2007

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

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

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

Algoritmy a datové struktury

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Zadání soutěžních úloh

Strojový kód. Instrukce počítače

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

2. lekce Algoritmus, cyklus Miroslav Jílek

Profilová část maturitní zkoušky 2013/2014

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

Makro. PDF vytvořeno zkušební verzí pdffactory Pro

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Martin Hejtmánek hejtmmar

BARVY. Příkaz barva. Barvy TrueColor. Se objeví dialogové okno

DUM č. 9 v sadě. 30. Inf-6 Imagine Logo a animace pro nižší gymnázium

Základy programování (C#) Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1134_Základy programování (C#) _PWP

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

Pohled do nitra mikroprocesoru Josef Horálek

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

Profilová část maturitní zkoušky 2017/2018

Algoritmy a algoritmizace

Regionální kolo soutěže Baltík 2008, kategorie A a B

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

Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.

A) IF předmět před Baltíkem

Úvod. Programovací paradigmata

Překladač a jeho struktura

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

Programovací jazyky Přehled a vývoj

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Nastavení stránky : Levým tlačítkem myši kliknete v menu na Soubor a pak na Stránka. Ovládání Open Office.org Draw Ukládání dokumentu :

LEGO Mindstorms Education NXT. Projekt Lego ve výuce informatiky a fyziky. Robotika 1. Mgr. Radoslav Jirásek RNDr. Jitka Jirásková Mgr.

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

MATURITNÍ ZKOUŠKA ve školním roce 2014/2015

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

Dvouletá retrospektiva podpory učitelů při rozvoji informatického myšlení žáků. Blanka Kozáková Jiří Sumbal

Závěrečná zkouška z informatiky 2011

Několik příkladů v Turbo Pascalu

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

Školní kolo soutěže Mladý programátor 2015, kategorie A, B

PROJEKT MINY - DOKUMENTACE

Třída DrawingTool. Obrázek 1: Prázdné okno připravené pro kreslení

Programování I. Martin Pergel,

Úvod do programování

NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č

3 Co je algoritmus? Trocha historie Definice algoritmu Vlastnosti algoritmu... 3

Regionální kolo soutěže Mladý programátor 2016, kategorie A, B

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

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

První kroky s METEL IEC IDE

Sada 1 - Základy programování

MATURITNÍ ZKOUŠKA ve školním roce 2016/2017

Poslední nenulová číslice faktoriálu

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

Vývojové diagramy 1/7

Projekt Obrázek strana 135

Předmět: informační a komunikační technologie

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

Tematická oblast: Programování 2 (VY_32_INOVACE_08_2_PR) Anotace: Využití ve výuce: Použité zdroje:

Transkript:

Základní pojmy algoritmizace a programování ALGORITMUS INSTRUKCE STROJOVÝ KÓD VYŠŠÍ PROGRAMOVACÍ JAZYK ZDROJOVÝ KÓD KOMPILACE

Algoritmus Předpis, jak řešit určitý problém (přesně určená konečná posloupnost pravidel, jejichž realizace nám umožní pro přípustné hodnoty vstupních dat nalézt po konečném počtu kroků správná výstupní data). Navrhování a vymýšlení algoritmů je základem programování. Podmínky: Problému je řešitelný v konečném počtu kroků Pravidla lze opakovat libovolněkrát v dané posloupnosti Za stejných podmínek musí dát vždy stejné výsledky

Příklad algoritmu Algoritmus pro určení velikosti přepony pravoúhlého trojúhelníku: Vezmi kvadrát velikosti jedné odvěsny, zvětši o kvadrát velikosti druhé odvěsny, výsledek odmocni; dostaneš velikost přepony Algoritmus pro sestavení skříňky nakoupené v obchodním domě IKEA Obrázkový návod k sestavení v jednotlivých krocích

Instrukce (strojová počítače) Elementární operační krok počítače. Př: zvětšení číselné hodnoty o 1; porovnání dvou číselných hodnot podle velikosti; nalezení konkrétního znaku v textu Za jednu sekundu zpracuje procesor několik miliard mikroinstrukcí V určitém typu procesoru počítače jsou pomocí logických obvodů vytvořeny instrukce v tzv. instrukční sadě Příklad instrukce pro procesor řady i386: F0 6626 67C7 845E 7856 3412 F0DE BC9A -lockmovdword [es:esi+ebx*2+0x12345678],0x9abcdef0.

Program (strojový počítačový) Posloupnost instrukcí, jejichž vykonání realizuje algoritmus Programování přímo ve strojovém kódu je značně pracné, Strojový kód vzniká většinou překladem zdrojového kódu psaného ve vyššíchprogramovacích jazycíchdo strojového kódu příslušného procesoru. Překladu do strojového kódu se obecně vzato nelze vyhnout, každá aplikace nějakým způsobem musí běžet ve strojovém kódu, protožeprocesoržádný jiný kód z principu své funkce nemůže přímo interpretovat.

Programovací jazyk vyšší Souhrn syntaktických pravidel pro zápis algoritmu ve formě převoditelné na posloupnost instrukcí vykonatelných počítačem (strojových) nebo ve formě interpretovatelné posloupnosti vykonatelných instrukcí. Př: QBasic, Visual Basic, C#, C++, COBOL, Pascal, Jawa Small Basic (zdarma ke stažení na stránkách Microsoft)

Ukázkakódu -JAVA

Program Konkrétní zápis (jde vždy o text) konkrétního algoritmu podléhající syntaktickým pravidlům daného programovacího jazyka. Překlad programu (kompilace) Převod textu programu vyššího programovacího jazyka do strojového kódu.

Ukázka programového kódu Small Basic Turtle.Show() Turtle.Speed= 5 Turtle.penup() Turtle.Move(-100) Turtle.Turn(-90) Turtle.Move(350) Turtle.turn(90) Turtle.pendown() Turtle.turn(90) Forj=1 To 4 Turtle.Move(50) Turtle.Turn(-90) Turtle.Move(30) Turtle.Turn(45) turtle.move(50) Turtle.Turn(90) turtle.move(50) Turtle.Turn(45) Turtle.Move(30) Turtle.Turn(-90) Turtle.Move(50) endfor

Spuštění prostředí vyššího programovacího jazyka Small Basic Příklad vytvořeného programu: Tetris Zdrojový kód: tetris

1. Program v SmallBasic želvička kreslí Spusťte program SmallBasic a zapište kód: Turtle.Show() Zvolte spustit nebo F5.

Želva se pohybuje a kreslí čáru Zapište:Turtle.Move(50) Výsledek

o Zapište kód: Výsledek: Pro otočení o 90 vlevo zapište: Turtle.Turn(-90) Pro pohyb o 50 bodů: Turtle.Move(50) Pro otočení o 90 vpravo a pohyb Turtle.turn(90) Turtle.Move(50) Pro zvednutí prdelky a pohyb: Turtle.penup() Turtle.turn(90) Turtle.Move(50) Pro začátek kreslení a pohyb: Turtle.pendown() Turtle.Move(50)

2. Program v Small Basic želvička kreslí domeček Programová struktura cyklus o předem známém počtu opakování Vývojový diagram Forj=1 To 4 Turtle.Move(50) Turtle.Turn(-90) Turtle.Move(30) Turtle.Turn(45) turtle.move(50) Turtle.Turn(90) turtle.move(50) Turtle.Turn(45) Turtle.Move(30) Turtle.Turn(-90) Turtle.Move(50) endfor

Turtle.Show() Turtle.Speed= 5 Turtle.penup() Turtle.Move(-100) Turtle.Turn(-90) Turtle.Move(350) Turtle.turn(90) Turtle.pendown() Turtle.turn(90) Forj=1 To 4 Turtle.Move(50) Turtle.Turn(-90) Turtle.Move(30) Turtle.Turn(45) turtle.move(50) Turtle.Turn(90) turtle.move(50) Turtle.Turn(45) Turtle.Move(30) Turtle.Turn(-90) Turtle.Move(50) endfor Celý program

GraphicsWindow.KeyDown = HandleKey GraphicsWindow.BackgroundColor = GraphicsWindow.GetColorFromRGB( 253, 252, 251 ) While"True" BOXES = 4 ' number of boxes per piece BWIDTH = 25 ' box width in pixels XOFFSET = 40 ' Screen X offset in pixels of where the board starts YOFFSET = 40 ' Screen Y offset in pixels of where the board starts CWIDTH = 10 ' Canvas Width, in number of boxes CHEIGHT = 20 ' Canvas Height, in number of boxes. STARTDELAY = 800 ENDDELAY = 175 PREVIEW_xpos = 13 PREVIEW_ypos = 2 zpět GraphicsWindow.Clear() GraphicsWindow.Title = "Small Basic Tetris" GraphicsWindow.Height = 580 GraphicsWindow.Width = 700 GraphicsWindow.Show() SetupTemplates() SetupCanvas() MainLoop() GraphicsWindow.ShowMessage( "Game Over", "Small Basic Tetris" ) EndWhile Sub MainLoop template = Text.Append("template", Math.GetRandomNumber(7)) CreatePiece() ' in: template ret: h nextpiece = h end = 0 sessiondelay = STARTDELAY Whileend = 0 If sessiondelay > ENDDELAY Then sessiondelay = sessiondelay- 1 EndIf delay = sessiondelay thispiece = nextpiece template = Text.Append("template", Math.GetRandomNumber(7)) CreatePiece() ' in: template ret: h nextpiece = h DrawPreviewPiece() h = thispiece ypos= 0 done = 0 xpos= 3 ' always drop from column 3

Další příkazy Otevření textového okna, volba barvy písma, zobrazení textu TextWindow.ForegroundColor= "Yellow" TextWindow.WriteLine("Ahoj světe!") Zadání hodnoty proměnné, zobrazení obsahu proměnné TextWindow.Write("Napište své jméno: ") jmeno= TextWindow.Read() TextWindow.WriteLine("Ahoj " + jmeno)

Další příkazy Součet hodnot proměnných cislo1 = 10 cislo2 = 20 cislo3 = cislo1 + cislo2 TextWindow.WriteLine(cislo3) Součet hodnot proměnných se zadáním hodnot TextWindow.Write("Zadejte první číslo ") Cislo1 = TextWindow.ReadNumber() TextWindow.Write("Zadejte druhé číslo ") Cislo2 = TextWindow.ReadNumber() vysledek= cislo1 + cislo2 TextWindow.WriteLine(" součet čísel je " + vysledek)

Programová struktura větvení Načtení systémového času, podmínka když If(Clock.Hour < 12) Then TextWindow.WriteLine(" Dobré ráno, světe") EndIf If(Clock.Hour>= 12) Then TextWindow.WriteLine(" Dobrý večer, světe") EndIf

Příkaz skoku ve struktuře větvení (opakování) i=1 start: TextWindow.WriteLine(i) i = i + 1 If(i < 25) Then Gotostart EndIf Pokuste se vytvořit stejný program cyklem s předem známým počtem opakování FOR

Cyklus s předem známým počtem opakování Fori = 1 To 24 TextWindow.WriteLine(i) EndFor Vlastnost step (krok) For i= 10 To 1 Step -1 TextWindow.WriteLine(i) EndFor

Cyklus dokud podmínka platí Příkaz While(zatímco, dokud) cislo= 100 While(cislo> 1) TextWindow.WriteLine(cislo) cislo= cislo/ 2 EndWhile

Vlastnosti kreslené čáry Želva kreslí červenou čarou GraphicsWindow.PenColor = "red Turtle.Show() Turtle.Move(50) A čárou tlustou 10 bodů GraphicsWindow.PenWidth= 10

Kreslení tvarů Čára GraphicsWindow.DrawLine(10, 100, 100, 10) Obdélník prázdný GraphicsWindow.DrawRectangle(10, 13, 300, 60) Obdélník plný GraphicsWindow.FillRectangle(10, 200, 300, 60) Elipsa GraphicsWindow.DrawEllipse(10, 320, 300, 60) Barvy výplně GraphicsWindow.BrushColor= "Green" Barva čáry GraphicsWindow.PenColor= "Red"

Soustředné kružnice GraphicsWindow.BackgroundColor= "Black" GraphicsWindow.PenColor= "LightGreen" GraphicsWindow.Width= 200 GraphicsWindow.Height= 200 For i= 1 To 100 Step 5 GraphicsWindow.DrawEllipse(100 -i, 100 -i, i * 2, i * 2) EndFor

Použití náhody Náhodná barva GraphicsWindow.PenColor= GraphicsWindow.GetRandomColor() Pole, animace, zpoždění běhu programu radky= 8 sloupce = 8 rozmer= 40 For r = 1 To radky For s = 1 To sloupce GraphicsWindow.BrushColor= GraphicsWindow.GetRandomColor() ctverce[r][s] = Shapes.AddRectangle(rozmer, rozmer) Shapes.Move(ctverce[r][s], s * rozmer, r * rozmer) EndFor EndFor For r = 1 To radky For s = 1 To sloupce Shapes.Animate(ctverce[r][s], 0, 0, 1000) Program.Delay(300) EndFor EndFor

Využití událostí, podprogram Po zmáčknutí levého tl. Myši (událost) se spustí podprogram (sub) pro nakreslení kolečka GraphicsWindow.BrushColor= "Blue" GraphicsWindow.MouseDown = OnMouseDown Sub OnMouseDown x = GraphicsWindow.MouseX-10 y = GraphicsWindow.MouseY-10 GraphicsWindow.FillEllipse(x, y, 20, 20) EndSub Náhodná volba barvy kolečka GraphicsWindow.KeyDown = OnKeyDown Sub OnKeyDown GraphicsWindow.BrushColor= GraphicsWindow.GetRandomColor() EndSub

Ovládání pohybem myši plosina = Shapes.AddRectangle(120, 12) GraphicsWindow.MouseMove = OnMouseMove Sub OnMouseMove plosinax = GraphicsWindow.MouseX Shapes.Move(plosina, plosinax-60, GraphicsWindow.Height- 12) EndSub

Pohyb míčku v uzavřeném prostoru micek = Shapes.AddEllipse(16, 16) gw = GraphicsWindow.Width gh = GraphicsWindow.Height x = 0 y = 0 deltax= 1 deltay= 1 Nahoru: x = x + deltax y = y + deltay If (x >= gwor x <= 0) Then deltax = -deltax EndIf If (y <= 0 Or y>=gh) Then deltay = -deltay EndIf Shapes.Move(micek, x, y) Program.Delay(5) Goto nahoru

Hra ARKANOID GraphicsWindow.BackgroundColor= "DarkBlue" plosina= Shapes.AddRectangle(120, 12) micek = Shapes.AddEllipse(16, 16) GraphicsWindow.MouseMove= OnMouseMove x = 0 y = 0 deltax= 1 deltay= 1 Nahoru: x = x + deltax y = y + deltay gw = GraphicsWindow.Width gh = GraphicsWindow.Height If (x >= gw-16 or x <= 0) Then deltax = -deltax EndIf If(y <= 0) Then deltay = -deltay EndIf padx = Shapes.GetLeft(plosina) If (y = gh-28 and x >= padxand x <= padx+ 120) Then deltay = -deltay EndIf Shapes.Move(micek, x, y) Program.Delay(5) If(y < gh) Then GotoNahoru EndIf GraphicsWindow.ShowMessage("Prohráli jste", "Arkanoid") Sub OnMouseMove plosinax = GraphicsWindow.MouseX Shapes.Move(plosina, plosinax-60, GraphicsWindow.Height-12) EndSub