Programovací jazyk PASCAL

Slides:



Advertisements
Podobné prezentace
Pro začátek něco lehčího
Advertisements

Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Pascal - příklady.
Programování funkcí v Excelu
Jazyk VHDL Martin Štěpánek
Pascal - větvení.
Programování v Pascalu
Algoritmizace od algoritmu k Pascalu.
Algoritmy I Cvičení č. 2. Cíl hodiny Datové typy a přetypování (int, float, double, bool, char, long, short) Konstanty – Celočíselné Desítkové – 15, 0,
Programování v Pascalu Přednáška 4
Programování v Pascalu Přednáška 2
Programování v Pascalu Přednáška 3
Programování v Pascalu Přednáška 5 RNDr. Hana Havelková.
Programování v Pascalu Přednáška 9 RNDr. Hana Havelková.
Algoritmizace a programování Operátory a příkazy v Delphi - 07
Skriptový jazyk, který se používá při tvorbě stránek.
Programování v Pascalu Přednáška 7
Materiály k přednášce Úvod do programování Ondřej Čepek.
MATLAB® ( část 3 - scripty).
Základy Visual Basicu.
PHP PHP – základy syntaxe (část 1) - 03 Mgr. Josef Nožička IKT PHP
Algoritmizace a programování
Informatika I 3. přednáška
Jazyk vývojových diagramů
Procedury a funkce Základní charakteristika a použití v programu.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Vyučovací hodina 1 vyučovací hodina: Opakování z minulé hodiny 5 min Nová látka 20 min Procvičení nové látky 15 min Shrnutí 5 min 2 vyučovací hodiny: Opakování.
ZÁKLADNÍ DATOVÉ TYPY.
Deklarace Radim Štefan. 2 Použité zkratky BP – Borland Pascal De – Delphi.
MATLAB LEKCE 1.
A1PRG - Programování – Seminář Ing. Michal Operátory (2. část) 4 Verze
MATEMATIKA I.
Gramatiky a jazyky Přednáška z předmětu Řízení v komplexních systémech
Jazyk vývojových diagramů
Úvod do Pascalu. Co je Pascal? vyšší programovací jazyk poskytuje prostředky pro popis algoritmů, které odrážejí povahu řešených problémů, a nikoliv technickou.
Informatika I 4. přednáška
Proměnné v PHP Každý programovací jazyk pracuje s nějakými hodnotami. To, do čeho se tyto hodnoty ukládají, se nazývá proměnné. Každý programovací jazyk.
Cvičení.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
5. Procedury a funkce Procedura je samostatně odladěný algoritmus, v programu může být volána vícekrát. Dvojí terminologie - rozlišujeme procedury a funkce.
VISUAL BASIC PRALG.
Datové typy a struktury
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Informatika I 1. přednáška
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
10. Dynamické proměnné Dynamická proměnná se nezavádí deklarací proměnných, ale vzniká za běhu programu provedením speciálního příkazu. Nemá přidělen žádný.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
NEÚPLNÁ PODMÍNKA V JAVĚ. VÝVOJOVÝ DIAGRAM +- Podmínka Příkaz_1.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
6. Typ záznam Strukturovaný datový typ - znamená spojení několika elementů stejného nebo různých typů do jedné proměnné. Např. pole je strukturovaný datový.
Datové typy a operátory. Co jsou datové typy  Charakterizují proměnnou nebo konstantu – jaká data obsahuje  Data jsou v počítači ukládána jako skupiny.
ZÁKLADNÍ POJMY. ZDROJOVÝ TEXT PROGRAMU Tvoří: klíčová slova komentáře identifikátory.
doc. RNDr. Zdeněk Botek, CSc.
Pascal – if Mgr. Lenka Švancarová.
4. Typ pole 4.1 Jednorozměrná pole
Informatika I 2. přednáška
Pascal – strukturované příkazy
Počítače a programování 1 2.přednáška. Základní lexikální struktura programu Program v jazyce Java je tvořen symboly a oddělovači Program Java je psán.
Pascal - větvení.
Cvičení 3-4 Procedury, funkce,řetězce. Procedury Procedura Procedura Procedura je podprogram, který mění stav programu (změnou stavu proměnných nebo změnou.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Datové typy a operátory Základní programové.
Makra v Excelu syntaxe. Zápis nahraného makra SubEnd Sub O klíčová slova Sub a End Sub – začátek a konec makra O komentáře O text za znakem ', až do konce.
Výukový materiál zpracován v rámci projektu
Výukový materiál zpracován v rámci projektu
Funkce výstupu (2) Funkce printf: deklarována v: stdio.h
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
Proměnné (1) Proměnná: Definice proměnných:
CU01 Informatika II 2/13 Základy algoritmizace
Transkript prezentace:

Programovací jazyk PASCAL

1. Úvod Př. Vypočtěte součet s(n)=1 + 1/2 + 1/3 + ... + 1/n program soucet(input,output); var n:integer; s:real; begin read(input,n); s:=0; repeat s:=s+1/n; n:=n-1; until n=0; write(output,s); end.

1.1 Lexikální elementy Jsou to nejmenší smysluplné jednotky pascalského programu. Jsou představovány speciálními symboly,identifikátory, rezervovanými slovy, návěštími, čísly a řetězcovými konstantami. Program je tvořen lexikálními elementy a separatory. Separátory jsou mezera, tabelátor a komentář. V případě, že dva sousední lexikální elementy jsou rezervované slovo, identifikátor, návěští nebo číslo, musí být odděleny jedním nebo více separátory. Separátory nesmějí být částí lexikálních elementů, vyjma řetězcových konstant.

Speciální symboly: - znaky, které mají jeden nebo více stálých významů: +,-,*,/,=,<,>,{,},.,(,),:,;,^,@,[,], $,# - v TP - také páry znaků jsou speciální symboly: <=,>=,:=,..,(*,*),(.,.) Identifikátory: Označují konstanty, typy, proměnné, procedury a funkce, unity, programy. Mají libovolnou délku, v TP je prvních 63 znaků významných.Identifikátor je posloupnost písmen a číslic začínající písmenem, nesmí obsahovat mezeru. V TP muže obsahovat podtržítko pro zvýšení čitelnosti. Stejně jako u rezervovaných slov se nerozlišují malá a velká písmena.

Rezervovaná slova: Jsou to identifikátory se speciálním významem - if, else begin, end, for, in, nil, to,... . Návěští: Je to číslo z intervalu 0..9999 - používa se spolu s příkazem goto. TP umožňuje použít jako návěští identifikátor odpovídajícího typu. Čísla: - typu integer - posloupnost číslic - typu real - číslo s desetinnou tečkou, případně v exponenciálním tvaru - 1e32 - hexadecimální konstanta - v TP číslo typu integer - $afb

Řetězce: Je to posloupnost znaků uzavřená apostrofy, musí ležet na jednom řádku - 'abc'. Prázdný řetězec - '' . Nezobrazitelné znaky je možno vkládat pomocí jejich kódu - 'abc'#14'xyz '. Komentáře: Je to text uzavřený ve složených závorkách, kompilátor tento text ignoruje. Složené závorky je možno nahradit dvojicemi znaků (*,*). Komentář, obsahující znak dolar $ bezprostředně za otevírací závorkou je v P direktiva kompilátoru.

1.2 Syntaxe a sémantika jazyka Syntaxe je souhrn pravidel, udávajících přípustné tvary dílčích konstrukcí a celého programu. Sémantika je souhrn pravidel, udávajících význam jednotlivých konstrukcí. Syntaktický diagram se používá pro zápis syntaxe, definuje všechny přípustné tvary konstrukce, jejíž název je uveden v nadpise. Přípustný tvar získáme tak, že projdeme nějakou cestou vedoucí od začátku diagramu do konce.

Syntaktický diagram: identifikátor písmeno číslice A B Z 1 2 9

2. Základní pojmy 2.1 Konstanta Deklaruje se v deklarační části za klíčovým slovem CONST. Hodnota konstanty je známa již při psaní programu, během provádění programu se nemění. Použití konstant zvyšuje čitelnost a srozumitelnost programu. Umožňuje také jeho snadnou modifikovatelnost - změna na jednom místě změní hodnoty v clem programu. Syntaktický diagram: Př.: const maxpocet = 100; pi = 3.1415926 koncznak = '$'

2.2 Proměnná Deklaruje se v deklarační části za klíčovým slovem VAR. Deklarací se definuje identifikátor proměnné, pomocí kterého k ní přistupujeme, typ proměnné, který specifikuje množinu přípostných hodnot a množinu přípustných operací. Deklarací je také určena velikost paměti, kterou bude proměnná zabírat. Hodnota proměnné se mění v průběhu výpočtu, na začátku programu neni hodnota proměnné definována (neni 0!). Hodnota se proměnné přiřadí přiřazovacím příkazem nebo příkazem čtení. Př.: var i,j,k : integer; p,q,r : real; zn1,zn2 : char; test : boolean;

2.3 Základní typy Typ integer Specifikuje konečnou souvislou množinu hodnot. Rozsah typu neni dán jazykem ale konkrétní implementací. MAXINT je standardní identifikátor konstanty, která obsahuje největší číselnou hodnotu typu integer. Rozsah typu integer je -maxint..maxint. V TP zabírá 2 byty, maxint=2^15 - 1 = 32767. Typ longint zabírá 4 byty, největší hodnota je 2^31 - 1 = 2.147.483.647. Operace: +,-,*,div - celočíselné dělení, mod - zbytek po celočíselném dělení Výsledek operace je roven matematickému, je-li z intervalu -maxint..maxint, jinak dochází k chybě. Př.: k:= i mod j; l:= 25 div 7;

Relační operace: =, <>, <, >, <=, >= - výsledek je logická hodnota true nebo false. Standardní funkce: abs(i) ... | i |, sqr(i) ... i^2, odd(i) ... logická fce, je true, je-li i liché, jinak false inc(i) ... i:=i+1, inc(i,j) ... i:=i+j, dec(i) ... i:=i-1, dec(i,j) ... i:=i-j Př.: if i mod 2 = 0 then sude := sude + 1 else liche := liche + 1 if odd(i) then inc(liche) else inc(sude);

Typ real Specifikuje konečnou podmnožinu reálných čísel, rozsah je definován implementací. Čísla se zobrazují v pohyblivé řádové čárce - mantisa + exponent. Rozsah je definován třemi charakteristikami: - největší absolutní hodnota, - nejmenší absolutní hodnota nenulového čísla, - počet míst mantisy. real - 6 byte, rozsah 2.9e-39 ..1.7e38, 11-12 číslic Další reálné typy: single, double, extended, comp. Operace: +,-,*,/ - výsledek neni definován, jestliže matematický výsledek neleží v rozsahu zobrazitelných čísel. Relační operátory jsou stejné jako u typu integer. Standardní funkce: abs(r) ... |r|, sqr(r) ... r2, sin(r), cos(r), arctan(r), ln(r), exp(r) ... e^r, sqrt(r) ... .

V pascalu nejsou funkce y^x, arcsin(r), arccos(r) V pascalu nejsou funkce y^x, arcsin(r), arccos(r). Lze pro ně použít vzorce: Konverze - převod jednoho typu na druhý: - integer na real je implicitní - standardní fce je možno volat s celočíselnými argumenty, které se před vyvoláním fce převedou na reálné, - v aritmetických a relačních výrazech je-li jedna proměnná typu real pak proměné typu integer se převedou na real - real na integer - trunc(r) - odseknutí desetinné části - round(r) - zaokrouhlení : round(r)=trunc(r+0.5) x>=0, round(r)=trunc(x-0.5) x<0

Typ boolean Specifikuje množinu logických hodnot {false, true}, je definováno uspořádání false<true. Jsou definovány relační operace - unární not a binární and, or, xor (negace ekvivalence), implikace (<=), ekvivalence (=). Proměnné a výrazy typu boolean se používají v příkazech cyklu a větvení. Typ char Hodnotami typu char jsou znaky. Množina používaných znaků neni dána jazykem, ale implementací. Dnes se používá množina znaků - kód ASCII (American Standard Code for Information Interchange), dříve také kód EBCDIC (Extended Binary Coded Decimal Information Code). Je definováno zobrazení, které každému znaku přiřadí celé číslo - ordinální číslo znaku. Znakovou konstantu můžeme zapsat jako znak v uvozovkách - 'a','b'.Hodnotami typu char mohou být znaky, které nemají lexikografickou reprezentaci - tzv. řídící znaky (např. #12 - znak konce stránky). Jsou definovány relační operace: =,<>,<,>,<=,>=, uspořádání je dáno ASCII kódem - '0'<'1', 'a'<'b'. Funkce ord přiřazuje znaku jeho ordinální číslo - ord('0')=48, ord('1')=49. K ní inverzní funce přiřazuje číslu znak - chr(65)='A', chr(ord(zn))=zn.

Př.: Sestavte algoritmus, který ze vstupních dat přečte posloupnost znaků, reprezentující zápis celého čísla bez znaménka a vytvoří odpovídající hodnotu typu integer. Před první číslicí mohou být mezery, zápis čísla bude správný a zobrazitelný. program vstup_cisla; var zn:char; hodn:integer; begin hodn:=0; read(zn); while zn=' ' do read(zn); while ('0'<=zn)and(zn<='9') do begin hodn:=10*hodn + ord(zn) - ord('0'); read(zn); end; end.

Ordinální typy Typy integer, boolean a char patří spolu s výčtovým typem a typem interval do skupiny jednoduchých typů, které se nazývají ordinální typy. Jsou pro ně definovány funkce ord - vrací ordinální (pořadové) číslo, succ - následovník a pred - předchůdce: ord(succ(x)=ord(x)+1, ord(pred(x)=ord(x)-1

2.4 Výrazy Předepisují posloupnost operací, skládají se z operandů - konstant a proměnných, operátorů a příp. kulatých závorek. Provedení všech operací se nazývá vyhodnocení výrazů, výsledkem je hodnota výrazu. Operace se provádějí zleva doprava, s ohledem na prioritu operátorů a na závorky. Priority operátorů: 1. not ... nejvyšší priorita 2. *, /, div, mod, and 3. +, -, or 4. =, <>, <, >, <=, >=

a + b > u*v (a + b) > (u*v) Př.: z*4 + y mod 2 - z div 5 ((z*4) + (y mod 2) - (z div 5) x + a*y/z x + ((a*y)/z) a + b > u*v (a + b) > (u*v) p or not q and r p or ((not q) and r) Operandy každého operátoru musí být přípustného typu. Správnost výrazu ověříme zleva doprava s ohledem na prioritu a závorky. 0 <= i <= 10 ... ne 0 <= i and i <= 10 ... ne (0 <= i) and (i<= 10) ano ...

2.5 Struktura a zápis programu Program se skládá z hlavičky, deklarační části a příkazové části. Hlavička - obsahuje identifikátor - jméno programu, který se v programu nezmí znovu vyskytnout. V TP je hlavička nepovinná. Deklarační část - obsahuje úseky deklarací: návěští, konstant, typů, proměnných, procedur a funkcí. V TP nezaleží na jejich pořadí. Příkazová část - popisuje vlastní výpočetní proces, skládá se z příkazů ukončených středníkem a je uzavřena v závorkách begin end. Příkaz za kterým následuje závorka end nemusí být ukončen středníkem. Program se zapisuje v tzv. volném formátu - příkaz může začínat v libovolném místě řádku a může jich být na řádku více. Pro zvýšení čitelnosti se každá logická úroveň v programu odsazuje o dva znaky. Na vhodných místech se program doplňuje komentáři, které je možno vložit všude tam, kde je povoleno psát mezeru.