piątek, 30 listopada 2007

Pascal vs. C++

Zgodnie z zaleceniami deweloperów..., którzy starzy są i życie znają, w dodatku z Rosji,a chyba każdy wie skąd najlepsi hakerzy są ;]

Zrobiłem sobie taki mały pojedynek, na języki programowania. Napisałem sobie 2 programy, które mają robić to samo ;], tzn. każdy z nich prosi o 2 liczby rzeczywiste, wybieramy jeden z 4 rodzajów działań i dostajemy wynik. Ale, jak to przystało na porządny program, oba sprawdzają czy czasem nie chcemy dzielić przez 0, a także uprzejmie pytają czy nie chcemy powtórzyć naszych obliczeń dla innych liczb.
Z praktycznego punktu widzenia,programy nie są żadnym odkryciem, wręcz przeciwnie, wg.mnie pochodzą z epoki kamienia łupanego, ale od czegoś trzeba zacząć, w sumie nic tak nie pomaga w nauce jak teoria, nawet nie jesteście sobie w stanie wyobrazić jak długo można myśleć jak w C++ zmienić małą literę na dużą ;] np.t na T, przyzwyczajenia z Pascala mówią szukaj funkcji:p ,ale niee tak łatwo nie ma wszystkie jakie znalazłem dla C++ coś nie chciały zadziałać poprawnie no to, po X czasu wymyśliłem

if (w == 't') w = 'T';


Genialny kod co nie, tak wiem też jestem z niego dumny;] CO dziwne najwięcej problemów sprawiły mi wyrażenia boolowskie, tak różne w obu językach, więc ku pamięci "<>" = "!=", "OR" = "||".
A teraz wyniki, oba programy zostały skompilowane w systemie Windows, uruchomione w konsoli tegoż systemu ( 3 140 KB pamięci), program w Pascalu ma 35 linijek kodu, tyle samo ma program w C++, ale jest bardziej rozbudowany, sprawdza czy aby nie chcemy go oszukać podając błędne działanie, ale w sumie mała różnica. Czyli oba programy kodowo wychodzą podobnie, ale subiektywie patrząc na kod to czytelniejszy jest ten z Pascala, tam wszystko jest tak łopatologiczno jasne. Zresztą sprawdźcie sami:
Pascal:
if d='/' then
begin
if b <> 0 then
writeln('A / B = ',a/b:0:2)
else writeln('Lepiej nie dziel przez 0');
end;


C++ :
if (c == '/') {
if (b != 0) {
cout << a <<"/"<< b <<"="<< a/b;}
else
cout << "Nie mozna dzielic przez 0"; }
}



A teraz trochę liczb z środowiska, skompilowany program w pascalu (Free Pascal dla i386) ma 65,7 KB, a jego odpowiednik w C++(G++ w wxDev-++), aż 477 KB. Hmmm... ciekawe skąd ta różnica, po uruchomieniu programów też ją zauważamy, pascal uruchomiony w cmd ma 3 320KB, C++ w tym samym okienku ma 3 364KB, tutaj mogła przeważyć wielkość zmiennych, te z C++ są po prostu pojemniejsze.

Werdykt:
Babcia miała rację, choć C++ razi prehistorycznego człowieczka wywodzącego się z epoki Pascala pisanego, to ma ogromny potencjał, a wszystkie te różnice wskazujące na niekorzyść C++ mogą być spowodowane tym, że porostu ja też się dopiero uczę tego języka. A tak na przyszłość polecam, każdemu przenieść kod z jednego języka na inny, w ten sposób niezwykle łatwo poznać oba języki, bo poznajemy ich różnice.

Zamieszczam dla was oba programy, razem z ich kodami, wszystko na licencjiCreative Commons License

Pobierz: http://www.sendspace.com/file/n035pn

6 komentarzy:

Anonimowy pisze...

i tak jabrzyk skończy, hahaha

Bzyx pisze...

A można bardziej rozwinąć, tą myśl bo nie wiem o co dokładnie chodzi i prosiłbym bez nazwisk... ;]

Anonimowy pisze...

Hehe ciekawe co będzie jak się Seph dowie :D :D :D

Bzyx pisze...

O widzę zainteresowanie... ;] i jak kod+programy pobranie, rozpracowane. Bo dostaje sygnały o natchnieniach do programowania.... ;]

Anonimowy pisze...

Boże święty zaś ta ciamajda robi bloga... :D

Bzyx pisze...

Ach.... znów te komentarze jak bardzo się za tym stęskniłem ;]

by TemplatesForYouTFY
SoSuechtig, Burajiru