10.07.2015 Views

Sprawdzian z arytmetyki liczb zespolonych 1 Cel zadania

Sprawdzian z arytmetyki liczb zespolonych 1 Cel zadania

Sprawdzian z arytmetyki liczb zespolonych 1 Cel zadania

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Sprawdzian</strong> z <strong>arytmetyki</strong> <strong>liczb</strong> <strong>zespolonych</strong>1 <strong>Cel</strong> <strong>zadania</strong>Utrwalenie umiejętności implementowania przeciążeń operatorów arytmetycznych oraz operatorówumożliwiających działanie na strumieniach wejściowych i wyjściowych. Zadania marównież umożliwić przećwiczenie operacji na plikach oraz tworzenie własnych klas i metod.2 Opis <strong>zadania</strong>Należy napisać program, który umożliwia wykonanie prostego sprawdzianu z <strong>arytmetyki</strong> <strong>liczb</strong><strong>zespolonych</strong>. <strong>Sprawdzian</strong> ma dotyczyć operacji dodawania, odejmowania, mnożenia i dzielenia.Zakłada się, że zestawy pytań dostępny jest w co najmniej jednym pliku. Przykładowyzapis wyrażeń takim pliku podany jest poniżej.(4.2+2i)+(0+2i)(3-0i)*(-1+2.1i)(0-4i)/(3-1i).W zapisie tym dla ułatwienia zachowanych jest kilka reguł:• każda <strong>liczb</strong>a zespolona zawsze zapisywana jest w nawiasach półokrągłych,• zawsze występuje <strong>liczb</strong>a oznaczająca część rzeczywistą, niezależnie od tego czy jest onaróżna od zera, czy też równa jest zeru,• zawsze występuje <strong>liczb</strong>a oznaczająca część urojoną, niezależnie od tego czy jest onaróżna od zera, czy też równa jest zeru,• zestaw pytań zakończony jest znakiem kropki.Zakładamy że użytkownik, jako odpowiedzi, wprowadza <strong>liczb</strong>y zespolone zgodnie z drugą itrzecią regułą (bez nawiasów). Ponadto program powinien umożliwić stworzenie pliku z testem.2.1 Opis działania programuProgram powinien udostępniać proste menu, w którym udostępnia następujące operacje:• uruchomienie testu, dla którego zestaw operacji arytmetycznych znajduje się w pliku“test_<strong>arytmetyki</strong>_zespolonej.txt“,• uruchomienie testu po uprzednim podaniu nazwy pliku przez użytkownika,• utworzenie własnego pliku testowego,• koniec działania programu.W trakcie realizacji testu program wyświetla kolejne wyrażnie i pyta użytkownika o wynik operacji.Udzieloną odpowiedź sprawdza z poprawnym wynikiem. W przypadku poprawnej odpowiedzi,potwierdza ten fakt, zaś w przypadku błędnej odpowiedzi stwierdza ten fakt i podaje1


Blad wprowadzenia wartosci. Sprobuj jeszcze raz.Twoja odpowiedz: -2+4.6i! Odpowiedz poprawnaWykryto w pliku bledny zapis operacji. Zostala ona pominieta.? Podaj wynik operacji: (1-4i) / (0-2i) =Twoja odpowiedz: 2+0.5i! Odpowiedz poprawnaWykryto w pliku bledny zapis operacji. Zostala ona pominieta.? Podaj wynik operacji: (1+2i) - (1-2i)Twoja odpowiedz: 0+4i! Odpowiedz poprawnaWykryto w pliku bledny zapis operacji. Zostala ona pominieta.? Podaj wynik operacji: (0+0i) * (1241-2890i)Twoja odpowiedz: 0+0i! Odpowiedz poprawnaKoniec testu.Ilosc dobrych odpowiedzi: 3Ilosc blednych odpowiedzi: 1Wynik procentowy poprawnych odpowiedzi: 75.0%Twoj wybor (w - menu)> wt - Uruchom test: test_<strong>arytmetyki</strong>_zespolonej.txtp - Uruchom test z innego plikuu - Utworz testw - Wyswietl menuk - Koniec dzialania programuTwoj wybor (w - menu)> pPodaj nazwe pliku> /usr/test.txtBlad otwarcia pliku. Plik nieistieje lub brak jestzezwolenia na jego czytanie.Twoj wybor (w - menu)> pPodaj nazwe pliku> test.txtPlik zostal otworzony poprawnie.Test zostal uruchomiony.3


? Podaj wynik operacji: (1+1i) * (1+1i)Twoja odpowiedz: 0+2i! Odpowiedz poprawnaKoniec testu.Ilosc dobrych odpowiedzi: 1Ilosc blednych odpowiedzi: 0Wynik procentowy poprawnych odpowiedzi: 100.0%Twoj wybor (w - menu)> uPodaj nazwe pliku, w ktorym ma byc zapisana tresc test.Nazwa pliku> /usr/nowy_test.txtBlad otwarcia do zapisu. Podana zostala bledna lokalizacjalub brak jest zezwolenia na zapis w podanym miejscu.Twoj wybor (w - menu)> uPodaj nazwe pliku, w ktorym ma byc zapisana tresc test.Nazwa pliku> nowy_test.txtPlik zostal poprawnie otworzony do zapisu.Zakonczenie wprowadzania wyrazen poprzez podanie znaku kropki.Wpisz wyrazenie> (a+5i)+(3+2i)Blednie wprowadzony jeden z argumentow.Wyrazenie nie zostalo zapisane do pliku.Wpisz wyrazenie> (1+5i)i(3+2i)Blednie wprowadzony operator.Wyrazenie nie zostalo zapisane do pliku.Wpisz wyrazenie> (1+5i)+(3+2i)Wpisz wyrazenie> (2+0i) * (2+1i)Wpisz wyrazenie> .Tworzenie testu zakonczoneTwoj wybor (w - menu)> kKoniec dzialania programu.jkowalsk@noxon: rozwiazanie>_Poniżej przedstawiona jest zawartość pliku test_<strong>arytmetyki</strong>_zespolonej.txt aby móc porównaćprzebieg działania programu z tym co jest w pliku.(1.2+2i) + (0+2i)(2-0i) * (-1+1.3i)4


(2-0i) & (-1+1.3i)(1-4i) / (0-2i)(C-0i) + (-1+1.3i)(1+2i) - (1-2i)[1-0i] * [-1+1.3i](0+0i) * (1241-2890i).4 Struktura programuNależy przemyśleć realizację programu pod kątem wprowadzenia odpowiednich struktur danychwraz z metodami, które grupują wspólne mechanizmy związane z operacjami na tychdanych. W szczególności dotyczy to liczenia statystyki, jak też <strong>liczb</strong> <strong>zespolonych</strong>. Programpowinien mieć strukturę modułową. W katalogu:~bk/edu/po/zad/z3/prog_i_moduludostępniony został zestaw plików wraz całą strukturą katalogów oraz plik Makefile. Możnaprzekopiować całą strukturę i odpowiednio dostosować do własnego programu.UWAGA: Pliki źródłowe powinny być w katalogu src, zaś pliki nagłówkowy w katalogu inc,tak jak to jest w dostarczonym przykładzie. Pliki obiektowe tworzone podczas kompilacji powinnybyć zapisywane w katalogu obj.Nad wyraz złym rozwiązaniem jest umieszczanie wszystkich wyżej wymienionych plików wjednym katalogu.5 Warianty <strong>zadania</strong>W zależności od własnych możliwości można wybrać realizację podstawowego wariantu <strong>zadania</strong>lub jednego z wariantów uproszczonych. Te ostatnie będą oceniane odpowiednio niżej.Można też wybrać realizację warianu w wersji ciekawszej, co implikuje możliwość otrzymaniawyższej oceny.5.1 Wariant ciekawszyRozszerzenieniem <strong>zadania</strong> jest możliwość czytania <strong>liczb</strong> <strong>zespolonych</strong> w skróconej notacji, którapomija <strong>liczb</strong>ę zero oraz jedynkę. Tak więc taki program powinien umieć odczytać następującewyrażenia:(1.2+2i)+(2i)(2)*(-1+2.3i)(-4i)/(3-i)5.2 Wariant uproszczonyOcena nie więcej niż 4,5.Program nie musi umożliwiać tworzenie własnego testu.5


5.3 Wariant bardzo uproszonyOcena nie więcej niż 4,0.Program nie musi mieć żadnego menu. Jego uruchomienie powoduje jednocześnie uruchomienietestu test_<strong>arytmetyki</strong>_zespolonej.txt.5.4 Wariant bardzo, ale to bardzo uproszonyOcena nie więcej niż 3,5.Program nie musi mieć żadnego menu oraz nie musi rozpoznawać błędów zapisu wyrażeń. Jegouruchomienie powoduje jednocześnie uruchomienie testu test_poprawny_<strong>arytmetyki</strong>.txt.Plik ten nie zawiera żadnych błędów.6 Pomocne zasobyW kartotece ~bk/edu/po/zad/z3 oprócz podkartoteki prog_i_modul znajdują się równieżpliki test_<strong>arytmetyki</strong>_zespolonej.txt oraz test_poprawny_<strong>arytmetyki</strong>.txt.6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!