Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 Polski Portal COLOBOTa - COLOBOT Polish Portal
Forum - Polski Portal COLOBOTa
Strona głównaStrona główna UżytkownicyUżytkownicy GrupyGrupy StatystykiStatystyki


Poprzedni temat «» Następny temat
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 :P 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&#169; cakowitĄ:');
read(a);
writeln;

writeln('Wybierz typ dziaania, kt˘ry chcesz wykona&#8224;:');
writeln;
writeln('  1. Dodawanie (+)...');
writeln('  2. Odejmowanie (-)...');
writeln('  3. Mnoľenie (*)...');
writeln('  4. Dzielenie (/)...');
read(choose);
writeln;

writeln('Podaj drugĄ liczb&#169; 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&#8224;:');
writeln;
writeln('  1. Kontynuuj...');
writeln('  0. Wyjd&#171;.');
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ń
Wysłany: 10-03-2011, 17:06   

wygląda jak połączenie vb z delphi ;p
_________________
Compiling [Gość.exe]...

Zapraszam na grę zwaną League of Legends:
http://signup.leagueofleg...e98cec278372604
 
 
     
Wyświetl posty z ostatnich:   

Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Polski Portal COLOBOTa © 2008 - 2012