Kalkulator z menu tekstowym w Turbo Pascal


(Kasen2) #1

Witam. Muszę napisać program kalkulator, który będzie obliczał: dodawanie, odejmowanie, mnożenie, dzielenie, pole kwadratu, pole prostokąta, pole trójkąta, pole koła. Musi mieć tekstowe menu wybierania, jeżeli ktoś wybierze złą pozycję [takiej, której nie ma w menu] to program ma wyświetlić "wybierz pozycję od 1 do 8" i znowu wyświetlić menu z listą opcji. Trzeba też zabezpieczyć się przed dzieleniem przez 0 w postaci komunikatu np. Nie dziel cholero przez zero :smiley: Do tej pory nastrugałem tyle:

program olbiczanie;

uses crt;

var a,b,h,r,pozycja:integer;

begin

clrscr;

repeat

writeln('1 - Dodawanie 2 - Odejmowanie 3 - Mnozenie 4 - Dzielenie 5 - Pole KW 6 - Pole prostokata 7 - Pole trojkata 8 - Pole kola');

read(pozycja);

IF pozycja<1 THEN writeln('Wybierz od 1 do 8');

IF pozycja>8 THEN writeln('Wybierz od 1 do 8');

until pozycja=1,2,3,4,5,6,7,8;

CASE pozycja OF

1: 


end.

Zatrzymałem się na Case OF, nie wiem jak rozpocząć od 1 ? Jak ktoś mi podpowie jak ma wyglądać początek to dalej sam już analogicznie powinienem dać sobie radę. Czy to będzie dobrze ?

1: Writeln('Zaczynamy dodawanie');

begin

writeln('Podaj a');

read(a);

writeln('Podaj b');

read(b);

writeln('Suma a i b wynosi',a+b); 

readln;

end;

(adpawl) #2

Oj, z pascalem już lat kilka nie miałęm do czynienia ...ale o ile dobrze pamiętam to:

CASE pozycja OF

1: 

Writeln('Zaczynamy dodawanie');

writeln('Podaj a');

read(a);

writeln('Podaj b');

read(b);

writeln('Suma a i b wynosi',a+b); 

readln;

end;


2:

...

end;

(andhla) #3

Pomijając pytanie, taki:

until pozycja=1,2,3,4,5,6,7,8;

zapis chyba nie przejdzie, chyba że to "pseudo kod".


(Kasen2) #4

To jak proponujesz zapisać UNTIL ?


(Fiołek) #5
until pozycja = 1 or pozycja = 2

Tak(tylko więcej warunków)?


(Gina Gina) #6

TP7 ;/

program obliczanie;

uses 

  crt;

var 

  a,b,h,r,pozycja:integer;

begin

  clrscr;


  repeat

    writeln('1 - Dodawanie 2 - Odejmowanie 3 - Mnozenie 4 - Dzielenie'+

    ' 5 - Pole KW 6 - Pole prostokata 7 - Pole trojkata 8 - Pole kola');

    read(pozycja);

    IF pozycja<1 THEN writeln('Wybierz od 1 do 8');

    IF pozycja>8 THEN writeln('Wybierz od 1 do 8');

  until pozycja in [1,2,3,4,5,6,7,8];


  case pozycja of

   1:begin

       writeln('Zaczynamy dodawanie');

       writeln('Podaj a');

       read(a);

       writeln('Podaj b');

       read(b);

       writeln('Suma a i b wynosi ',a+b);

       readln;

     end;

   2:;  

  end; 


end.