zad sprawdzian arytmetyki

background image

Sprawdzian z arytmetyki symboli

1

Cel zadania

Zadanie jest wst˛epem do praktycznego prze´cwiczenia dostosowania formatu i formy wy´swie-
tlania informacji dla własnych typów danych. Ma ono pokaza´c potencjalne mo˙zliwo´sci adapto-
wania operacji na standardowym strumieniu wej´sciowym i wyj´sciowym do własnych potrzeb.
Ma ono równie˙z umo˙zliwi´c zapoznanie si˛e z podstawami konstrukcji klas.

2

Opis zadania

Niniejsze zadanie stanowi kontynuacj˛e zadania wcze´sniejszego. Bazuj ˛

ac na zaimplemento-

wanej strukturze algebraicznej (S, +, ∗) nale˙zy napisa´c program, który b˛edzie testował u˙zyt-
kownika z zakresu arytmetyki symboli. Zbiór operacji nale˙zy rozszerzy´c jeszcze o operacje
odejmowania i dzielenia. Nale˙zy je rozumie´c jako operacje odpowiednio, dodawania elementu
odwrotnego wzgl˛edem operacji “+” oraz mno˙zenie przez element odwrotny wzgl˛edem operacji
“*”.

Program ma zadawa´c pytania o wynik operacji dwuargumentowych. Zapis działa´n, które

maj ˛

a by´c pytaniem dla u˙zytkownika b˛ed ˛

a pobierane z tablicy napisów. Rozmiar tablicy nie

b˛edzie jawnie okre´slony. Znacznikiem ko´nca tablicy b˛edzie wska´znik NULL. Przykladowy
sposób zdefiniowania tej tablicy pokazany jest poni˙zej.

char*

TabDzialan[] = { "a+b", "c*e", "b-d", "c/a", NULL };

U˙zytkownik pownien wprowadza´c odpowiednie symbole, które maj ˛

a by´c wynikiem danej ope-

racji.

Po przeczytaniu ka˙zdej specyfikacji pytania (tzn. pierwszego argumentu, operatora i dru-

giego argumentu operacji) program wy´swietli j ˛

a u˙zytkownikowi, prosi o odpowied´z, przeczyta

j ˛

a i sprawdzi, a po wyczerpaniu wszystkich pyta´n z tablicy wy´swietli statystyk˛e poprawnych

odpowiedzi i zako´nczy prac˛e.

3

Przykład działania programu

bk@noxon: rozwiazanie> ./arytmetyka

? Podaj wynik operacji:

a + b =

Twoja odpowiedz: d

! Blad. Prawidlowym wynikiem jest: c

? Podaj wynik operacji:

c * e =

Twoja odpowiedz: e

! Odpowiedz poprawna

Koniec testu.

Ilosc dobrych

odpowiedzi: 1

Ilosc blednych odpowiedzi: 1

1

background image

Wynik procentowy poprawnych odpowiedzi:

50%

bk@noxon: rozwiazanie>_

4

Struktura danych

W programie powinny zosta´c zdefiniowane klasy: ZbiorPytan, InterpreterOperacji, Statystyka.

ZbiorPytan – modeluje zestaw pytan z kontrolowanym dost˛epem. Obiekt tej klasy powinien

umo˙zliwia´c odczytanie kolejnego pytania.

InterpreterOperacji – modeluje struktur˛e danych z któr ˛

a powi ˛

azana jest operacja interpretacji

działania i przekazania wyniku.

Statystyka – modeluje struktur˛e, która gromadzi informacj˛e o ilo´sci odpowiedzi bł˛ednych i

poprawnych. Pozwala wyliczy´c statystyk˛e procentowej ilo´sci poprawnych odpowiedzi.

5

Podpowiedzi i pomoc

5.1

Jak zaimplementowa´c działania "" i "/"

5.1.1

Wariant mniej ciekawy dla mniej ambitnych

Mo˙zna to przeprowadzi´c analogicznie, tak jak dla operacji dodawania i mno˙zenia korzystaj ˛

ac z

zamieszczonych tabelek działa´n "−" i "/".

Działanie "−" (y − x)

Działanie "

/" (y / x)

e

a

b

c

d

e

e

d

c

b

a

a

a

e

d

c

b

b

b

a

e

d

c

c

c

b

a

e

d

d

d

c

b

a

e

e

a

b

c

d

e

e

e

e

e

a

a

c

b

d

b

b

a

d

c

c

c

d

a

b

d

d

b

c

a

gdzie pusta pole oznacza brak okre´slenia wyniku operacji. Jak wida´c operacja dzielenia przez e
nie jest okre´slona. Odpowiada jej dzielenie przez 0, tzn. element neutralny operacji dodawania.

Nale˙zy zauwa˙zy´c, ˙ze oba działania nie s ˛

a przemienne. Widoczne to jest z postaci tabelek,

które nie s ˛

a symetryczne wzdłu˙z przek ˛

atnej.

5.1.2

Wariant ciekawszy dla bardziej ambitnych

Operacj˛e odejmowania mo˙zna zdefiniowa´c jako operacj˛e dodawania pierwszego argumentu i
warto´sci odwrotnej do drugiego argumenty. Warto´sci odwrotne mo˙zna wyznaczy´c na podstawie
wcze´sniej podanej tabelki dodawania. Analogicznie mo˙zna post ˛

api´c z implementacj ˛

a operacji

dzielenia.

2

background image

5.2

Dodatkowa pomoc

Dodatkowe pomocnicze elementy ułatwiaj ˛

ace rozpocz˛ecie realizacj˛e zadania znale´z´c mo˙zna na

serwerze

diablo

lub

panamint

w katalogu

˜bk/edu/po/zad/z2

. W katalogu tym znajduj ˛

a

si˛e nast˛epuj ˛

ace podkatalogi i pliki:

˜bk/edu/po/zad/z2/.

src1/zalazek1.cpp

src2/zalazek2.cpp

src1/zalazek1.cpp

W pliku tym znajduje si˛e przykładowe przeci ˛

a˙zenie operatora "

>>" dla

strumienia wej´sciowego (

istream

). Mo˙zna go skompilowa´c i przetestowa´c jego działanie. Pro-

ponuje si˛e rozpocz˛ecie pracy od tego pliku i uzupełnienie go o definicj˛e przeci ˛

a˙zenia operatora

"

<<" dla strumienia wyj´sciowego (

ostream

).

Oryginalna wersja pliku

zalazek1.cpp

tworzy program, który prosi u˙zytkownika o wpro-

wadzeniu symbolu (jednej z literek z zakresu od a do e). Nast˛epnie wczytany symbol jest
wy´swietlany w postaci liczby.

Przeci ˛

a˙zenie operatora "

<<" dla

ostream

pozwoli otrzyma´c program, który wy´swietli

symbol, a nie warto´s´c liczbow ˛

a. B˛edzie to mo˙zna uzyska´c bez ingerencji w ciało funkcji

main

.

src1/zalazek2.cpp

Plik ten jest dalszym rozszerzeniem poprzedniego pliku. Znajduje si˛e w

nim definicja klasy

ZbiorPytan

,

InterpreterDzialan

oraz najwa˙zniejsze metody. Ponadto

przedstawiona jest definicja jednej z metod oraz przeci ˛

a˙zenia operatora "−" w wersji propono-

wanej dla bardziej ambitnych. W przypadku pozostałych metod s ˛

a jedynie zapowiedzi definicji.

Udost˛epniony kod zawiera tak˙ze przykład realizacji opisów.

3


Document Outline


Wyszukiwarka

Podobne podstrony:
zad-sprawdzian-arytmetyki
zad-sprawdzian-zespolone
zad 7 sprawdzenie
zad tekst1, Matematyka gimnazjum, sprawdziany-Matematyka gimnzjum, klasa1
matematyka-zad. testowe (na wyr.)(1), Sprawdziany
zad tekstowe sprawdzian kl 2, Zad 1
wm 2011 zad 2
Sprawdzian ubrania i utrata
Instrukcja do zad proj 13 Uklad sterowania schodow ruchom
Matematyka PG PP kl2 MPZ sprawdzian 04A instrukcja
CAD CAM KWPPWPS Zad graf PDF

więcej podobnych podstron