Informatika I 1 pednka RNDr Ji Dvok CSc

























- Slides: 25

Informatika I 1. přednáška RNDr. Jiří Dvořák, CSc. dvorak@fme. vutbr. cz Informatika I: přednáška 1

Obsah přednášky q Úvod do programování q Algoritmus a prostředky jeho vyjádření q Programovací jazyky a programovací styly q Úvod do jazyka Pascal q Úvod do prostředí Delphi Informatika I: přednáška 1 2

Úvod do programování program vstupy počítač výstupy Program je předpis pro transformaci vstupů na výstupy. Niklaus Wirth: program = algoritmus + datové struktury Informatika I: přednáška 1 3

Algoritmus je konečný soubor pravidel, jež dávají návod k vyřešení určité třídy úloh. Základní požadavky na algoritmus · determinovanost (algoritmus musí být přesný a jednoznačný) · rezultativnost (v konečném počtu kroků se musí dospět k výsledku) · efektivnost (jednotlivé operace musejí být proveditelné v konečném časovém intervalu) · hromadnost (algoritmus se týká celé skupiny úloh téhož typu) Informatika I: přednáška 1 4

Prostředky vyjádření algoritmu q Přirozený jazyk q Jazyk matematiky q Grafické prostředky (vývojové diagramy, struktogramy, … ) q Pseudojazyky (liší se od programovacích jazyků volnějšími pravidly syntaxe) q Programovací jazyky Informatika I: přednáška 1 5

Příklad slovního vyjádření algoritmu Euklidův algoritmus pro výpočet největšího společného dělitele dvou celých kladných čísel (předpokládáme, že zadaná čísla jsou uložena v proměnných M a N): 1. Urči zbytek R po celočíselném dělení hodnoty M hodnotou N. 2. Hodnotu N přesuň do proměnné M a hodnotu R do proměnné N. 3. Je-li N nulové, pak hodnota největšího společného dělitele je obsažena v M a výpočet končí. V opačném případě se výpočet vrací na krok 1. Informatika I: přednáška 1 6

Programovací jazyky ? . generace - přirozený jazyk? 4. generace - neprocedurální a problémově orientované jazyky 3. generace - procedurální jazyky vysoké úrovně 2. generace - assembler počítač 1. generace - strojový jazyk Informatika I: přednáška 1 7

Informace o programovacích jazycích http: //www. cs. waikato. ac. nz/~marku/languages. html http: //www. idiom. com/free-compilers/ http: //directory. google. com/Top/Computers/Programming/Languages/ Informatika I: přednáška 1 8

Definice programovacího jazyka Složky definice programovacího jazyka: · Abeceda základní (terminální) symboly jazyka · Syntaxe pravidla pro tvorbu jazykových konstrukcí · Sémantika význam jazykových konstrukcí Informatika I: přednáška 1 9

Překladače q Kompilační překladače generují program ve strojovém kódu, který pak může být opakovaně využíván. q Interpretační překladače interpretují příkazy programu. Jejich použití je méně efektivní, protože při každém výpočtu musí být program vždy znovu interpretován. Informatika I: přednáška 1 10

Programovací styly Algoritmus = logika (funkce) + řízení CO SE DĚLÁ Imperativní styl JAK SE TO DĚLÁ - výrazná řídicí složka Procedurální jazyky (Fortran, Pascal, C, . . . ) Neimperativní styl - výrazná složka logiky (funkce) Neprocedurální jazyky · logické programování (Prolog) · funkcionální programování (Lisp, Haskell, … ) Informatika I: přednáška 1 11

Programovací jazyk Pascal navrhnul prof. Niklaus Wirth na počátku 70. let. Autor sledoval dva hlavní cíle: · vytvořit jazyk vhodný pro systematickou výuku programování, založený na jasných, jednoduchých a srozumitelných konstrukcích · umožnit jednoduchou a efektivní realizaci překladačů tohoto jazyka Některé významné implementace jazyka Pascal: · Turbo Pascal, Borland Pascal (nejen jazyk, ale také prostředí pro vývoj programů) · Object Pascal (součást programového prostředí Delphi) Informatika I: přednáška 1 12

Lexikální jednotky jazyka Pascal q Symboly abecedy písmena, číslice, speciální symboly, klíčová slova q Identifikátory posloupnosti písmen a číslic začínající písmenem q Čísla celá, reálná (v desetinném nebo semilogaritmickém tvaru) q Řetězce posloupnosti znaků uzavřené apostrofy q Komentáře posloupnosti znaků uzavřené do složených závorek q Oddělovače lexikálních jednotek mezera, konec řádku, komentář Informatika I: přednáška 1 13

Příklady lexikálních jednotek q Klíčová slova begin, end, if, for, while, mod q Identifikátory (nerozlišují se velká a malá písmena, místo písmena může být také podtržítko) alfa, X 12, y 23 b, Beta_1, Celkovy. Soucet q Čísla 123, -58, 17. 35, -0. 975, 1 E 6, 2. 5 E-7 Pozn. : 2. 5 E-7 znamená 2, 5 · 10 7 q Řetězce 'alfa', 'Celkovy soucet = ' q Komentáře {Cteni vstupnich udaju} Informatika I: přednáška 1 14

Identifikátor slouží k označení konstant, typů, proměnných, položek záznamů, procedur a funkcí a jejich parametrů, … Ukázky syntaktické definice identifikátoru: identifikátor : : = písmeno | číslice písmeno identifikátor písmeno číslice Informatika I: přednáška 1 15

Výrazy Výraz je pravidlo pro získání nějaké hodnoty. Výraz může obsahovat konstanty, proměnné, volání funkcí, operátory a závorky. Volání funkce začíná jménem funkce, za nímž v závorkách následuje seznam parametrů oddělených čárkami. Operátory: · aritmetické (pracují s číselnými hodnotami a výsledkem je číselná hodnota): + , , * , /, div (celočíselné dělení), mod (zbytek po celočíselném dělení); · logické (pracují s logickými hodnotami a výsledkem je logická hodnota): not (negace), and (logický součin), or (logický součet); logické hodnoty jsou true (pravda), false (nepravda); negace je unární operátor, logický součin a součet jsou binární operátory; · relační (porovnávají dvě hodnoty stejného typu a výsledkem je logická hodnota): = , <> (nerovno), < , <= (menší nebo rovno), > , >= (větší nebo rovno) Informatika I: přednáška 1 16

Vyhodnocování výrazů Výrazy se vyhodnocují postupně zleva doprava při respektování priority operátorů a závorek. Aby byl výraz vyhodnocen, musí být zapsán do nějakého příkazu. Úrovně priority operátorů: volání funkce not * , /, div, mod, and + , , or = , <> , <= , >= Informatika I: přednáška 1 nejvyšší priorita nejnižší priorita 17

Příklady zápisu výrazů Matematický zápis Zápis v Pascalu 2 b/c a/(b c) (a+sin(x))/b (-b+sqrt(sqr(b)-4 a c))/(2 a) (a<=x) and (x<=b) Informatika I: přednáška 1 18

Přiřazovací příkaz proměnná: =výraz Výraz na pravé straně se vyhodnotí a jeho hodnota se přiřadí proměnné. Příklady přiřazovacích příkazů: X: =2 I: =I+1 y: =sqr(sin(x))-cos(x) D: =sqr(b)-4 a c Informatika I: přednáška 1 19

Příkazy vstupu a výstupu read(proměnná) readln write(výraz) writeln příkazy vstupu příkazy výstupu Příkazy vstupu mohou obsahovat několik proměnných, oddělených čárkami. Příkazy výstupu mohou obsahovat několik výrazů oddělených čárkami. Informatika I: přednáška 1 20

Příklady příkazů vstupu a výstupu read(N); read(Zn 1, Zn 2); readln(a, b, c); readln; write(44); write(x); write((A+B)/2); write(N, sqrt(N); writeln('Prumer = ', Soucet/Pocet); writeln; Informatika I: přednáška 1 21

Struktura programu v jazyce Pascal blok program jméno_programu; deklarace návěští; definice konstant; definice typů; deklarace proměnných; deklarace procedur a funkcí; begin příkaz 1; příkaz 2; . . . end. Informatika I: přednáška 1 22

Příklad jednoduchého programu program prumer; var a, b, p: real; begin writeln('Zadej 2 cisla'); readln(a, b); p: =(a+b)/2; writeln('Prumer = ', p); writeln('Stiskni Enter'); readln; end. Informatika I: přednáška 1 23

Struktura programu v prostředí Delphi program Project 1; uses Forms, Unit 1 in 'Unit 1. pas' {Form 1}; {$R *. RES} begin Application. Initialize; Application. Create. Form(TForm 1, Form 1); Application. Run; end. Informatika I: přednáška 1 24

Předdefinovaná struktura jednotky v Delphi unit Unit 1; interface uses Windows, Messages, Sys. Utils, Classes, Graphics, Controls, Forms, Dialogs; type TForm 1 = class(TForm) private { Private declarations } public { Public declarations } end; var Form 1: TForm 1; implementation {$R *. DFM} end. Informatika I: přednáška 1 25