7. Typy

ordinární

Integer

Char
jednoduché

Boolean

Real

výčtový
typy

interval

pole (array)

strukturované záznam (record)
množina (set)

soubor (file, Text)

ukazatel

7.1 Ordinární typ

  • Pred (T)   předchůdce T

  • Succ (T)   následník T

  • Ord (T)    pořadové číslo T

7.1.1 Příklady:

  • Pred (47) = 46

  • Succ (-8) = -7

  • Succ (False) = True

  • Pred (False) = chyba!!!!

  • Ord ('A') = 65   ----> viz. ASCII tabulka!!!!

  • Ord (' ') = 32  -----> ' ' je mezera

  • Succ ('x') = 'y'

7.2 Typ interval

var Cestujici: 0..45;            {cestujících může být 0-45}

      Cislice: 0..9;

7.3 Příklad

program tyvytiz.pas:

 

program Vytizeni;

const MaxLidi = 45;

         Konec = -1;

type Kapacita = Konec..MaxLidi;

var Cestujici : Kapacita;

      CestCelkem, VozuCelkem : Integer;

begin

      Write ( 'Vytížení autobusů. ' );

      Write ( 'Zadávejte počty cestujících, -1 ukončí. ' );

      CestCelkem := 0;

      VozuCelkem := 0;

      Read ( Cestujici );

      while Cestujici <> Konec do

       begin

          CestCelkem := CestCelkem + Cestujici;

          VozuCelkem := VozuCelkem + 1;

          Read ( Cestujici );

       end;

      if VozuCelkem > 0 then

          Write ( 'Průměrné vytížení ',

          Round (CestCelkem/VozuCelkem/MaxLidi*100), '%' )

      else

          Write ( 'Žádná data. Není co počítat.' );

end.

 

Poznámky a cvičení:

  • Program tyvytiz.pas má zásadní chybu: Při vložení vstupní hodnoty mimo povolený interval se zbortí. Žádný dobrý program by se při vložení jakékoli hodnoty neměl zbortit. Je proto dobré program psát tak, aby se vstupní hodnoty načítaly do pomocné proměnné bez omezení, pak se testovaly a teprve poté vkládaly do proměnné omezené intervalem.

  • Upravte načítání hodnoty do proměnné Cestujici tak, aby na špatnou vstupní hodnotu reagoval program chybovým hlášením a ne běhovou chybou.

  • Tyto úpravy programů se neoficiálně, ale velice výstižně  označují jako zvyšování blbovzdornosti programu. Správný program je absolutně blbovzdorný = žádná uživatelova idiotská odpověď z klávesnice ho nezbortí, program trpělivě sdělí, že očekává jiný vstup a vrací se zpět na příkaz Read:

Příklad blbovzdorného dialogu programu a uživatele:

Program :"Vlož počet cestujících v autobuse!"

Uživatel: "153 lidí"

Program: "Prosím zadej číslo"

Uživatel: "753"

Program: "Opravdu se domníváš, že v autobuse jede 753 cestujících? Zkus to znovu!"

Uživatel: "Ty jsi nějaký vypečený!"

Program: "Tak řekneš po dobrém kolik lidí opravdu jede v autobuse nebo toho radši necháme?"

po chvíli opět Program:

"... a nepošklebuj se!"   ...a řešení!

 

© 2001 Milan Volejník, http://hledej.to.zde.cz

aktualizace: 17.09.2002 17:25:36

Powered by Notepad editor.
Copyright © 2001 by !!!Protiproud!!! All rights reserved.
Revised: 17 IX 2002 17:49:12 +0200 .