Prezentace programovacího jazyka Pascal. Programovací jazyk Pascal

PASCÁLNÍ ÚVOD K PROGRAMOVACÍM JAZYKU 2006 KURZOVÁ STRUKTURA rozhraní a základní definice; struktura programu; zobrazení textových informací; zadávání dat z klávesnice; připojení a používání systémových modulů; práce se základními datovými typy (integer, real, string, array, file), práce s grafikou; používání podprogramů (postupů a funkcí); pomocí modulů. 2 PASCAL ENVIRONMENT INTERFACE Programovací jazyk Turbo Pascal 7.0 je uzavřen v shellu. Zahrnuje: více oken textový editor; linker programů; ladicí program; systém nápovědy; překladač. 3 PASCAL ENVIRONMENT 4 Seznam otevřených souborů: Alt + 0 Rychlý přístup k otevřeným souborům: Alt +<№ окна> ZÁKLADNÍ DEFINICE Rezervované slovo je speciální slovo používané programovacím jazykem k oddělení logických oblastí programu. Operátor je příkaz jazyka, který provádí akci (kontrola podmínky, uspořádání smyčky atd.). Identifikátor je název, který si programátor volně vybral pro prvky programu. Datový typ je charakteristika identifikátoru, která určuje množinu hodnot, které může nabývat (celá čísla nebo zlomková čísla, řetězce znaků, logické výrazy atd.). 5 OBECNÁ STRUKTURA PROGRAMU Program Název_programu; Používá sekci pluginů; Sekce štítků popisující štítky; Sekce Const popisující konstanty; Sekce typu popisující nativní datové typy; Var je sekce deklarace proměnné; Začátek Hlavní část programu; Konec. Minimální kód: 6 DISPLEJ NA OBRAZOVKU K zobrazení informací na obrazovce se používají následující operátory: Write nebo Writeln. F9 - Zkompilovat + zkontrolovat Ctrl + F9 - Spustit F9 → Ctrl + F9 - vyhnout se chybám Zobrazení výsledků provádění programu 7 ZOBRAZENÍ NA OBRAZOVCE Výsledek použití příkazů: ZAPIS „Prázdný“ ZÁZNAM WRITELN přidá prázdný řádek WRITELN 8 CVIČENÍ Zobrazit informace na obrazovce jak je uvedeno níže Dobrý den! Rád tě vidím! Říkej mi počítač. Použitý materiál: Výstupní příkazy: Write, WriteLn "Prázdný" příkaz WriteLn; vloží prázdný řádek. 9 PŘIPOJENÍ DALŠÍCH MODULŮ Další moduly rozšiřují možnosti vašich programů zavedením dalších operátorů. Moduly jsou připojeny v sekci Použití. Program My; Používá Modul1, Modul2; ________________________ ________________________ ________________________ ________________________ MODUL 1 Sada zdrojů 1 ... MODUL N Moduly: Systém Vlastní sada zdrojů N Obrazovka s jasným textem Čekání na stisknutí klávesy Zásuvný modul s názvem CRT 10 VÝSTUP DO JAKÉKOLI POLOHY OBRAZOVKY GotoXY (X, Y: Celé číslo) Kde X, Y - souřadnice známosti na obrazovce. X může nabývat hodnot od 1 do 80 a Y od 1 do 25. Například: Program My_program; (Připojení modulu) Používá Crt; Spusťte ClrScr; (Výstup dat) GotoXY (1, 1); write ("▒"); GotoXY (80, 1); write ("▒"); GotoXY (1, 25); write ("▒"); GotoXY (80, 25); write ("▒"); (Zpoždění obrazovky) ReadKey; Konec. Program zobrazí v rozích obrazovky symbol „▒“ (kód 177). 11 VÝSTUP V BARVĚ TextColor (Color); Určuje barvu znaků. TextBackground (barva); Definuje barvu známosti. Program MyProgram; Používá Crt; Začněte TextColor (červená); TextBackGround (modrá); Napište („Na dvoře“); TextColor (bílá); Napište („tráva“); TextColor (zelená); TextBackGround (žlutá); Napište („na trávu“); TextBackGround (purpurová); Napište („palivové dříví. "); Konec. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Barvy Černá Modrá Zelená Azurová Červená Purpurová Hnědá LightGray DarkGray LightBlue LightGreen LightCyan LightRed LightMagenta Žlutá Bílá 12 - černá - modrá - zelená - azurová - červená - lila - hnědá - světle šedá - tmavě šedá - modrá - světle zelená - světle azurová - růžová - světle lila - žlutá - bílá HODNOTY Datové operace IDENTIFIKÁTORY Termín identifikátor se vztahuje na konstanty, proměnné, funkce, procedury, komponenty a další objekty definované uživatelem . Povolené znaky: latinská písmena; čísla; podtržítko. Omezení: nesmí začínat číslicí, ale může začínat podtržítkem. Nesmí obsahovat více slov. Nemůže odpovídat žádnému z klíčových slov. ID nerozlišují velká a malá písmena. ... Chybné identifikátory: Data Moje jméno 2Array Var (((((jsou použity ruské znaky) Je zde mezera) Začíná číslicí) Odpovídá klíčovému slovu) 15 TYPY DAT Typ dat je charakteristikou identifikátoru, který určuje sadu hodnot. Že to může trvat (celá nebo zlomková čísla, řetězce znaků, logické výrazy atd.). 16 TYP INTEGRÁLNÍCH ÚDAJŮ 17 Konečná sada možných hodnot typ bajt zkratka celé číslo rozsah longint 0..255 -128..127 0..65535 -32768..32767 -2147483648..2147483647! Mimo rozsah vede k chybě! velikost PROHLÁŠENÍ PROMĚNNÝCH Proměnná je identifikátor schopný uložit hodnotu (číslo, řetězec atd.) a změnit ji během operace programu. Syntaxe: Var<имя переменной> : <тип переменной>; Program Název_programu; Používá sekci pluginů; Var je sekce deklarace proměnné; Začátek Hlavní část programu; Konec. Vyhrazené místo v paměti počítače pro 3 proměnné 18 NASTAVENÍ HODNOT NA PROMĚNNÉ Chcete-li nastavit hodnotu proměnné, musíte použít operátor přiřazení: = Syntaxe záznamu:<Переменная> := <Значение>; Proměnná (celé číslo) s názvem A je vyplněna hodnotou 3 19 OPERACE S VELMI ZMĚNAMI INTEGER 20 Aritmetické operace: + - * / Standardní operace: div | mod | sqr Nelze použít s celočíselnými typy Proměnná s názvem S je vyplněna součtem hodnot uložených v proměnných X a Y Zobrazí se hodnota uložená v proměnné s názvem S CVIČENÍ 21 1. Napište program, který zobrazí výsledek násobení čísel 15 a 20 2. Napište program, který zobrazí hodnotu funkce f 2 x 3 y, pro x = 11, y = 3 Použitý materiál: Proměnné jsou deklarovány v sekci Var Typ integer se nazývá Integer Syntax pro přiřazení hodnoty k proměnné je:<Переменная> := <Значение> ; Za každým operátorem následuje znaménko; (kromě začátku a posledního konce) TYP SKUTEČNÝCH DAT Sada hodnot √ √ Řadový typ Skutečný typ Jednosměrná kompatibilita: Skutečné celé číslo Integer skutečné! Mimo rozsah a nedodržení pravidel kompatibility má za následek chybu! 22 OPERACE NA SKUTEČNÝCH PREMENNÁCH 23 Standardní operace: pi | Sqrt | Hřích | Protože | Abs | Exp | Ln Round | Trunc (reálné → celé číslo) Například (X, S - typ Real): X: = pi / 3; S: = Sin (X) * 100; Write (Round (S)); V proměnné pojmenované S je zadán poměr hodnot uložených v proměnných X a Y. Poloha čísla a počet znaků ve zlomkové části čísla E - označuje mocninu čísla. 5.6E-5 = 5,6 · 10-5 TYP ŘÁDKOVÝCH DAT 24 Řetězce jsou uspořádanou sadou znaků. Řádky jsou uzavřeny v apostrofech. Řetězce nejsou kompatibilní s celočíselnými a reálnými typy. Typ Rozsah Řetězec 255 znaků (základní operátory pro řetězce) + (zřetězení) Délka (S); (délka řádku) Například: X: = ‚Vasya '; Napište („Na vaše jméno“, Délka (X), „písmena“); S: = X; X: = S; CVIČENÍ Napište program, který vytiskne výsledek dělení 12,89 a 0,22 pouze se třemi platnými číslicemi za desetinnou čárkou v následujícím formátu: vydělte první číslo druhým = výsledek Napište (X: 1: 3, 'razdelit na', y : 1: 3, '=' z: 1: 3) Použitý materiál: Typ řetězce se nazývá Řetězec Řetězce se uzavírají do opostrafů Řetězení řetězců probíhá znakem + V operátoru zobrazení jsou různé typy odděleny čárkou 25 KEYBOARD DATA 26 Chcete-li zadat informace z klávesnice, musíte použít operátor vstupu: Číst nebo ReadLn. Syntaxe: Číst (N1, N2, ... Nn); Kde N1, N2, ... Nn jsou proměnné (celé číslo, reálné, řetězec) V proměnné X se zadává hodnota zadaná z klávesnice Po zadání hodnoty musíte stisknout klávesu Enter Pokud je v operátoru několik proměnných , zadávají se mezerou nebo stisknutím klávesy Enter CVIČENÍ 27 1. Napište program „minikalkulačka“, který vypočítá součet dvou čísel zadaných z klávesnice. 2. Napište program, který vás požádá o vaše jméno, a poté, co napíšete, vaše jméno zobrazí pozdrav. Pokud jste například zadali jméno Vanya, program zobrazí frázi: Hello, Vanya !!! Použitý materiál: Vstupní příkazy: Číst, ReadLn PROVOZOVATEL PODMÍNĚNÝ VÝKAZ 29 Podmíněný příkaz implementuje „větvení“, to znamená, že mění pořadí provádění příkazů v závislosti na pravdivosti nebo nepravdivosti určité podmínky. Kontrola stavu NE Krok 1 Půjdu na pláž Prší ANO Krok 2 Vezmu si deštník Krok 3 Půjdu do kina KONTROLA PODMÍNEK Porovnávací operace:> - více< - меньше = - равно >= - více nebo rovno<= - меньше или равно <>- nerovná se 30 Logické operace: Ne A Nebo - Ne - A - Nebo Například: Pokud Moje výška> Výška Petit, pak jsem vyšší než Petit Pokud (prší) Nebo (sněží), pak zůstanu doma Pokud ne ((prší) AND (vítr)), pak půjdu na procházku Při použití logických operací jsou podmínky uzavřeny v závorkách PODMÍNKY PROHLÁŠENÍ Krátká forma: Pokud<условие>pak<оператор>; Například pokud má proměnná X hodnotu menší než 0, pak se do stejné proměnné zapíše hodnota 1: If X<0 Then X:= 1; Полная форма: If <условие>pak<оператор_1>jiný<оператор_2>; Například: Pokud X> 5 Pak X: = X - 1 Jinak X: = X + 1; Po Then and Else Before Else, sign, lze použít pouze jeden příkaz; chybí 31 CVIČENÍ 32 1. Napište program, který obdrží vstup v dolarech a částku v eurech, a poté zobrazí na obrazovce, ve které měně je částka větší (1 dolar = 28 rublů, 1 euro = 35 rublů.) 2. Napište program, který jako vstup vezme tři čísla, a poté zobrazí jejich maximum. Použitý materiál: Formy podmíněného prohlášení: If<условие>Pak<оператор>; Li<условие>Pak<оператор_1>Jiný<оператор_2>; Před jiným znamením; ne vložit Srovnávací operace:>< = <> >= <= Логические операции: Not Or And ОПЕРАТОРНЫЕ СКОБКИ Если после слов Then или Else необходимо записать несколько операторов, то их заключают в операторные скобки (составной оператор). Операторные скобки начинаются словом Begin, а заканчиваются словом End; Например: If Z >0 Then Begin X: = 1; Y: = -1; WriteLn („Informace přijata“); End Else WriteLn („chyba“); 33 SELECT STATE CASE Příkaz select se používá k nahrazení konstrukcí z vnořených podmíněných příkazů. Syntaxe případů<порядковая_переменная>z<значение_1> : <оператор_1> ; <значение_2> : <оператор_2> ; ……… <значение_N> : <оператор_N>Jiný<оператор_N+1>; Konec; V příkazu select lze použít závorky operátora. Volitelný řádek 34 PŘÍPAD VÝBĚRU Případ Výška studenta od 16 do 30 let: Jste studentem základní školy; 31,32,33: Jste ve třídě 5-6; 34..50: Jste studentem střední školy. Chcete-li uvést hodnoty, použije se čárka, vyberte rozsah - dvojtečka Jinak zjevně nejste student; Konec; Případ x z -128 ..- 1: writeln („Negativní“); 0: writeln („Zero“); 1..127: writeln („Positive“) Else WriteLn („Out of range“); Konec; CVIČENÍ Napište program, který obdrží číslo a zobrazí odpovídající den v týdnu. Pokud jste například zadali číslo 2, měl by program vytisknout „úterý“. Pokud číslo přesáhne 1..7, měla by se zobrazit zpráva, že takový den neexistuje. Použitý materiál: Prohlášení o výběru: Pouzdro<порядковая_переменная>z<значение_1> : <оператор_1> ; ……… <значение_N> : <оператор_N>; Jiný<оператор_N+1>; Konec; 36 CYKLY 37 Cyklické algoritmy jsou algoritmy, ve kterých jsou někteří operátoři prováděni vícekrát se stejnými upravenými daty (například postup pro vynásobení čísel prostřednictvím jejich vícenásobného přidání). V Pascalu existují tři příkazy smyčky: For (smyčka s parametrem nebo pro daný počet opakování) While (smyčka WHILE) Repeat (smyčka TO) Pokud je znám počet opakování, je lepší použít operátor smyčky s parametrem. CYKLUS S PARAMETREM 38 Cyklus pro daný počet opakování se zvyšující se nebo snižující se hodnotou parametru For (pair): = (start_zn) To (end_zn) Do (operator); Tělo smyčky Poznámky Parametr je celočíselný typ; Můžete použít operátorské závorky ve smyčce; V těle smyčky nemůžete změnit parametr smyčky; Parametr smyčky je zvýšen o jednu; Počáteční hodnota> final, jinak je tělo smyčky ignorováno; Chcete-li parametr zmenšit, místo To použijte DownTo. CYKLUS S PARAMETREM 39 Napište program, který požaduje celá čísla (a, b), s a := <нач_зн>Na<кон_зн>Dělat<оператор>; Parametr je celočíselný typ (obvykle celé číslo); Můžete použít závorky operátorů ve smyčce; Parametr Loop se zvýší o jeden 40 WHILE CYCLE While Loop nejprve zkontroluje podmínku, a to pouze v případě, že skutečně provede tělo smyčky. While (podmínka) do (operátor); V těle níže napsaného kódu nebude smyčka nikdy provedena: x: = 1; Zatímco x> 1 dělá x: = x-1; Můžete získat nekonečnou smyčku. Například: x: = 1 Zatímco x> 0 dělá x: = x + 1; 41 WHILE CYCLE Program, který zobrazuje součet čísel a až b. I když není stisknuto, začněte zpožděním (2000); Konec; Cyklus funguje, dokud se proměnná proměnná f nestane větší než hodnota b 42 CVIČENÍ 43 1. Kosmonauti se rozhodli zasadit břízy na Měsíc a každý rok zdvojnásobit počet bříz, v prvním roce zasadili 3 břízy. Tiskněte, za kolik let počet břízí překročí 10 000. 2. Napište program, který z klávesnice určí maximum zadaných čísel (zadávání čísel končí číslicí 0). Níže je doporučené rozložení obrazovky: Zadejte čísla. Pro dokončení zadání zadejte 0. 89 15 0 Maximální počet 89. Použitý materiál: While Loop Prohlášení: While<условие>dělat<оператор>; Funkce While Loop nejprve zkontroluje podmínku, a to pouze v případě, že skutečně provede hlavní část smyčky. REPEAT CYCLE 44 Smyčka Repeat nejprve provede tělo smyčky a teprve poté zkontroluje podmínku Repeat (tělo smyčky) Until (podmínka); Ve smyčce Repeat není nutné používat složený operátor, protože tato konstrukce zajišťuje provádění ne jednoho, ale několika operátorů uzavřených mezi slovy Opakovat a Dokud. OPAKOVAT CYKLUS Program, který zobrazuje součet čísel od a do b. Smyčka běží, dokud se proměnná proměnná f nestane větší než hodnota b 45 POROVNÁNÍ SLUČEK For While Repeat 46 Volba modelu smyčky závisí pouze na výhodnosti jejího použití v konkrétní situaci. Můžeme téměř vždy použít jiný místo jednoho typu cyklu CVIČENÍ Vypočítejte hodnotu funkce y x 3 x 2 16 x 43 pro x v rozmezí od -4 do 4 včetně, s krokem 0,5. Použitý materiál: Opakování opakování smyčky: Opakování<тело_цикла>Dokud<условие>Smyčka Repeat nejprve provede tělo smyčky a teprve poté zkontroluje podmínku 47 PŘERUŠENÍ CYKLŮ 48 Pro flexibilní řízení cyklických operátorů se používají následující postupy: Break - exit from the loop; Pokračovat - dokončení dalšího průchodu smyčky; Příklady: Najděte minimální počet i, pro které je součet čísel od 1 do i větší než 100. Jakmile je s (součet čísel od 1 do i) větší než 100, spustí se příkaz break a smyčka je natěšený. s: = 0; pro I: = 1 až 100 začít, pokud s> 100, pak se zlomit; s: = s + i; konec; Writeln („minimální počet i, takové, že (1 + 2 + .. + i)> 100 je“, i); Z klávesnice se zadává 10 čísel a do smyčky se počítají pouze kladné částky. Pokud je číslo záporné, provede se příkaz continue, který začíná dalším průchodem smyčkou. s: = 0; pro I: = 1 až 10 začít Readln (k); pokud k<0 then Сontinue; s:= s + k; end; Writeln (‘Сумма положительных чисел равна ’,s); МАССИВЫ МАССИВЫ 50 Простые типы: одна переменная – одно значение Структурированные типы: одна переменная – несколько значений Массив – это фиксированное количество значений одного типа. Доступ к конкретному значению осуществляется через индекс. Переменная массива Структура массива: A= Доступ к массиву: 0 1 2 3 Индекс 9 7 0 0 Значения <Имя массива> [ <Индекс>] A: = 7; POLE V sekci Var je deklarováno pole: (Název): Pole [(start_zn) .. (end_zn)] z (typ); Příklady deklarace polí: Var A: Array of String; B: Pole skutečných; С: Pole celého čísla; Příklady plnění polí hodnotami: A: = 'Vasya'; A: = ‚Petya '; A: = ‚Masha '; A: = ‚Olesya '; Napsat); Pro f: = 1 až 10 do C [f]: = f * 2; Pro f: = 1 až 10 do WriteLn (C [f]); CVIČENÍ 52 Napište program, který požádá uživatele o 7 celých čísel a uloží je do pole. Pole obsahuje maximální prvek a je zobrazeno na obrazovce. Například: Zadejte 1 číslo: 4 Zadejte 2 číslo: 8 Zadejte 3 číslo: 9 Zadejte 4 číslo: 2 Zadejte 5 číslo: 4 Zadejte 6 číslo: 5 Zadejte 7 číslo: 0 Maximální počet: 9 Použitý materiál: Deklarace polí:<Имя>: Pole [<нач_зн> … <кон_зн>] z<тип>; Pole přístup:<Имя массива> [ <Индекс>] GENERÁTOR NÁHODNÝCH ČÍSEL (RNG) Ke generování náhodných čísel v programu použijte následující operátory: Randomize - inicializace RNG. Je deklarován až na samém začátku programu; Náhodné - generuje náhodné číslo od 0 do 1 (reálný typ); Náhodné (N) - generuje náhodné číslo od 0 do N-1 (celočíselný typ); 53 MULTI-DIMENSIONAL ARRAYS 54 Seznam intervalů pro každou dimenzi pole (Název): Pole [(start_zn) .. (end_zn), (start_zn) .. (end_zn), (atd.)] Typu (type); Příklad deklarace dvojrozměrného pole (matice, tabulky) se 4 řádky a 6 sloupci: Var A: Array of Integer; Příklad vyplnění pole: Pro i: = 1 až 4 do Pro j: = 1 až 6 do A: = i + j; Ai, j 2 3 4 5 3 4 5 6 4 5 6 7 5 6 7 8 6 7 8 9 7 8 9 10 CVIČENÍ Napište program, který vyplní dvourozměrné pole náhodnými čísly od -10 do 20 a zobrazí součty prvků umístěných na úhlopříčce stolu ... Použitý materiál: Inicializace RNG: Náhodně Náhodné číslo od 0 do N-1: Náhodně (N) 55 PRÁCE SE SOUBORY PRÁCE SE SOUBORY 57 Soubor: Začátek souboru Rejstřík) [chráněno e-mailem]$ ku⌂ | "Hd9v * 9 (L * M = BYGRMxduV █ 8e * BOtCDrTVzHGJ1aBD> @ B \ (r8sE) █: wcJvAmRa" v / .Wai; $ `SWI = y2] suB █? Hq> vF (LmBcV ^. 6b] o (QkВ8 █ cu<6`8Z":M^1;:8ANwak;,b2-4…u5 █ 2]suB?Hq>vF (LmBcAdz4wcP] o (QkВ █ 8c8df] e "v, su> +), VAEFБjFV, W $ Q- █ y0G1GjN $ -eБ | sqZ0`QnВ% \ БD% y █ █ █ - zakončení řádku █ - soubor zakončení Vytvářejte, čtete, zapisujte, zavírejte PRÁCE SE SOUBORY Pořadí akcí při práci se soubory: 1. Deklarace proměnné souboru (FP), 2. Přidružení FP k souboru, 3. Otevření souboru pro čtení / zápis; 4. Operace se souborem; 5. Uzavření souboru (spojení mezi souborem a FP je také přerušeno); 1. Prohlášení o FP<Имя>: Soubor<тип> ; <Имя>: Text; Var f: Text; h: Soubor celého čísla; 2. Sdružení FP s přidělitelem (<ФП>, <имя файла>); Přiřadit (f, „c: \ my \ Data.ghm“) 58 PRÁCE SE SOUBORY 3. Otevření souboru pro čtení / zápis Reset (<ФП>); - otevře soubor pro čtení Přepsat (<ФП>); - otevře soubor pro zápis 4. Operace se souborem Číst (<ФП>, <П1> , <П2>, ...); - čte do proměnných<П1>, <П2>atd. jeden prvek po druhém z pozice ukazatele. Napsat (<ФП> , <П1> , <П2>, ...); - zapíše hodnoty proměnných do souboru<П1>, <П2>atd. jeden prvek po druhém z pozice ukazatele. EoLn (<ФП>); - Vrátí True, pokud je dosaženo konce řetězce. EoF (<ФП>); - Vrátí hodnotu True, pokud je dosaženo konce souboru. 5. Zavření souboru Zavřít (<ФП>); 59 PRÁCE SE SOUBORY Zjednodušte program, pokud víte, že matice je 5x5 (použijte smyčku For) 60 CVIČENÍ 61 Napište program „DOM-3“. První soubor obsahuje jména účastníků jmenovaného případu. Ve druhé, stejná jména, ale v akuzativu. Ve třetím - seznam projevů pocitů nebo nějakého druhu akce (miluje, nemá rád, líbá, chce kousat, zbožňuje, respektuje, nenávidí, chce vidět, obejme). Program by měl náhodně převzít informace z těchto souborů a vytvořit nový podle následujícího principu:<имя в им. пад> <чувство/действие> <имя в вин. пад>Olga miluje Sergeje Olega chce vidět, jak Roman Katya respektuje Nasťu atd. Použitý materiál: Jména operátorů: Přiřadit, Přepsat, Obnovit, Zápis, Číst, Zavřít. GRAFIKA GRAFIKA Pro práci s grafikou v Pascalu potřebujete dva soubory - modul graph.tpu a ovladač grafického adaptéru egavga.bgi. První je v adresáři \ UNITS a druhý v \ BGI. ! Ovladač Egavga.bgi. Vyžadováno při spuštění souboru exe! Chcete-li kreslit, musíte: 1. připojit modul GRAPH (v sekci Použití); 2. inicializovat grafiku (InitGraph); 3. nakreslete něco; 4. zavřete grafický režim (CloseGraph) 63 GRAFIKA Inicializace grafický režim Perokresba. Pero se pohybuje z bodu (0,0) do bodu (639, 479). PROGRAM Primer_1; Používá Graph, crt; Var Gd, Gm: Celé číslo; ZAČÍNAT Gd: = 0; InitGraph (Gd, Gm, 'd: \ BP \ bgi "); Line (0,0 639 479); ReadKey; CloseGraph; END. 639 pixelů Souřadný systém 479 pixelů 64 Uzavření grafického režimu CVIČENÍ 65 1. Nakreslete do středu obdélník trojúhelníku obrazovky 2. Nakreslete do středu obrazovky obdélník se stranami dvakrát menšími než odpovídající strany obrazovky Použitý materiál: Grafický modul: Graf Inicializace grafiky: InitGraph Uzavření grafického režimu: CloseGraph; GRAPHICS + COLOR SetColor (Color : word); Nastaví barvu pera GetColor: word; Vrátí barvu pera SetBkColor (barva: word); Nastaví barvu pozadí GetBkColor: word; Vrátí barvu pozadí Barvy Černá Modrá Zelená Zelená Azurová Červená Purpurová Hnědá LightGray DarkGray LightBlue LightGreen LightCyan LightRed LightMagenta Žlutá Bílá 66 - černá - modrá - zelená - azurová - červená - fialová - hnědá - světle šedá - tmavě šedá - modrá - světle zelená - světle azurová - růžová - světle fialová - žlutá - bílá GRAFICKÉ PRIMITIVY Řádek (x, y); Nakreslí čáru z aktuální souřadnice pera na souřadnice (x, y). MoveTo (x, y); Nastaví pero na souřadnice (x, y). PutPixel (x, y, Color); Nakreslí bod na souřadnice (x, y) pomocí Color. GetPixel (x, y): slovo; Vrátí barvu bodu se souřadnicemi (x, y). Obdélník (x1, y1, x2, y2); Nakreslí obrys obdélníku. Kruh (x, y, r); Nakreslí kruh se středem (x, y) a poloměrem r. SetLineStyle (Ln, 0, T) Změní parametry obrysů. Ln - styl čáry (0..3): 67 x1, y1 T - tloušťka čáry: 1 = normální; 3 = tlustý. FillEllipse (x, y, Xr, Yr); Nakreslí vyplněnou elipsu vycentrovanou na (x, y) s poloměry Xr a Yr. SetFillStyle (typ, barva); Nastaví typ (0..11) a barvu šrafování uzavřených tvarů na ClearDevice; Čistí grafická obrazovka malování v aktuální barvě pozadí x2, y2 GRAFICKÉ PRIMITIVY 68 CVIČENÍ 69 1. Napište program, který nakreslí dům na obrazovku monitoru; 2. Napište program, který na obrazovku monitoru nakreslí hvězdnou oblohu s hvězdami s náhodným poloměrem (od 1 do 5 pixelů) a náhodným uspořádáním. Barva je také náhodná (bílá, světle šedá, tmavě šedá); Použitý materiál: SetColor (Barva: word); - Nastaví barvu výkresu SetBkColor (barva: slovo); - Nastaví aktuální barvu pozadí. Řádek (x, y); - Nakreslí čáru z aktuální souřadnice pera na souřadnice (x, y). MoveTo (x, y); - Nastaví pero na souřadnice (x, y). PutPixel (x, y, Color); - Nakreslí bod se souřadnicemi (x, y) pomocí Color. Obdélník (x1, y1, x2, y2); - Vytvoří obrys obdélníku z čar aktuální barvy. Kruh (x, y, r); - Nakreslí kruh se středem v (x, y) a poloměrem r. FillEllipse (x, y, Xr, Yr); - Nakreslí vyplněnou elipsu se středem (x, y) a poloměry Xr a Yr. GRAFIKA + ANIMACE Pauza v mS. 70 PODPROGRAMY PODPROGRAMY Podprogramy umožňují vybrat opakující se část kódu v samostatných fragmentech a vložit je na nezbytná místa v programu. Funkce, na rozdíl od procedury, vrátí výsledek volání. Procedury Funkce Subrutiny: jsou zapsány mezi klíčová slova Begin End; identifikovány jmény, které jsou psány podle pravidel pro specifikování identifikátorů; může mít vstupní a výstupní parametry; úplně zopakujte strukturu hlavního programu. 72 Program My; Podprogram 1 [Kód podprogramu 1] Podprogram 2 [Kód podprogramu 2] Zahájit Podprogram 2 Podprogram 1 Příklad systémových podprogramů: Zápis („Ok“); ClrScr; Délka (S); Náhodný; // // // // procedura s jedním parametrem procedura bez parametrů funkce s jedním parametrem funkce bez parametrů Podprogram 2 Konec. PODPROGRAMY (PPR) Vnoření podprogramů Program Podprogram 1 Podprogram 3 Podprogram 4 Podprogram 2 73 Oblast přístupnosti proměnných Proměnné popsané v některých PPR jsou známé v jeho těle, VČETNĚ všech vnořených PPR (proměnná popsaná v PPR1 bude k dispozici v PPR3, 4) ... Názvy proměnných popsaných v PMD se mohou shodovat s názvy proměnných z jiných PMD (v každé z PMD lze deklarovat stejnou proměnnou). Název proměnné popsaný v PPR zobrazuje proměnné stejného jména z PPR obsahujícího danou proměnnou (pokud jsou v PPR1 a PPR3 deklarovány stejné proměnné, pak v každé PPR budou tyto proměnné jedinečné). Proměnné programu se nazývají globální a proměnné podprogramu se nazývají místní. POSTUPY BEZ PARAMETRŮ Syntaxe: Procedura (název procedury); (Sekce proměnných, konstant, typů, štítků, modulů) Začátek (tělo procedury); Konec; Příklad použití procedury bez parametrů: 74 POSTUPY BEZ PARAMETRŮ Příklad unikajících proměnných se stejným názvem: Program My_program; Používá Crt; Var A: Řetězec; // Popis postupu Procedura My_Procedure; Var A: Řetězec; Začátek A: = "Subrutine"; Writeln (A); Konec; Začátek A: = "Tělo"; Writeln (A); Můj postup; Writeln (A); Konec. // Volání procedury 75 POSTUPY S PARAMETRY 76 Aby byly podprogramy univerzálnější, používají se speciální mechanismy výměny dat mezi programem a jeho podprogramy. Postupy systému s parametry: SetColor (červená); (Procedura s Rectangle (0, 0, 639, 479); (Procedura s InitGraph (Gd, Gm, 'd: \ BP \ bgi "); (Procedura s (jeden parametr) několik parametrů) několik různých typů)) Napište syntaxi procedury s parametry Procedura (Název) ((Oblast vstupní proměnné) Var (Oblast výstupní proměnné (každá proměnná má svou vlastní Var))); Struktura oblastí: Proměnná_1, Proměnná_2, ...: Typ; ......... .. ............. Proměnná_N-1, Proměnná_N, ...: Typ; Může chybět kterákoli z oblastí POSTUPY S PARAMETRY Použití vstupních parametrů Postup pro kreslení obdélníku hraničícího s obrazovkou určené barvy Bez parametrů S parametry Procedura Cir; Začátek SetColor (i); SetBkColor (b); Obdélník (0, 0, 639, 479); Konec; Procedura Cir (i, b: Celé číslo); Začátek SetColor (i); SetBkColor (b ); Obdélník (0, 0, 639, 479); Konec; Volání procedury v programu: Volání procedury v programu: i: = 6; b: = 12; Cir; Cir (6, 12); 77 POSTUPY S PARAMETRY Použití výstupních parametrů Procedura Ra převádí úhel ze stupně na radián. PROGRAM EX_26_3; VAR x, a: skutečný; POSTUP Rad (alfa: skutečný; var betta: skutečný); (výstupní proměnná) ZAČÍNÁ Betta: = pi * alfa / 180; KONEC; ZAČNĚTE psát („Zadejte úhel ve stupních:“); Readln (x); Rad (x, a); (Volání procedury) Writeln ("Rovná se úhlu v radiánech =", a: 6: 4); KONEC. CVIČENÍ 79 1. Napište proceduru, která nakreslí trojúhelník v následujícím formátu: Trojúhelník (x1, y1, x2, y2, x3, y3, Barva) 2. Napište proceduru pro výpočet plochy obdélníku v následujícím formátu : SRect (a, b, S), kde S je výstupní parametr procedury. Použitý materiál: Postup (Název) ((Rozsah vstupní proměnné) Var (Rozsah výstupní proměnné)); Struktura oblastí: Var_1, Var_2,…: Typ; ............... ......... Proměnná_N-1, Proměnná_N, ...: Typ; FUNKCE 80 Syntaxe pro zápis funkce Funkce ((Oblast vstupní proměnné) Var (Oblast výstupní proměnné)): (Typ); Formátování procedury Formátování funkce Procedura S (a, b: real; var s: real); Začněte s: = a + b; Konec; Součet funkcí (a, b: skutečný): skutečný; Počáteční součet: = a + b; Konec; Volání procedury Volání funkce S (10, 20, A); Napsat); A: = S (10, 20); WriteLN (A); WriteLN (S (20, 30)); Je vhodné navrhnout nějaký podprogram jako funkci, pouze pokud se očekává nějaký výsledek jeho práce. Pokud je podprogram zaměřen pouze na provádění určité posloupnosti akcí (zobrazování, kreslení atd.), Je lepší jej navrhnout jako postup. CVIČENÍ Napište funkci pro výpočet plochy obdélníku v následujícím formátu: SRect (a, b) Použitý materiál: Funkce (Název) ((Rozsah vstupních proměnných) Var (Rozsah výstupních proměnných)): (Typ) ; Struktura oblastí: Proměnná_1, Proměnná_2,…: Typ; ........................ Proměnná_N-1, Proměnná_N, ...: Typ; 81 UNITS UNITS 83 UNIT je nezávislá programová jednotka, jejíž zdroje (postupy a funkce) mohou využívat jiné programy. Program My1; Používá Modul1, Modul2; __________________________ __________________________ __________________________ __________________ MODUL 1 Sada zdrojů 1… Program My2; Používá Modul1, Modul2; __________________________ __________________________ __________________________ __________________ MODUL N Sada zdrojů N Moduly jsou k programu připojeny prostřednictvím sekce POUŽÍT MODULY. STRUKTURA 84 Modul se skládá z následujících částí: 1. Záhlaví modulu. 2. Část rozhraní. (popis viditelných objektů) 3. Implementační část. (popis skrytých objektů) 4. Inicializační část (volitelná). Unit (Unit name); Rozhraní (Sekce globálních proměnných, konstant, typů) (moduly) (Seznam hlaviček procedur a funkcí) Implementace (Sekce lokálních proměnných, konstant, typů) (Implementace procedur a funkcí) Začátek (Část inicializace) Konec. ! Název záhlaví modulu musí být stejný jako název souboru modulu! MODULY Příklad modulu: Unit My_Unit; Rozhraní Var ms: Array of Real; (Global array) Function Cub (x: integer): Integer; (Funkce Cub = x ^ 3) Funkce ext4 (x: integer): Celé číslo; (Funkce ext4 = x ^ 4) Implementační funkce Mládě (x: celé číslo): Celé číslo; (Implementace funkce Cub) Begin Cub: = x * x * x; Konec; Funkce Ext4 (x: integer): Integer; (Implementace funkce ext4) Begin Ext4: = x * x * x * x; Konec; Konec. 85 CVIČENÍ 86 Napište modul s jednou funkcí a jednou procedurou: (Výpočet funkce X1 = 1 / x) X1 (a: skutečný): skutečný; (Postup pro tisk slova S na obrazovce na pozici X, Y WriteXY (S: String; X, Y: Iteger); Použitý materiál (struktura modulu): Jednotka (název modulu); Rozhraní (Sekce globálních proměnných, konstanty, typy) (moduly) (Seznam hlaviček procedur a funkcí) Implementace (Sekce lokálních proměnných, konstanty, typy) (Implementace procedur a funkcí) Začátek (Inicializační část) Konec.)

Použít náhled prezentace si vytvoříte účet ( účet) Google a přihlaste se do něj: https://accounts.google.com


Titulky snímků:

Programovací jazyk Pascal Základní pojmy A. Židkov

Programovací jazyk Programovací jazyk (PL) je formalizovaný systém pro popis algoritmů, který definuje abecedu (sadu znaků) Lexicon (sadu lexikálních prvků) Syntaxe (pravidla pro psaní operátorů) Sémantika (pravidla pro provádění operátorů)

LANGUAGE ALPHABET Abeceda je uspořádaná sada znaků. Číslice 0 1 2…. 9 latinských písmen a b c…. z A B C… Z Provozní značky + * / ->

Lexikální prvky klíčových slov jazyka (začátek, konec, pokud, pro ...) konstanty (2, "ABC", # 5) identifikátory (a, b1) speciální znaky (: = + = * + /) komentáře (3 typy (..) (* .. *) // ..)

Klíčová slova jazyk (Varování !!! Nelze použít jako identifikátory) a pole jako začátek případu zlomu třída const konstruktor pokračování destruktor div dělat dolů do jiného konce konec externí externalsync finalizace souboru pro funkci vpřed, pokud ve zděděné inicializaci není mod nebo chráněna vlastnost programu soukromé procedury public record repeat set shl shr sizeof string then to type unit until uses var while with xor

Pascalova struktura programový program První; const Pi = 3,14; var r: skutečný; S, C: skutečné; začněte psát ("Zadejte poloměr kruhu:"); readln (r); S: = Pi * r * r; C: = 2 * Pi * r; writeln ("Obvod se rovná C =", C); writeln ("Plocha kruhu je S =", S); konec. Název programu Název Popis Sekce Operátoři (blok) Začátek bloku výpisů Konec bloku výpisů Pozor !!! Jazykové operátory jsou odděleny znaménkem; Pozornost!!! Program končí koncem.

Složený operátor(blok) Složený výpis je skupina příkazů uzavřených v „závorkách“ Začátek…. konec. Prázdný příkaz obsahuje pouze; , neprovádí žádnou akci.

Identifikátory (názvy) Identifikátor je název objektu (modul, funkce, proměnná). Syntaxe: Identifikátor je posloupnost latinských písmen a čísel začínajících písmenem. Překladatel nerozlišuje mezi velkými a malými písmeny. Omezte délku identifikátoru (63 znaků). Doporučeno !!! Používejte smysluplné identifikátory a běžné zkratky - to zlepšuje čitelnost programů. Příklady: srednee; PROTI; F; m; massa; ml; skorost

Konstanty Konstanta je hodnota, kterou nelze změnit. Numerické konstanty jsou čísla 3 3,5 1,75e2 $ 4ff Řetězcové konstanty jsou znaky v apostrofech „Hello cadet“. POZORNOST!!! Pojmenované konstanty musí být popsány v sekci prohlášení o konst. Syntaxe: const =; Například: const Pi = 3,14; Počet = 10; Jméno = "Mike";

Proměnné a jejich popis Proměnná je skupina paměťových buněk, která má název, typ a hodnotu. Název proměnné je identifikátor. Typ proměnné - určuje: sadu hodnot, které přijímá, počet paměťových buněk s nimi spojených. Hodnota proměnné je obsah skupiny paměťových buněk pro ni přidělených. POZORNOST!!! Proměnná musí být popsána v sekci VAR descriptions.

Sekce popisu proměnných VAR - skupina názvů proměnných oddělená čárkami. POZORNOST!!! Značky: a; Požadované. Příklad: var a, b, c: integer; d: skutečné; e, f: celé číslo; s, s1: řetězec; ch: char; Syntaxe: VAR :;

Variabilní typy boolean (boolean) real (real) komplexní (komplexní) řetězec (string) typ "pole" typ "záznam" typ "ukazatel" Procedurální třída souboru Typy: celočíselný bajt (bajt) char (znak) Vyčíslitelný rozsah nazvaný Pouze tyto typy mohou to být maticové indexy, přepínače příkazů case a parametry smyčky.

Typy vyžadované pro nás typ délka komentář řetězec (text) 256 bajtů Posloupnost znaků, nulový bajt ukládá délku řetězce. celé číslo 4 bajty Celá čísla od - 2 147 483 648 do 2 147 483 647 skutečných 8 bajtů C obsahuje 15-16 desetinných číslic a modulo

Datové typy Které z následujících čísel jsou celočíselné konstanty? 1 2,1E3 4 0,7E-1 7 22,78 2 128 5 +0,9 8 -2100 3 -350 6 +71 9 1E5 2 3 6 8

Datové typy Které z následujících čísel jsou reálné konstanty v exponenciální formě? 1 11 4 -0,5E-2 7 2,7E05 2 1,3 5 1050 8 -1,38 3 -1,2E5 6 37,75 9 + 3,21E-03 3 7 9

Identifikátory Který z následujících výrazů může sloužit jako názvy proměnných? 1 5B 4 SIN 7 1AB 2 E6 5 G 8 + LN 3 L1 6 10 9 L5 2 5 9

Standardní funkce Pascal Název a parametry Akce Abs (x) modul | x | Sqr (x) druhá mocnina x 2 Sqrt (x) druhá odmocnina Sin (x) sine Sin x Cos (x) cosine Cos x Ln (x) přirozený logaritmus Ln (x) Exp (x) (kde e = 2,718281 ... ) Arctan (x) arkustangens arktan x Síla (x, y) x k síle yxy Int (x) celá část x Frac (x) zlomková část x Náhodné náhodné číslo v rozsahu)