kalkulator w pascalu

wirus1910
Użytkownik
Użytkownik
Posty: 393
Rejestracja: 13 wrz 2008, o 16:13
Płeć: Mężczyzna
Lokalizacja: polska
Podziękował: 167 razy

kalkulator w pascalu

Post autor: wirus1910 »

witam mam problem jakies czasem temu zrobilem kalkulator ktory oblicza sin,cos,tag,ctg,log,pierwiastki i kwadraty liczb (oczywiscie wiadomo jeszcze podstawowe dzialania na liczbach)chcialem teraz dodac do niego zeby obliczal pola i obwody kilku figor np.kwadrat,trojkat,prostokat jednak nie wiem teraz jak te opcje dodac do kalkulatorka wczesniejszego.chcialbym rowniez zapetlic go tak aby nie wylaczal sie po zrobieniu jednego obliczenia (po jednym obliczeniu ma wrocic na poczatek czyli do wyboru co chcemy zrobic.bardzo dawno nie bawilem sie w pascalu wiec wszystko zapomnialem musialbym sobie sciagnac jakies dobry kurs mozecie cos polecic.A o to kod tego kalkulatorka

Kod: Zaznacz cały

PROGRAM KALKULATOR;
USES CRT;
LABEL 10,20;
VAR
CZY:CHAR;
A,B,WYNIK:REAL;
WYBOR:WORD;
DZIALANIE:INTEGER;
BEGIN
TEXTCOLOR(9);
CLRSCR;
TEXTCOLOR(RED);
GOTOXY(25,2);  WRITE('KALKULATOR');
TEXTCOLOR(WHITE);
GOTOXY(20,3);  WRITE('ODEJMOWANIE -  1');
GOTOXY(20,4);  WRITE('DODAWANIE   -  2');
GOTOXY(20,5);  WRITE('MNOZENENIE  -  3');
GOTOXY(20,6);  WRITE('DZIELENIE   -  4');
GOTOXY(20,7);  WRITE('LOGARYTM    -  5');
GOTOXY(20,8);  WRITE('PIERWIASTEK -  6');
GOTOXY(20,9);  WRITE('KWADRAT     -  7');
GOTOXY(20,10); WRITE('SINUS       -  8');
GOTOXY(20,11); WRITE('COSINUS     -  9');
GOTOXY(20,12); WRITE('TANGENS     -  10');
GOTOXY(20,13); WRITE('COTANGENS   -  11');
GOTOXY(20,14); WRITE('POLE_KWADRATU   -  12');

TEXTCOLOR(14);
GOTOXY(20,15); WRITE(' DOKONAJ WYBORU  '); READ(WYBOR);
TEXTCOLOR(15);
IF(WYBOR>11)OR(WYBOR<1)THEN
BEGIN
WRITE('DOKONALES ZLEGO WYBOU ');
READLN;
END
else
begin
WRITE('PODAJ PIERWSZA LICZBE  '); READLN(A);
if (wybor <>5)and(wybor <>8)and(wybor <>9)and(wybor <>10)and(wybor <>11) then
   begin
   WRITE('PODAJ DRUGA LICZBE     '); READLN(B);
   end;

CASE WYBOR OF
1: WYNIK:=A-B;
2: WYNIK:=A+B;
3: WYNIK:=A*B;
4: WYNIK:=A/B;
5: WYNIK:=LN(A);
6: WYNIK:=SQRT(A);
7: WYNIK:=SQR(A);
8: WYNIK:=SIN(A);
9: WYNIK:=COS(A);
10: WYNIK:=SIN(A)/COS(A);
11: WYNIK:=COS(A)/SIN(A);
12: WYNIK:=A*A;
END;
DZIALANIE:=WYBOR;
CASE DZIALANIE OF
1: WRITELN('WYNIKIEM DZIALANIA ',A:2:0 ,' - ' ,B:1:0 , '  JEST LICZBA:  ',WYNIK:3:2);
2: WRITELN('WYNIKIEM DZIALANIA ',A:2:0 ,' + ' ,B:1:0 , '  JEST LICZBA:  ',WYNIK:3:2);
3: WRITELN('WYNIKIEM DZIALANIA ',A:2:0 ,' * ' ,B:1:0 , '  JEST LICZBA:  ',WYNIK:3:2);
4: WRITELN('WYNIKIEM DZIALANIA ',A:2:0 ,' / ' ,B:1:0 , '  JEST LICZBA:  ',WYNIK:3:2);
5: WRITELN('LOGARYTM Z LICZBY  ',A:2:0 ,'  WYNOSI:   ',WYNIK:3:2);
6: WRITELN('PIERWIASTEK Z LICZBY ',A:2:0 ,' WYNOSI:  ',WYNIK:3:2);
7: WRITELN('KWADRAT Z LICZBY ',A:2:0 ,' WYNOSI:  ',WYNIK:3:2);
8: WRITELN('SINUS LICZBY ' ,A:2:0 ,' WYNOSI:  ',WYNIK:3:2);
9: WRITELN('COSINUS LICZBY ' ,A:2:0 ,'WYNOSI: ',WYNIK:3:2);
10: WRITELN('TANGENS LICZBY ' ,A:2:0 ,'WYNOSI: ',WYNIK:3:2);
11: WRITELN('COTANGENS LICZBY ' ,A:2:0 ,'WYNOSI: ',WYNIK:3:2);
12: WRITELN('POLE_KWADRATU ' ,A:2:0 ,'WYNOSI: ',WYNIK:3:2);
end;
END;
WRITELN;WRITELN;
readln;
end.
jak nacikam 12 wyskakuje mi dokonales zlego wyboru.
Ostatnio zmieniony 15 lut 2010, o 20:56 przez Szemek, łącznie zmieniany 1 raz.
Powód: Kod należy umieszczać w klamrach [code][/code]!
Awatar użytkownika
mcbob
Użytkownik
Użytkownik
Posty: 479
Rejestracja: 15 gru 2008, o 19:02
Płeć: Mężczyzna
Lokalizacja: Poland
Pomógł: 69 razy

kalkulator w pascalu

Post autor: mcbob »

Nie widać tego twojego kodu a bez niego to trudno ci będzie pomóc.
wirus1910 pisze:chcialbym rowniez zapetlic go tak aby nie wylaczal sie po zrobieniu jednego obliczenia
To zrób nieskończoną pętlę while i po problemie. W niej case'a i w jedej z opcji wstaw break'a.
ODPOWIEDZ