Program zaliczeniowy II
Należy napisać program, który znajduje rozkłady zadanej liczby wymiernej
na podaną liczbę ułamków o liczniku 1. Program powinien:
- Zapytać użytkownika o ułamek.
- Zapytać użytkownika o liczbę składników, na które należy rozłożyć daną liczbę
- Wypisać wszystkie możliwe rozkłady
- Zapytać, czy użytkownik chce zakończyć działanie programu, czy też rozłożyć kolejną liczbę.
Oto przykładowe działanie programu:
Podaj ułamek: 1
Podaj liczbę składników: 3
Znaleziono rozkłady:
1=1/2+1/3+1/6
1=1/2+1/4+1/4
1=1/3+1/3+1/3
Czy chcesz rozłożyć następną liczbę? (t/n): t
Podaj ułamek: 1/3
Podaj liczbę składników: 2
Znaleziono rozkłady:
1/3=1/4+1/12
1/3=1/6+1/6
Czy chcesz rozłożyć następną liczbę? (t/n): n
Dodatkowe wymaganie
Program powinien zawierać klasę, której obiekty reprezentują liczby wymierne
(i korzystać z tej klasy). Ponadto korzystanie z tej klasy powinno być tak wygodne,
jak to tylko możliwe - zalecam wykorzystanie operatorów przeciążonych oraz automatycznych
konwersji.
Na co należy zwrócić uwagę:
- Nie zawsze zadanie jest rozwiązywalne - może się zdarzyć, że mianowniki
pojawiające się w rozkładzie (lub liczby niezbędne do przeprowadzenia rachunków) są większe, niż zakresy typów całkowitych w C++.
W takim przypadku program najlepiej, żeby program wypisał komunikat, że nie wszystkie
rozwiązania zostały znalezione - należy unikać sytuacji, w której wypisywane są błedne rozwiązania
(albo co gorsza program zawiesza się lub kończy z błędem).
- Szybkość działania programu nie jest decydującym czynnikiem, jednak należy zadbać o to, by program
dla niezbyt skomplikowanych danych wykonywał się w rozsądnym czasie.
- W przypadku użycia częsci kodu, który nie został napisany samodzielnie należy to jawnie zadeklarować.
Kryteria oceny
- Poprawność działania. (2 pkt.)
- Użycie klas. (2 pkt.)
- Kod programu. (1 pkt.)
- Funkcje dodatkowe. (1 pkt.) - np. możliwość zapisywania wyników do pliku lub wczytywania z pliku zadań.
Rozwiązania należy nadsyłać na adres ziemians@mimuw.edu.pl w terminie, który zostanie ogłoszony później.
Powodzenia
Krzysztof Ziemiański