Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

C++ dla każdego, cz. 1

Jako, że od jakiegoś czasu uczę się programowania w języku C++ i mam już w miarę ugruntowaną podstawową wiedzę (13 rozdział "Symfonii C++ Standard" Jerzego Grębosza; swoją drogą bardzo dobra książka), chciałbym stworzyć swoisty kurs programowania, w którym postarałbym się wszystko wytłumaczyć, aby nawet pani Krysia zrozumiała :-) . Zanim kupiłem wcześniej wspomnianą książkę, szukałem poradnika w sieci, ale w każdym po trzeciej, czy czwartej lekcji pojawiały się błędy z którymi nie umiałem sobie wtedy poradzić. Bazując więc na dosyć niedawnym doświadczeniu (około 4 miesiące temu) chcę zrobić serię wpisów na temat C++.

Kilka słów wstępu

Język programowania to najprościej mówiąc zbiór poleceń, które komputer jest w stanie zrozumieć i zastosować się do poleceń. C++ jest językiem, który w przeciwieństwie do coraz bardziej lansowanych języków takich jak Html5*, JavaScript, czy PHP zapewnia większą kontrolę nad programem i większą wydajność. Jest tak, ponieważ C++ wymaga tzw. Kompilatora, czyli programu, który jednokrotnie zamienia tekst napisany przez człowieka na plik zrozumiały dla komputera, podczas gdy inne przeze mnie wymienione używają interpretera, który na bierząco przetwarza kod źródłowy (o tym później). Łatwo się domyślić, co jest szybsze ;) Przejdźmy do sedna.

Wybór narzędzi

Jak już wspomniałem potrzebny nam będzie kompilator. Musimy także mieć program do edycji plików tekstowych. Istnieją też tak zwane Zintegrowane Środowiska Programistyczne (po angielsku IDE - Integrated Development Enviroment). Są bardzo pomocne, bo oprócz umożliwienia uruchomienia naszego programu jednym przyciskiem w edytorze często program "przewiduje" co chcemy napisać i oferuje autouzupełnianie, co pozytywnie wpływa na szybkość pisania. Teraz musimy wiedzieć jakiego systemu operacyjnego będziemy używać. Miałem doświadczenie w pisaniu pod Windowsem i Linuksem, niestety posiadaczom Maców mogę polecić tylko instalację dowolnej wspieranej dystrybucji Linuksa.

Programy pod Windows

Polecane przeze mnie IDE dla Windows , to:
  • Microsoft Visual Studio Express
  • Code::Blocks
  • Qt Creator

Microsoft Visual Studio Epress

Jak mówi nazwa jest to wersja Express, czyli darmowa (także dla przedsiębiorstw!), ale ma trochę okrojone możliwości. Dla nauki programowania nadaje się jednak prawie idealnie.
Wymagania systemowe to
Program Visual Studio Express 2013 for Windows Desktop

Wymagania systemowe:

Obsługiwane systemy operacyjne

Windows 7 z dodatkiem SP1 (x86 i x64)

Windows 8 (x86 i x64)

Windows 8.1 (x86 i x64)

Windows Server 2008 R2 z dodatkiem SP1 (x64)

Windows Server 2012 (x64)

Windows Server 2012 R2 (x64)

Wymagane składniki

Internet Explorer 10

Wymagania sprzętowe

Procesor 1,6 GHz lub szybszy

1 GB pamięci RAM (1,5 GB w przypadku uruchamiania na maszynie wirtualnej)

4 GB dostępnego miejsca na dysku twardym

Dysk twardy 5400 RPM

Karta wideo obsługująca program DirectX 9, działająca w rozdzielczości co najmniej 1024 x 768

Należy wybrać wersję "for Windows Desktop". Instalator jest intuicyjny i łatwo się w nim połapać. Bez darmowej rejestracji można używać programu przez maksymalnie 30 dni. Można pobrać albo instalator sieciowy ("Zainstaluj teraz") albo pobrać obraz dysku i zamontować go np. programem Daemon Tools Lite. Wspomnę, że VS ma najlepszy IMO kompilator i debugger. Visual Studio można pobrać z tej strony.

Code::Blocks

Jest to bardzo ciekawe środowisko, chociaż na pierwszy rzut oka może zdawać się, że ma za dużo opcji. Mi osobiście jednak nie przypadło do gustu. Program jest całkowicie darmowy. Jeszcze jedna uwaga: początkującym polecam pobrać ten większy plik (około 90 MB), bo jest od razu skonfigurowany z kompilatorem i nie trzeba się o nic martwić.
To jest strona pobrań dla Windowsa. Jak opisano pod linkami do plików wersja z USER w nazwie pozwala na instalację bez uprawnień administratora. W zasadzie nie ma żadnych szczególnych wymagań. Z doświadczenia wiem, że uruchamia się na Viście z 512 MB ramu :-) .

Qt Creator

Jedno z najczytelniejszych środowisk. Gdyby nie to, że nie ma zintegrowanego kompilatora, to byłby to mój faworyt. Program, tak jak Code::Blocks jest darmowy.
Jeżeli chcemy tylko zestaw narzędzi do czystego C++, to wystarczy pobrać ten plik. W mojej opinii jest to jeden z najszybszych IDE.

EDYCJA:
Jest dostępna wersja Qt Creatora z kompilatorem MinGW, napisałem wpis z instrukcją instalacji.

i dla Linuksa

W tym wypadku mam podobne narzędzia jak w Windowsie (oczywiście pomijając MS VS), czyli
  • Qt Creator
  • Code::Blocks
Do obu opisy się zgadzają z tymi z poprzedniego paragrafu, tylko sposób instalacji jest inny. Podam sposób instalacji dla przykładowych dystrybucji. Wystarczy wykonać podane polecenie w terminalu.

Qt Creator

Ubuntu, Linux Mint, Debian:sudo apt-get install build-essential qtcreatorFedora:sudo groupinstall development-libs development-tools sudo yum install qt-creator gcc-c++ gcc gdbopenSUSE:sudo zypper install -t pattern devel_C_C++ && sudo zypper install qt-creator

Code::Blocks

Ubuntu, Linux Mint, Debian:sudo apt-get install build-essential codeblocksFedora:sudo yum groupinstall development-libs development-tools sudo yum install codeblocks gcc-c++ gcc gdbopenSUSE:sudo zypper install -t pattern devel_C_C++ && sudo zypper install \ gdb codeblocks

Zakończenie

Właśnie mamy zainstalowane środowisko pracy. W następnych częściach przedstawię podstawy pisania aplikacji.

PS. Gdyby coś było nie jasne, to piszcie w komentarzach.

* Tak, to nie jest właściwie język programowania.

 

programowanie

Komentarze

0 nowych
shader301202   7 #1 21.11.2013 06:08

Przydatne :)

LonngerM   11 #2 21.11.2013 07:42

Fajny wpis:)

"C++ jest językiem, który w przeciwieństwie do coraz bardziej lansowanych języków takich jak Html5, JavaScript, czy PHP " - Tutaj zamiast Html5, JavaScriptu czy PHP wstawiłbym przykładowo Jave, C# - Bo języki które nadmieniłeś bardziej się kojarzą ze stronami www, a nie z aplikacjami desktopowymi.

command-dos   17 #3 21.11.2013 08:10

wszystko jasne, a podsumowanie zabójcze :) czekam na kolejne części.

djDziadek   16 #4 21.11.2013 08:36

Oby wystarczyło Ci zapału, mnie już się podoba :) - czekam na więcej - faktycznie, rysunki zabójcze :)

enedil   9 #5 21.11.2013 08:38

@LonngerM z tym, że gdybym napisał C#, to skłamałbym, że nie ma szybkości. Javy nie wpisałem, bo nie jest lansowana, tylko wyśmiewana ;)

revcorey   6 #6 21.11.2013 08:54

"Gdyby nie to, że nie ma zintegrowanego kompilatora, to byłby to mój faworyt."
Nie prawda. Możesz sobie ściągnąć wersję z gcc ba nawet z opengl z oficjalnej strony.

Jeśli planujesz tu kurs c++ to odpuść. Pełno tego w necie. Jeśli masz zamiar pisać o C++ to od razu uderzaj w STL,GC(np. bochem),valgrind czy alokacja dużych obszarów pamięci. Inaczej szkoda czasu.

revcorey   6 #7 21.11.2013 09:28

" Javy nie wpisałem, bo nie jest lansowana, tylko wyśmiewana ;)"
Wyśmiewają go:
a) Zwolennicy C#
b) Ci co coś tam gdzieś słyszeli od kolegów ale mają za słabą wiedzę
Oczywiście java ma swoje wady(ale się rozwija czekamy na wersję SE8!) ale nie jest tak wolna jak to jes lansowane i do tego pół świata w niej pisze a od 10 lat ludzie na forach wieszczą zmierzch javy a tu wręcz przeciwnie. Co więcej JVM jest bardzo dobrym i dojrzałym projektem na który są inne projekty np. jython itd.

enedil   9 #8 21.11.2013 10:42

Ja nie napisałem, że Java jest zła, czy powolna, mówię jaki jest kreowany jej wizerunek.

GBM MODERATOR BLOGA  19 #9 21.11.2013 11:17

Microsoft Visual Studio Express
Code::Blocks
Qt Creator

Ja bym oponował albo za tym pierwszym rozwiązaniem prosto od MS, albo za DevC++ - to ostatnie, dostało ostatnio aktualizację porządną.

Czemu tak ? Bo inne rozwiązania to tylko odstraszanie początkujacego programisty - multumem opcji, skomplikowaniem obsługi - to wszystko może przerażać, naprawdę. Mówię w sumie też pod kątem własnego doświadczenia ;)

Ale wpis bardzo w porządku, obyś w następnych częściach zamieszczał dużo listingów kodu, bo to jest imho najważniejsze :)

Pozdrawiam,
GBM

enedil   9 #10 21.11.2013 12:30

@teton próbowałem używać, ale jakoś niespecjalnie mi przypadło do gustu :)

  #11 21.11.2013 13:18

Lepiej by napisać kurs o takich nowoczesnych językach programowania jak Ceylon 1.0, Go ponoć przyszłosciowe. I do tego po polsku nie ma jeszcze żadnego kursu, tutoriala. Wtedy byś był pierwszym prokursorem takiego kursu, a do C++ wiadomo dużo jest informacji. Nawet mało jest kursów o python 3 , lua, ruby.

  #12 21.11.2013 14:25

Chętnie poczytam następne części nauki c++. Co myślisz o kompilatorze DevC++?

Kintoki   6 #13 21.11.2013 14:41

Html nie jest językiem programowana

Predator312   9 #14 21.11.2013 15:10

@Autor
Wpis zachęcający do nauki programowania. Mam nadzieję, że będziesz kontynuował cykl, bo zapowiada się ciekawie. Może tym razem uda mi się zabrać za naukę pisania programów w C++. :)

enedil   9 #15 21.11.2013 15:13

@Pablito24 ostatnia wersja (wg. Wikipedii) wyszła w 2005 r. To IMHO za dużo. Lepiej zainstaluj Code::Blocks.

enedil   9 #16 21.11.2013 15:16

@Kintoki
Tak, wiem, chociaż Html5 zawiera pewne cechy języka programowania. Napisałem o nim, bo dzięki temu przykładowi trochę łatwiej zrozumieć co to w ogóle programowanie.

  #17 21.11.2013 15:28

@Pablito24
DevC++ nie jest kompilatorem tylko IDE(integrated development enviroment), kompilatorem devc++ jest tak jak w przypadku code:blocks mingw(gcc)

Osobiście odradzam devc++ - nie ma większego sensu używanie IDE windows exclusive które nie jest używane w zastosowaniach profesjonalnych.

Jeżeli chodzi o development na okienka to polecam Visual Studio Express. Jeżeli chcesz się trzymać z dala od MS i ich technologi to: Netbeans/Eclipse/Code::Blocks/QT Creator - wszystkie są multiplatformowe, i posiadają wszystkie niezbędne narzędzia do programowania C/++ a dodatkowo dwa pierwsze także w innych popularnych językach(java, php)

prap   3 #18 21.11.2013 15:37

Po pierwsze sudo yum groupinstall a nie samo sudo groupinstall na fedorze.

Po drugie mam wystarczające środowisko do programowania w c++ a wykonanie polecenia

sudo yum groupinstall development-libs development-tools

chce mi doinstalować jeszcze 30MB paczek natomiast

sudo yum install qt-creator gcc-c++ gtkmm30-devel \
gstreamermm-devel cluttermm-devel webkitgtk3-devel \
libgdamm-devel

chce doinstalować 60MB paczek.

O ile rozumiem jeszcze development-libs i development-tools bo prostą komenda ma się wszystko co trzeba plus coś jeszcze, nie trzeba instalować pojedynczych paczek, o tyle po co instalować od razu biblioteki związane z gtk czy webkitem do nauki programowania C++?

Ponadto "Symfonia C++" Grębosza była taka se z tego co pamiętam, ale może się poprawiło. Do tego warto byłoby w dalszej części skupić się na standardzie C++11.

enedil   9 #19 21.11.2013 16:02

@prap Nie używam Fedory, ani żadnego Linuksa z paczkami rpm, dlatego poszukałem w Internecie paczek, które trzeba doinstalować. Fakt, może osoba która to pisała zakładała, że będę używać GTK. Jeżeli sądzisz, że jakieś pakiety można usunąć to napisz, wtedy wyedytuję.

Co do Symfonii, to wyszła 3 wersja, nie wiem jak wcześniej, ale moim zdaniem pomocna i zrozumiała.

LonngerM   11 #20 21.11.2013 16:03

Ja aktualnie pracuję na eklipsie i nie jest najgorzej - Android i Java:) Więc mi proszę Javy nie wyśmiewać xD

Frankfurterium   9 #21 21.11.2013 16:15

@Anonim
"Lepiej by napisać kurs o takich nowoczesnych językach programowania jak Ceylon 1.0"

Ceylon ma masę świetnych ficzerów, których Java dorobi się chyba w wersji 15 (8 to spory krok naprzód, ale rozwoju i tak dynamicznym nazwać nie można...), ale mimo jedynki w numerze wersji dojrzałym nazwać go nie można. Przeglądając oficjalne wprowadzenie na stronie języka, można się natknąć na zdania typu "Nad tym się zastanawiamy, to dodamy kiedyś, a to _może_ wprowadzimy kiedyś". Ponadto używa go zbyt mało narzędzi i frameworków, żeby traktować go poważnie. Ostatnia sprawa - opiekuje się nim RedHat. Niby fajnie, bo to duża firma, która będzie o niego dbała i dorabiała narzędzia (w końcu mają JBossa i inne takie), ale z drugiej strony ich wsparcie dla wersji open/free/community jest niemal żadne, całość skupia się na produktach komercyjnych.

W mojej opinii językami pokroju Ceylona można _na razie_ zajmować się hobbystycznie, na co dzień posługując się jakimś "poważnym" narzeczem. A jeżeli ktoś szuka czegoś nowego, ekscytującego ale posiadającego jako-takie wsparcie w światku JVM, proponuję Scalę albo Groovy'ego.

prap   3 #22 21.11.2013 16:16

Te paczki są do odstrzału.

gstreamermm-devel cluttermm-devel webkitgtk3-devel libgdamm-devel

Prawdopodobnie lista została wzięta z instrukcji programowania dla Gnome lub GTK.

harmenza   4 #23 21.11.2013 16:21

Także czekam na kolejne częśći :)

prap   3 #24 21.11.2013 16:22

A, no i brakuje mi tam gdb na liście, chyba że jakimś cudem jest na liście zależności, ale nie widzę gdb bezpośrednio ani w development-tools ani w development-libs. Mam nadzieję, że autor nie zapomniał o debuggerze w swoich planach.

prap   3 #25 21.11.2013 16:27

A, no i development-tools i development-libs doinstaluje sporo paczek niepotrzebnych do podstaw C++, jednakowoż przyznaję, że może to być wygodniejsze dla początkującego użytkownika niż instalowanie pojedynczych paczek.

Jeśli dobrze pamiętam to spokojnie powinno starczyć

yum install gcc gcc-c++ gdb valgrind

To na początek, plus jakiś edytor lub IDE.

enedil   9 #26 21.11.2013 16:36

Nie będę na razie używać valgrinda, bo to jest też poradnik dla użytkowników Windows. Według oficjalnej strony:
"This release supports X86/Linux, AMD64/Linux, ARM/Linux, PPC32/Linux, PPC64/Linux, S390X/Linux, MIPS32/Linux, MIPS64/Linux, ARM/Android (2.3 and later), X86/Android (4.0 and later), X86/Darwin and AMD64/Darwin (Mac OS X 10.7 and, to a limited extent, 10.8). "
Dopisałem to co potrzeba w wpisie.

PokerFace   9 #27 21.11.2013 16:56

A czy Qt creator nie służy do tworzenia aplikacji Qt? Przykładowo stworzenie aplikacji GTK 3 nie jest możliwe?

PokerFace   9 #28 21.11.2013 16:57

Ah ten brak możliwości edycji.. poradnik dla użytkowników Windows? Czyli jako użytkownik Minta jestem do odstrzału :P

prap   3 #29 21.11.2013 17:00

Do Qt'a też służy i oryginalnie został stworzony jako IDE do Qt właśnie. Ale dobrze się sprawdza także w czystych projektach C lub C++. Nie wiem jak z aplikacjami GTK, ale pewnie też się da to jakoś ogarnąć.

R@z0r   5 #30 21.11.2013 17:01

@enedil
Ani HTML ani XML to nie są języki programowania! Co wgl Cibie mają wspólnego z takim C++? To są języki znaczników! Języki znaczników opisują strukturę dokumentu, i ich kod nie jest zamieniany na kod maszynowy.

enedil   9 #31 21.11.2013 17:05
PokerFace   9 #32 21.11.2013 17:09

@enedil Przepraszam nie zauważyłem ;)

revcorey   6 #33 21.11.2013 17:15

Dev-C++ reaktywował jakiś rok temu ktoś tam. Generalnie ja też zaczynałem od Devcpp lata temu ale dziś na niego szkoda czasu.

Scorpions.B WSPÓŁPRACOWNIK  20 #34 21.11.2013 17:17

To w końcu Microsoft Visual Studio Epress jest darmowe, czy to wersja testowana na 30 dni? Bo nie mogę zrozumieć z Twojego wpisu ;)

enedil   9 #35 21.11.2013 17:32

@Scorpions.B: jest darmowe, ale po 30 dniach trzeba je zarejestrować (oczywiście za darmo). Przy rejestracji podajesz tylko do jakich celów chcesz używać produkt, pewnie do statystyk.

arlid   14 #36 21.11.2013 18:42

Fajny wpis :) W sam raz na początek. Z wpisu wynika, że przypał Ci do gustu Qt Creator. Może w jakiejś części pokażesz jak zintegrować z nim kompilator? ;)

R@z0r   5 #37 21.11.2013 18:46

@enedil
Czytałem ten komentarz... jakie cechy wspólne? WTF?

enedil   9 #38 21.11.2013 18:54

@arlid: Ja używam w Qt Creatorze kompilatora od VS, ale do tego trzeba mieć zainstalowane VS. Żeby mieć w pełni działające niezależne środowisko zaimstaluj MinGW: http://www.pansenti.com/wordpress/?page_id=303

revcorey   6 #39 21.11.2013 18:59

enedil Przecież ci napisałem na stronie qt(obecnie qt 5.1) masz zintegrowany qt+mingw. Ściągasz jedną paczkę i koniec, nie przejmujesz się ustawianiem ścieżek itd. Popraw wpis.

  #40 21.11.2013 19:03

żenada. kurs języka zaczyna od wyboru jakiegoś programu? po co? żeby kursant poczuł się jak pro? do nauki wystarczy zwykła konsolka i notepad++. nie przytłacza, nie trzeba się wdrażać i można przejść do sedna.

enedil   9 #41 21.11.2013 19:04

@revcorey: Tak, ale trzeba pobrać też całą bibliotekę Qt. OK, dodam link w artykule, chociaż nie jest to optymalne rozwiązanie.
@R@z0r: przeciętnemu Kowalskiemu tak to się kojarzy, doskonale rozumiem, że to nie jest język programowania.

PokerFace   9 #42 21.11.2013 20:11

@kapsztat tak już lecę pisać programy w notatniku...

enedil   9 #43 21.11.2013 20:21

@kapsztat to, że Tobie najwygodniej się pisze całe wyrazy (bez autouzupełniania), bez kolorowania składni i automatycznego informowania o błędach, a także z każdorazową kompilacją z terminala nie oznacza, że inni (gdzieś 99 %) lubią to samo. Opisuję tutaj najwygodniejszy sposób.

xm2   3 #44 21.11.2013 21:08

@enedil
Aby zainstalować Qt Creator nie trzeba instalować Qt. Raz, że możesz te rzeczy pobrać osobno i skonfigurować samemu, a dwa - pierwszy instalator na stronie pobierania qt-project jest w wersji "online installer", gdzie się określa co ma zostać zainstalowane.

Idea przyświeca Ci ciekawa z kursem, ale może nie warto się tak bardzo koncentrować np na samej instalacji IDE, szukaniu instalek, itp. Zwłaszcza, jeżeli sam nie przeszedłeś opisanych przez siebie ścieżek (Qt Creator, paczki .rpm). W kursie będziesz przecież opierał się o jedno narzędzie, a przy nauce języka jest to sprawa drugorzędna.

Swoją drogą, jak chcesz uszczęśliwić największą rzeszę użytkowników, niezależnie od systemu, to może warto się oprzeć o MinGW/GCC? Dzięki temu uniezależnisz się (i czytaczy) od IDE.

enedil   9 #45 21.11.2013 21:57

Akurat Qt Creator instalowałem, z tym, że mam obok VS. Nie chcę nikogo ograniczać do systemu/środowiska. Po etapie instalacji nie powinno być już różnic przez długi, długi czas.

mikolaj_s   13 #46 21.11.2013 23:13

@enedil: Warto byłoby dopisać Eclipse jako narzędzie bo to jedyne sensowne środowiko dopuszczone na egazmin maturalny z informatyki.

xm2   3 #47 21.11.2013 23:53

@enedil
Chyba nie wyraziłem się dość precyzyjnie - Online Installer pozwala na zainstalowanie wybranych komponentów, w tym również Qt Creator wraz z MinGW (bez potrzeby instalowania samego Qt).

Przy okazji znam kilka osób, które dobrze odnajdują się w Netbeans lub CodeLite - oba dostępne na różne systemy operacyjne i oba wspierają MinGW/GCC.

  #48 22.11.2013 00:22

Również polecam Dev-C++. Bardzo przyjemne środowisko dla początkującego.

Kleryk_LDZ   8 #49 22.11.2013 02:23

Zatem czekam z niecierpliwościom na kolejną część :D

  #50 22.11.2013 02:43

A ja mam pytanie do osób, ktora sa bardziej na czasie, lub naewt do autora wpisu.

Otóż swojego czasu, a nawet bardzo dawno temu, pisałem apki, w pewnie wsyztskim znanym BC++ w wersji 6, podobało mi się to, że mogłem układać GUI w bardzo łatwy sposób, a potem opisywac dany element jak i zachowanie programu.

W archiwach mam sporo projektów które porzuciłem z racji na to iż środowisko to niekoniecznie dobrze pracowało z w7, było stare itd. w każdym razie chętnie bym zaczał 'od nowa'. ALE...

Co dla mnie jest najbardziej odpowiednie? Visual Express - ok, układam sobie GUI, koduje itd. no ale to .NET

w M$ Visual studio 2012 chociażby juz nie moge sobie tak obszernie tworzyć GUI, okienek itd.

w QT moge, no ale to Qt.

no to co w końcu ?

Pozdrawiam

kostek135   8 #51 22.11.2013 04:40

Ja się pytam... gdzie jest vim?

enedil   9 #52 22.11.2013 06:08

@kostek135: nigdy nie używałem vima, zresztą jest nieintuicyjny dla początkujących. Ta lista nie zawiera najlepszyj, jakie kiedykolwiek powstały, tylko takie, które M I przypadły do gustu.
Pozdrawiam,
endil

xm2   3 #54 22.11.2013 09:53

@BcB
Visual, ale to .NET.
Qt, ale to Qt.
No a w BC++ to VCL, czyli biblioteka Borlanda pamiętająca jeszcze czasy Object Pascala. Jego następcę, czyli CLX Borland oparł już o Qt. Samo VCL imho można uznać jako Obsolete, a po co korzystać z potwora typu CLX, skoro mamy czyste i prężne Qt?
Jak nie chesz bawić się w technologie MS, to Qt wydaje się być obecnie najbardziej na czasie. Tyle, że wszystko co się nauczyłeś o VCL idzie lulu.

  #55 22.11.2013 11:58

Kolejny kurs robiony w dobrej wierze przez początkującego... Ileż można?

xm2   3 #56 22.11.2013 14:18

@ja3
Zapewne tyle razie ile wynosi zakres unsigned int, czyli jakieś 4294967295. Jak powstanie dokładnie tyle takich kursów, to prawdopodobnie nastąpi koniec świata ;)

Z takimi kursami jest tak, że największą wartość mają one dla autora, ale przy okazji być może inna początkująca osoba też zyska. Aby coś napisać trzeba coś nie dość, że wiedzieć, ale też dobrze rozumieć. Jeżeli tak nie będzie, to czytelnicy to zweryfikują.
Jedyna obawa przy takich kursach to zapał autora, aby nie wygasł.

  #57 22.11.2013 14:44

@Frankfurterium
Zgadzam się ze wszystkim co napisałeś. Osobiscie mimo że używam Linux to język programowania który wydaj się być najłatwiejszy z prostą skladnią to C#. Dlatego brakuje mi dobrego tutoriala kursu własnie z Mono C# z opisem monodevelop Gtk#.

  #58 22.11.2013 15:18

Nie umniejszając autorowi jego chęci, błąd ortograficzny popełniony już na początku pierwszego zdania nie wróży nic dobrego o takim kursie. Według mnie autor nie ma odpowiedniego doświadczenia w programowaniu. Początkującym osobom zdecydowanie lepiej i prościej byłoby polecić wspomnianą przez autora książkę, gdyż wielu z dzisiejszych programistów swoje pierwsze kroki w języku C++ stawiało z tym właśnie tytułem w ręku. Poniżej kilka większych uwag do zamieszczonej przez autora treści:

Zdanie "Język programowania to najprościej mówiąc zbiór poleceń, które komputer jest w stanie zrozumieć i zastosować się do poleceń." niewiele mówi potencjalnemu kursantowi. Język programowania jest w uproszczeniu zbiorem instrukcji, których komputer nie jest w stanie zrozumieć bez wcześniejszej translacji na język maszynowy.

Zdanie "C++ jest językiem, który w przeciwieństwie do coraz bardziej lansowanych języków takich jak Html5*, JavaScript, czy PHP zapewnia większą kontrolę nad programem i większą wydajność. " - jak już zostało to wyjaśnione - jest nieco kłamliwe, gdyż wynika z niego, że języki HTML5 (akronimy piszemy wielkimi literami), JavaScript i PHP również są językami wysokiego poziomu, na dodatek kompilowanymi, zapewniającymi pewną kontrolę nad programem. A przecież tak nie jest.

Zintegrowane Środowisko Programistyczne - w tłumaczeniach tego typu nazw na język polski nie stosujemy wielkich liter w kolejnych wyrazach. Przykładowo: Panel sterowania - Control Panel.

Myślę, że dając czytelnikom możliwość wyboru środowiska programistycznego, dalsze poprowadzenie kursu dla początkujących może okazać się dość trudne, z uwagi na konieczność wyjaśnienia im zasad poruszania się po każdym z nich. Poza tym, jeśli ktoś faktycznie planuje poważną naukę programowania na platformie Windows, to jedynym słusznym wyborem będzie tutaj Visual Studio. Nie tylko środowisko będzie wygodne, ale jak twierdzi sam twórca języka C++ - Bjarne Stroustrup - implementacja Visual C++ jest jedną z najlepszych, jakie dostępne są na rynku.

CoroDaNem   6 #59 23.11.2013 02:17

@enedil
Wielka szkoda, że nie wspomniałeś we wpisie o Dev C++. Jest to idealne środowisko do rozpoczęcia nauki programowania w C++, pomimo iż nie ma tak wielu funkcji jak Code::Blocks sprawuje się świetnie w pisaniu prostych programów lub szybkiej realizacji algorytmów. W Dev'ie oprócz aplikacji 32-bitowych można w łatwy sposób rozpocząć pisanie aplikacji 64-bitowej korzystając z zestawu kompilatorów TDM-GCC, oczywiście wcześniej wspomniany Code::Blocks pozwala na przykład na kompilację dla architektury PowerPC (i nie tylko), lecz taki bajer z pewnością "żółtodziobom" się nie przyda. Prościej mówiąc zmierzam do wniosku, że minimalizm Dev'a jest bardzo przyjazny dla początkujących, a odpowiednio skonfigurowany umila pracę, natłok niepotrzebnych funkcji Code:Blocks'a może odstraszać, choć nie mówię, że jest to złe IDE, dużo rzeczy można w nim zrobić o wiele szybciej niż Dev'ie, np. skonfigurowanie projektu aplikacji opartej o bibliotekę multimedialną SDL zajmuje mi mniej niż minutę.

Jeszcze jedna ważna sprawa... Jak będziesz w życiu budował większość faktów na podstawie Wikipedii, to daleko nie zajdziesz. Dev C++ jest obecnie rozwijany, lecz nie przez Bloodshed Software, które tak jakby jest właścicielem tego projektu, a przez nowego wydawcę znanego pod nazwą Orwell. Ostatnia wersja została wydana 5 listopada bieżącego roku, zaś Code::Blocks od ok. roku stoi w miejscu :P

  #60 23.11.2013 06:04

@Krzysiek-85.

Oczywiście pochwała dla autora postu na tym blogu, który chce nauczyć innych w sposób "łopatologiczny" nauczyć języka programowania.
Ale jak napisał Krzysie-85, trzeba mieć bardzo dobrze ugruntowaną wiedzę z danego materiału, ponieważ jak przekazujemy wiedzę innej osobie i będziemy ją błędnie uczyć to jest to bardzo złe wg mnie.
Oraz jak będą jakieś błędy będzie mnóstwo hejtu w komentarzach.

zoolek   3 #61 23.11.2013 09:37

Jeśli C++, to zapewne wypadałoby coś napisać o klasach. O ! Implementacja singletonu (choć to nieeleganckie rozwiązanie według niektórych) mnie interesuje ;) link do ciekawego zasobu : http://www.cplusplus.com/

Frankfurterium   9 #62 23.11.2013 10:50

@zoolek
" Implementacja singletonu (choć to nieeleganckie rozwiązanie według niektórych) "

...a w szerokim świecie nazywane czołowym antywzorcem projektowym.
http://stackoverflow.com/questions/137975/what-is-so-bad-about-singletons

krzysiek1507   2 #63 23.11.2013 20:22

W Visual Studio jest C++/CLI, czyli C++ i nie-C++ jednocześnie. ;) Mimo iż różnych tutków jest w sieci od groma, to i tak warto takie pisać. Jeśli nie dla innych, to dla siebie, bo przy okazji pisania wychodzą różne kwiatki. :) Od roku programuję zawodowo w C# i wiem, że nie zawsze da się komuś coś wytłumaczyć (programista ma w głowie podlinkowane wszystko, więc od wątku do wątku i wie, ale osoba, której tłumaczymy, już nie ma tej "innej" wiedzy). Mało błędów, wysokiej wydajności i lekkiego pióra życzę. ;)

sgj   10 #64 24.11.2013 21:21

@krzysiek1507 "W Visual Studio jest C++/CLI, czyli C++ i nie-C++ jednocześnie"

CLR -> C++/CLI ->.Net
Win32 - C++

  #65 26.11.2013 12:24

Zapomniałeś o najważniejszym środowisku czyli Eclipse, Jest kilka wersji m.in. dla C++ oraz Javy
Można podłączyć dowolny kompilator , a więc w tym przypadku g++/gcc