25
Informatika I 1. přednáška RNDr. Jiří Dvořák, CSc. [email protected]

Informatika I 1. přednáška

Embed Size (px)

DESCRIPTION

Informatika I 1. přednáška. RNDr. Jiří Dvořák, CSc. dvorak @fme.vutbr.cz. Obsah přednášky. Úvod do programování Algoritmus a prostředky jeho vyjádření Programovací jazyky a programovací styly Úvod do jazyka Pascal Úvod do prostředí Delphi. Úvod do programování. program. počítač. vstupy. - PowerPoint PPT Presentation

Citation preview

Page 1: Informatika I 1. přednáška

Informatika I1. přednáška

RNDr. Jiří Dvořák, CSc.

[email protected]

Page 2: Informatika I 1. přednáška

Informatika I: přednáška 1 2

Obsah přednášky

Úvod do programování

Algoritmus a prostředky jeho vyjádření

Programovací jazyky a programovací styly

Úvod do jazyka Pascal

Úvod do prostředí Delphi

Page 3: Informatika I 1. přednáška

Informatika I: přednáška 1 3

Úvod do programování

počítač

program

vstupy výstupy

Program je předpis pro transformaci vstupů na výstupy.

Niklaus Wirth: program = algoritmus + datové struktury

Page 4: Informatika I 1. přednáška

Informatika I: přednáška 1 4

Algoritmus

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)

Page 5: Informatika I 1. přednáška

Informatika I: přednáška 1 5

Prostředky vyjádření algoritmu

Přirozený jazyk

Jazyk matematiky

Grafické prostředky

(vývojové diagramy, struktogramy, … )

Pseudojazyky

(liší se od programovacích jazyků volnějšími pravidly syntaxe)

Programovací jazyky

Page 6: Informatika I 1. přednáška

Informatika I: přednáška 1 6

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.

Page 7: Informatika I 1. přednáška

Informatika I: přednáška 1 7

Programovací jazyky

počítač

?. generace - přirozený jazyk?

4. generace - neprocedurální a problémově orientované jazyky

3. generace - procedurální jazyky vysoké úrovně

2. generace - assembler

1. generace - strojový jazyk

Page 8: Informatika I 1. přednáška

Informatika I: přednáška 1 8

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/

Page 9: Informatika I 1. přednáška

Informatika I: přednáška 1 9

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í

Page 10: Informatika I 1. přednáška

Informatika I: přednáška 1 10

Překladače

Kompilační překladače

generují program ve strojovém kódu, který pak může být opakovaně využíván.

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.

Page 11: Informatika I 1. přednáška

Informatika I: přednáška 1 11

Programovací styly

Algoritmus = logika (funkce) + řízení CO SE DĚLÁ JAK SE TO DĚLÁ

Imperativní styl - 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, … )

Page 12: Informatika I 1. přednáška

Informatika I: přednáška 1 12

Programovací jazyk PascalProgramovací 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)

Page 13: Informatika I 1. přednáška

Informatika I: přednáška 1 13

Lexikální jednotky jazyka PascalSymboly abecedy

písmena, číslice, speciální symboly, klíčová slova Identifikátory

posloupnosti písmen a číslic začínající písmenemČísla

celá, reálná (v desetinném nebo semilogaritmickém tvaru)Řetězce

posloupnosti znaků uzavřené apostrofyKomentáře

posloupnosti znaků uzavřené do složených závorekOddělovače lexikálních jednotek

mezera, konec řádku, komentář

Page 14: Informatika I 1. přednáška

Informatika I: přednáška 1 14

Příklady lexikálních jednotekKlíčová slova

begin, end, if, for, while, mod Identifikátory (nerozlišují se velká a malá písmena, místo písmena

může být také podtržítko)

alfa, X12, y23b, Beta_1, CelkovySoucet Čísla

123, -58, 17.35, -0.975, 1E6, 2.5E-7Pozn.: 2.5E-7 znamená 2,5 ·10 7

Řetězce

'alfa', 'Celkovy soucet = 'Komentáře

{Cteni vstupnich udaju}

Page 15: Informatika I 1. přednáška

Informatika I: přednáška 1 15

Identifikátor

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 písmeno | číslice

písmeno

číslice

písmenoidentifikátor

Page 16: Informatika I 1. přednáška

Informatika I: přednáška 1 16

VýrazyVý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)

Page 17: Informatika I 1. přednáška

Informatika I: přednáška 1 17

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 nejvyšší priorita

not

* , /, div, mod, and

+ , , or= , <> , < , <= , > , >= nejnižší priorita

Page 18: Informatika I 1. přednáška

Informatika I: přednáška 1 18

Příklady zápisu výrazů

Matematický zápis Zápis v Pascalu

2b/c

a/(bc)

(a+sin(x))/b

(-b+sqrt(sqr(b)-4ac))/(2a)

(a<=x) and (x<=b)

cb2

cba

bxa sin

aacbb

242

bxa

Page 19: Informatika I 1. přednáška

Informatika I: přednáška 1 19

Přiřazovací příkazpromě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)-4ac

Page 20: Informatika I 1. přednáška

Informatika I: přednáška 1 20

Příkazy vstupu a výstupu

read(proměnná)

readln(proměnná) příkazy vstupu

readln

write(výraz)

writeln(výraz) příkazy výstupu

writeln

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.

Page 21: Informatika I 1. přednáška

Informatika I: přednáška 1 21

Příklady příkazů vstupu a výstupu

read(N);read(Zn1,Zn2);readln(a,b,c);readln; write(44);write(x);write((A+B)/2);write(N,sqrt(N);writeln('Prumer = ',Soucet/Pocet);writeln;

Page 22: Informatika I 1. přednáška

Informatika I: přednáška 1 22

Struktura programu v jazyce Pascal

program jméno_programu;deklarace návěští;definice konstant;definice typů;deklarace proměnných;deklarace procedur a funkcí;

beginpříkaz1;příkaz2;...

end.

blok

Page 23: Informatika I 1. přednáška

Informatika I: přednáška 1 23

Příklad jednoduchého programuprogram prumer;var a,b,p:real;

beginwriteln('Zadej 2 cisla');readln(a,b);p:=(a+b)/2;writeln('Prumer = ',p);writeln('Stiskni Enter');readln;

end.

Page 24: Informatika I 1. přednáška

Informatika I: přednáška 1 24

program Project1;

uses Forms, Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}

begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run;end.

Struktura programu v prostředí Delphi

Page 25: Informatika I 1. přednáška

Informatika I: přednáška 1 25

unit Unit1;

interface

uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type TForm1 = class(TForm) private { Private declarations } public { Public declarations } end;

var Form1: TForm1;

implementation

{$R *.DFM}

end.

Předdefinovaná struktura jednotky v Delphi