79 (169)

79 (169)



Rozdział 4. • Zagadnienia trudniejsze 115

program cw4_23;

{ Program pokazujący działanie funkcji obliczającej }

{ liczbę elementów w zbiorze liter.    }

{ Katalog r4_05 : 4_23.pas    }

uses

Crt;

typ®

TLitery - set of Char; var

Litery, Samogłoski, Spółgłoski : TLitery;

function Moc (S : TLitery) : Byte;

{ Funkcja oblicza liczbę elementów zbioru typu }

{ TLitery.    }

var

Znak : Char;

I : Byte;

begin

I 0;

for Znak Low(Char) to High(Char) do if (Znak in S) then I 1+1;

Moc I;

end; {----------------------------------- Moc -}

begin

ClrScr;

Litery ['a'..'z', 'A'..'Z'];

Samogłoski ['a', 'e', 'i', ’o', 'u', 'y' ,

'A', -E', 'I', '0’, 'U', 'Y'];

Spółgłoski Litery - Samogłoski;

Writeln ('Liczba elementów w zbiorze Litery: ',

Moc (Litery));

Writeln ('Liczba elementów w zbiorze Samogłoski: ',

Moc (Samogłoski));

Writeln ('Liczba elementów w zbiorze Spółgłoski: ',

Moc (Spółgłoski));

Writeln ('Liczba elementów w zbiorze przykładowym: ',

Moc (['a'..'e', 'z']));

Readln; end.

Wyjaśnienia wymagają dwie nowe funkcje: Low i High. Podają odpowiednio najmniejszą i największą wartość typu porządkowego, który stanowi ich argument. Pętla for I := Low (Typ) to High (Typ) do zostanie wykonana zatem dla wszystkich wartości, które może przyjmować zmienna typu Typ. Dla każdej takiej wartości sprawdzamy, czy jest elementem zbioru i jeżeli jest, zwiększamy licznik. Oto cała tajemnica. Nie muszę chyba dodawać, że funkcja nie jest bardzo uniwersalna — oblicza jedynie liczebność elementów zbioru typu TLitery. Dla zbiorów innego typu musimy napisać kolejne funkcje, nie zapominając o zmianie typu w wywołaniach funkcji Low i High.

Często będziemy wykorzystywać typ zbiorowy dla sprawdzenia, czy wczytany znak należy do zbioru wartości akceptowalnych. Załóżmy, że chcemy wczytać wartość dla typu wyliczeniowego. Każdej możliwej wartości przypisujemy literę, wypisujemy użytkownikowi menu i czekamy na wciśnięcie odpowiedniego znaku. Dużo łatwiej będzie nam sprawdzić, czy litera należy do zbioru liter dopuszczalnych, niż kolejno porównywać z dopuszczalnymi literami.


Wyszukiwarka

Podobne podstrony:
85 (147) Rozdział 4. • Zagadnienia trudniejsze 121 Początek i koniec programu (czyli wpisanie i wypi
71 (199) Rozdział 4. • Zagadnienia trudniejsze 107 która powoduje wydanie dźwięku o zadanej częstotl
73 (179) Rozdział 4. • Zagadnienia trudniejsze 109 Gotowy: Boolean; begin Randomize; Prawidłowe 0; ■
75 (174) Rozdział 4. • Zagadnienia trudniejsze 111uses Crt; var Miesiąc : Byte; NazwaMiesiaca :
77 (175) Rozdział 4. • Zagadnienia trudniejsze 113 Oto przykładowe poprawne deklaracje typów i
81 (160) Rozdział 4. • Zagadnienia trudniejsze 117 Przykładowa deklaracja typu opisującego osobę moż
83 (158) Rozdział 4. • Zagadnienia trudniejsze 119 Readln (Wypos); Samochód.DodatkoweWyposazenieCI]
.... 79 ROZDZIAŁ 7. MODYFIKOWANIE. NAPRAWIANIE I USUWANIE PROGRAMU.. 81 ROZDZIAŁ 8. NAJCZCIEJ ZADAWA
Analiza systemu informacji logistycznej... 169 rozdzielane według oznaczeń zawartych na etykietach
12 Rozdział 1. Zagadnienie transportowe Tablica 1.4. Wyznaczenie rozwiązania początkowego metodą VAM
14 Rozdział 1. Zagadnienie transportowe Tablica 1.6. Rozwiązanie początkowe wyznaczone metodą
16 Rozdział 1. Zagadnienie transportowe1.2.1. Przykład Firma turystyczna dysponuje czterema autobusa
18 Rozdział 1. Zagadnienie transportowe Odczytujemy rozwiązanie optymalne nadając wartość 1 zmiennym
Spis treści Rozdział 1. Zagadnienie transportowe................... 5 1.1.
6 Rozdział 1. Zagadnienie transportowe ZAPAS ZAPOTRZEBOWANIE 1.1.2. Analiza sytuacji
Rozdział 1. Zagadnienie transportowe Rząd macierzy A warunków ograniczających zadania transportowego
IMG 79 136 PolUyka gospodawza trudnienia itp.), zakres nomi zwyczajowych w gospodarce i ich skuteczn

więcej podobnych podstron