Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Podobné dokumenty
Programovací jazyk Pascal

Identifikátory označují objekty v programu používané (proměnné, typy, podprogramy).

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Sada 1 - Základy programování

Úvod do programování

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

dovolují dělení velkých úloh na menší = dekompozice

Základy programovacího jazyka Turbo Pascal

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Pseudonáhodná čísla = algoritmicky generovaná náhrada za náhodná čísla

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Maturitní otázky z předmětu PROGRAMOVÁNÍ

ALGORITMIZACE A PROGRAMOVÁNÍ

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Paměť počítače. alg2 1

Sada 1 - Základy programování

NPRG030 Programování I, 2018/19 1 / :25:37

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

NPRG030 Programování I, 2015/16 1 / :25:32

Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově orientované programování.

Úvod do programování. Lekce 1

Algoritmizace prostorových úloh

Zápis programu v jazyce C#

NPRG030 Programování I, 2016/17 1 / :58:13

Algoritmizace a programování

Algoritmizace prostorových úloh

Programovací jazyk PASCAL Turbo

NPRG031 Programování II --- 2/2 Z, Zk

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

6. Příkazy a řídící struktury v Javě

NPRG030 Programování I, 2010/11

NPRG030 Programování I, 2017/18 1 / :22:16

Rekurze. Pavel Töpfer, 2017 Programování 1-8 1

PODPROGRAMY PROCEDURY A FUNKCE

Uplatnění metod na zvolený jazyk

Algoritmy a datové struktury 1

Poslední aktualizace: 14. října 2011

Úvod do programovacích jazyků (Java)

Název předmětu: Školní rok: Forma studia: Studijní obory: Ročník: Semestr: Typ předmětu: Rozsah a zakončení předmětu:

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

NMIN102 Programování /2 Z, Zk

VY_32_INOVACE_08_2_04_PR

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Algoritmizace prostorových úloh

Lexikální analýza Teorie programovacích jazyků

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

PHP - úvod. Kapitola seznamuje se základy jazyka PHP a jeho začleněním do HTML stránky.

Sada 1 - Základy programování

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Řídicí struktury. alg3 1

Program a životní cyklus programu

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

2 Datové typy v jazyce C

Řízení toku programu Programátor musí být schopen nějak ovlivňovat běh programu a k tomu má několik možností:

Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Algoritmizace a programování

O datových typech a jejich kontrole

Sada 1 - Základy programování

2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5

= knihovna prostředků pro lepší práci s textovou obrazovkou, klávesnicí a generátorem zvuků

Sada 1 - PHP. 03. Proměnné, konstanty

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

PROGRAMOVÁNÍ V JAZYCE C V PŘÍKLADECH 11 Dynamické datové struktury 11.1 Spojové struktury Příklad PROG_

Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory

6 Příkazy řízení toku

Proměnná. Datový typ. IAJCE Cvičení č. 3. Pojmenované místo v paměti sloužící pro uložení hodnoty.

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Základy algoritmizace a programování

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

Odvozené a strukturované typy dat

Algoritmizace a programování

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

VISUAL BASIC. Práce se soubory

1. D Y N A M I C K É DAT O V É STRUKTUR Y

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

IAJCE Přednáška č. 8. double tprumer = (t1 + t2 + t3 + t4 + t5 + t6 + t7) / 7; Console.Write("\nPrumerna teplota je {0}", tprumer);

5 Přehled operátorů, příkazy, přetypování

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Algoritmizace a programování

Anotace. Soubory a práce s nimi, rekurze podruhé, struktury (datový typ record), Martin Pergel,

PROGRAMOVÁNÍ V SHELLU

Binární soubory (datové, typované)

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Klasický podprogram, který nazýváme procedura. Jedná se v podstatě o příkaz. 1

URČITÝM ZPŮSOBEM PODOBNÉ

CZ.1.07/1.5.00/

Objektově orientované programování

Transkript:

Programovací jazyk - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Odlišnosti implementace od normy - odchylky např.: nepovinná hlavička programu odlišná práce se soubory parametr for-cyklu, příkaz case - rozšíření např.: standardní procedury a funkce znakové řetězce (typ string) modularita (unity) objekty Syntaxe jazyka = pravidla zápisu korektních programů ( gramatika ) Sémantika jazyka = význam syntakticky správných konstrukcí, resp. programů ( co zápis znamená ) Pavel Töpfer, 2016 Programování 1-2 1

Struktura programu v Pascalu hlavička - v TP nepovinná program Soucet; deklarace tělo - popis a pojmenování všech prostředků používaných dále v programu proměnné, konstanty, typy, návěstí, procedury a funkce var A, B: integer; - zápis algoritmu (posloupnost příkazů) begin read(a); read(b); write(a+b) end. Hlavička, jednotlivé deklarace i příkazy se oddělují středníkem (znakem ; ). Klíčová slova (v tisku zpravidla tučně, v rukopisu podtržená) = speciální víceznakové symboly s vyhrazeným významem. Pavel Töpfer, 2016 Programování 1-2 2

Proměnná = paměťové místo pro uložení hodnoty - jméno jednoznačné pojmenování pomocí identifikátoru - typ jaké hodnoty může uchovávat (určuje velikost přidělené paměti) Deklarace proměnných v Pascalu povinná (v některých jazycích ne nebezpečné!) syntaxe: var Jméno: Typ; Jm1, Jm2, Jm3: Typ; více proměnných téhož typu Při deklaraci více proměnných v programu se nemusí (ale může) klíčové slovo var opakovat, jdou-li deklarace proměnných hned po sobě. Pokud je mezi nimi deklarován nějaký jiný prostředek (např. typ, konstanta, procedura), musí se var znovu uvést na začátku každého úseku deklarací proměnných. Pavel Töpfer, 2016 Programování 1-2 3

Identifikátor = způsob pojmenování jakýchkoliv objektů používaných v programu (název programu, jména proměnných i jiných deklarovaných prostředků) - tvořen písmeny anglické abecedy a číslicemi - nesmí začínat číslicí např.: Soucet, x1, alfa - v TP navíc znak _ ( podtržítko ) umožňuje používat víceslovné názvy, např.: Pocet_Prvku - nerozlišuje malá a velká písmena (tzn. v identifikátoru a = A, na rozdíl od jazyků C, Java apod., kde to jsou různé znaky) tedy alfa = ALFA = Alfa (lze i střídat nepřehledné!) lze používat velbloudí notaci PocetKamenuNaSachovnici - implementací omezena maximální délka (je dostatečně velká). Doporučení: - používat mnemotechnické identifikátory název proměnné napovídá o jejím významu a účelu - zavést si pevný styl používání malých/velkých písmen. Pavel Töpfer, 2016 Programování 1-2 4

Typ určuje, kolik se pro proměnnou vyhradí místa v paměti a jakým způsobem se proměnná může používat v programu - jednoduchý uložení jedné hodnoty v Pascalu (resp. TP) připraveny standardní datové typy celé číslo integer (byte, word, shortint, longint) desetinné číslo real (single, double, extended) logická hodnota boolean znak char - strukturovaný sestaven z více složek nutno předem specifikovat počet a typ složek pomocí definice typu s využitím vyhrazených klíčových slov pole array záznam record znakový řetězec string množina set Pavel Töpfer, 2016 Programování 1-2 5

Celočíselné typy v TP shortint 1B se znaménkem -128..127 integer 2B se znaménkem -32768..32767 longint 4B se znaménkem -2147483648..2147483647 byte 1B bez znaménka 0..255 word 2B bez znaménka 0..65535 Základní reálný typ v Pascalu real 6B 11-12 platných cifer rozsah hodnot E-39..E38 Dodatečné reálné typy v TP single 4B 7-8 platných cifer rozsah hodnot E-48..E38 double 8B 15-16 platných cifer rozsah E-324..E308 extended 10B 19-20 platných cifer rozsah E-4932..E4932 Pavel Töpfer, 2016 Programování 1-2 6

Čísla ve světě 1 AU (astronomická jednotka) = střední vzdálenost Země Slunce 1,495. 10 11 m 1 l.y. (světelný rok) 9,46. 10 15 m vzdálenost hvězd cca 10-15 l.y. (Proxima Centauri 4,27 l.y.) hmotnost Slunce 1,993. 10 20 kg velikost atomu hmotnost protonu hmotnost elektronu elementární náboj řádově 10-10 m 1,672. 10-27 kg 9,109. 10-31 kg 1,602. 10-19 C Planckova konstanta (E=h.ν) h = 6,625. 10-34 Js Avogadrova konstanta (počet částic v 1 molu) N A = 6,022. 10 23 mol -1 Rozsah hodnot standardního datového typu real plně postačuje. Pavel Töpfer, 2016 Programování 1-2 7

Zápis programu v Pascalu Fyzicky: textový soubor = posloupnost znaků (píšeme v textovém editoru) Logicky: posloupnost lexikálních atomů (logických elementů, dále nedělitelných) - konstanty 15-2.97 3.456E-4 Praha - identifikátory A Soucet PocetCisel x1 - klíčová slova var begin program array - speciální znaky + : < ; - dvojznaky := <= <>.. - komentáře {libovolný text} (*případně takto*) Oddělení sousedních lexikálních atomů: mezera, nový řádek (Enter) - musí oddělit sousedící konstanty, identifikátory a klíčová slova - nesmí být uvnitř lexikálního atomu (v komentáři ovšem ano) - jinde být může a nemusí (lze psát A+1 i A + 1 ) - kde smí být, může jich být libovolný počet (v libovolné kombinaci) - kde smí být, může být komentář - není pevná řádková struktura (neplatí princip co příkaz, to řádek ). Pavel Töpfer, 2016 Programování 1-2 8

Doporučení: - jednotlivé deklarace a příkazy psát na samostatné řádky - používat indentaci (odsazování řádků od levého okraje podle logického zanoření příkazových struktur) - používat komentáře (význam jednotlivých proměnných, co dělá která procedura a funkce, co dělá která část programu). Je dobré zavést si vlastní styl zápisu programu a dodržovat ho. Nic z toho není povinné, překladač to ignoruje. Významné zvýšení čitelnosti zdrojového kódu pro programátora (pro autora samotného i pro případné další čtenáře ). program PlochaKruhu; var R, P: real; {poloměr, výsledná plocha} begin read(r); P := 3.14159265 * R * R; write(p) end. Pavel Töpfer, 2016 Programování 1-2 9

Definice konstanty - pojmenování konstanty identifikátorem - uvádí se v oblasti deklarací - syntaxe: const Jméno = Hodnota; - typ konstanty je automaticky odvozen z uvedené hodnoty - hodnotu konstanty nelze při výpočtu měnit (nelze do ní dosazovat) - důvody: opakovaný výskyt téže ošklivé hodnoty v programu možnost snadné změny na jediném místě v programu program PlochaKruhu; const Pi = 3.14159265; {DEFINICE KONSTANTY} var R, P: real; {poloměr, výsledná plocha} begin read(r); P := Pi * R * R; write(p) end. Pavel Töpfer, 2016 Programování 1-2 10

Předdefinované číselné konstanty maxint = nejvyšší možná hodnota proměnné typu integer (v TP na PC 32767, jinde může být jiná) Pi = Ludolfovo číslo =3.14159265358979 (není v normě Pascalu, má TP) Pavel Töpfer, 2016 Programování 1-2 11

Příkazy v Pascalu - jednoduché - dosazovací příkaz (přiřazovací) - volání procedury - příkaz skoku (goto) používá se jen výjimečně - strukturované - složený příkaz (begin end) - podmíněný příkaz (if, case) - cyklus (while, repeat, for) - vnoření do záznamu (with) specialita Pascalu, příliš se nepoužívá Strukturovaný příkaz je konstrukce, která v sobě obsahuje jeden nebo více dalších příkazů, z nichž každý je buď jednoduchý, nebo opět strukturovaný strukturované programování. Pavel Töpfer, 2016 Programování 1-2 12

Dosazovací příkaz Syntaxe: Sémantika: Proměnná := Výraz vyhodnotí se výraz, hodnota se vloží do proměnné (dosavadní hodnota proměnné se tím ztratí) Použití: A := 5; {proměnná A nabude hodnoty 5} A := A+1; {hodnota proměnné A se zvýší o 1} A := B; {do A se zkopíruje hodnota proměnné B} Příklad: výměna hodnot dvou proměnných A, B - nutno použít třetí pomocnou proměnnou C C := A; A := B; B := C - pozor na pořadí příkazů Pavel Töpfer, 2016 Programování 1-2 13

Volání procedury - má postavení jednoduchého příkazu - lze volat standardní proceduru jazyka Pascal nebo proceduru vlastní deklarovanou v programu Syntaxe: Sémantika: JménoProcedury(Parametry) vykoná se algoritmus popsaný v proceduře Průběh výpočtu: v místě volání procedury se v přeloženém kódu programu vykoná odskok do kódu procedury a po ukončení procedury návrat do programu za místo volání (návratová adresa je vhodným způsobem uschována). Prozatím známe standardní procedury pro vstup a výstup dat v podobě: read(a); přečte ze standardního vstupu (tj. z klávesnice) jednu hodnotu a uloží ji do proměnné A write(a); vypíše na standardní výstup (tj. na obrazovku) hodnotu výrazu A Pavel Töpfer, 2016 Programování 1-2 14

Procedury pro zvýšení / snížení hodnoty proměnné (není v normě Pascalu, má TP) Nechť A je proměnná typu integer, X je výraz typu integer: inc(a) A:=A+1 dec(a) A:=A-1 inc(a, X) A:=A+X dec(a, X) A:=A-X Pavel Töpfer, 2016 Programování 1-2 15

Podmíněný příkaz if Podmínka then Příkaz if Podmínka then Příkaz1 else Příkaz2 Jednoduchá podmínka = relace: Výraz1 relační operátor Výraz2 = < > <= >= <> Příklad: if A > 0 then A := A-1 if A > 0 then A := A-1 else A := A+1 Volba z více možností: if A=1 then else if A=2 then else if A=3 then else Pavel Töpfer, 2016 Programování 1-2 16

Sémantika vnořených if if A > 0 then if B = C then A := A-1 else A := 0 else A := 1 sémantika: if A > 0 then (if B = C then A := A-1 else A := 0) else A := 1 if A > 0 then if B = C then A := A-1 else A := 0 sémantika: if A > 0 then (if B = C then A := A-1 else A := 0) if A > 0 then (if B = C then A := A-1) else A := 0 SPRÁVNĚ ŠPATNĚ znaky ( ) do příkazů nepíšeme, jenom zde znázorňují chápání sémantiky Co když potřebujeme dosáhnout toho druhého významu? Co když v podmínce potřebujeme provést více příkazů? Pavel Töpfer, 2016 Programování 1-2 17

Složený příkaz = příkazové závorky begin Příkaz1; Příkaz2; ; PříkazN end if A > 0 then begin A := A-1; B := 100 end else begin A := A+1; B := 200 end Poznámka k syntaxi: před else není středník! if A > 0 then (if B = C then A := A-1) else A := 0 if A > 0 then begin if B = C then A := A-1 end else A := 0 Pavel Töpfer, 2016 Programování 1-2 18