Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Metody programowania w językach asembler, C++ i innych

Czebu 29 Wrz 2010 02:37 2513 22
  • #1 29 Wrz 2010 02:37
    Czebu
    Poziom 19  

    Nie wiem, może temat jest w nieodpowiednim dziale. Domyślam się, że były podobne tematy, ale uważam, że mój jest zupełnie inny. Dostałem już takiej desperacji, że nie wiem co mam robić.

    Pracuję na systemie Windows XP Professional Service Pack 3. Używam programów FileAlyzer, WinHex, HDD Hex Editor Neo, nasm oraz OllyDbg. A nawet tego Windowsowego debug. Używam kompilatorów Microsoft Visual Studio 2005, DevC++ oraz TurboPascal 7.0 .
    Nauczyłem się trochę asemblera. Ale z tworzeniem prostych algorytmów, mam pewne problemy.
    Uczyłem się tego Pascala. Przeczytałem jedną książkę o języku Pascal. I to było nawet dziwne, bo ta książka wystarczyła. Dobrze. Wszystko wydawało się takie piękne i przejżyste. Napisałem kilka programów edukacyjnych.
    Potem uczyłem się języka C++. Myślałem, że w samym C++ można coś stworzyć. Więc miałem ochotę, przerobić te programy edukacyjne napisane w Pascalu, na język C++. Niestety nic nie można stworzyć w C++. Wtedy odkryłem język C. No, ale język C, to jest programowanie strukturalne. Przeczytałem jedną książkę o języku C. Za to język C++, to już jest język obiektowy. Postanowiłem próbować obiektowo, przez MFC (Microsoft Foundation Classes). Okazało się, że to programowanie w MFC, jest naprawdę ciężkie. Też znalazłem jedną książkę, na MFC. Niestety, w tej książce piszą co innego. A kompilator Visual Studio 2005, mówi mi co innego. Czytałem nawet kilka plików nagłówkowych (bibliotek). Czytałem, też pomoc z MSDN. Ale tak od strony praktycznej. Jest funkcja i jest opis. W Pascalu z taką metodą nie miałem problemów. A w C++ już się zaczynają problemy. Szukałem książek o MFC. Niestety nic konkretnego nie ma, poza tą jedną.

    I co, i jak na razie nic. Zupełne nic. Sam nie wiem, co mam myśleć. Czy to ze mną jest coś nie tak, czy po prostu przyjmuję nieodpowiednie metody? Męczę się już tak dwa lata.

    Chyba jestem dobrze wyposażony? Przyznam się, że napisałem prosty algorytm do zerowania dysków. Właściwie to jest program do zapisu plików na dyskach twardych. W języku Pascal. Ale ten program, chyba nie nadaje się, na program użytkowy.
    Próbuję nawet poznawać niektóre programy od tej drugiej strony, przez debugowanie, przez rozbieranie ich na części.

    Czy to ja popełniam gdzieś błąd? A może najwyższy czas już odpocząć. Interesują mnie metody programowania. Tak ogólnie. Z czego korzystacie? Jak myślicie? Jakie metody stosujecie? Co macie w głowach?

    0 22
  • Pomocny post
    #2 29 Wrz 2010 08:34
    Dariusz Bismor
    Poziom 17  

    Programowania orientowanego obiektowo - podobno - bardzo ciężko jest się nauczyć samemu. Wszyscy guru zalecają przede wszystkim znalezienie sobie mentora - kogoś, kto łagodnie wprowadzi w świat tego programowania. Z mojego doświadczenia wynika ponadto, że osobom, które programowały już proceduralnie, jest jeszcze ciężej. Bardzo ciężko jest wykorzenić nawyki nabyte podczas takiego programowania. To forum jest tutaj bardzo dobrym przykładem: przeszukaj nagłówki z C++, zobaczysz, że z programowaniem orientowanym obiektowo nie ma prawie żaden nic wspólnego.

    Jeżeli chcesz jednak zacząć, jeżeli jesteś wystarczająco uparty (2 lata!), jeżeli rzeczywiście interesują Cię metody programowania, zaczynanie od bibliotek firmy z Redmond nie jest dobrym pomysłem (na temat jakości oprogramowania tej firmy zmarnowano już dostatecznie dużo bitów). Proponuję zajęcie się czystym, ISO-wskim C++, lub nawet językiem Smalltalk (w którym nie da się programować proceduralnie). Ponadto, bez literatury się nie da. Osobiście mogę polecić np. "Potęgę języka C++" A. Koeniga i B. E. Moo. Książka ta jest napisana tak, jak należałoby uczyć programowania osoby nie piszące proceduralnie, i dlatego jest cenna. Oczywiście, mogę też polecić moją książkę "Programowanie systemów sterowania" (do nabycia w WNT), a także internetowe wydanie "Thinking in C++".

    HTH,
    Dariusz

    0
  • Pomocny post
    #3 29 Wrz 2010 10:27
    arnoldziq
    Moderator Programowanie

    Może, jeżeli pewnie czujesz się w Pascal-u, to próbuj "przesiąść" się na jakąś Windows-ową wersję tego języka.
    Masz do wyboru; komercyjne Delphi lub darmowego Lazarus-a. W ten sposób, po niewielkich przeróbkach, możesz swoje programy z Turbo/Borland Pascal-a przenieść na platformę Windows.

    Abu od razu uciąć wszelkie dyskusje na temat : o wyższości C nad Delphi itd. itp., powiem tylko tyle:
    Dla początkującego/średnio zaawansowanego programisty, składnia Delphi jest dużo bardziej przejrzysta. Zwłaszcza, jeżeli ktoś zna/przywykł do składni Pascal-a.
    Przeskok od OOP/Borland Pascal do Delphi następuje zazwyczaj całkowicie "bezboleśnie".

    0
  • #4 29 Wrz 2010 16:33
    Czebu
    Poziom 19  

    Tu zacytuję siebie. I całkowicie zaskoczę Panów, którzy mi odpisali.

    piotr_kadlubowski napisał:

    Pracuję na systemie Windows XP Professional Service Pack 3. Używam programów FileAlyzer, WinHex, HDD Hex Editor Neo, nasm oraz OllyDbg. A nawet tego Windowsowego debug. Używam kompilatorów Microsoft Visual Studio 2005, DevC++ oraz TurboPascal 7.0 .
    Nauczyłem się trochę asemblera. Ale z tworzeniem prostych algorytmów, mam pewne problemy.
    Uczyłem się tego Pascala. Przeczytałem jedną książkę o języku Pascal. I to było nawet dziwne, bo ta książka wystarczyła. [...] Napisałem kilka programów edukacyjnych.
    Potem uczyłem się języka C++. Myślałem, że w samym C++ można coś stworzyć. Więc miałem ochotę, przerobić te programy edukacyjne napisane w Pascalu, na język C++. Niestety nic nie można stworzyć w C++. Wtedy odkryłem język C. No, ale język C, to jest programowanie strukturalne. Przeczytałem jedną książkę o języku C. Za to język C++, to już jest język obiektowy. Postanowiłem próbować obiektowo, przez MFC (Microsoft Foundation Classes). Okazało się, że to programowanie w MFC, jest naprawdę ciężkie. Też znalazłem jedną książkę, na MFC. Niestety, w tej książce piszą co innego. A kompilator Visual Studio 2005, mówi mi co innego. Czytałem nawet kilka plików nagłówkowych (bibliotek). Czytałem, też pomoc z MSDN. Ale tak od strony praktycznej. Jest funkcja i jest opis. W Pascalu z taką metodą nie miałem problemów. A w C++ już się zaczynają problemy. Szukałem książek o MFC. Niestety nic konkretnego nie ma, poza tą jedną.

    [...] Męczę się już tak dwa lata.

    Chyba jestem dobrze wyposażony? Przyznam się, że napisałem prosty algorytm do zerowania dysków. Właściwie to jest program do zapisu plików na dyskach twardych. W języku Pascal. Ale ten program, chyba nie nadaje się, na program użytkowy.
    Próbuję nawet poznawać niektóre programy od tej drugiej strony, przez debugowanie, przez rozbieranie ich na części.


    Ja niestety studiuję na specjalizacji Inżynieria oprogramowania !!! Czego przez pewien czas się wstydziłem. Ale widzę, że elektroda.pl , to jest poważne forum. I do tego trzeba było się przyznać.
    Teraz napiszę, czego mnie nauczyli oraz czego sam się dowiedziałem.

    Pomysły z mojej uczelni:
    1. Pracuję na systemie Windows XP Professional. Używam kompilatorów Microsoft Visual Studio 2005, DevC++ oraz TurboPascal 7.0 .

    2. Nauczyłem się trochę asemblera dla mikrokontrolerów AVR. Ale z tworzeniem prostych algorytmów, mam pewne problemy.

    3. Uczyłem się tego Pascala. Przeczytałem jedną książkę o języku Pascal. Napisałem kilka programów edukacyjnych.

    4. Potem uczyłem się języka C++. Postanowiłem próbować obiektowo, przez MFC (Microsoft Foundation Classes). Okazało się, że to programowanie w MFC, jest naprawdę ciężkie. Czytałem, też pomoc z MSDN. Ale tak od strony praktycznej. Jest funkcja i jest opis.

    Moje pomysły:
    1. Używanie Service Pack 3. Używanie programów FileAlyzer, WinHex, HDD Hex Editor Neo, nasm oraz OllyDbg. A nawet tego Windowsowego debug.

    2. Nauczyłem się trochę asemblera. Ale z tworzeniem prostych algorytmów, mam pewne problemy. Dokładniej asemblera x86, notacja Intela. Z notacją AT&T mam kłopot.

    3. Myślałem, że w samym C++ można coś stworzyć. Miałem ochotę, przerobić programy edukacyjne (ze studiów) napisane w Pascalu, na język C++.

    4. Przeczytałem jedną książkę o języku C. Znalazłem jedną książkę, na MFC. Czytałem nawet kilka plików nagłówkowych (bibliotek).

    5. Szukałem książek o MFC. Niestety nic konkretnego nie ma, poza tą jedną.

    6. Tego DevC++ próbowałem poznać trochę dokładniej.

    7. Napisałem prosty algorytm do zerowania dysków.

    8. Próbuję nawet poznawać niektóre programy od tej drugiej strony, przez debugowanie, przez rozbieranie ich na części.

    Dodam, jeszcze, że zainteresował mnie też temat, audytu bezpieczeństwa teleinformatycznego (potocznie zwany tym dobrym hackingiem). Nawet i to.
    Tak szczerze pisząc, tę książkę o MFC, poleciła mi jedna osoba. Męczę się już z tym programowaniem tak, dokładnie licząc, 2 lata i 8 miesięcy. Męczę się też, ze studiami.

    0
  • Pomocny post
    #5 29 Wrz 2010 18:09
    Łagu
    Poziom 11  

    4. Potem uczyłem się języka C++.

    Jak uczyłeś się C++? Ja najpierw znałem TP, a później poznałem C++. Jak próbowałem przenieść niektóre programy "bezpośrednio" z TP, to miałem problemy ale do nauki starałem się szukać pewnych analogi programów, które pozwoliły mi, po pewnym czasie, przerobić programy z TP na C++.
    Jeżeli znasz programowanie proceduralne to przeważnie w C++ możesz je zastosować ale jeśli chcesz się nauczyć obiektowego, bez pomocy "mentora", to zależy to wyłącznie od twoich chęci i zaangażowania w temat.

    0
  • #6 29 Wrz 2010 18:44
    Czebu
    Poziom 19  

    Łagu napisał:

    Jak uczyłeś się C++?


    Na to odpowiadam cytując Ciebie.
    W podobnej kolejności jak Ty. Cytuję:
    Łagu napisał:
    Ja najpierw znałe TP, a później poznałen C++.


    Właśnie w takiej kolejności.

    0
  • Pomocny post
    #7 30 Wrz 2010 02:03
    33suchy
    Poziom 9  

    Jesteś na II roku informatyki i nie było na studiach programowania obiektowego? Gdzie tak uczą?

    Cytat:
    2. Nauczyłem się trochę asemblera. Ale z tworzeniem prostych algorytmów, mam pewne problemy. Dokładniej asemblera x86, notacja Intela. Z notacją AT&T mam kłopot.

    Chcesz pisać jakieś programy na komputery PC w ASM ? Nie widzę w takiej nauce sensu.
    Code:
    Myślałem, że w samym C++ można coś stworzyć. 
    Niewiele jest rzeczy, których w C++ nie stworzysz... Po co chcesz korzystać z biblioteki MFC do nauki programowania obiektowego?
    Do nauki programowania, również obiektowego najlepiej nadaje się C++ i dość obszerna "Symfonia C++". Jeżeli słabo znasz C to najpierw zajmij się tym językiem, np "ANS C" lub kursy z internetu. Może coś wydawnictwa Helion.
    Jak wszystko wydaje się za trudne, poucz się może PHP, jest tam prosty mechanizm obiektowy, nie trzeba się męczyć przy tworzeniu aplikacji okienkowych, wystarczy znajomość HTML.

    0
  • Pomocny post
    #8 30 Wrz 2010 09:44
    MiL999
    Poziom 26  

    Moim zdaniem trochę minąłeś się z powołaniem. Jeżeli programujesz 3 lata i ci to nie wychodzi to gratuluję wytrwałości, ale może to nie jest dla Ciebie. W Twoich postach jest dużo filozofowania więc może takie studia powinieneś wybrać?

    0
  • #9 30 Wrz 2010 12:28
    Czebu
    Poziom 19  

    33suchy. Było programowanie obiektowe w C++. Dokładnie w MFC. Asembler ostatnio zainteresował mnie, dlatego, że nie wiem, jak mam np. oprogramować mysz w języku C++. (kompilator DevC++, konsola).

    MiL999. Jestem wyjątkowo zdeterminowany. W końcu, nie studiuję po to, żeby ściągać, programy napisane w Pascalu, z internetu. Jak robią to niektórzy, koledzy studenci. A potem narzekają, że nic nie rozumieją.
    Może i rzeczywiście to w tej chwili nie jest dla mnie. Może do programowania trzeba dojrzeć. Ale na studiach wymagają.
    Uważam, że z tym filozofowaniem, to trochę przesadziłeś. To czasami przeszkadza, a czasami pomaga. Może jestem za dokładny?
    Aż tak to nie mogę, narzekać, że nic mi nie wychodzi. Napisałem kilka prostych programów w Pascalu oraz w C++. Tak na kilkaset linii. Te MFC jest naprawdę trudne.

    0
  • Pomocny post
    #10 30 Wrz 2010 19:15
    Mad.
    Poziom 18  

    Myślę, że za dużo chcesz robić na raz. Mając podstawę z różnych języków i programów powinieneś zdecydować się na jedną rzecz. Nie da rady być bardzo dobrym w programowaniu mikroprocesorów i tworzenia oprogramowania pod system np. windows w tak krótkim czasie. Może rozwiązaniem byłoby się wziąć porządnie tylko za jedną rzecz, dodatkowo za taką do której jest sporo materiałów (np. kilka książek), aby mieć z czego korzystać. Nikt za ciebie nie dokona wyboru, musisz wiedzieć co chcesz robić.

    0
  • Pomocny post
    #11 30 Wrz 2010 20:40
    33suchy
    Poziom 9  

    piotr_kadlubowski napisał:
    33suchy. Było programowanie obiektowe w C++. Dokładnie w MFC. Asembler ostatnio zainteresował mnie, dlatego, że nie wiem, jak mam np. oprogramować mysz w języku C++. (kompilator DevC++, konsola).

    Do tworzenia GUI próbuj darmowych bibliotek typu Link, nie będzie trzeba pisać nic do implementacji ruchu myszki. Ogólnie raczej nie polecam tworzenia GUI, zwłaszcza w C++, bo będziesz miał z tym duże kłopoty. Nie wiem co ma MFC do nauki programowania obiektowego, wystarczą aplikacje konsolowe do nauki OOP.
    Sam nie zamierzam pisać żadnych programów użytkowych w C++, szkoda czasu. Lepiej Java, do aplikacji webowych niesamowicie prostym i wielozadaniowym językiem jest PHP. ]Link[/url]

    0
  • #12 02 Paź 2010 00:15
    Czebu
    Poziom 19  

    Dariusz Bismor napisał:
    Programowania orientowanego obiektowo - podobno - bardzo ciężko jest się nauczyć samemu. Wszyscy guru zalecają przede wszystkim znalezienie sobie mentora - kogoś, kto łagodnie wprowadzi w świat tego programowania. Z mojego doświadczenia wynika ponadto, że osobom, które programowały już proceduralnie, jest jeszcze ciężej. Bardzo ciężko jest wykorzenić nawyki nabyte podczas takiego programowania. To forum jest tutaj bardzo dobrym przykładem: przeszukaj nagłówki z C++, zobaczysz, że z programowaniem orientowanym obiektowo nie ma prawie żaden nic wspólnego.

    [...] Proponuję zajęcie się czystym, ISO-wskim C++, lub nawet językiem Smalltalk (w którym nie da się programować proceduralnie).

    Mogę stwierdzić, że jest pewna osoba, która trochę mi podpowiada. Nie chodzi o sprawdzanie algorytmów. Jeśli to mam rozumieć przez słowo "łagodnie". Ta osoba zaoferowała mi pomoc, sama z siebie.
    Chyba domyślam się o co chodzi z tym programowaniem proceduralnym. Niektóre programy można wyświetlić zdanie po zdaniu. Nie używając żadnych obiektów. Ale lepiej byłoby użyć programowania obiektowego, bo coś takiego można stworzyć i w ten sposób. Można lepiej zrozumieć taki program.
    Właśnie próbowałem zrozumieć te MFC, przez stworzenie programu na DevC++. Taki prosty program konsolowy, z użyciem własnych wymyślonych klas. W tym programie znajdują się okno główne oraz dialogowe. Wszystko stworzone za pomocą tekstu ASCII. Bez użycia Windows API. I tu właśnie stoję w miejscu, bo jeżeli chciałbym ustawić taką literę X, jako znak do zamykania okna, to nie wiem co mam robić. Bo myszy jakoś nie potrafię oprogramować w tym "czystym ISO-wskim C++". I tu wydaje mi się, że potrzebuję użyć asemblera. A z tym asemblerem są pewne problemy. Niektórzy, straszą, że programowanie w nim grozi spaleniem jakichś podzespołów w komputerze. Nie myślcie, że ja chcę napisać wszystkie te klasy!

    Parę dni po napisaniu tego tematu, coś zrozumiałem. Jeżeli tworzy się obiekt w Pascalu, to powinno się nadać jemu nazwę jak najbardziej ogólną. Chodzi o to, że ta nazwa nie może zlewać się z nazwą zmiennej z tego typu. Np. Czym jest telefon komórkowy. Może dla niektórych banalne pytania. Telefon komórkowy to jest po prostu telefon. Nazwa typu telefon, nazwa zmiennej komórka. Nazwa typu telefon, a nazwa następnej zmiennej to stacjonarny. Większy kłopot, jest z nadawaniem nazw zmiennych w tych typach i w głównym programie. Czym jest samochód osobowy? Samochód to może być po prostu Auto. Można znaleźć jeszcze bardziej ogólne słowo. Podobny styl można zastosować w klasach języka C++. To co napisałem, może sprawdzić się w przypadku prostych programów. Ja to zrozumiałem, przez pisanie właśnie takiego programu na kilkaset linii (język Pascal).
    Jeżeli ktoś chociaż miał do czynienia z programowaniem, to zrozumie, a może, zapamięta, to co mam na myśli.
    Do jeszcze jednej rzeczy doszedłem. Pewnych rzeczy nie można zrozumieć. Pewne rzeczy trzeba zapamiętać.
    Jeden z moich nauczycieli, powiedział coś takiego: "Jeżeli nie możesz, czegoś zrozumieć, to musisz przyjąć, że tak rzeczywiście jest".
    Jeżeli ktoś nie zauważy tej granicy, to ma pewien problem. Musi, albo zdystansować się, albo odpocząć od nauki.

    Tych klas MFC, trzeba byłoby się po prostu nauczyć na pamięć. Ale z drugiej strony uczyć się np. biblioteki afxwin.h na pamięć, to trochę nie ma sensu. Może lepiej jest zapamiętać, ważniejsze rzeczy z tej biblioteki. Albo mieć gotowe instrukcje, co jak zaprogramować.

    0
  • Pomocny post
    #13 02 Paź 2010 02:13
    33suchy
    Poziom 9  

    Troszkę nie zrozumiałem tego wywodu o problemie z nazywaniem zmiennych i referencji - wszystko zależy od Ciebie. Możesz dawać przyrostki do Obiektów a do prostych zmiennych nie, możesz używać przestrzeni nazw, pakietów, ograniczać zasięg zmiennych i obiektów za pomocą Skaryfikatorów dostępu, których głównym zadaniem jest unikanie konfliktu nazw i zabezpieczanie przed dostępem.

    Do pisania graficznego interfejsu użytkownika (GUI) dla typowych aplikacji, nikt o zdrowych zmysłach nie będzie używał ASM. SKorzystaj z gotowych bibliotek i nie przejmuj się oprogramowaniem myszy, jest wiele takich rozwiązań dla C++. Jak już pisałem jak koniecznie chcesz uczyć się programować tworząc programy z GUI ucz się PHP i twórz GUI jako strony HTML

    Funkcji z różnych bibliotek możesz uczyć się na pamięć na potrzeby jednej aplikacji i potem to zapominać, ale można też używać opcje z wielu środowisk programowania , czyli podpowiadanie składni np. NetBeans.

    0
  • #14 02 Paź 2010 03:02
    Czebu
    Poziom 19  

    33suchy. Dobrze się wczytaj, a na pewno zrozumiesz. To jest taka uwaga, dla ludzi bardzo początkujących.
    Ja rozumiem, że w asemblerze, napisanie programu GUI, zajmie dużo czasu i dużo linijek. To co z tą myszą?
    Ja już nie rozumiem. Jeśli chodzi, o asembler, to pewne urządzenia, podobno można bez problemu zaprogramować. Chodzi o jakieś wywołania z BIOSU. Nie wiem, coś takiego. Tak wynika z niektórych kursów spotkanych przeze mnie w internecie. Z tym, że te niektóre kursy odwołują się do systemu DOS. Wiem, że Windows 98 był oparty na systemie DOS.

    Chyba w Windows XP Professional jest jakaś emulacja tego systemu DOS ?
    A jednak to programowanie w asemblerze jest ciężkie.

    Przyszło mi coś do głowy. Tylko nie wiem, czy mam rację. Niech ktoś mnie poprawi. Wydaje mi się, że Pascal "można porównać" do języka C z biblioteką Windows API. Czy dobrze myślę? Dałem w cudzysłów słowa: można porównać, bo wiem, że to są dwa różne języki programowania. Ale wydaje mi się, że innej metody nie ma, żeby np. przerobić programy napisane w Pascalu na język C++.

    0
  • Pomocny post
    #15 02 Paź 2010 14:10
    trol.six
    Poziom 30  

    piotr_kadlubowski napisał:
    Potem uczyłem się języka C++. Myślałem, że w samym C++ można coś stworzyć. Więc miałem ochotę, przerobić te programy edukacyjne napisane w Pascalu, na język C++. Niestety nic nie można stworzyć w C++.

    Najlepiej będzie jak konkretny problem opiszesz w stosownym wątku. Na pewno ktoś podpowie ci co i jak.

    piotr_kadlubowski napisał:
    Przyznam się, że napisałem prosty algorytm do zerowania dysków. Właściwie to jest program do zapisu plików na dyskach twardych. W języku Pascal. Ale ten program, chyba nie nadaje się, na program użytkowy.

    Ale jeśli działa, to wszystko chyba dobrze :) Program ma realizować zadany cel, czy ma on sens czy nie to już inna sprawa. Dla ciebie nie ma, ktoś inny może uznać że fajna rzecz.

    piotr_kadlubowski napisał:
    Czy to ja popełniam gdzieś błąd? A może najwyższy czas już odpocząć. Interesują mnie metody programowania. Tak ogólnie. Z czego korzystacie? Jak myślicie? Jakie metody stosujecie? Co macie w głowach?

    Odpoczynek raz na jakiś czas jest wskazany. Podobno mózg tak naprawde podczas nauki tylko gromadzi dane, a uczy się właśnie podczas odpoczynku. Ale nie wiem na ile to stwierdzenie jest prawdziwe, po sobie widze że w dużym stopniu raczej tak.

    A co do tematu wątku to nie mam metod, pisze tak jak potrafie.

    Myśle, że na razie próbujesz ogarnąć wiele rzeczy, ale nie potrafisz ich poskładać do kupy. Czym innym jest język programowania, czym innym jest system, a czym innym jest sprzęt czyli procesor wraz z peryferiami.

    Weźmy te twoja myszke. Pisząc bez systemu musisz odwoływać się do myszy bezpośrednio, pisząc na systemie nie odwołujesz się do myszy a do systemu.
    Najpierw musisz wiedzieć co chcesz osiągnąć, a potem szukać sposobów na ich osiągnięcie.

    Postawienie problemu w ten sposób:
    chce w C++ obsługiwać mysz
    jest podobne do postawienia problemu
    chce za pomocą angielskiego lecieć na orbite

    I wprawdzie dzięki znajomości angielskiego możesz znaleźć się w wachadłowcu i na tej orbicie być, to jednak język jest tylko narzędziem do realizacji celu. A więc sama znajomość języka nie jest wystarczająca.

    A więc najpierw muszisz wiedzieć co chcesz i w jakich warunkach używać tej myszy. W czystym sytemie robisz to własnie przez odwołanie do BIOSU, w systemie linuks, odwołujesz się do pliku, np. /dev/mouse, a w środowiskach graficznych najczęśiej czekasz na zdarzenie od myszy.

    0
  • Pomocny post
    #17 03 Paź 2010 17:45
    trol.six
    Poziom 30  

    piotr_kadlubowski napisał:
    trol.six. Co masz na myśli pisząc o środowiskach graficznych?

    http://pl.wikipedia.org/wiki/Interfejs_graficzny

    Dziwne że jako progaramista (piszący) nie zetknąłeś się z tym stwierdzeniem. Wyglada na to że masz braki w wiedzy. Stąd pewnie problemy z używaniem języków.

    Pozostaje ci przede wszystkim czytać. Możesz zacząć czytać od tego forum. Albo strony poświęcone programowaniu. Nie koniecznie rozumiejąc z początku o co chodzi.

    0
  • #18 03 Paź 2010 23:29
    Czebu
    Poziom 19  

    trol.six napisał:

    Dziwne że jako programista (piszący) nie zetknąłeś się z tym stwierdzeniem. Wygląda na to że masz braki w wiedzy. Stąd pewnie problemy z używaniem języków.

    Niestety takich rzeczy to mi nikt nie tłumaczył. Nie mogłeś nazwać rzeczy po imieniu? To też warto wiedzieć. Właśnie liczę, że tutaj się czegoś nauczę.

    0
  • Pomocny post
    #19 04 Paź 2010 00:07
    trol.six
    Poziom 30  

    piotr_kadlubowski napisał:
    Właśnie liczę, że tutaj się czegoś nauczę.

    I nikt ci wszystkiego nie wytłumaczy od razu. I nie licz też że będziesz wiedział wszystko, nawet po 10 latach nauki. Informatyka to naprawde potężny dział, a języków programowania i to co realizują, jest naprawde dużo. Stąd zwykle ludzie po szkołach znają ogólnie wiele rzeczy, ale specjalizują się zawsze w wąskim zakresie. Zwykle tym który bardziej im odpowiada, lub takim który zapewnie lepszą kariere.

    I potrzebne jest jednak troche samoinicjatywy. Masz nauke w szkole, masz internet, to na materiały nie powinieneś narzekać.

    Ja miałem może tylko gram informatyki w szkole, i tak nic z tego wtedy nie rozumiałem ;) Mimo to zapoznałem się z paroma rzeczami, i potrafie co nie co napisać.

    0
  • #20 04 Paź 2010 00:57
    Czebu
    Poziom 19  

    trol.six napisał:

    I nikt ci wszystkiego nie wytłumaczy od razu. I nie licz też że będziesz wiedział wszystko, nawet po 10 latach nauki. Informatyka to naprawde potężny dział, a języków programowania i to co realizują, jest naprawde dużo. Stąd zwykle ludzie po szkołach znają ogólnie wiele rzeczy, ale specjalizują się zawsze w wąskim zakresie.


    To ja rozumiem. Pewna osoba, która mi to tłumaczyła, porównała informatykę, do medycyny. Podobnie jest w medycynie. Każdy lekarz ma swoją specjalizację. Tak samo jest w przypadku informatyków. Ja takie coś już podzieliłem.
    Rozumiem. Pewnie chodzi Ci o coś takiego:

    Sprzedawca urządzeń komputerowych lub programów komputerowych.
    Programista stron internetowych, programów, lub urządzeń komputerowych.
    Administrator: baz danych, systemów operacyjnych.
    Internetowy lub telefoniczny pomocnik (konsultant).
    Inżynier systemów komputerowych.
    Administrator serwera.
    Główny administrator.

    trol.six napisał:

    I potrzebne jest jednak troche samoinicjatywy. Masz nauke w szkole, masz internet, to na materiały nie powinieneś narzekać.

    Ja miałem może tylko gram informatyki w szkole, i tak nic z tego wtedy nie rozumiałem ;) Mimo to zapoznałem się z paroma rzeczami, i potrafie co nie co napisać.

    Rozumiem. Też mi kiedyś za wiele nie tłumaczyli. Np. co to jest dyskietka startowa? Dlaczego zawsze kiedy ładuje się system do pamięci RAM, to trzeba wyjmować dyskietki ze stacji dyskietek. Kiedyś obawiałem się dotknąć myszy komputera, bo myślałem, że coś zepsuję. Nie wiedziałem, jak bardzo się myliłem. Co najwyżej mogłem rozwalić system operacyjny. Tak było w szkole. Jak dostałem pierwszy zestaw komputerowy, to wtedy się nauczyłem. Jak pojawił się u mnie kolega, to wytłumaczył mi kilka rzeczy, które powinien wiedzieć użytkownik systemu operacyjnego. Dotyczyło to między innymi, konserwacji systemu. I wtedy czułem się pewnie. Ale jak zaczęła się psuć jednostka centralna...

    Wracając do tematu. Tak naprawdę, sam nie wiem co napisać. Może się jeszcze odezwę. Nie zamykam tematu.

    0
  • #21 06 Paź 2010 13:59
    Czebu
    Poziom 19  

    Przypomniały mi się, kolejne rzeczy. Kiedy uczyłem się języka Pascal. Musiałem przepisywać algorytmy z książki. Te algorytmy nie były poprawione. Zawsze gdzieś był błąd. Te błędy trzeba było poprawić. Podczas tego przepisywania i poprawiania, wielu rzeczy się nauczyłem. Mam do dzisiaj kody tych programów. Czasami do nich zaglądam, żeby zobaczyć, jak pewne algorytmy stosuje się w praktyce. Chodzi o te programy edukacyjne napisane w Pascalu.

    Z językiem C++, są niestety większe problemy. Ten język jest wieloparadygmatowy. Tu jest definicja z Wikipedii. Chodzi o to, że jeden problem można opisać na wiele sposobów. W Pascalu tego raczej się nie spotyka. W tej definicji, jest sugerowane stosowanie gromady komentarzy. Niestety w bibliotekach (plikach nagłówkowych) Visuala, za wiele tych komentarzy nie widziałem. A takie pliki, też można napisać na kilka sposobów.
    Niektórzy programiści zapominają o komentarzach. Tu popełniają błąd, że ich nie piszą. Być może wynika to, z tego, że większość teraz używa, języków wysokiego poziomu. To uczy złych nawyków.
    Ktoś kto programował w asemblerze, to domyśla się, że bez komentarzy taki program będzie nadawał się do wyrzucenia. Tak jest w przypadku języka asembler.

    0
  • Pomocny post
    #22 07 Paź 2010 10:51
    azra
    Poziom 16  

    C++ to nie asm, komentarze nie muszą być niezbędne, choć zdecydowanie mogą pomóc. Jednak jeśli widzę w kodzie coś takiego:

    Code:
    int main() { // początek main()
    
        return 0; // program zakończony powodzeniem
    } // koniec main()
    To zaczynam się zastanawiać po kiego diabła te komentarze. ;) Jeśli używa się czytelnych nazw zmiennych, metod, funkcji, to komentarze w kodzie często stają się niepotrzebne, bo kod daje się "czytać". Przydają się w miejscach mniej czytelnych lub do dokumentowania kodu (z czego łatwo zrobić później dokumentację w formie html czy innej, za pomocą chociażby javadoc/phpdoc czy podobnych narzędzi).

    Wydaje mi się, że powinieneś się zdecydować na coś, czego przez jakiś czas będziesz się trzymał. Na przykład, nauka OOP w Smalltalk, C# czy Java, a może nauka C++ z szablonami, OOP, STL (być może również zahaczając o ręczne zarządzanie pamięcią), RAII. A może chcesz napisać coś w PHP+HTML5+JS, albo pobawić się z C, albo... ;)

    0
  • Pomocny post
    #23 07 Paź 2010 10:56
    arnoldziq
    Moderator Programowanie

    Wydaje mi się, że autor tematu otrzymał wystarczający "ładunek" dobrych rad.
    Zamykam.

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo