Wątek przeniesiony 2014-02-23 21:12 z Newbie przez furious programming.

Jak zrobić idiotoodporny program?

0

Witam,
jeżeli zły dział to z góry przepraszam i proszę o przeniesienie.
Pracuję właśnie nad aplikacją mobilną - zbitka wielu programów matematycznych (konwertery, kalkulatory itd). Od dłuższego czasu siłuję się z testami aplikacji, żeby uczynić ją "idiotoodporną". Całość opiera się na wpisywaniu działań i późniejszym obliczeniu po naciśnięciu odpowiedniego przycisku. Jakie wyjątki powinienem opanować? Mam zrobione:
-działanie kończy się znakiem, nie liczbą
-nie można dać dwóch znaków pod rząd
-brak powielania kropki
-jeżeli działanie zaczyna się od kropki automatycznie dopisuję zero
Więcej nic mi nie przychodzi do głowy.
Zdaję sobie sprawę, że temat jest dosyć nietuzinkowy i może wydać Wam się dziwny. Mimo wszystko proszę o pomoc, żeby udało mi się jak najbardziej zminimalizować ryzyko crasha.
Pozdrawiam
2GRF

1

Ztymi dwoma znakami pod rząd to nie do końca nie można, co jak ktoś będzie chciał prowadzić działania na liczbach ujemnych?

1

to nie jest idiotoodporność tylko zwykłe testy.
Spróbuj coś takiego:
.+.
)(
1+()
()+1
(1+2))
((1+2)
(.)(.) <-- test cycków
.(2) <-- nie wiem czy obsługujesz liczby w okresie, jeśli nie to powinno wywalić
(1).(2)
1.(-2)
.-2

1

Zobacz sobie jak działa inny kalkulator, przetestuj, może zaglądnij do źródeł jakie on ma wyjątki. Ja sobie cenię mate-calc (przygarnięty GCalctool). Wpisujesz cokolwiek zechcesz, a parser robi swoje ;)

zrzut_ekranu.png

3

Zbyt rygorystyczne wyłapywanie błędów może być upierdliwe.
Jeśli to ma być kalkulator "dla ludzi", czasami lepiej wyświetlić jednak coś, niż walić błędami przy każdej literówce.

.+. = 0
)( = 0
1+() = 1
()+1 = 1
(1+2)) = 3
((1+2) = 3
(.)(.) = 0

zwykły kalkulator (najzwyklejszy) nie ma czegoś takiego jak błąd składni. wszystko zostanie JAKOŚ zinterpretowane.

0
2GRF Studio napisał(a):

-nie można dać dwóch znaków pod rząd

Z jednym wyjątkiem:
2*2== daje 8

1 użytkowników online, w tym zalogowanych: 0, gości: 1