1. Zpracování úlohy na PC, program

Fáze zpracování úlohy na počítači

  • Formulace úlohy
    • Zadavatel úlohy komunikuje s řešitelem, výsledkem jejich komunikace je úplné a přesné zadání úlohy.
  • Sestavení algoritmu řešení.
    • Rozborem úlohy se snaží řešitel o objasnění podstaty problému a nalezení vhodného řešení.
  • Analýza a optimalizace algoritmu
    • Snažíme se vybrat nejvhodnější a nejefektivnější algoritmus.
    • Mezi základní kritéria patří časová a paměťová složitost.
  • Sestavení programu
    • Přepíšeme algoritmus ve vhodném programovacím jazyku.
  • Ladění a testování programu
    • Odstranění syntaktických a sémantických chyb.
  • Syntaktické (formální) chyby
    • Vzniknou porušením formálních pravidel pro zápis jednotlivých instrukcí, např. překlep, opomenutí, neznalost.
    • PC informuje o chybách při překladu.
    • Odstraňování chyb.
  • Sémantické (významové, logické) chyby
    • Chyby v postupu řešení.
    • Běžící program nedává správné výsledky → zacyklí se.
    • Testování provádíme zadáním různých vstupních dat a získané výsledky porovnáváme s předpokládan.

Struktura programu v Pascalu

    • Program v Pascalu se skládá z hlavičky a z bloků.
      • Hlavička obsahuje název programu a seznam parametrů v kulatých závorkách.
        • Seznam parametrů slouží pro komunikaci programu.
          • Závorky se seznamem parametrů jsou nepovinné.
      • Blok lze rozdělit na část deklarací a definicí a část příkazovou
        • Jednotlivé deklarační úseky nejsou povinné.
        • Každý úsek se v bloku vyskytuje pouze tehdy, je-li potřeba v tomto bloku deklarovat objekty příslušného druhu.
        • Příkazovou častí se popisuje vlastní výpočet.
          • Je to posloupnost příkazů oddělených středníkem a uzavřených mezi klíčová slova BEGIN & END
          • Každý příkaz se obvykle píše na samostatný řádek.
          • Po použití slova BEGIN další řádek odsazujeme pro lepší přehlednost.
          • Slovo END potom píšeme na úroveň posledního BEGIN.

 

Hlavička programu

program → identifikátor → (parametry programu) → ;

 

Blok

Deklarační část

deklarace návěští → definice konstant → definice typů → deklarace proměnných → deklarace procedur a funkcí

 

Datové typy

Proměnná je datový objekt, jehož hodnota se může měnit. Každá proměnná je určitého typu a tímto typem je specifikována množina přípustných hodnot proměnné.

  • celočíselné
    • pouze kladné hodnoty a 0 (0..n)
      • integer
      • smallint
      • longint
    • kladné i záporné hodnoty (-n..n-1)
      • byte
      • word
      • cardinal
  • reálné
    • real
    • double
  • char
  • boolean
  • string

 

Integer

  • Rozsah: -32768..32767 (2 byty)
  • Operace:
    • +, -, *
    • div (dělení beze zbytku)
    • mod (zbytek po dělení)
  • Relační operace:
    • >, <, <=, >=
    • = (rovnost)
    • <> (nerovnost)
  • Funkce:
    • abs(x) – absolutní hodnota
    • sqr(x) – druhá mocnina
    • succ(x) – následovník
    • pred(x) – předchůdce
    • odd(x) – lichost
    • ord(x) – pořadí
  • Varianty
    • Smallint (-128..+127)
    • Longint (-2147483648..+2147483647)
    • Byte: (0..+255)
    • Word: (0..+65 535)
    • Cardinal: (0..+4294967295)

 

Real

  • Libovolné číslo v rozsahu 2,9×10-39..1,7×1038
  • Operace:
    • +, -, *, /
  • Relační operace:
    • =, <>, >, <, <=, >=
  • Funkce:
    • abs(x), sqr(x), sin(x), cos(x), tan(x), ln(x), arcsin(x), arccos(x), arctan(x)
    • sqrt(x) – 2. odmocnina
    • trunc(x) – celá část x
    • round(x) – zaokrouhlení na celá čísla
  • Varianty:
    • Single
    • Double
    • Extended

 

Boolean

  • Logická proměnná
  • Pouze 2 hodnoty (TRUE/FALSE)
  • Relační operace:
    • =, <>, >, <, <=, >=
  • Logické operace:
    • AND – logický součin (konjunkce)
    • OR – logický rozdíl (disjunkce)
    • NOT – negace

 

Char

  • pouze 1 znak: písmeno, číslici, specifický symbol nebo řídící znak
  • Relační operace:
    • =, <>, >, <, <=, >=
  • Funkce:
    • succ(x), pred(x)
    • chr(x) – znak s číslem x
    • ord(x) – pořadí v ASCII tabulce

 

String

  • řetězec znaků (max. 255)
  • za identifikátorem typu následuje délka řetězce v [] závorkách (např. string[30] → max. délka 30 znaků)
  • procedury a funkce:
    • delete(Ret, Cíl, Num) smaže Num znaků z řetězce Ret, začínající na pozici Cíl
    • insert (Ret, Cíl, Poz) vloží Cíl do řetězce Ret na pozici Poz
    • str(Par, Ret) převod číselné proměnné Par na řetězec Ret
    • val(Ret, Hod, Vys) převod řetězce s číselnou hodnotou Ret na proměnnou číselného typu Hod, Vys informuje o chybné pozici
    • copy(Ret, Poz, Num) zkopíruje Num znaků z řetězce Ret, začínající na pozici Poz
    • concat (Ret1, Ret2) sloučit řetězce
    • length(Ret) délka řetězce
    • pos(Vzor, Ret) hledá zadaný Vzor v řetězci Ret
      • nenajde → 0
      • najde → pozice 1. písmene

 

Příkazy vstupu a výstupu

Přiřazovací příkaz

proměnná  :=  výraz

  • Tento příkaz reprezentuje akci, kterou proměnné přiřazujeme hodnotu
  • Vyhodnotí se výraz napravo a výsledná hodnota se přiřadí proměnné nalevo

 

Příkazy vstupu hodnot proměnných

  • read(seznam proměnných);
  • readln(seznam proměnných);

 

Příkazy výstupu hodnot proměnných

  • write(seznam proměnných);
    • na výstupním zařízení se vypíšou hodnoty proměnných uvedených jako parametry příkazu write
  • writeln(seznam proměnných);
    • po výpisu hodnot proměnných uvedených v seznamu se přechází na další řádek

 

Příkazy výstupu textu

  • write(‘text‘);
    • na výstupním zařízení se vypíše text mezi apostrofy
  • writeln(‘text‘);

 

 

[Celkem: 3 Průměr: 3.3]

Napsat komentář