Dodaj do ulubionych

lekcja na temat -jak zrezgnowaćz admina vol 1

05.10.02, 13:18
Co o C i C++ każdy wiedzieć powinien. W trakcie tej lekcji dowiesz się,
dlaczego pora na C++. Język C++ jest uniwersalnym, nowoczesnym językiem
programowania. Stosowane przez USA i inne kraje wobec Polski wieloletnie
embargo COCOM'u (przeszkody w dostępie do nowoczesnej technologii) sprawiły
m. in., że popularno¶ć OS2, UNIXa i C/C++ jest w Polsce do dzi¶
nieproporcjonalnie mała, a Basica, Pascala i DOSa nieproporcjonalnie duża. W
USA C++ już od kilku lat stanowi podstawowe narzędzie programistów. Już
słyszę oburzenie (A co mnie obchodzi historia "komputerologii" i
koligacyjki!). Otóż obchodzi, bo wynikaj± z niej pewne "grzechy pierworodne"
języka C/C++, a dla Ciebie, szanowny Czytelniku - pewne wnioski praktyczne.
Grzech Pierwszy: * Kompilator języka C/C++ jest standardowym wyposażeniem
systemu operacyjnego UNIX. Skutki praktyczne: Każdy PC jest w momencie zakupu
(co często wchodzi w cenę zakupu komputera) wyposażany w system operacyjny
DOS - np. DR DOS, PC DOS, PTS DOS lub MS DOS. Standardowo w zestaw systemu MS
DOS wchodzi interpreter języka BASIC (w MS-DOS - QBasic.EXE). Możesz więc być
pewien, że je¶li jest DOS, to musi być i BASIC. Podobnie rzecz ma się z
C/C++. Je¶li jest na komputerze system UNIX (za wyj±tkiem najuboższych wersji
systemu XENIX), masz tam do dyspozycji kompilator C/C++, za to BASICA ani
Pascala prawie na pewno tam nie ma. Podobnie coraz popularniejszy OS/2
wyposażony jest w kompilator (całkiem niezły) C++ i dodatkowo jeszcze w pewne
gotowe-firmowe biblioteki. Grzech drugi: * Język C/C++ powstał jeszcze zanim
wymy¶lono PC, DOS, GUI (Graficzny Interfejs Użytkownika), Windows i inne tym
podobne. Dwa najważniejsze skutki praktyczne: I. W założeniach twórców język
C++ miał być szybki (i jest) i zajmować mało miejsca w pamięci (bo ówczesne
komputery miały jej bardzo mało!). Zawiera więc różne, niezrozumiałe dla nas
z dzisiejszego punktu widzenia skróty. Np. to co w Pascalu czy Basicu wygl±da
zrozumiale: i:=i+1; (Pascal) 10 I=I+1 lub inaczej NEXT I (Basic) to w języku
C++ wygl±da dziwacznie: i++; albo jeszcze dziwniej ++i; Tym niemniej zwróć
uwagę, że w Pascalu zajmuje to 7 znaków, w Basicu - 8 znaków (spacja to też
znak!), a w C++ tylko 4. Inny przykład: X=X+5 (Basic, 5 znaków), X:=X+5
(Pascal, 6 znaków), X+=5 (C++, tylko 4 znaki). Z takiej wła¶nie filozofii
wynika i sama nazwa - najkrótsza z możliwych. Je¶li bowiem i++ miało znaczyć
mniej więcej tyle samo co NEXT I (następne I) to C++ znaczy mniej więcej tyle
samo co "NASTĘPNA WERSJA C". II. Nie ma nic za darmo. W języku C/C++,
podobnie jak w samochodzie wy¶cigowym formuły I, za szybko¶ć i skuteczno¶ć
płaci się komfortem. Konstrukcje stosowane w języku C/C++ s± maksymalnie
dostosowane do "wygody" komputera. Pozwala to na uzyskiwanie ˙niezwykle
szybkich "maszynowo-zorientowanych" kodów wykonywalnych programu, ale od
programisty wymaga przyzwyczajenia się do "komputerowo-zorientowanego sposobu
my¶lenia". Grzech Trzeci (i chyba najcięższy): * Jest najlepszy. Ostrożniej -
jest najchętniej stosowanym narzędziem profesjonalnych programistów. Ma
oczywi¶cie konkurentów. Visual Basic (do małych aplikacji okienkowych), Turbo
Pascal (do nauki podstaw - elementów programowania sekwencyjnego,
proceduralno-strukturalnego), QuickBasic (programowanie strukturalne w
¶rodowisku DOS), Fortran 90, ADA, SmallTalk, itp, itd. Sam wielki Peter
Norton przyznaje, że pocz±tkowe wersje swojego słynnego pakietu Norton
Utilities pisał w Pascalu, ale dopiero przesiadka na C/C++ pozwoliła mu
doprowadzić NU do dzisiejszej doskonało¶ci. Jakie s± programy Petera Nortona -
każdy widzi... Zapewne masz na swoim komputerze kilka różnych aplikacji (np.
TAG, QR-Tekst, Word, itp.) - je¶li zajrzysz do nich do ¶rodka (View), możesz
sam przekonać się, że większo¶ć z nich została napisana wła¶nie w C++
(Kompilatory C++ pozostawiaj± w kodzie wynikowym .EXE swoj± wizytówkę zwykle
czyteln± przy pomocy przegl±darki; przekonasz się o tym także zagl±daj±c
przez [View] do własnych programów); stosowane narzędzia możesz rozpoznać
także po obecno¶ci dynamicznych bibliotek - np. BWCC.DLL - biblioteka
elementów steruj±cych - klawiszy, itp - Borland Custom Controls for Windows).
Skutki praktyczne: Nauczywszy się języka C/C++ możesz nie bać się ani systemu
UNIX/XENIX a ich ¶rodowiska okienkowego - X Windows, ani OS2, ani Windows 95
(dotychczasowe testy starych 16-bitowych aplikacji wykazały b. wysoki stopień
kompatibilno¶ci), ani stacji roboczych, ani dużych komputerów klasy
mainframe. Język C/C++ dosłużył się bowiem ogromnej ilo¶ci tzw. implementacji
czyli swoich odmian, przeznaczonych dla różnych komputerów i dla różnych
systemów operacyjnych. Windows NT i Windows 95 również zostały napisane w
C++. Czytaj±c prasę (np. Computer World, PC-Kurier i in.) zwróć uwagę, że
najwięcej ofert pracy jest wła¶nie dla programistów posługuj±cych się C++ (i
tak zapewne będzie jeszcze przez kilka lat, póki nie wymy¶l± czego¶ lepszego -
np. jakiego¶ C+++). Z Grzechu Trzeciego (choć nie tylko) wynika także
po¶rednio Grzech Czwarty. Języka C++ Grzech Czwarty - ANSI C, C++, czy Turbo
C++, Visual C++, czyli mała wieża BABEL. Nie jestem pewien, czy "wieża BABEL"
jest okre¶leniem trafniejszym niż "kamień filozoficzny", b±dĽ "perpetuum
mobile". To co w ci±gu ostatnich lat stało się z językiem C++ ma co¶
wspólnego z każdym z tych utopijnych symboli. A w dużym uproszczeniu było to
tak. Podobnie, jak mechanikom od zarania dziejów marzyło się perpetuum
mobile, tak informatykom zawsze marzyło się stworzenie jednego SUPER-
UNIWERSALNEGO języka programowania. Takiego, który byłby zupełnie niezależny
od sprzętu tzn., aby program napisany w takim języku mógł być przeniesiony
BEZ ŻADNYCH ZMIAN na dowolny komputer I DZIAŁAŁ. Do takiej roli pretendowały
kolejno FORTRAN, Algol a potem przyszła pora na C/C++. Gdyby informatycy nie
okazali się zbyt zachłanni, może co¶ by z tego wyszło. Ale, jak to w życiu,
programi¶ci (podobnie jak żona rybaka z bajki "O rybaku i złotej rybce")
chcieli wszystkiego naraz: * żeby program dał się przenie¶ć na komputer
innego typu i działał, * żeby działał szybko i optymalnie wykorzystywał
sprzęt, * żeby umiał wszystko, co w informatyce tylko wymy¶lono (tj. i
grafika, i obiekty, i obsługa peryferii i...). I stało się. W pomy¶lanym jako
uniwersalny języku zaczęły powstawać odmiany, dialekty, mutacje, wersje itp.
itd. Je¶li C++ nie jest Twoim pierwszym językiem, z pewno¶ci± zauważyłe¶
Czytelniku, że pomiędzy GW Basic a Quick Basic s± pewne drobne różnice.
Podobnie Turbo Pascal 7.0 trochę różni się od Turbo Pascala 5.0. Mimo to
przykład poniżej pewnie Cię trochę zaskoczy. Dla zilustrowania skali problemu
przedstawiam poniżej dwie wersje TEGO SAMEGO PROGRAMU napisanego w dwu
różnych wersjach TEGO SAMEGO JĘZYKA C++. . Obydwa programy robi± dokładnie to
samo. Maj± za zadanie wypisać na ekranie napis "Hello World" (czyli "Cze¶ć
¶wiecie!"). Program (1) main() { printf("Hello World\n"); } Program (2)
#include #include LPSTR p = "Hello World\n"; main(void) { cout (( "Hello
World" (( endl; MessageBox(0, p, "Aplikacja dla Windows", MB_OK); return
(0); } Cóż za uderzaj±ce podobieństwo, prawda? Ale żarty na bok. Je¶li
zaistnieje jaki¶ problem, zawsze mamy co najmniej trzy wyj¶cia. Możemy: 1.
Udawać, że go nie ma. Tak postępuje wielu autorów podręczników na temat
C/C++. 2. Krzyczeć, że nam się to nie podoba. Mamy pełne prawo obrazić się i
wrócić do Basica lub Pascala. 3. Spróbować poruszać się w t
Obserwuj wątek
    • marek_p C-Hiro 09.10.02, 21:45
      hiro napisała:

      > Inny przykład: X=X+5 (Basic, 5 znaków), X:=X+5 (Pascal, 6 znaków),
      > X+=5 (C++, tylko 4 znaki).

      Dawno, dawno temu próbowałem gadać z komputerem w języku C.
      Żeby zrobić małą aplikację bazodanową namęczyłem się jak diabli.
      W Pascalu jest to zdecydowanie łatwiejsze.
      Obecni obiektowi następcy C z pewnością mają problem obsługi baz danych
      rozwiązany, ale drugi raz już nie będę próbował się przestawiać (co innego
      jak ktoś zaczyna, albo kiedyś programował, ale nie ma potrzeby wracać do
      wcześniejszych swoich dokonań, może zacząć od nowa).

      Składnia języka C jest faktycznie super. Wiele bajerów, o których w pascalu
      mowy nie ma. Z drugiej strony pamiętam pewnien kurs, na którym prowadzący pisał
      mały ciąg instrukcji i bawił się z kursantami w interpretację. Czasami pomysłów
      na wynik było kilka (pierniczę poprawianie programu po 2 latach napisanego
      z wykorzystaniem takich skrótów myślowych).

      Odezwałem się Hircio do Ciebie w ten deseń, bo jakiś markotny ostatnio jesteś.
      Albo wygrażasz Darkowi, albo wrzucisz coś ze schowka i dalej dyskutować już Ci
      się nie chce.
      Hirciu, szanujmy się tu wszyscy na tym forum, bo mało nas, a i Darka też
      zrozumieć trzeba - administrowanie administrowaniem, ale przede wszystkim
      przeca on pismak (nawet dość aktywny ostatnio:).

      Szanujmy się nawet z falubazami (oczywiście tylko w przerwach, kiedy pan
      Brachmański daje nam przez chwilę w zgodzie żyć).
      • Gość: HIRONIUSZ PIERWSZY Re: C-Hiro IP: proxy / *.gorzow.mm.pl 10.10.02, 23:50
        marek_p napisał:

        > hiro napisała:
        >
        > > Inny przykład: X=X+5 (Basic, 5 znaków), X:=X+5 (Pascal, 6 znaków),
        > > X+=5 (C++, tylko 4 znaki).
        >
        > Dawno, dawno temu próbowałem gadać z komputerem w języku C.
        > Żeby zrobić małą aplikację bazodanową namęczyłem się jak diabli.
        > W Pascalu jest to zdecydowanie łatwiejsze.
        czytałeś wszystko?..
        > Obecni obiektowi następcy C z pewnością mają problem obsługi baz danych
        > rozwiązany, ale drugi raz już nie będę próbował się przestawiać (co innego
        > jak ktoś zaczyna, albo kiedyś programował, ale nie ma potrzeby wracać do
        > wcześniejszych swoich dokonań, może zacząć od nowa).
        > ---napisz o co biega!jeżeli będę Ci w stanie pomóc to napisz helpaQ1
        > Składnia języka C jest faktycznie super. Wiele bajerów, o których w pascalu
        > mowy nie ma. Z drugiej strony pamiętam pewnien kurs, na którym prowadzący -z
        jagą do do kup[y/!
        >
        > mały ciąg instrukcji i bawił się z kursantami w interpretację. Czasami
        pomysłów
        >
        > na wynik było kilka (pierniczę poprawianie programu po 2 latach napisanego
        > z wykorzystaniem takich skrótów myślowych).
        >
        > Odezwałem się Hircio do Ciebie w ten deseń, bo jakiś markotny ostatnio jesteś.
        a cichosza wyborcza czasami nie obowiązuje?
        > Albo wygrażasz Darkowi, albo wrzucisz coś ze schowka i dalej dyskutować już
        Ci
        > się nie chce.oj ojojojoj!przetransponuj to na j......
        ojj!ojejku! nikt mnie nie postrzelił!
        > Hirciu, szanujmy się tu wszyscy na tym forum, bo mało nas,
        no faktycnie
        a i Darka też no tego faceta nie szanować to już grzecu by był!11-jak TY go
        wyzywałeś !!!!!!!!!!! JAK TY GO STRASZYŁEŚ PRZEŁOŻONYMI!!!
        JAK TY GO STRASZYŁEŚ I WYZYWAŁEŚ ZA NIEUDANE LINKI!!!!!!
        > zrozumieć trzeba - administrowanie administrowaniem, ale przede wszystkim
        > przeca on pismak (nawet dość aktywny ostatnio:).
        >
        > Szanujmy się nawet z falubazami (oczywiście tylko w przerwach, kiedy pan
        > Brachmański daje nam przez chwilę w zgodzie żyć).
        • marek_p Re: C-Hiro 11.10.02, 22:15
          Gość portalu: HIRONIUSZ PIERWSZY napisał(a):

          > JAK TY GO STRASZYŁEŚ I WYZYWAŁEŚ ZA NIEUDANE LINKI!!!!!!

          Była konkretna sprawa. Zostało poprawione, więc po co się gniewać?
          • hiro Re: C-Hiro 11.10.02, 22:26
            marek_p napisał:

            > Gość portalu: HIRONIUSZ PIERWSZY napisał(a):
            >
            > > JAK TY GO STRASZYŁEŚ I WYZYWAŁEŚ ZA NIEUDANE LINKI!!!!!!
            > bzdet!.......
            > Była konkretna sprawa. Zostało poprawione, więc po co się gniewać?
            kto i na kogo?

Nie pamiętasz hasła

lub ?

 

Nie masz jeszcze konta? Zarejestruj się

Nakarm Pajacyka