MFF UK / Ústav teoretické fyziky / Tomáš Ledvinka
Přednášky
. . . . . . . . . . . . . . . . . . . . . . . . . .
Programování pro fyziky (1.r)
  Úvod
  Programy a algoritmy
  Píšeme program
  Píšeme program II
  Procedury a funkce
  Malujeme funkce
  Chyby. Typy I.
    Chyby při běhu programu
    Používáme knihovny I.
    I data mají strukturu
    Typy (interval, výčtový)
    Množiny
  Typy II. Pole a Záznamy
  Pole II.Řetězce.Soubory.
  Gnuplot.Interpolace...
  Matice. Velké O...
  Fronta,Zásobník. Postscript
  Bin. soubory, ...
  Ukazatele,Objekty, ...
Počítačová algebra
Klasická elektrodynamika (2.r)
Vybrané partie OTR

Cvičení
. . . . . . . . . . . . . . . . . . . . . . . . . .
Programování pro fyziky (1.r)
Teoretická mechanika (2.r)
Klasická elektrodynamika (2.r)


Věda
. . . . . . . . . . . . . . . . . . . . . . . . . .
Diskové zdroje v OTR
Hyperbolické systémy v OTR


Kontakt
. . . . . . . . . . . . . . . . . . . . . . . . . .
Email
Konzultační hodiny


Ostatní
. . . . . . . . . . . . . . . . . . . . . . . . .
Mallorca
Ze společnosti

Množiny

Z výše uvedených typů můžeme budovat typ množina:

program test;
type tCharSet = set of char;

var  PouzitaPismena,RozbiteKlavesy : tCharSet;
     c : char;
begin
  RozbiteKlavesy := ['x','q','X','Q'];
  PouzitaPismena := []; //prázdná množina

  repeat
    read(c);
    PouzitaPismena := PouzitaPismena+[c];
  until c='.';

  if PouzitaPismena*RozbiteKlavesy = [] then Writeln('Mohu Pouzit Tento Psaci Stroj')
					else Writeln('Musim Pouzit Jiny Psaci Stroj');

  readln;
  readln;
end.

Konstruktor množiny: má podobu hodnot a intervalů oddělených čárkami v hranatých závorkách.
K disposici jsou obvyklé množinové operace:

Sjednocení +, průnik *, rozdíl -. Logické operace nad množinami jsou jen podmnožina <=, nadmnožina >= , rovnost = a různost <>. Klíčové slovo in lze použít ke konstrukci dotazu na přítomnost prvku v množině, takže

LogProm := Znak in Mnozina;

je totéž jako

LogProm := [Znak] <= Mnozina;

Dálnopisným ekvivalentem znaku [ kombinace (. a podoně .) nahradí znak ] .

Z výše definovaného typu tKarty můžeme sestavit množiny

const sSedmy = [ZelenaSedma..SrdcovaSedma];
      sOsmy  = [ZelenaOsma..SrdcovaOsma];
           {...}
      sEsa   = [ZeleneEso..SrdcoveEso];

a testovat hodnotu karty vyrazem (k in sSedmy) misto (k<=SrdcovaSedma) and (k>=ZelenaSedma).

 

.