Informatika I 1 pednka RNDr Ji Dvok CSc

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

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í

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

Ú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í

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,

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

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ě

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.

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 ·

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ě

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

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

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

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

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

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í

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.

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

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ř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

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;

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ů;

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');

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

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,

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