|
Forum - Polski Portal COLOBOTa |
|
|
BasicCalc By cezar.512 |
Autor |
Wiadomość |
Raptor
Clever Girl
Twoja ulubiona misja: Raptorowanie
Pomógł: 4 razy Wiek: 24 Dołączył: 26 Cze 2010 Posty: 432 Skąd: Isla Nublar
|
Wysłany: 04-03-2011, 14:51 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.
BasicCalc 1.0 (EXE & Source).7z
|
Pobierz Plik ściągnięto 48 raz(y) 6,3 KB |
|
_________________ - Stężenie czekolady we krwi: 93‰
- Ja to bym zjadł jeszcze batona...
|
Ostatnio zmieniony przez Raptor 07-03-2011, 10:49, w całości zmieniany 1 raz |
|
|
|
|
Simbax
Mod
Twoja ulubiona misja: Wszystkie na Krystalii
Pomógł: 6 razy Wiek: 22 Dołączył: 07 Sie 2009 Posty: 473 Skąd: z Leszna
|
Wysłany: 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 |
_________________ http://projektsimbax.blogspot.com/ <- Taki sobie blog |
|
|
|
|
Raptor
Clever Girl
Twoja ulubiona misja: Raptorowanie
Pomógł: 4 razy Wiek: 24 Dołączył: 26 Cze 2010 Posty: 432 Skąd: Isla Nublar
|
Wysłany: 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ść...
BasicCalc 1.1 (EXE & Source).7z
|
Pobierz Plik ściągnięto 50 raz(y) 6,15 KB |
|
_________________ - Stężenie czekolady we krwi: 93‰
- Ja to bym zjadł jeszcze batona...
|
|
|
|
|
DemoLisH
Zbanowany
Wiek: 24 Dołączył: 20 Kwi 2008 Posty: 273 Skąd: Poznań
|
|
|
|
|
|
|
| |
|
|
|
|
Polski Portal COLOBOTa © 2008 - 2012 |
|
|