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



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

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

VÝRAZY výrazy = operandy prokládané operátory, vyhodnocované podle priority operátorů

Programovací jazyk Pascal

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

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

Sada 1 - Základy programování

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

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

CZ.1.07/1.5.00/

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

Sada 1 - Základy programování

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

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

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

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

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

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

Úvod do programování. Lekce 1

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

Inovace a zkvalitnění výuky prostřednictvím ICT Základy programování a algoritmizace úloh. Ing. Hodál Jaroslav, Ph.D. VY_32_INOVACE_25 09

Elementární datové typy

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

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

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

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

NPRG030 Programování I, 2010/11

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

Algoritmizace a programování

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

Jazyk VHDL zápis čísel, znaků a řetězců. Jazyk VHDL základní datové typy a operátory. Kurz A0B38FPGA Aplikace hradlových polí

2 Strukturované datové typy Pole Záznam Množina... 4

LEKCE 6. Operátory. V této lekci najdete:

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

Algoritmizace a programování

Operátory, výrazy. Tomáš Pitner, upravil Marek Šabo

Úvod do programovacích jazyků (Java)

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

O datových typech a jejich kontrole

ALGORITMIZACE A PROGRAMOVÁNÍ

Příklad : String txt1 = new String( Ahoj vsichni! ); //vytvoří instanci třídy String a přiřadí ji vnitřní hodnotu Ahoj vsichni!

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

7. Datové typy v Javě

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

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

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

Základy programovacího jazyka Turbo Pascal

Algoritmizace prostorových úloh

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

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

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

ADT/ADS = abstraktní datové typy / struktury

Sada 1 - Základy programování

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

Zápis programu v jazyce C#

Skripty základy VB, vestavěné objekty, příklady

Úvod do programovacích jazyků (Java)

Datové typy a struktury

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

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

Programovací jazyk PASCAL Turbo

Datové typy strana 29

8 Třídy, objekty, metody, předávání argumentů metod

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

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

Ing. Igor Kopetschke TUL, NTI

Algoritmizace prostorových úloh

Databáze I. Přednáška 4

Programování v jazyce JavaScript

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

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

Delphi podstata, koncepce a metody MDI aplikace

Doňar B., Zaplatílek K.: MATLAB - tvorba uživatelských aplikací, BEN - technická literatura, Praha, (ISBN:

Odvozené a strukturované typy dat

OSTRAVSKÁ UNIVERSITA V OSTRAVĚ Pedagogická fakulta Obor informační technologie ve vzdělávání Kombinované studium

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

VISUAL BASIC. Práce se soubory

Přednáška 3. Rekurze 1

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/ PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/ stran 1

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

Programování v C++, 2. cvičení

typová konverze typová inference

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

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

Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>

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

MS Excel Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

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

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Programování v jazyce JavaScript

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

Formátové specifikace formátovací řetězce

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

Inovace a zkvalitnění výuky prostřednictvím ICT Programování se strukturovanými údaji Programové jednotky

Souhrn Apendixu A doporučení VHDL

Jazyk C# a platforma.net

KTE / PPEL Počítačová podpora v elektrotechnice

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz

Transkript:

Delphi lekce 6 Minimum z Object Pascalu Vrátíme se ještě k základům Object Pascalu. Struktura programu Object Pascal je přísně typový procedurální jazyk, který umožňuje jak strukturované, tak objektově orientované programování. Příkazy jsou oddělovány středníkem, bílé znaky (mezery, tabulátory, nové řádky jsou ekvivalentem jedné mezery pokud nejsou součástí řetězce), skupiny příkazů začínají a končí end. Program se člení na příkazy seskupené do procedur nebo funkcí, které se případně seskupují do tříd. Procedury a funkce, nebo třídy jsou uloženy v jednotce (unit). Celý program se skládá ze souboru s klíčovým slovem program a případných jednotek. Nejmenší program má jen jeden soubor s uvedeným klíčovým slovem program v delphi dle konvence soubor dpr. Jednotky jsou uloženy v souborech pas. Jednotka má obvykle dvě části: rozhraní (interface) a implementaci (implementation). unit Jednotka; interface uses Jednotka2; procedure Test; implementation uses Jednotka3; procedure Test; ShowMessage( test ); end. V části interface se specifikuje všechno, co má být dostupné z jiných jednotek. V části implementation rozhraní implementujeme.

Části s uses jsou nepovinné. Ohledně umístění uses (interface x implementation): pokud je to možné tak používáme uses v implementation, jelikož tím usnadníme kompilátoru kontrolu závislostí (a tím zrychlíme kompilaci) a vyhneme se kruhové referenci jednotek. Typy proměnných Ordinální typ Jedná se o datový typ, kdy každé hodnotě daného typu se dá přiřadit unikátní hodnota pořadí (ordinální hodnota). Patří sem všechny celočíselné typy, char, boolean a výčtový typ. Pro získání ordinální hodnoty existuje funkce ord, předchůdce je pred a následník je Succ. Dále lze použít dec a inc, kdy tyto procedury snižují nebo zvyšují hodnotu o 1 (případně o hodnotu specifikovanou druhým parametrem). Numerické typy Rozeznáváme celočíselné (zároveň jsou ordinální) a realné. Kromě toho ještě zvláštní typ Currency, což je kříženec, jelikož je to reálný typ, ale s fixní přesností a je uložen interně jako celé číslo (při operacích mezi ním a reálným typem kompilátor interně násobí nebo dělí 10000). Celočíselné typy (byte, word, integer, cardinal, longint, int64 ) se rozlišují dle velikosti (uložení v paměti na byte) a zda jsou znaménkové. Některé mají definovanou přesnou velikost, jiné jsou generické, a tudíž mohou mít na jiných platformách nebo CPU jinou velikost (Integer). Obecně by se měl používat Integer (pokud není zvláštní důvod pro jiný typ). Pro zadání v 16soustavě se používá prefix $ např. $0A. Reálné typy se rozlišují dle velikosti v paměti (single, double, extended) a tím dle přesnosti. Původní typ real z pascalu je nyní mapován na double, pokud někdo potřebuje původní real (který není přímo podporován matematickým koprocesorem) musí použít real48. Obecně by se měl používat double. Celočíselné typy podporují mod a div, tj. celočíselné dělení a dále bitové operace and or xor not a bitové posuny shr a shl. Kromě toho lze použít funkci Odd, která vrací zda je argument lichý. Konverze mezi reálnými a celočíselnými typy: round vrací zaokrouhlené číslo, trunc vrací celou část reálného čísla, frac desetinnou. Aritmetické funkce: Abs, ArcTan, Cos, Sin (a další geometrické funkce), Ln, Pi, Sqr, Sqrt, Exp. Dále v jednotce Math jsou další optimalizované funkce. Boolean Typ představující logický stav (True nebo False). Uložen jako jeden byte. Podporuje logické operace and, or, xor a not.

Obecně kompilátor podporuje zkrácené vyhodnocování (lze nastavit), tj. pokud je složitější výraz a v některém okamžiku je jasný výsledek další části výrazu se neprovádí. Obecně tedy je nutno na to pamatovat a to: Char - nejrychlejší část výrazu dávat na začátek - pokud je ve výrazu volání funkce, nemusí být provedeno! Reprezentuje znak. Do Delphi 2007 včetně je velikosti 1 byte (hodnoty 0-255), v následujících unicode verzích 2 byte. Pozor na to v případě ukládání atd. Kompilátor vypisuje v nových Delphi varování. AnsiChar = 8bit char vždy. Konstanta se definuje jako např. z, případně #66, kde 66 je ASCII kód. Převod na typ Char je možné realizovat pomocí Chr a zpět přes Ord. String jedná se o posloupnost Char. Obecně je několik typů stringů, ale zůstaneme u obecného string. Pro práci s řetězci je mnoho funkcí, např. StringReplace (nahrazení), Pos (výskyt), Copy (substring), Delete (mazání), Length (délka), QuotedStr (vrátí řetězec v apostrofech), Trim (apod. odstraní bílé znaky). String je velice inteligentně implementován a kompilátor provádí spoustu magie, aby byla práce s nimi rychlá a příjemná (např. kopírování řetezce po přiřazení, až se změní atd). Výčtové typy Jedná se o ordinální typy, kdy hodnota může být jen s přísně definované množiny dat. Tento typ se ve VCL často používá. Např. TFormStyle = (fsnormal, fsmdichild, fsmdiform, fsstayontop); TPismeno = A.. Z ; Je konvencí, že hodnota výčtového typu začíná prvními písmeny názvu typu, viz. fsnormal. V paměti je proměnná uložena jako celé číslo. Množiny (set) Množina je skupina hodnot jednoho ordinálního typu, přičemž základní ordinální typ nesmí mít více než 255 hodnot. např. TSetPismeno = set of TPismeno;

var Znak: TSetPismeno; Znak := ['A','B','C']; if A in Znak then Pro přidání do množiny se dají používat operátory + a nebo funkce Include a Exclude. Záznamy jedná se o strukturovaný datový typ s deklarací type TZaznam = record ipolozka1:integer; spolozka2:string; V novějších verzích Delphi byla deklarace rozšířena o možnost volání procedur a funkcí, např.: type TMyRecord = record var Red: Integer; procedure printred(); var zaznam: TZaznam; zaznam.ipolozka1 := 10; Často se používá s klíčovým slovem with, kdy jakoby vytkneme proměnnou a pak jen pracujeme s položkami: with zaznam do ipolozka1 := 10; Procedurální typy Tento (nejtěžší) typ se používá pro kontrolované volání a předávání funkcí. Jedná se o základní prvek VCL knihovny, kdy všechny obsluhy (např. ButtonClick) jsou deklarovány jako procedurální typ (ale IDE delphi to skrývá). Mimo to používáme např. pro volání funkcí v DLL knihovnách. property OnClick: TNotifyEvent kde deklarace TNotifyEvent = procedure(sender: TObject) of object; tj. metoda objektu s jedním parametrem (Sender) tj. pak procedure Button1Click(Sender: TObject);

Výhodou tohoto přístupu je, že můžeme deklarovat proměnnou typu TNotifyEvent, případně parametr a pak s ním pracovat, předávat atd. a až je třeba tak funkci zavolat. Např.: mtest(button1click); kde procedure TForm1.mTest(pClick: TNotifyEvent); pclick(self); // zavolame predanou obsluhu Pole pole je strukturovaný datový typ skládající se z některého z předchozích typů (včetně např. záznamu nebo stringu). Jednotlivé položky jsou uloženy za sebou. Pole na rozdíl od jiných jazyků nemusí začínat 0, jediné omezení je, že interval musí být ordinálního typu (tedy i výčet nebo znak) type TPole = array [1..10] of integer; var pole: TPole; pole[1] := 123; Ještě existuje možnost nespecifikovat limit, pak je takové pole nazýváno otevřené. Dá se do něj předat pole libovolné velikost. Velikost pole se dá zjistit pomocí volání Length, meze Low a High. function Sum( var X: array of Double): Double; var I: Word; S: Double; S := 0; for I := 0 to High(X) do S := S + X[I]; Result := S; Příklad: Vytvořte jednotku (unit) pro práci s polem komplexních čísel. TComplex = record im, re:double; Jednotka by měla mít nejméně dvě funkce, Add a Sub (sečte nebo odečte všechny čísla v poli), parametrem je pole TComplex a výsledkem je jedno číslo TComplex. Otestovat voláním z hlavního programu.