![]() |
Wydaje mi sie ze koncepcyjnie kalkulator powinien dzialac tak ze:
pyta sie o liczbe, pyta sie o dzialanie, pyta sie o liczbe (wykonuje dzialanie, zwraca liczbe), pyta sie o dzialanie, pyta sie o liczbe (wykonuje dzialanie na poprzedniej liczbie z parametrem w postaci nowej) itd.. W kazdym miejscu trzeba pamietac np. o dzieleniu przez 0 i innych rzeczach. Z typami bedzie troche zabawy, ale da sie to jakos sprytnie zrobic, jak np. sposob powyzej (nie wiem tylko co pascal odpowie 2 < 2.00 , mam nadzieje ze tak jak sie spodziewamy). Poza tym jest taki troche drazliwy temat: Jak 1 podzielimy przez 3, spytamy sie o wynik bedzie 0.(3) i teraz jak to pomnozymy przez 3 to obawiam sie ze bedzie 0.(9) a nie 1 (chociaz obie liczby zbiegaja do 1 to jednak druga reprezentacja jest znacznie przyjemniejsza). Fakt faktem ten defekt wystepuje rowniez w wiekszosci kalkulatorow, wiec nasz bedzie z nimi kompatybilny :) |
Trzeba jeszcze zrobic petle że dopoki readln nie zwroci 0 to ma pytac kolejno: liczba->dzialanie->liczba->działanie(...)->liczba->działanie...
I dobrze by było w międzyczasie podawać wynik, coś w tym stylu: 0 liczba: 2 działanie: * liczba: 2 4 dzialanie: + liczba: 2 6 dzialanie: |
Jest sobie takie zadanko w Delphi:
Cytat:
thx4help :) ..::Update::.. OK, problem rozwiązany poprzez wstawienie przed każdym sleepem Kod:
Application.ProcessMessages; Qrde nie do konca to dobrze działa...animacja kulki się "rwie" :ysz: |
użyj komponentu timer :D albo uruchom sleepa w drugim wątku :D wydaje mi się ze tym drugim sposobem bardziej przybajerujesz :D
|
Wszystkie czasy w strefie CET. Aktualna godzina: 21:37. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.