Upload
rowan-mcmillan
View
65
Download
0
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
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
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
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)
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
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.
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
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/
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í
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.
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, … )
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)
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ář
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}
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
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)
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
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
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
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.
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;
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
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.
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
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