🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.pascal
9 messages
9 total messages Started by Windziarz Mon, 28 Dec 1998 17:12
Program-kalkulator
#449
Author: Windziarz
Date: Mon, 28 Dec 1998 17:12
18 lines
1196 bytes
Czesc

Musze napisac program ktory nasladuje dzialanie prawdziwego kalkulatora.

Chodzi tutaj zeby mozna bylo wpisac liczbe (ograniczona do powiedzmy 4
cyfr)
i zeby program reagowal na nacisniecie klawisza dzialania( np.+ , - )
pozwalajac wtedy na
wpisanie drugiej (niekoniecznie ostatniej) liczby.
Wiem ze musze napisac procedure ktora bedzie sprawdzac po kolei kazdy
wprowadzony
znak i sprawdzac czy jest on klawiszem_dzialania . Ale wlasnie
cos mi w tym momencie nie chce wychodzic.
Napiszcie prosze schemat takiej procedury. Jezeli trzeba to moge
przeslac moje proby napisania takiego czego.
Z gory dziekuje

Windziarz
Re: Program-kalkulator
#450
Author: Maciej "MACiAS" Pilichowski
Date: Mon, 28 Dec 1998 17:54
17 lines
954 bytes
c:=readkey;
if c=#0 then
  klawisz specjalny c:=readkey
else
  if c in ['0'..'9'] then
    mamy klawisz numeryczny
  else
     mamy cos innego




--
Maciej "MACiAS" Pilichowski
http://www.torun.pdi.net/~macias/                   (+48) (0-56) 66-10-242

          r e p l y ' e   w   s r o d y   i   n i e d z i e l e
Re: Program-kalkulator
#451
Author: Marcin 'Qrczak' Kowalczyk
Date: Mon, 28 Dec 1998 20:01
42 lines
2137 bytes
On Mon, 28 Dec 1998, Maciej MACiAS Pilichowski wrote:

> c:=readkey;
> if c=#0 then
>   klawisz specjalny c:=readkey
> else
>   if c in ['0'..'9'] then
>     mamy klawisz numeryczny
>   else
>      mamy cos innego

Proponuję raczej tak:

c := ReadKey;
case c of
    #0 :
        case ReadKey of
            [...]
        end;
    '0'..'9' :
        [...];
    '+','-','*','/' :
        [...];
    '=' :
        [...];
    else
        [...]
end;

Do Windziarza: zastanów się, jakie rzeczy muszą być pamiętane jako
"stan" kalkulatora. Pewnie liczba na wyświetlaczu. Poprzednie działanie
i poprzednia liczba (pierwszy argument działania). Fakt, czy ostatnio był
wciśnięty klawisz z cyfrą (i następna cyfra ma się dopisać do liczby)
czy np. z działaniem (i następna cyfra ma zacząć nową liczbę) - a może
jest jeszcze inny stan? Można to zorganizować różnie (zależnie od tego,
jak kalkulator ma się zachowywać).

-- 
 __("<    Marcin Kowalczyk * qrczak@knm.org.pl http://kki.net.pl/qrczak/
 \__/       GCS/M d- s+:-- a21 C+++>+++$ UL++>++++$ P+++ L++>++++$ E->++
  ^^                W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP->+ t
QRCZAK                  5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-
Re: Program-kalkulator
#454
Author: Tadeusz Drabarek
Date: Tue, 29 Dec 1998 07:57
9 lines
1109 bytes
Cześć.
Kiedyś napisałem taki program. Był to dość rozbudowany kalkulator -
obsługowany także myszką (ale też klaw. numerycznymi).
Oczywiście w trybie tekstowym.
Poszukam, może znajdę, a jak znajdę to Ci prześlę.

Tadeusz

e-mail: tadeuszd@promail.pl
Re: Program-kalkulator
#455
Author: LIAR
Date: Tue, 29 Dec 1998 16:39
41 lines
1863 bytes
Nie wiem czy to w ogóle moze sie Tobie do czegos przydac ale...

program k;

var
        L1, L2, Wynik : real;
        Dzialanie , C : char;
        Blad : Boolean;

begin
        write('Podaj pierwsza liczbe: ');
                readln(L1);
        write('Rodzaj dzialania (+ - * /):');
                readln(Dzialanie);
        write('Podaj druga liczbe: ');
                readln(L2);
    Blad:=false;
                case Dzialanie of
                       '+' : Wynik:=L1+L2;
                        '-' : Wynik:=L1-L2;
                        '*' : Wynik:=L1*L2;
                        '/' : if L2 <> 0 then
                                                Wynik:=L1/L2
                                        else Blad:=true;
                        else
                                Blad:=true
                end;
        if not Blad then
                        writeln(L1,' ',Dzialanie,L2,' = ',Wynik)
        else
                writeln('Pamietaj cholero nie dziel przez zero.');
        readln
end.


Program nie jest mój tylko kolegi.

--------------------------
LIAR
mailto: liar@friko.onet.pl
... jest w porzadku, to ludzie sa trefni.
Re: Program-kalkulator
#456
Author: Jacek Popławski
Date: Wed, 30 Dec 1998 01:43
25 lines
1980 bytes
Windziarz wrote:
>Chodzi tutaj zeby mozna bylo wpisac liczbe (ograniczona do powiedzmy 4
>cyfr)
>i zeby program reagowal na nacisniecie klawisza dzialania( np.+ , - )
>pozwalajac wtedy na
>wpisanie drugiej (niekoniecznie ostatniej) liczby.
>Wiem ze musze napisac procedure ktora bedzie sprawdzac po kolei kazdy
>wprowadzony
>znak i sprawdzac czy jest on klawiszem_dzialania . Ale wlasnie
>cos mi w tym momencie nie chce wychodzic.

Wczytujesz jakiś klawisz, następnie sprawdzasz czy jest to cyfra,
tak długo jak jest - piszesz ją na wyświetlaczu, w momencie,
gdy użytkownik naciśnie jakiś klawisz z działaniem - zaczynasz
wprowadzać drugą liczbę, gdy użytkownik wprowadzi nie-cyfrę - na wyświetlaczu
dajesz wynik, a następnie (jeżeli ostatnie nie było '=') wprowadzasz
trzecią liczbę i tak w nieskończoność
najprościej podzielić sobie klawisze na cyfry i znaki działań
przy wczytywaniu od razu możesz sprawdzić do którego zbioru
należy dany znak

>Napiszcie prosze schemat takiej procedury. Jezeli trzeba to moge
>przeslac moje proby napisania takiego czego.

jeżeli nadal coś ci nie wychodzi - rzuć główną procedurę na grupę
Re: Program-kalkulator
#457
Author: Jarek Kucypera
Date: Wed, 30 Dec 1998 13:27
20 lines
1277 bytes
Windziarz napisa³(a) w wiadomoœci: <3687BBF3.54D70BAF@polbox.com>...
>Czesc
>
>Musze napisac program ktory nasladuje dzialanie prawdziwego kalkulatora.
>
>Chodzi tutaj zeby mozna bylo wpisac liczbe (ograniczona do powiedzmy 4
>cyfr)
>Napiszcie prosze schemat takiej procedury. Jezeli trzeba to moge


Spróbuj pomyslec a tym kalkulatorze jak o automacie, który znajduje sie w
róznych
stanach, na zdarzenia reaguje okreslona akcja i przejsciem z jednego do drugiego
stanu.
Jak juz sobie rozpiszesz wszystkie stany, zdarzenia, akcje i przejscia to
zaprogramowanie
tego bedzie latwe.

J.K.
Re: Program-kalkulator
#452
Author: Buczo
Date: Sat, 02 Jan 1999 19:40
20 lines
1295 bytes
    Maciej "MACiAS" spłodził:
>c:=readkey;
>if c=#0 then
{   ^^^^ co to jest/robi/sprawdza?}
>  klawisz specjalny c:=readkey
>else
>  if c in ['0'..'9'] then
>    mamy klawisz numeryczny
>  else
>     mamy cos innego

TIA!
--                                       /\__/\
hoping ... Buczo                        / \  / \
                                        \'/  \'/
Tomek Wojciak                           /  \/ | \
buczo@leda.3lo.lublin.spamtrap.pl       |     |  \
UIN 7404189                             |      \__\
_________________________________________\_  __  /_____
                                           ``  ``
Re: Program-kalkulator
#453
Author: Marcin 'Qrczak' Kowalczyk
Date: Mon, 04 Jan 1999 18:11
19 lines
1672 bytes
On Sat, 2 Jan 1999, Buczo wrote:

> >c:=readkey;
> >if c=#0 then
> {   ^^^^ co to jest/robi/sprawdza?}

Poczytaj Helpa od ReadKey, powinno być opisane.

(Niektóre klawisze są zwracane jako #0 + inny kod przy następnym ReadKey.)

(To jest zaimplementowane w samym ReadKey, które korzysta z przerwania 16h
zwracającego kod klawisza jako jedno słowo. Niezależnie od tego taki sam
mechanizm jest w DOSowych funkcjach czytających klawiaturę.)

-- 
 __("<    Marcin Kowalczyk * qrczak@knm.org.pl http://kki.net.pl/qrczak/
 \__/       GCS/M d- s+:-- a21 C+++>+++$ UL++>++++$ P+++ L++>++++$ E->++
  ^^                W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP->+ t
QRCZAK                  5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads