#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.