|
Polski Portal COLOBOTa COLOBOT Polish Portal |
|
Turbo Pascal, Delphi Pascal - BasicCalc By cezar.512
Raptor - 04-03-2011, 14:51 Temat postu: BasicCalc By cezar.512 Oto kolejny, niezbyt oryginalny program, który powstał na potrzeby dostania piątki na informatyce.
Więc tak. Ostatnio przerabialiśmy algorytmikę i padło tam zagadnienie Pascal. Od razu przypomniałem sobie, co wiem na temat tego środowiska i że ono w ogóle istnieje. I tak oto, dzięki Pannie B. zmotywowałem głowę swą, by nauczyć się tego języka. Jak już nieco poznałem się na środowisku, postanowiłem napisać program według scenariusza Panny B.: „Stwórz program, który pyta się o dwie liczby, a następnie podaje wynik mnożenia tych liczb”. Pomyślałem sobie: „To takie proste, że nawet na dwóję moja praca nie zasługuje. Zrobię więc cały kalkulator!”.
Niestety moja obecna wiedza na temat Pascal jest dość uboga, więc na razie wygląda on tak:
BasicCalc 1.0:
Kod: | USES CRT;
VAR
a,b,choose:longint;
LABEL start;
BEGIN
write('BasicCalc 1.0 By cezar.512.');
readln;
start:
clrscr;
writeln('Wybierz typ dziaˆania, kt˘ry chcesz wykona†:');
writeln;
writeln(' 1. Dodawanie (+)...');
writeln(' 2. Odejmowanie (-)...');
writeln(' 3. Mnoľenie (*)...');
writeln(' 4. Dzielenie (/)...');
writeln(' 0. Wyj˜cie.');
read(choose);
clrscr;
if choose=1 then
BEGIN
writeln('Podaj pierwszĄ liczb© caˆkowitĄ:');
read(a);
writeln;
writeln('Podaj drugĄ liczb© caˆkowitĄ:');
read(b);
writeln;
writeln('Wynik dodawania liczb ',a,' i ',b,' to ',a+b,'.');
writeln(a,'+',b,'=',a+b);
writeln;
writeln('Wybierz, czy chcesz wyj˜†:');
writeln;
writeln(' 1. Kontynuuj...');
writeln(' 0. Wyjd«.');
read(choose);
if choose=1 then goto start;
if choose=0 then halt;
END;
if choose=2 then
BEGIN
writeln('Podaj pierwszĄ liczb© caˆkowitĄ:');
read(a);
writeln;
writeln('Podaj drugĄ liczb© caˆkowitĄ:');
read(b);
writeln;
writeln('Wynik odejmowania liczb ',a,' i ',b,' to ',a-b,'.');
writeln(a,'-',b,'=',a-b);
writeln;
writeln('Wybierz, czy chcesz wyj˜†:');
writeln;
writeln(' 1. Kontynuuj...');
writeln(' 0. Wyjd«.');
read(choose);
if choose=1 then goto start;
if choose=0 then halt;
END;
if choose=3 then
BEGIN
writeln('Podaj pierwszĄ liczb© caˆkowitĄ:');
read(a);
writeln;
writeln('Podaj drugĄ liczb© caˆkowitĄ:');
read(b);
writeln;
writeln('Wynik mnoľenia liczby ',a,' przez ',b,' to ',a*b,'.');
writeln(a,'*',b,'=',a*b);
writeln;
writeln('Wybierz, czy chcesz wyj˜†:');
writeln;
writeln(' 1. Kontynuuj...');
writeln(' 0. Wyjd«.');
read(choose);
if choose=1 then goto start;
if choose=0 then halt;
END;
if choose=4 then
BEGIN
writeln('Podaj pierwszĄ liczb© caˆkowitĄ:');
read(a);
writeln;
writeln('Podaj drugĄ liczb© caˆkowitĄ:');
read(b);
writeln('Wynik dzielenia liczby ',a,' przez ',b,' to ',a/b,'.');
writeln(a,'/',b,'=',a/b);
writeln;
writeln('Wybierz, czy chcesz wyj˜†:');
writeln;
writeln(' 1. Kontynuuj...');
writeln(' 0. Wyjd«.');
read(choose);
if choose=1 then goto start;
if choose=0 then halt;
END;
if choose=0 then
BEGIN
write('Koniec programu. Autor - cezar.512.');
delay(2000);
END;
END. |
Mimo oczywistego dostania piątki (dziś!), chcę dalej rozwijać ten program ze względów nauki (no bo do czego innego jest on teraz przydatny? Zresztą calc.exe w Windows jest lepszy).
Czekam więc na opinie.
Simbax - 04-03-2011, 15:54
Boże, program zapchany tym samym kodem w kilku miejscach... To jest strata miejsca i czasu.
Najpierw zapytaj użytkownika o dwie liczby. Później mu każ wybierać rodzaj działania. Popatrz jaka to oszczędność. Zamiast w czterech różnych miejscach wstawiać ten sam kod wstawiasz go raz. Tak samo kod na wyjście. Umieść go na końcu programu! Po wykonaniu działania automatycznie program przechodzi dalej.
BTW Zmotywowałeś mnie do ponownej nauki Pascal-a Jak się nie potrafię wsiąść za C++, to co mi szkodzi Właściwie to jedyne czego muszę się jeszcze nauczyć to obsługi myszki
Raptor - 05-03-2011, 22:33
Spojrzałem jeszcze raz na kod swojego programu, pomyślałem logicznie (Niebywałe! Miałem wenę ) i faktycznie! Za dużo tego kodu. Przez chwilę myślałem, że nie mam wystarczająco dużo wiedzy, by to zoptymalizować, aż tu nagle zjawiła się Myśl, która mną wzdrygnęła! Tak więc oto narodziła się wersja 1.1 mego programu:
BasicCalc 1.1:
Kod: | USES CRT;
VAR
a,b,choose:longint;
LABEL start;
BEGIN
write('BasicCalc 1.1 By cezar.512.');
readln;
start:
clrscr;
writeln('Podaj pierwszĄ liczb© cakowitĄ:');
read(a);
writeln;
writeln('Wybierz typ dziaania, kt˘ry chcesz wykona†:');
writeln;
writeln(' 1. Dodawanie (+)...');
writeln(' 2. Odejmowanie (-)...');
writeln(' 3. Mnoľenie (*)...');
writeln(' 4. Dzielenie (/)...');
read(choose);
writeln;
writeln('Podaj drugĄ liczb© cakowitĄ:');
read(b);
clrscr;
if choose=1 then
BEGIN
writeln('Wynik dodawania liczb ',a,' i ',b,' to ',a+b,'.');
writeln(a,'+',b,'=',a+b);
END;
if choose=2 then
BEGIN
writeln('Wynik odejmowania liczb ',a,' i ',b,' to ',a-b,'.');
writeln(a,'-',b,'=',a-b);
END;
if choose=3 then
BEGIN
writeln('Wynik mnoľenia liczby ',a,' przez ',b,' to ',a*b,'.');
writeln(a,'*',b,'=',a*b);
END;
if choose=4 then
BEGIN
writeln('Wynik dzielenia liczby ',a,' przez ',b,' to ',a/b,'.');
writeln(a,'/',b,'=',a/b);
END;
writeln;
writeln('Wybierz, czy chcesz wyj†:');
writeln;
writeln(' 1. Kontynuuj...');
writeln(' 0. Wyjd«.');
read(choose);
if choose=1 then goto start;
if choose=0 then
BEGIN
clrscr;
write('Koniec programu. Autor - cezar.512.');
delay(2000);
END;
END. |
Mam nadzieję, że się chociaż trochę podoba. Ale krytyki nie mam jeszcze dość...
DemoLisH - 10-03-2011, 17:06
wygląda jak połączenie vb z delphi ;p
|
|