Laboratorium 11 (Operatory)

Transkrypt

Laboratorium 11 (Operatory)
Zaawansowane j¦zyki programowania
Laboratorium 11 (Operatory)
Zadanie 1 (0.5 pkt). Napisz p¦tl¦ rownowa»n¡ poni»szej p¦tli f or bez korzystania z operatorów
&& i ||.
for(i=0; i < lim
−
1 && (c=getchar()) != '\n' && c != EOF; ++i)
Je±li mowa o operatorach w ksi¡»kach to poruszane s¡ dwie kwestie: Pierwsza z nich to kolejno±¢
wykonywania, druga za± to zjawisko przeci¡»ania operatorów. Przeci¡»anie operatorów to metoda
na znaczenie podstawowych znanych operatorów w sytuacji, gdy ich argumentami s¡ obiekty zdeniowane przez programist¦. W j¦zykach C++,C# przeci¡»anie operatorów wykonuje si¦ przez u»ycie
sªowa kluczowego
.
znajduje si¦ prosty program w
, który przeci¡»a operator
dodawania dla liczb zespolonych.
operator Tutaj
C++
Zadanie 2 (1 pkt). Napisa¢ obiekt (klas¦, struktur¦) dla uªamka zwykªego nieskracalnego postaci ab .
Nast¦pnie zdeniowa¢ operacje: dodawania, odejmowania, mno»enia, dzielenia u»ywaj¡c specjalnie
zdeniowanych funkcji, a nast¦pnie przy u»yciu przeci¡»ania operatorów. Wykona¢ dziaªania na
bardzo du»ych uªamkach i sprawdzi¢ czas dziaªania wybranej operacji przy u»yciu obydwu metod.
: Aby otrzyma¢ uªamek nieskracalny b¦dziemy potrzebowa¢ najwi¦kszego wspólnego
dzielnika liczb a, b czyli algorytmu Euklidesa.
Wskazówka
W wi¦kszo±ci j¦zykach programowania istnieje reprezentacja zbioru matematycznego. Jednak w j¦zykach niskiego poziomu np.:
denicja zbioru i podstawowych na
nim operacji spoczywa na programi±cie. Jednym ze sposobów reprezentowania zbioru jest u»ycie
tzw. jego funkcji charakterystycznej. Wówczas zbiór uto»samiany jest z ci¡giem bitów o rozmiarze
n, gdzie n jest maksimum danego zbioru. Na przykªad zbiór {1, 3} jest reprezentowany przez ci¡g
101, zbiór {1, 5, 7} przez 1000101 itd.
ADA,ANSI C,FORTRAN,
ZADANIE DOMOWE
Zadanie 3 (1.5 pkt). Napisa¢ program, który b¦dzie obsªugiwaª zbiory np.: {1, 3, 4} {2, 5}, {∅}.
Program ma tworzy¢, usuwa¢ zbiory i dokonywa¢ podstawowych operacji, takich jak: suma (znak
+), przekrój (znak ∗) ró»nic¦ (znak \) oraz ró»nice symetryczn¡ (znak 4).
Przykªadowe dziaªanie programu:
A = {1, 2, 3, 4, 5}
B = {2, 4, 6}
A + B = {1, 2, 3, 4, 5, 6}
A ∗ B = {2, 4}
A\B = {1, 3, 5}
B\A = {6}
A4B = {1, 2, 3, 5, 6}
Wskazówka: Ró»nica symetryczna nie musi by¢ u»ywana przez zjawisko przeci¡»enia operatorów.
Program powinien wypisywa¢ zbiory uporz¡dkowane.
TERMIN: Dzie« przed kolejnym laboratorium, godz. 23.59.
Rozwi¡zania przesªa¢ na adres: [email protected]