Witam!
Miałam zadanie napisac program, który sprawdza umiejętności dodawania, odejmowania, dzielenia, mnożenia, dzielenia całkowitego i potęgowania. Problem polega na tym, że nie wiem jak rozwiązac kwestię dzielenia. W końcu użytkownik nie jest zdolny do wpisania rzeczywistego wyniku jaki sobie pascal wyliczy i przez to zawsze wpisany wyniki przez użytkownika uznany jest za nieprawidłowy. Czy ktoś może mi pomóc poprawic ten blad w programie?
Pascal - problem z dzieleniem.
Pascal - problem z dzieleniem.
Każ użytkownikowi podać wynik z dokładnością, np. do drugiego miejsca po przecinku, a potem zrób
Kod: Zaznacz cały
if abs(d-liczba1/liczba2) <= 0.005 then
dobrze
else
źle
- zolza_20
- Użytkownik
- Posty: 3
- Rejestracja: 31 gru 2010, o 00:19
- Płeć: Kobieta
- Lokalizacja: Wrocław
- Podziękował: 1 raz
Pascal - problem z dzieleniem.
Dziękuję bardzo za pomoc. Mam tylko pytanie, dlaczego została użyta funkcja do wartości bezwzględnej? Jest możliwośc zrobienia tego w inny sposób np. za pomocą funkcji round()?
P.S.
Dlaczego jak wpisuję wynik, to muszę wcisnąc dwa razy 'enter', aby program poszedł dalej?
-- 31 gru 2010, o 11:09 --
Aaa, mam jeszcze jedno pytanie. Jak zrobic, aby losowo wybierał rodzaj działania, które zada użytkownikowi?
P.S.
Dlaczego jak wpisuję wynik, to muszę wcisnąc dwa razy 'enter', aby program poszedł dalej?
-- 31 gru 2010, o 11:09 --
Aaa, mam jeszcze jedno pytanie. Jak zrobic, aby losowo wybierał rodzaj działania, które zada użytkownikowi?
- Inkwizytor
- Użytkownik
- Posty: 4105
- Rejestracja: 16 maja 2009, o 15:08
- Płeć: Mężczyzna
- Lokalizacja: Poznań
- Podziękował: 1 raz
- Pomógł: 428 razy
Pascal - problem z dzieleniem.
Bo wyliczasz bład względny. A wynik podany od rzeczywistego może się różnić "w górę" albo "w dół" to żeby nie pisac dwóch przypadków wrzuca się to pod wartośc bezwględną.zolza_20 pisze:Dziękuję bardzo za pomoc. Mam tylko pytanie, dlaczego została użyta funkcja do wartości bezwzględnej?
A jak chcesz inaczej zaokrąglać wynik skoro masz gotową funkcję zaokrąglającą?zolza_20 pisze: Jest możliwośc zrobienia tego w inny sposób np. za pomocą funkcji round()?
Ja bym przeanalizował ilośc użyć readln. Zapewne masz na końcu procedury i jak wciśniesz raz to wychodzisz z procedury i program "wpada" na kolejną linijkę readln.zolza_20 pisze: Dlaczego jak wpisuję wynik, to muszę wcisnąc dwa razy 'enter', aby program poszedł dalej?
Osobiście bym zrobił tak:zolza_20 pisze: Jak zrobic, aby losowo wybierał rodzaj działania, które zada użytkownikowi?
- każde działanie w osobnej funkcji/procedurze
- w procedurze test zmienna losowa (0,4> i teraz dzielisz na 4 przedziały o długości 1 (wynik obcinasz do części całkowitej)
- w zalezności od tego do którego przedziału wpadnie zmienna losowa tę funkcje (przypisaną danemu przedziałowi) uruchamiasz. Piękne pole do popisu dla instrukcji case
- zolza_20
- Użytkownik
- Posty: 3
- Rejestracja: 31 gru 2010, o 00:19
- Płeć: Kobieta
- Lokalizacja: Wrocław
- Podziękował: 1 raz
Pascal - problem z dzieleniem.
No cóż, zostało mi tylko podziękowac za próbę pomocy. Pozdrawiam.
Ostatnio zmieniony 31 gru 2010, o 12:46 przez zolza_20, łącznie zmieniany 1 raz.
- Inkwizytor
- Użytkownik
- Posty: 4105
- Rejestracja: 16 maja 2009, o 15:08
- Płeć: Mężczyzna
- Lokalizacja: Poznań
- Podziękował: 1 raz
- Pomógł: 428 razy
Pascal - problem z dzieleniem.
Fora dyskusyjne mają to do siebie że wymienia sie opiniami, odpowiada na pytania, pomaga. Jednak czasami pomoc jest uzalezniona od precyzyjnego postawienia problemu lub jasnego przekazania CZEGO DOKŁADNIE się nie rozumie. Tak więc zamiast tracic czas na nic nie wnoszące wpisy lepiej chyba skonkretyzować to czego nie rozumiesz w moim wpisie?
Prosiłbym byś również zdecydował(a) się co do płci ("kretyn" jest rodzaju męskiego )...
p.s. zanim cos napiszesz, zapoznaj się z instrukcją case
Prosiłbym byś również zdecydował(a) się co do płci ("kretyn" jest rodzaju męskiego )...
p.s. zanim cos napiszesz, zapoznaj się z instrukcją case