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
Jak zrobić idiotoodporny program?
Wątek przeniesiony 2014-02-23 21:12 z Newbie przez flowCRANE.
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
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?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2520
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
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6968
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 ;)

- Rejestracja: dni
- Ostatnio: dni
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.
- Rejestracja: dni
- Ostatnio: dni
2GRF Studio napisał(a):
-nie można dać dwóch znaków pod rząd
Z jednym wyjątkiem:
2*2== daje 8