Technická informatika - Vypracované otázky ke zkoušce - Všichni Všem


Materiál je formátu doc

Vypracované otázky ke zkoušce

Detail materiálu

Autor:
Přidáno: 29.09.2010 15:16
Kategorie: Zkoušky
Předmět: Technická informatika
Známka: 2
Hodnoceno: 4x
Popis: vypracované otázky ve wordu.. 90% :)


Stáhnout materiál

Oznámkuj materiál: 1 2 3 4 5

Nahlásit materiál

Doporučit přátelům




Náhled materiálu: Pozor! Náhled nemusí odpovídat skutečnosti. (v náhledu chybí obrázky a formátování se může lišit)

1. Počítač = stroj na zpracování číselných nebo znakových dat, grafických údajů nebo údajů z výrobního procesu, který pracuje samočinně podle programu předem připraveného člověkem a vloženého do paměti počítače. Podle konstrukce se počítače dělí na analogové (pracují na principu nepřetržitosti děje a používají při zpracování údajů spojitě se měnící elektrické signály), číslicové (zpracovávají číselné údaje zakódované pomocí diskrétních elektrických signálů). V dalším se bude pod pojmem počítač rozumět zásadně číslicový počítač s ohledem na rozšíření těchto typů počítačů. Někdy bude počítač nazýván výpočetním systémem, protože transformuje vstupní data na výstupní
Počítač pro svoji činnost potřebuje vlastní technické prostředky (hardware) a programové vybavení (software).
Systémové programové vybavení:
• operační systémy (UNIX, MS-DOS, WINDOWS-95/98/NT/2000/XP, VMS atd.)
• editory (editační programy)
• překladače a programovací jazyky (C, Pascal, Fortran, Cobol, Simula, Basic, JAVA ...)
• sestavovací programy a knihovny
• ladící programy
• programy pro údržbu systému
• programové vybavení pro budování počítačových sítí.
Systémové programové vybavení bývá dodáváno výrobcem počítače.
Programové vybavení pro tvorbu aplikačního programového vybavení a aplikační programové vybavení:
• databázové systémy (Oracle, Informix, SYBASE, Paradox, dBase, FoxPro, Access, ...)
• textové procesory (MS-WORD, AmiPro)
• tabulkové procesory (MS-Excel)
• kancelářské systémy (UNIPLEX)
• expertní systémy
• SW pro řešení matematických úloh
• systémy pro navrhování a konstruování pomocí počítače (CAD - Computer Aided Design)
• SW pro řízení výroby pomocí počítače (CAM - Computer Aided Manufacturing)
• SW pro testování (CAT - Computer Aided Testing)
• grafické SW systémy
• SW pro výuku (CAL - Computer Aided Learning, e-Learning)
• a další.


2. Technické prostředky PC = hardware
Aritmetická jednotka = funkční blok provádějící aritmetické operace
Operační paměť je volatilní (nestálá) vnitřní elektronická paměť číslicového počítače typu RWM-RAM, určená pro dočasné uložení zpracovávaných dat a spouštěného programového kódu. Tato paměť má obvykle rychlejší přístup, než vnější paměť (např. pevný disk).
Řadič automaticky řídí činnost celého počítače podle programu zapsaného v paměti, tj. vybírá z paměti jednotlivé instrukce programu a řídí jejich provádění v počítači, tj. vyjímání operandů a instrukcí z paměti, jejich zpracování v aritmetické jednotce a ukládání výsledků do paměti. Instrukce programu se většinou realizují postupně jedna po druhé. Řadič též řídí instrukce, které se vztahují k vstupní a výstupní jednotce. Obsahuje speciální registry:
• čítač adresy (ČA) - obsahuje adresu instrukce, která se bude provádět v následujícím kroku výpočtu
• registr instrukce (RI) - obsahuje instrukci, která se právě provádí
• registr adresy (RA) - obsahuje adresu operandu v paměti
• index registr (IR) - registr, který se používá k modifikaci adresy.
Pevný disk (zkratka HDD, anglicky hard disk drive) je zařízení, které se používá v počítačích a ve spotřební elektronice (MP3 přehrávače, videorekordéry, …) k dočasnému nebo trvalému uchovávání většího množství dat pomocí magnetické indukce. Předchůdcem pevných disků je magnetická páska a disketa.
Procesor (základní jednotka počítače, CPU = Central Processing Unit) = aritmetická jednotka + řadič. Dnes je většinou integrován na jediném čipu.
Vstupní jednotky = klávesnice, myš, trackball, tablet, joystick, gamepad, scanner,
web kamera, fotoaparát, mikrofon
Výstupní jednotky = monitor, tiskárna, reproduktor, plotter, vypalovačka


3. Zobrazení údajů v PC
Bit (z anglického binary digit, vyslov bit) = nejmenší množství informace, kterému počítač rozumí a rozlišuje je. Bit má hodnotu 1 nebo 0. V textu se zkracuje na „b“ (např. 10Mb může znamenat přenesené množství dat v síti ).
Byte (vyslov bajt - slabika) = 8 bitů. Používá se často k zakódování jednoho znaku běžné abecedy. V textu se zkracuje na „B“ (např. 64MB může znamenat šedesát čtyři milionů bajtů operační paměti počítače).
Počet kombinací nul a jedniček na osmi bitech jednoho bajtu je 28 = 256, to znamená, že do jednoho bajtu by bylo možno zakódovat 256 různých znaků.
Např. písmeno „A“ má v ASCII kódu přidělenu dvojkovou kombinaci (01000001)2, čemuž v desítkové soustavě odpovídá číslo (65)10.
Data - číselné, alfanumerické nebo logické údaje uložené v paměti počítače a určené ke zpracování na počítači.
ASCII - American Standard Code for Information Interchange - (amer. standard. kód pro výměnu informací). V základní podobě je definován pouze na 7 bitech (hodnota 0 -127 odpovídá pozici znaku) - viz. norma ISO 6429. Kód se také označuje ISO-7. Rozšířením na 8 bitů se získá kód, který se používá jako vnitřní kód např. v personálních počítačích typu IBM PC. Kód definuje celkem 256 znaků s hodnotou 0 - 255. Znaky 0 - 31 jsou tzv. řídící, znaky 32 - 126 zobrazitelné znaky, znak 127 je definován normou jako řídící znak DEL a znaky 128 - 255 jako speciální. Speciální znaky definující řadu semigrafických znaků a znaky národních abeced. Podle toho pak existují národní modifikace ASCII kódu, např. kód IBM PC-Latin 2 (ČSN 9103/89), ISO Latin 2 (ISO 8859-2), který obsahuje české znaky s diakritikou, např. č, ř, á, ě apod. Ve střední Evropě se pro kódování používá sada ISO 1250.
Unicode - problém jednotného kódování do národních znaků se snaží vyřešit kódování unicode. Unicode přiřazuje každému znaku jedinečné číslo, nezávisle na platformě, nezávisle na programu, nezávisle na jazyku. Existují 3 druhy kódování Unicode:
• UTF-8 pracuje s osmibitovým kódováním, jeden znak může být vyjádřen jedním až čtyřmi byty, znaky bez diakritiky jsou obvykle vyjádřeny jedním bytem
• UTF-16 pracuje se šestnáctibitovým kódování
• UTF-32 pracuje se s dvaatřicetibitovým kódováním znaků, znaky bez diaktritiky mohou obsahovat 24 nulových bitů a 8 nenulových bitů shodných s ASCII
• písmenné znaky : A, B, C, D,...,Z,a, b, c ,...,z
• číslice jako znaky : 0, 1, 2,...,9
• speciální znaky : , : .; / + - * ... (ne každý kód připouští všechny speciální znaky).

 

4. Zobrazení údajů v PC - celá čísla
Celá čísla v binárním tvaru se zobrazují v tzv. pevné řádové čárce. Pro zobrazení celého čísla lze použít jeden, dva nebo 4 byty. Počet použitých bytů udává možný rozsah ukládaných hodnot. Dále se rozlišuje, zda uvažujeme číslo se znaménkem nebo bez něho.
Celá čísla jsou vyjádřena posloupností 0 a 1 ve dvojkové soustavě. Při převodech mezi soustavami se vychází ze skutečnosti, že každé celé číslo lze vyjádřit polynomem mocnin základu číselné soustavy. Tedy:
n-1
C =  ai * zi, kde z ... základ číslené soustavy (např. 2, 8, 10, 16)
i=0 n ... počet číslic, ai ... jednotlivé číslice
Př.:
1234 = 1*103 + 2*102 + 3*101 + 4*100
1234 = 1*210 + 0*29 + 0*28 + 1*27 + 1*26 + 0*25 + 1*24 + 0*23 + 0*22 + 1*21 + *20
• V dvojkové soustavě je základ soustavy 2 a používají se číslice 0 a 1.
• V osmičkové soustavě je základ 8 a používají se číslice 0, 1, 2, 3, 4, 5, 6 a 7.
• V desítkové soustavě je základ 10 a používají se číslice 0, 1, 2, 3, 4, 5, 6, 7, 8 a 9.
• V šestnáctkové soustavě je základ 16 a používají se číslice 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A(10), B(11), C(12), D(13), E(14) a F(15).
Přetečení je jev, který nastane, pokud výsledek aritmetické operace nelze vyjádřit v daném číselném formátu.Zpravidla se o něm hovoří v souvislosti s mikroprocesory a dvojkovou soustavou. Při vykonání aritmetické operace, při které dojde k přenosu nebo na nejvyšším bitu se přenos nemůže provést do vyššího bitu registru. Proto se nastaví příslušný příznak, označovaný jako C nebo CY (carry).Příkladem může být sčítání dvou osmibitových kladných celých čísel, kde součet přesáhne 255.


5 . Zobrazení údajů v PC – reálná čísla
Reálná čísla nelze obecně v počítači přesně zobrazit, protože paměťový prostor pro jejich zobrazení je omezený (např. 2 slova resp. 4 byte). Ze stejných důvodů se nemohou zobrazit ani všechna racionální čísla. Obecně lze zobrazit pouze číslo z určitého intervalu a s jistým max. počtem platných číslic, daných délkou zobrazení. Přesně lze zobrazit pouze ta reálná čísla, která lze vyjádřit jako konečnou posloupnost kladných a záporných mocnin čísla 2, přičemž počet těchto mocnin s koeficienty 0 a 1 je menší než počet bitů rezervovaných pro zobrazení reálného čísla.
Reálné číslo se zobrazuje v tzv. semilogaritmickém tvaru nebo též jako číslo s pohyblivou řádovou čárkou:

x = M .zE , kde

x ... zobrazované číslo
M ... mantisa v normalizovaném tvaru <0.5,1)
z ... 2
E ... exponent <-128,127>

Mantisa obsahuje číslo v normalizovaném tvaru. Exponent určuje, o kolik míst je třeba posunout řádovou tečku, a to, je-li:
• exponent > 0 (|číslo| > 1), pak vpravo
• exponent < 0 (|číslo| < 1), pak vlevo
Existují různé modifikace tohoto způsobu zobrazení v konkrétním počítači, podstata problému zobrazování zůstává. Počet bitů mantisy a exponentu závisí na typu počítače, např. 16 bitový počítač: mantisa 24 bitů, exponent 8 bitů tj. 32 bitů (4 byte,2 slova); čísla mají přesnost 6 až 7 platných číslic a rozsah je asi 10-38 až 1038.
Obvykle se pro zobrazení reálného čísla používají 4, 6 a 8 bytů.
Při zobrazení reálného čísla se uvažují 3 vlastnosti zobrazení:
• největší zobrazitelné číslo
• nejmenší kladné číslo různé od 0, nebo číslo, které, když je přičteno k 1.0, tuto hodnotu nezmění (v Delphi je to např. pro typ real 5.421 * 10-20)
• počet platných dekadických číslic
Pozn.: Přesně lze zobrazit jen taková reálná čísla, jejichž desetinnou část lze vyjádřit jako součet mocnin jedné poloviny. Ostatní čísla se při převodu z desetinného čísla a ve výsledku aritmetické operace zaokrouhlují. Zde může být zdroj velmi nepříjemných chyb.
!!! V žádném případě se nedoporučuje porovnávat dvě reálná nenulová čísla X a Y na rovnost. Tuto úlohu je třeba převést na:
• porovnání v relaci Větší (X>Y), pokud první člen roste, nebo Menší (X<Y), pokud první člen klesá
• požadavek, aby absolutní hodnota rozdílu byla menší než dostatečně malé číslo (abs(X-Y)< Eps)

6. Zobrazení údajů v PC
Bit (z anglického binary digit, vyslov bit) = nejmenší množství informace, kterému počítač rozumí a rozlišuje je. Bit má hodnotu 1 nebo 0. V textu se zkracuje na „b“ (např. 10Mb může znamenat přenesené množství dat v síti ).
Byte (vyslov bajt - slabika) = 8 bitů. Používá se často k zakódování jednoho znaku běžné abecedy. V textu se zkracuje na „B“ (např. 64MB může znamenat šedesát čtyři milionů bajtů operační paměti počítače).
Počet kombinací nul a jedniček na osmi bitech jednoho bajtu je 28 = 256, to znamená, že do jednoho bajtu by bylo možno zakódovat 256 různých znaků.
Např. písmeno „A“ má v ASCII kódu přidělenu dvojkovou kombinaci (01000001)2, čemuž v desítkové soustavě odpovídá číslo (65)10.
Slovo (anglicky Word) - většinou 2B.
Data - číselné, alfanumerické nebo logické údaje uložené v paměti počítače a určené ke zpracování na počítači.

Logické údaje jsou údaje, které nabývají pouze dvou hodnot: logické nuly a logické jedničky (též hodnoty true/false, pravda/nepravda). Pro jejich zobrazení stačí paměť jednoho bitu. Většinou se zobrazují na 1 byte (0 v bytu znamená false, jiná hodnota je true).
Na obrázku jsou uvedeny operace s logickými údaji:

& logický součin (and)
| logický součet (or)
~ nebo not negace

 

7. Problémy zobrazení reálných čísel a práce s nimi
V řadě iteračních úloh mohou chyby ze zaokrouhlení způsobit zhroucení výpočtu.
Př. Do reálné proměnné x uložíme hodnotu 1/n, kde n je reálné číslo. Potom budeme opakovaně vypočítávat výraz
(n+1) * x - 1.
Pokud tento výraz upravíme dosazením za x = 1/n, obdržíme
(n+1)* 1/n - 1
po vynásobení, odstranění závorek a provedení sčítání a odečítání, obdržíme opět
1/n.
Pokud však neprovedeme algebraické úpravy, ale budeme opakovaně provádět výpočty (n+1) * x - 1, dojde k tomu, že výsledek
1/n
obdržíme jen pro
n = 2k, kde k = 0,1,2,...
Pro jiná n dojde k divergenci a získáme zcela nesprávný výsledek již po několika (10 - 30) opakováních, a to nezávisle na programovacím jazyku a přesnosti zobrazení reálného čísla.


8. Převody z 10 do 2 soustavy

 

 


9. Operace sčítání ve 2 soustavě - příklad

 

10. Základní pojmy programování - algoritmus
Smyslem programování je vytvořit předpis pro jednoznačné a v konečném čase opakovatelně uskutečnitelné řešení konkrétní úlohy, probíhající nad vstupními a výstupními (vytvářenými) daty. Prostředkem programování jsou programovací jazyky. Programovací jazyk představuje tedy pro programátora prostředek vzájemné vazby mezi algoritmickým řešením úlohy a jejím skutečným řešením na úrovni strojového kódu vlastním počítačem.
Algoritmus je schématický postup (předpis) pro řešení určité skupiny (třídy) úloh, prováděný v konečném počtu přesně definovaných kroků. Příkladem je použití algoritmu (předpisu) v procesu přípravy jídla:
U algoritmů se vyžadují tyto vlastnosti:
• Hromadnost (řešit skupinu úloh lišících se parametry nebo počátečními podmínkami, na př. inverze matice řádu N, N > 0).
• Rezultativnost (musí existovat cesta, kterou se dojde od vstupních k výstupním datům - úloha musí konvergovat k výsledku).
• Konečnost (k výsledkům se musí dojít v rozumně konečné době).
• Determinovanost (v každém kroku algoritmu musí být jednoznačně dáno, jaká činnost bude následovat).
Vztah mezi množstvím dat, které počítač zpracovává, a dobou zpracování se nazývá algoritmická složitost.
Tato složitost velmi často není lineárním vztahem.
Za rychlé algoritmy jsou považovány ty algoritmy, kde je čas pro jejich řešení shora omezen polynomiální funkcí, jako např. n, n*log n, n2, n3, kde n charakterizuje množinu vstupních dat. n se nazývá rozměr úlohy.
Za pomalé jsou považovány ty algoritmy, kde je čas pro jejich řešení omezen exponenciálně, tj. 2n, n!, nn apod. Vyřešení některých pomalých algoritmů je i pro úlohy, kde n je 60, 80, 100 a jsou řešeny na nejrychlejších superpočítačích s velkou kapacitou paměti, po dobu života člověka nemožné (např. miliardy let, případně doba stáří vesmíru). Bohužel, existují reálné problémy, kde nejsou známy jiné algoritmy pro jejich řešení, než pomalé. Potom se musí hledat různá zjednodušující kritéria a metody, které jsou schopné ve většině případů nalézt řešení v rozumném čase.


11. Základní pojmy programování - program
Program je posloupnost instrukcí/příkazů popisujících algoritmus. Každý algoritmus je možné zapsat ve formě programu a každý algoritmus je možné převést na číselný algoritmus (=> význam číslicových počítačů).
Program je zapsán v programovacím jazyku, kterému rozumí jak programátor, tak počítač-procesor a je uložen v paměti počítače.
Program je posloupnost instrukcí/příkazů.
Proces = provádění jednotlivých instrukcí/příkazů programu v počítači. Procesy je možné dělit na:
• sekvenční procesy - příkazy se provádějí jeden po druhém, tj. další příkaz se provede až po ukončení předchozího příkazu.
• paralelní procesy - provádění příkazů může být souběžné.
Proces se provádí nad nějakými objekty a má určitý efekt, spočívající v předem požadované transformaci objektů.
Data = údaje, s nimiž pracují procesy v počítači. Mezi vlastnosti dat patří jejich typ, označení, struktura, množina možných hodnot, přípustné operace atd. V programu se typ dat specifikuje při deklaraci proměnných. Typy dat jsou jednak přednastavené v příslušném jazyce (logický, celočíselný reálný, znakový), jednak si obvykle programátor může další typy definovat.
Příkaz představuje popis elementární činnosti. Sekvence příkazů zapsaná programátorem tvoří program. Příkazy je možné rozdělit na příkazy:
• pro zpracování dat,
• pro řízení běhu programu, tj. řídí návaznost akcí při provádění programu v závislosti na datech (větvení, cykly, skoky).

 

 

 

 

12. Vývojový diagram a struktogram
Vývojový diagram je velmi názornou pomůckou v začátcích výuky programování. Detailně postihuje všechny možnosti průběhu zpracování programu a jeho větvení na základě testů podmínek. V nedávné minulosti byla metoda vývojových diagramů preferována a dokonce existovala závazná československá norma (ČSN) značek a způsobu jejich kreslení. V současné době se již tato norma neužívá a je ponecháno na řešiteli, jak se s problémem vyrovná. Existují však doporučení, která, jsou-li důsledně dodržována, se jeví velmi užitečná.


Struktogramy byly původně vyvinuty na podporu programovací technologie, které se říká strukturované programování a která byla velice oblíbená a úspěšná v sedmdesátých a osmdesátých létech (a stále ještě je). Její stěžejní myšlenka je, že při použití analýzy shora dolů lze každý algoritmus popsat a realizovat v počítači pomocí pouze několika programovacích struktur. Mezi ně patří zejména:
• sekvence, kterou může tvořit jeden (složený) nebo více příkazů. Příkaz může tvořit i volání procedur, čímž je možno algoritmus vertikálně členit,
• selekce - podmíněný příkaz, pomocí něhož se v závislosti na vyhodnocení nějaké podmínky program větví na dvě varianty nebo přepínač, který větví algoritmus do více směrů,
• Iterace (cyklus), s testovací podmínkou na začátku nebo na konci.

Obrázek 4.5-2 Struktogram lineární rovnice

 

13. Etapy práce na vytvoření programu
Práce na vytvoření programu lze rozdělit do etap:
1 Definice problému.
2 Nástin řešení.
3 Sestavení algoritmu.
4 Kódování programu
5 Ověření správnosti programu
Posloupnosti těchto etap se také říká životní cyklus vývoje programu.
Definice problému je přesný popis toho, co se má řešit. K tomu se používají různé metody datové a funkční analýzy, které musí zejména:
specifikovat chování systému, především z hlediska jeho budoucího uživatele
• specifikovat vstupní data (struktura, formát dat a jejich typy, množina přípustných hodnot - datová doména)
• specifikovat výstupní data (struktura, formát dat a jejich typy)
• specifikovat výjimečné situace (např. požadovanou reakci na chybná vstupní data).
Definici problému je třeba věnovat velkou pozornost. Ukazuje se, že zejména pro velké projekty platí, že definici problému je věnováno asi 5% celkového času a nákladů a problémy vzniklé z nesprávné definice mohou dosahovat až 80% nákladů na údržbu.
Během definice problému je třeba velmi pečlivě rozvážit odpovědi na tyto otázky:
• Co? Proč? Kdy? Jak? S kým? Za kolik?
Definice problému je velmi důležitá etapa, neboť chyby, které se zde mohou vyskytnout, se odstraňují velmi nákladně.
Nástin řešení představuje výběr či vytipování vhodného algoritmu, rozdělení problému na podproblémy apod. Doporučuje se, aby v prvé fázi byl problém popsán přibližně tak, jak se píší články do odborných časopisů.
Sestavení algoritmu
Opakovaně se rozkládají složitější problémy na jednodušší (dekompozice) až k úrovni operací/příkazů použitelných v programovacím jazyce (tzv. návrh shora dolů (top-down) a stanovují se vazby mezi jednotlivými problémy. Velmi často se rovněž provádí oddělení podstaty řešeného problému od detailů (abstrakce). Někdy se při sestavování algoritmů postupuje i opačně, tj. zdola nahoru. Tento postup je charakteristický pro objektové programování. Pro začátečníky je vhodné doporučit postup shora dolů, který je názornější.
K formálnímu popisu algoritmu se používají různé metody, které většinou kvůli názornosti využívají různé stupně grafického zobrazení. Nejznámější grafické metody popisu algoritmů jsou vývojové diagramy nebo struktogramy, k vyjádření rozkladu problému pak hierarchické diagramy.
Kódováním programu se rozumí zápis algoritmu ve vhodném programovacím jazyku.
Volba programovacího jazyka je velmi důležitá. Některé programovací jazyky jsou univerzální, jiné jsou vhodné jen pro určitý typ úloh.
Ověření správnosti programu
Co produkuje výsledky, nemusí být správné, je třeba proto provést test na vhodné množině zkušebních dat. Stanovení vhodné množiny dat nemusí být jednoduché. Je třeba testovat obvyklá data, data mimo meze platnosti, hraniční data i náhodná data. Testy je třeba plánovat a dokumentovat. V případě oprav v programech je vhodné testy zopakovat se stejnými data. U složitějších programů je exaktní testování problematické.

 

 

 

 

 

14. Vytvoření proveditelného programu počítačem
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 

15. Jazyk, syntaxe a sématika, programovací jazyk…
JAZYK = souhrn symbolů a pravidel; podává návod, jak spojovat a obměňovat tyto symboly; stanoví pravidla dávající význam jednotlivým symbolům a jejich spojením.
PROGRAMOVACÍ JAZYK = umělý jazyk, vytvořený pro komunikaci mezi člověkem a počítačem, slouží k zápisu algoritmů.
Syntaxe programovacího jazyka je souhrn jednoznačných pravidel, kterými se řídí formální zápis programu.
Sémantika jednoznačně určuje význam programu. Znalost sémantiky programovacího jazyka umožňuje zapsat program tak, že odpovídá požadovanému algoritmu.
Strojově orientované jazyky jsou nejnižší programovací jazyky.
Strojové jazyky nebo jejich symbolické verze jsou tzv. jazyky symbolických adres nebo asemblery. Je těžké v nich programovat, instrukce odpovídají jedné operaci procesoru, dlouho se v nich vytvářejí programy, ale takto vytvořené programy pracují velmi rychle. Programy v nich jsou nestrukturovány a jsou proto špatně srozumitelné člověku.
Vyšší program. jazyky - pro ně je charakteristické zavedení operačních, řídících a datových struktur, které zvyšují srozumitelnost. Dále se text věnuje jen vyšším programovacím jazykům. Typickými představiteli vyšších programovacích jazyků jsou jazyky jako Pascal, Fortran, Cobol, Ada, C, Basic (tzv. jazyky 3. generace).
Jazyky 4GL jsou jazyky dále usnadňující programování. Jsou specializované na určitou oblast, vyskytují se například při zpracování dat v databázových systémech. Zahrnují v sobě prostředky pro generaci menu, masek obrazovek, výstupních sestav apod. Příkazy těchto jazyků vykazují značnou vyjadřovací sílu. Vývoj aplikací pak probíhá rychleji než u jazyků tzv. 3 generace. Aplikace ale pracují obvykle pomaleji.


16. Konstanty, proměnné, výrazy, příkazy, podprogramy
Konstanta je jednoduchá datová struktura různého typu, jejíž hodnota se v průběhu zpracování programu nemění.
Přímá konstanta je např. zápis 3.14159 (číselná konstanta typu REAL) nebo \'AHOJ\' (textová konstanta typu STRING). Přímé konstanty není třeba explicitně deklarovat. Jsou automaticky deklarovány svým výskytem.
Pojmenovaná nebo také symbolická konstanta se identifikuje pomocí identifikátoru konstanty, tj. svým jménem. Například konstanta jménem PI bude mít hodnotu 3.14159 (všude v programu se bude místo zápisu 3.14159 používat zápis PI). V programech se symbolické konstanty zavádějí zvláštním deklaračním/definičním příkazem.
Proměnná představuje datovou strukturu, jejíž hodnota se může v průběhu zpracování programu dynamicky měnit. Identifikuje se pomocí identifikátoru proměnné, který se přiřazuje proměnné v příslušném deklaračním příkazu - deklaraci. Při deklaraci je nutné stanovit obvykle i typ proměnné (např. celočíselná proměnná).
Operační paměť si lze představit jako nestrukturovanou posloupnost bytů. Typ proměnné představuje jakousi dekódovací mřížku, která říká například, že:
• dva byty představují krátké celé číslo
• jeden byte znak
• čtyři byty dlouhé celé číslo nebo krátké reálné číslo
• šest bytů reálné číslo
• osm bytů reálné číslo s dvojnásobnou přesností
• 81 bytů strukturu zaměstnanec, která byla definována uživatelem, v rámci této struktury je např. jméno zaměstnance 20 bytů, plat 6 bytů, počet dětí 2 byty atd.
Výrazy jsou operační struktury, pomocí kterých se ve vyšších programovacích jazycích popisuje výpočet hodnoty.
Výraz na rozdíl od příkazu současně popisuje akci i označení hodnoty, která je výsledkem této akce.
Hodnota výrazu má vždy nějaký typ. Mluvíme o výrazech typu INTEGER, REAL, BOOLEAN, atd.
Příkazy popisují jednotlivé výpočetní akce a jejich návaznosti v programu.
Příkazy lze rozdělit na:
• výkonné - provádějí nějaký výpočet nebo volání podprogramu
• řídící - řídí postup zpracování (skoky, podmínky a cykly)
Př.: přiřazovací příkaz (výkonný) slouží k přiřazení hodnoty proměnné:
X := 2 * 9 nebo x = 2 * 9
Podprogramy jsou relativně samostatné části programů. Je možné je opakovaně vyvolat v různých místech programu. Moderní použití podprogramů však neklade důraz na jejich využití pro opakující se části algoritmů, nýbrž považuje použití podprogramů za nástroj pro zvýšení přehlednosti kódu. Popis podprogramu se nazývá deklarace, užití algoritmu se nazývá volání.
Obvykle se podprogramy volají s tzv. parametry, což jsou vstupní a výstupní údaje, se kterými podprogramy pracují. Pro deklaraci podprogramu se parametry specifikují, tzn. že se určuje jejich typ (např. reálné, celé číslo, znak), určuje se způsob předávání (vstupní, výstupní, konstantní parametry) a přidělování paměti (kopírují se do paměti přidělené podprogramu nebo se k nim přistupuje nepřímo, pomocí ukazatele na paměť, kde jsou ve volající části programu uloženy).
Podprogramy jsou v různých programovacích jazycích podporovány v různých formách, tj. jako:
• procedury - provádějí určitou činnost, ale nemají vlastní hodnotu, nelze je použít ve výrazech, ale chovají se jako příkazy jazyka (příkaz volání procedury)
• funkce (vypočítá hodnotu, kterou vrátí prostřednictvím svého jména); lze je použít ve výrazech:
Důležitou vlastností je rekurse, tj. možnost volat uvnitř podprogramu sama sebe:
• přímo
• nepřímo (prostřednictvím dalšího podprogramu)
Bloková struktura programu
Blok je struktura, která obsahuje deklarace a příkazy a která současně tvoří rámec platnosti pro všechny deklarace v ní uvedené. Např. proměnná, deklarovaná uvnitř bloku, může být použita právě jen v tomto bloku. Blok může obsahovat opět bloky. Ve vnořeném bloku platí i deklarace z nadřazeného bloku. Objekty (proměnné, procedury aj.), deklarované v nejvyšším bloku jsou globální, tj. jsou platné i ve všech vnitřních blocích, kde patří mezi objekty nelokální.
Používání globálních proměnných je velmi lákavé, neboť zdánlivě zjednodušuje práci programátora. Ve skutečnosti však je zdrojem nespolehlivosti, chyb a obtížného ladění i oprav.


17. Základní pojmy jazyka Pascal
Speciální symboly jsou:
+ - * / := . , ; : \' = <> < <= > >= ( ) [ ] { }
Klíčová slova jsou (v konkrétních implementacích Pascalu mohou existovat další klíčová slova, popř. některá klíčová slova nemusejí existovat):
Klíčová slova nemohou být použita jako identifikátory, mají svůj vlastní předurčený význam.
Identifikátory jsou názvy (jména) konstant, proměnných, procedur a funkcí. Je to řetěz znaků, začínající písmenem nebo znakem ‘_‘ (znak podtržení). Následovat může libovolná kombinace písmen, číslic a znaků podtržení. Standardní velikost identifikátorů je 1 až 8 znaků (v Turbo Pascalu až 63 znaků). Některé identifikátory jsou předdefinovány (sin, cos). Je možné je předeklarovat (klíčová slova předeklarovat nelze).
Návěští jsou speciální identifikátory označující cíle skoků (blíže viz Příkaz skoku).


18. Základní pojmy jazyka Pascal
Čísla jsou tvořena posloupností číslic. Číslo může být uvedeno znaménkem (’+’ nebo ’-’). Není-li znaménko uvedeno, číslo je považováno za kladné. Desetinná čísla používají pro oddělení celé a desetinné části znak ’.’. Pro čísla v exponenciálním tvaru se používá k oddělení desítkového exponentu od mantisy znak ’E’.
Př.: zápis 3.982E-4 odpovídá matematickému zápisu 3.982*10-4
Jako separátory (oddělovače) základních symbolů se používají znaky: mezera, nová řádka a tabelátor.
Jako oddělovač může sloužit i komentář. Komentář je možné psát mezi dvojice závorek {} nebo (* *). Text v těchto závorkách překladač ignoruje.
Platí:
• Mezi dvěma symboly může být libovolný počet separátorů.
• Separátory se nesmějí vyskytovat uvnitř čísla, identifikátoru nebo speciálního symbolu.
• Separátor musí být použit pro oddělení prvků libovolné dvojice identifikátorů, čísel či rezervovaných slov:
Struktura programu
Program v Pascalu tvoří:
• záhlaví - obsahuje jméno programu, vstupní a výstupní soubor
• blok
• deklarační část - deklaruje všechny objekty, které jsou v bloku lokální
• příkazová část - specifikuje výpočetní akce nad objekty.
Příklad:
program PR1; {záhlaví}
var N:integer; S:real; {deklarační část}
{následuje blok příkazů}
begin
read(N);
S:=0;
repeat
S:=S+1/N; N:=N-1
until N=0;
write(S)
end.

Záhlaví ve standardním Pascalu vypadá následovně:
program jméno_programu (input,output);
jméno_programu ... identifikátor - musí být v rámci celého programu jednoznačný.
input ... jméno standardního textového souboru, ze kterého příkazy typu READ čtou jednotlivé znaky, konvertují je a naplňují proměnné ve svém vstupním seznamu
output ... jméno standardního textového souboru, do kterého příkazy typu WRITE posílají hodnoty žádané výstupním seznamem a konvertované za použití formátové specifikace do textové formy.
Deklarační část bloku může obsahovat:
- seznam knihoven např. uses Sysutils, Moje
- deklarace návěští např. label 100
- deklarace konstant např. const PI = 3.14
- definice typů např. type POLE = array[1..10] of integer;
- deklarace proměnných např. var X,Y : real
- deklarace procedur a funkcí např. procedure P1(....)
function F1(...):real;
Deklarace začínají vždy klíčovým slovem, např. var, za kterým následuje souhrn jednotlivých deklarací.
Pokud návěští, konstanty, atd. nejsou použity v programu, nemusejí být deklarace či definice uvedeny.
Příkazová část: příkazy programu jsou uvedeny v části uvozené
begin
... // příkaz(y)
end

 

19. Datové typy v Pascalu a jejich rozdělení

Typ celých čísel (integer)
Specifikuje konečnou souvislou podmnožinu celých čísel. Čísla jsou zobrazena v pevné řádové čárce. Maximální velikost je dána konkrétní implementací jazyka Pascal. V každé implementaci existuje standardní konstanta Maxint, která udává největší číslo typu integer:
-(Maxint+1) <= n <= Maxint.
Proměnné typu integer se deklarují např. takto:
var I, J : integer
Pro typ celých čísel jsou definovány operace:
• Aritmetické operace: obsahují aritmetické operátory
+ sčítání
- odčítání nebo unární operace změny znaménka
* násobení
div celočíselné dělení (celá část podílu)
mod zbytek po celočíselném dělení (modulo)
x mod y = x - ((x div y) * y) pro y > 0
pro y < = 0 nastane chyba
Typ reálných čísel (real)
Specifikuje konečnou podmnožinu reálných čísel. Maximální velikost čísla závisí na implementaci. Číslo se zobrazuje jako číslo v pohyblivé řádové čárce, tj. dvojice (M,N), kde M se nazývá mantisa a N exponent
x = M.zN
kde z je základ číselné soustavy ( 2 pro dvojkovou, 10 pro desítkovou)
a 1/z <= M < 1 je normalizační podmínka
Př.: 3.4 25E-10 232.0
Typ reálných čísel má 3 významné charakteristiky:
• největší absolutní hodnota čísla typu real
• nejmenší absolutní nenulová hodnota čísla typu real
• počet zobrazitelných míst mantisy => přesnost, s jakou se aproximují reálná čísla.
V zápisu hodnoty reálného čísla nesmí celá část překročit hodnotu Maxint:
je-li Maxint = 32767, potom zápis 100000.0 je třeba provést jako 1E5.
Typ logických hodnot (boolean)
Specifikuje množinu logických hodnot, které se označují předdefinovanými identifikátory true a false. Jsou to standardní identifikátory typu boolean. Podobně jako množiny hodnot jednoduchého typu jsou uspořádané: false < true.
Proměnné A a B typu boolean se deklarují jako:
var A,B : boolean

Pro výrazy typu boolean jsou definovány relační operace určené relačními operátory:
= < > < > <= >=
pomocí kterých je možné vyjádřit logické funkce.
Jsou-li p,q ... označení hodnoty typu boolean
pak funkce:
implikace: p <= q tj. p implikuje q
ekvivalence: p = q tj. p je ekvivalentní s q
Jsou dále definovány logické operace:
and konjunkce - logický součin
or disjunkce - logický součet
not negace
Znakový typ (char)
Znakový typ char charakterizuje konečnou uspořádanou množinu znaků. Existuje řada standardních množin znaků (kódů), které se používají pro zobrazení znakových údajů v počítači.
Množina typu char není stanovena jazykem, ale až jeho implementací. Množina hodnot typu char musí mít tyto vlastnosti:
• musí existovat zobrazení, které každému znaku přiřazuje celé číslo nazývané ordinální číslo znaku. Relace uspořádání mezi každými dvěma znaky musí být přitom stejná jako mezi jejich ordinálními čísly.
• podmnožina znaků reprezentujících číslice 0 - 9 musí být numericky uspořádaná a souvislá.
• podmnožina znaků reprezentující velká písmena A - Z musí být abecedně uspořádaná, nemusí však být souvislá.
• podmnožina znaků reprezentujících malá písmena a - z musí být abecedně uspořádaná, nemusí však být souvislá.
Tyto vlastnosti má např. ASCII kód používaný na PC.
Typ string
Turbo Pascal umožňuje pracovat s datovým typem string, který značně zjednodušuje práci s řetězci znaků.
Deklarace proměnných RET a JMENO typu string:
var RET : string; // statická délka řetězce implicitní, tj. 255
JMENO : string [20]; // statická délka řetězce 20
.......
JMENO := \'NOVAK\';
Konverze typu integer na real je implicitní, tj. všude tam, kde se očekává real, může být uvedeno integer a to se automaticky konvertuje na real.
Př.
V celočíselné proměnné I je číslo 2.
Přiřazovací příkaz X := I, provede konverzi a výsledkem je reálné číslo 2.0.
Protože rozsah real je větší než integer, výsledek je definován vždy. Při konverzi se může ztrácet přesnost, např. má-li mantisa 7 dekadických míst, maxint = 2147483647, pak:
X := 87654321
0.8765432*108 tj. v X bude: 87 654 320
Sin, cos, arctan, ln, exp, sqrt jsou definovány i pro argument integer.
Přípustné typy operandů + typy výsledků aritmetických a relačních operátorů jsou dány tabulkou.
Konverze typu real na typ integer není implicitní a je nutné použít standardní funkce:
trunc(X) - výsledkem je celé číslo, které vznikne odříznutím desetinné části X.
round(X) - výsledkem je zaokrouhlená hodnota X definovaná takto:
round(X) = trunc(X + 0.5) pro X >= 0
round(X) = trunc(X - 0.5) pro X < 0
- X - argument musí být typu real a jeho hodnota nesmí být větší než maxint.
- výsledek je typu integer.


20. Výrazy v Pascalu
Výraz je tvořen povolenou kombinací operandů (proměnné, konstanty), operátorů, funkcí a závorek. Vyhodnocením výrazu se získává hodnota výrazu. Tou je určen typ výrazu.
Z tohoto hlediska výrazy dělíme na:
aritmetické (jejich výsledná hodnota je typu integer nebo real)
• logické (jejich výsledná hodnota je typu boolean)
• textové (jejich výsledná hodnota je typu string)
Operace ve výrazu se provádějí zleva doprava s ohledem na prioritu operátorů a závorek.
Dělení operátorů podle priority:
1 not nejvyšší priorita
2 * / div mod and
3 + - or
4 <> < > <= >= = nejnižší priorita
Protože různé programovací jazyky mají různé priority operátorů, doporučuje se pro zpřehlednění hojně užívat závorky.
Relace 0 menší nebo rovno i větší nebo rovno max se musí zapsat následovně:
(0 <= i) and (i <= max)
• Aritmetické operace: obsahují aritmetické operátory
+ sčítání
- odčítání nebo unární operace změny znaménka
* násobení
div celočíselné dělení (celá část podílu)
mod zbytek po celočíselném dělení (modulo)
x mod y = x - ((x div y) * y) pro y > 0
pro y < = 0 nastane chyba
Př.:
5 div 2 = 2 5 mod 2 = 1
3 div 2 = 1 3 mod 2 = 1
-7 div 3 = -2 -7 mod 3 = -1
• Relační operace: obsahují relační operátory
= rovnost
<> nerovnost
< menší než
> větší než
<= menší než nebo rovno
>= větší než nebo rovno
Výsledkem relační operace je výsledek typu boolean:
- true - jestiže hodnoty operandů splňují relaci, jinak false
Např.:
5 = 5 true
7 = 5 false
• Standardní funkce pro typ celých čísel jsou:
abs(i) absolutní hodnota
sqr(i) i2
odd(i) údaj typu boolean na výstupu:
pro i liché, výsledek je true, jinak je false
succ(i) i + 1
pred(i) i - 1
• Standardní procedury pro typ celých čísel jsou:
inc(i) zvýší hodnotu proměnné i o 1
inc(i,n) zvýší hodnotu proměnné i o n
dec(i) sníží hodnotu proměnné i o 1
dec(i,n) sníží hodnotu proměnné i o n

 


21. Podprogramy vstupu a výstupu
Výstup dat z programu
Výstup dat se provádí pomocí procedur Write a WriteLn. Obě procedury pracují téměř totožně. Mají společnou legendu i sémantická pravidla. Rozdíl je mezi nimi ten, že procedura WriteLn po provedení všech výstupů z výstupního seznamu pošle na výstup dvojici znaků “CrLf“ (nový řádek) a že výstupní seznam může být u ní prázdný. Pak jediným výsledkem takového výstupního příkazu je posun kurzoru na začátek dalšího řádku. Procedura Write může být použita jak pro textové soubory, tak pro soubory s udaným typem. Procedura Writeln může být použita jen pro textové soubory.
Syntaxe obou procedur je následující:
Write([F,] výstupní seznam)
WriteLn[([F,] výstupní seznam )]
výstupní seznam ... množina výstupních příkazů (S1,S2,...,S3).
Sn ... En [ : formátová specifikace ]
En ... Výraz, který se vyhodnotí a výsledná hodnota se pošle na výstup.
formátová specifikace ... Min[:Dec]
Min ... minimální šířka, tj. počet znaků výstupní hodnoty ( > 0) včetně znaménka a desetinné tečky. Zapíše se přesně Min znaků; v případě potřeby se použijí mezery na zarovnání zleva. V případě, že výstupní hodnota obsahuje více znaků než Min, zapíše se plný počet znaků.
Dec - určuje počet desetinných míst při zápisu čísel typu real.
Není-li formátová specifikace uvedena, výstup se provede s tzv. implicitní formální specifikací, která se liší podle typu výstupního výrazu
• Výpis hodnoty typu char.
Když Min neuvedeno, vypíše se jeden znak.
Když Min uvedeno, zapíše se Min - 1 mezer a potom výstupní znak.
Výpis hodnoty typu integer.
Když Min neuvedeno, zapíše se tolik znaků reprezentujících číslo, kolik je třeba, a bez předchozích mezer.
Když Min uvedeno a je > než počet znaků reprezentujících číslo, doplní se zleva mezery, takže šířka výsledného pole je přesně Min.
• Výpis hodnoty typu real.
Když Min neuvedeno, bere se implicitně šířka pole 17.
Když Min uvedeno a Min <= 8, bere se 8.
• Výpis hodnoty typu string.
Není-li Min uvedeno, vypíše se přesně tolik znaků, kolik činí délka stringu a bez vedoucích mezer.


22. Podprogramy vstupu a výstupu
Ošetření chyb při provádění vstupu/výstupu
Direktivy pro překladač jsou zvláštní příkazy, uzavřené v komentářových závorkách a začínající znakem ‘$’. Nemají žádný přímý ekvivalent v přeloženém programu. Direktivy instruují překladač, jak má řešit některou situaci, které se příslušná direktiva právě týká a které se jinak řeší standardním způsobem. Direktiv je poměrně velké množství a s některými se postupně seznámíme. Jejich úplný seznam je možno si přečíst v manuálu nebo v systému HELP.
Jednou z těchto direktiv je {$I-} resp. {$I+}. Týká se způsobu zpracování chyb, vzniklých při některé Vstupní/Výstupní operaci. Takové chyby jsou standardně zpracovány tak, že se vypíše zpráva, že vznikla chyba a běh programu se zastaví.
Použije-li se direktiva {$I-}, zpráva o chybě se nevypíše a odpovědnost za zpracování takové chyby se ponechá na uživateli. Ten se může pomocí standardní funkce IOResult po každé V/V operaci dotázat, jak operace skončila. IOResult vrací hodnotu typu word, která vyjadřuje stav posledně provedeného V/V při direktivě {$I-}. Nenastane-li chyba při provádění V/V, funkce vrací hodnotu 0. Nastane-li chyba, IOResult vrací nenulovou hodnotu, odpovídající číslu chyby. Za každou operací V/V je třeba použít IOResult znovu (každé vyvolání funkce vynuluje její vnitřní chybový příznak). Pokud dojde k chybě a nezavolá se IOResult, pak se další chyba nemá kam uložit a program se ukončí.

 

 

 

 

 

 


23. Podprogramy vstupu a výstupu
Sémantická pravidla pro čtení:
Čte se do jednoho prvku seznamu za druhým. Na začátku je ukazatel čtení nastaven na první prvek seznamu. S každou další načtenou položkou se automaticky posouvá ukazatel v seznamu na další položku. Čtení končí po přečtení do posledního prvku seznamu. Seznam nesmí být prázdný.
Položkami seznamu mohou být proměnné nebo prvky pole typu integer, real, char, boolean nebo string.
Čte-li se z textového souboru (nebo standardního vstupu), provede se konverze do vnitřní reprezentace podle typu proměnné ze seznamu. Přitom se provádí kontrola správnosti syntaktického zápisu hodnoty toho typu, který se na vstupu očekává. V případě nalezení chyby reaguje systém standardním způsobem (pokud není použita direktiva {$I-} - viz dále, resp. není-li ošetřována tzv. výjimka), tj. ohlásí chybu a ukončí práci. Je-li proměnná F jiného typu než text, jde o čtení ze souboru s typem. Pak se žádné konverze neprovádějí, proměnné ve vstupním seznamu však musí přesně odpovídat typům proměnných, které byly do souboru zapsány příkazem Write.
Čtení do proměnných typu integer:
Přeskočí se úvodní mezery, tabelátory a značky konce řádku, které předcházejí textovému numerickému řetězci reprezentujícímu celé číslo.
Poté se čte jeden znak za druhým, kontroluje se, že jde o číslici a provádí se příslušná konverze. Prvním znakem ve vstupním textu může být znaménko + (plus) nebo - (mínus). Není-li žádné znaménko uvedeno, pokládá se následující číslo za kladné.
Čtení končí na 1. mezeře, tabelátoru, značce konce řádku nebo značce konce souboru, tj. na tzv. omezovači.
Pokud číselný řetězec neodpovídá očekávanému formátu (obsahuje např. písmeno A), dojde k chybě.
Pokud je řetězec číslic korektní, provede se konverse přečtených číselných znaků do binárního tvaru a přiřadí se hodnota proměnné.
Čtení do proměnné typu real:
Probíhá podobně jako u typu integer, očekává se posloupnost číslic s případným znaménkem, desetinnou tečkou a exponentem.
Čtení do proměnné typu char:
Do jedné proměnné typu char se přečte jeden znak. Jestliže se narazí na konec řádky (což je po odeslání pomocí klávesy Enter vždy) a jestliže se načítá další proměnná typu char, přečte se znak konce řádku CR a dále popř. znak LF. Jestliže je další načítaná proměnná typu string, chápou se znaky CR a LF jako zadání prázdného řetězce. Jestliže se narazí na konec řádky a další načítaná proměnná není typu char ani string, čtení pokračuje na další řádce.
Zadá-li se značka konce souboru, tj. znak CHR(26)=<Ctrl-Z>, čtení za tímto znakem nepokračuje.
Čtení do proměnné typu string:
Do proměnné typu string se načítají všechny znaky až do značky konce řádky nebo až do značky konce souboru, ale bez těchto značek.
Jestliže načítaný řetězec znaků je delší než max. délka stringové proměnné, načítaný řetězec se zkrátí na max. velikost stringové proměnné.
Ukazatel se po čtení neposune na další řádek, tzn. při dalším čtení se narazí na znak konce řádku, a proto se načte prázdný řetězec.


24. Příkazy jazyka Pascal
Příkazy jazyka Pascal lze rozdělit na dvě základní skupiny:
• jednoduché příkazy - nejsou dále dělitelné
• strukturované příkazy - na rozdíl od jednoduchých příkazů se skládají z dílčích příkazů.
Jednoduché příkazy dále dělit na:
• přiřazovací příkaz
• příkaz procedury
• příkaz skoku
• prázdný příkaz
Strukturované se také dělí na:
• složený příkaz
• podmíněné příkazy - existují dva základní typy:
• if - jednoduché větvení (úplná a neúplná podmínka)
• case - vícenásobné větvení
• příkazy cyklu - obecně ve vyšších jazycích existují 4 typy, v Pascalu jsou 3:
• repeat - cyklus s podmínkou na konci
• while - cyklus s podmínkou na začátku
• for - cyklus s krokem - pevným počtem opakování
• příkaz with - pro zpřístupnění datových struktur záznam
25. Příkazy jazyka Pascal
Přiřazovací příkaz
Obecný tvar přiřazovacího příkazu je:
proměnná := výraz, jehož hodnota se přiřazuje
Výraz tvoří proměnné, konstanty, operátory, jména funkcí a závorky. Výraz reprezentuje pravidlo pro výpočet hodnot. Výraz se vyhodnocuje zleva doprava s ohledem na závorky a prioritu operátorů.
Př.:
var X : real;
....
X := 5.96;
Přiřazovat lze do proměnné, jejíž typ je kompatibilní vzhledem k přiřazení s typem přiřazovaného výrazu.
Předpokládejme, že na levé straně přiřazovacího příkazu je proměnná typu TYP1 a na pravé straně přiřazovacího příkazu je výraz typu TYP2. Pak můžeme zjednodušeně, s ohledem na dosud vysvětlenou látku, tvrdit, že hodnota typu TYP2 je kompatibilní vzhledem k přiřazení s typem TYP1, jestliže:
• hodnoty typu TYP2 patří do množiny hodnot specifikované typem TYP1
• TYP2 je typ integer a TYP1 je typ real.
Složený příkaz
Složený příkaz představuje posloupnost (sekvenci) příkazů uzavřenou do tzv. příkazových závorek
begin a end.
Jednotlivé příkazy jsou odděleny znakem \";\" (apostrof).
Př.:
begin
RE := -B/(2*A);
DISCR := sqr(B) - 4*A*C;
IM := sqrt(abs(DISCR))/(2*A); // nemusí být středník;
// jestliže je, znamená to, že za ním je prázdný příkaz.
end
Je vhodné, aby jednotlivé příkazy složeného příkazu byly psány na samostatné řádky a aby byly odsazeny min. o dva znaky doprava proti koncovému end. Begin lze psát buď na stejnou úroveň odsazení jako end (častěji doporučovaná úprava) nebo na konec řádky, kde je příkaz, který chápe následující složený příkaz jako jeden příkaz. Jedná se např. příkaz větvení nebo cyklu.
Př.
if DISCR > 0 then begin
RE := -B/(2*A);
DISCR := sqr(B) - 4*A*C;
IM := sqrt(abs(DISCR))/(2*A)
end
Kompatibilita (slučitelnost) mezi dvěma typy je požadována v konstrukcích jako jsou výrazy nebo porovnávání hodnot. Dva typy jsou navzájem kompatibilní, je-li splněna alespoň jedna z podmínek:
• oba typy jsou totožné.
• oba typy jsou reálné.
• oba typy jsou celočíselné.
• jeden typ je intervalem druhého.
• oba typy jsou intervaly téhož hostitelského typu.
• oba typy jsou množinové typy s kompatibilními bázovými typy.
• oba typy jsou pakované řetězce se stejným počtem prvků.
• jeden typ je string a druhý je buď string, pakovaný řetězec nebo char.
• jeden typ je pointer a druhý libovolný ukazatel.
• jeden typ je PChar (ukazatel na řetězec ukončený nulovým bajtem - ASCII 0) a druhý je libovolně dlouhé pole znaků tvaru array [0..X] of char, ukončené nulovým znakem (platí při nastavené direktivě rozšířené syntaxe {$X+}).
• oba typy jsou ukazatele na stejný typ (platí při nastavené direktivě typové kontroly pointrů {ST+}).
• oba typy jsou procedurální, se stejným typem výsledku a se stejnými parametry co do počtu, typů a pořadí.


26. Příkazy jazyka Pascal
Podmíněné příkazy
Podmíněné příkazy slouží k větvení programu na základě podmínky.

Větvení znamená, že podle určité podmínky se bude provádět určitá část kódu.

V Pascalu rozlišujeme:
• neúplné jednoduché větvení (příkaz if bez else)
• úplné jednoduché větvení (příkaz if s else)
• vícenásobné větvení (příkaz case)

Obrázek 4.4-1 Jednoduché větvení

 

 

 

 

 


27. Příkazy jazyka Pascal
Příkaz skoku
Syntaxe příkazu skoku je:
goto návěští
Příkaz skoku slouží k přímému předání řízení z jednoho místa programu na jiné, které je označeno návěštím. Používá se např. k předčasnému ukončení nějakého strukturovaného příkazu, např. cyklu nebo těla procedury. Nedoporučuje se používat pro běžné větvení programu. Návěští musí být deklarováno pomocí label. Návěští může být ve standardním Pascalu celé číslo 0 - 9999, většina překladačů však umožňuje použití běžných identifikátorů. V deklarační části musí být deklarována právě ta návěští, která jsou použita v příkazové části bloku. Příkazem skoku se nesmí předat řízení do strukturovaného příkazu. Nelze skákat z vnějšku do bloku => rozsahem použití je tedy blok, ve kterém je návěští deklarováno.
{test prikazu skoku}
var
CeleCislo : integer;
label
100;
begin
while true do begin
read(CeleCislo);
writeln(CeleCislo);
if CeleCislo = 0 then goto 100
end;
100:
end.

{prikaz bez skoku}
var
CeleCislo : integer;
begin
repeat
read(CeleCislo);
writeln(CeleCislo);
until CeleCislo = 0;
end.
Prázdný příkaz
Prázdný příkaz je takový příkaz, který nevykonává žádnou výpočetní akci. Většinou nemá žádný přeložený ekvivalent. Přesto bývá někdy použití prázdného příkazu užitečné. Používá se např. při označení konce strukturovaného příkazu návěštím:
begin
...
if ... then goto 100;
...
100: {prázdný}
end


28. Přehled cyklů a pravidla pro jejich použití
Pomocí příkazů cyklu se předepisuje opakované provádění příkazu nebo posloupnosti příkazů na základě splnění určité podmínky.
V přirozeném jazyce odpovídají cyklům následující výroky:
• Prováděj tuto činnost tak dlouho, dokud nebude splněna určitá podmínka.
• Pokud je splněna určitá podmínka, prováděj určitou činnost.
• Prováděj určitou činnost n-krát.
• Prováděj určitou činnost pro každý prvek dané množiny.
Pascal nabízí k použití 3 typy příkazu cyklu:
• repeat - příkaz s podmínkou na konci
• while - příkaz s podmínkou na začátku
• for - příkaz s krokem (pevným počtem opakování)
Příkaz repeat
Syntaxe příkazu repeat je:
repeat
posloupnost příkazů
until podmínka
Cyklus se ukončí v okamžiku, kdy je splněna podmínka (tj. výraz tvořící podmínku nabude hodnoty true).
Posloupnost příkazů se provede min. jednou, protože podmínka se testuje až na konci cyklu.
Příkaz while
Syntaxe příkazu while je:
while podmínka do příkaz
Je-li podmínka splněna (po vyhodnocení nabude hodnoty true), provede se příkaz za do a řízení cyklu se vrátí opět na testování podmínky. Příkaz se opakovaně provádí tak dlouho, až podmínka nabude hodnoty false. Podmínka se testuje na začátku cyklu, tj. příkaz v cyklu se nemusí provést ani jednou. Je samozřejmé, že proměnné, které se vyskytují v podmínce, musí být nějakým způsobem v příkazu cyklu měněny. Jinak bude podmínka vyhodnocována stále stejně a řízení cyklus nikdy neopustí (dojde k tzv. nekonečné smyčce). Na pozici příkazu je velmi často složený příkaz, tj. vždy, kdy součástí cyklu má být více příkazů než jeden.
Příkaz for
Používá se v případě, že je explicitně znám počet provedení příkazu. Tento počet je dán počtem hodnot ordinálního typu mezi výrazy A a B včetně obou hranic.
Syntaxe příkazu for je následující:
for rp := výraz1 krok výraz2 do příkaz
rp ... řídící proměnná cyklu, musí být ordinálního typu, stejně jako výraz1 a výraz2.
krok to nebo downto
Nejčastěji se pro proměnnou rp používají ordinální typy integer, word nebo byte. Množina hodnot v zadan. intervalu jsou pak celá čísla, takže krok změny je konstanta 1.

29. Vývojový diagram – příkaz s podm. na začátku


30. Vývojový diagram – příkaz s podm. na konci


31. Vývojový diagram – příkaz s krokem

 


...
pokud chcete materiál celý, musíte si jej stáhnout (stažení je zdarma)

 
novinky

Přidat komentář

Ohodnoť materiál Vypracované otázky ke zkoušce.


 
typ

Podobné materiály

Podobné materiály k materiálu: Vypracované otázky ke zkoušce

lupa
Rychlá navigace
přejdi rychleji k hledaným materiálům


 
statistika
Statistika
Jak jsme na tom?

Studentů: 38583
Materiálů střední školy: 3603
Materiálů vysoké školy: 1593
Středních škol: 806
Vysokých škol: 63



© 2010 - 2019 Všichni Všem - Smluvní podmínky | Kde to jsem? | Kontakty | Reklama
Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace