#Laboratorium 2
W dzisiejszym zadaniu tworzymy strukturę, posiadającą zarówno dane, jak funkcje. Uczymy się również, jak testować poprawność programu, wykorzystując funkcję assert().
###Ocena dostateczna
- Zadeklaruj strukturę
fraction, składającą się z:- licznika i mianownika, jako zmiennych typu
int, - funkcji
is_correct, typubool.
- licznika i mianownika, jako zmiennych typu
- W funkcji
is_correct, używając operatora? :zwracaj informację, czy pierwiastek jest poprawny, czyli:- mianownik jest różny od zera,
- licznik jest mniejszy od mianownika.
- W funkcji
main(),- pobierz liczbę całkowitą
n, jako argument wiersza poleceń, - zadeklaruj dynamiczny
n-elementowy łańcuch typufraction, - wypełnij go losowymi wartościami z przedziału
<-9;9>
- pobierz liczbę całkowitą
###Ocena dobra
- Używając funkcji
assert(), przekazując do niej wynik funkcjiis_correct(), sprawdź, czy wszystkie wylosowane ułamki są poprawne. - Uzupełnij pętlę, w której losowane były wartości ułamków o zagnieżdżoną pętlę do while, sprawdzającą poprawność ułamka po wygenerowaniu, aby wszystkie testy przeszły pomyślnie.
###Ocena bardzo dobra
- Napisz funkcję
gcd(), odnajdującą największy wspólny dzielnik dwóch liczb całkowitych i użyj jej w napisanej przez Ciebie funkcjishorten(), będącej częścią strukturyfraction(), do skracania ułamka.