TeLord Posted September 22, 2011 Report Share Posted September 22, 2011 Siema. Chcę zacząć programować programy. Ale nie znam żadnego języka. Co polecacie. Odrazu podajcie jakieś strony z kursami. Dzięki Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted September 22, 2011 Report Share Posted September 22, 2011 Ten temat byl omawiany juz tyle razy... Zacznij od C, potem przejdz na C++. Toutoriale ? http://xion.org.pl/productions/texts/coding/megatutorial/ "Symfonia C++" "Jezyk C" ( polecam ) Link to comment Share on other sites More sharing options...
Herobrine Posted September 23, 2011 Report Share Posted September 23, 2011 Po co ma się uczyć C ? Łatwiej będzie nauczyć się C++, potem poznać różnice pomiędzy C a C++ i nauczyć się C. Kiedyś wyboru nie było, teraz jest. Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted September 23, 2011 Report Share Posted September 23, 2011 Z jezyka obiektowego przechodzic na strukturalny ? nonsens. Link to comment Share on other sites More sharing options...
hixohe Posted September 23, 2011 Report Share Posted September 23, 2011 Z jezyka obiektowego przechodzic na strukturalny ? nonsens. C++ nie jest językiem obiektowym... C++ jest językiem ogólnego przeznaczenia, wieloparadygmatowym. Nie wiesz o tym...? Nie ma znaczenia od czego zacznie, ważne żeby dużo pisał. Może zacząć nawet od pascala czy pythona. Dobrze jest też poczytać ogólnie o algorytmice. Polecam "Wprowadzenie do algorytmów" Cormen'a. Link to comment Share on other sites More sharing options...
[Ekspert] Mormegil Posted September 24, 2011 Report Share Posted September 24, 2011 W C też da się pisać obiektowo Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted September 24, 2011 Report Share Posted September 24, 2011 Pisanie strukturalnie w C++ jest... jak sortowanie przez losowanie - Bez sensu Zreszta nawet "cout" jest obiektem, wiec nie wiem, jak bys chcial kodzic w c++ bez uzycia obiektow ( wiem, ze mozna uzywac printf(), ale to jest C ) Link to comment Share on other sites More sharing options...
Herobrine Posted September 24, 2011 Report Share Posted September 24, 2011 To programujesz niby tyle a nie wiesz że pomiędzy C i C++ różnicę są minimalne, że tak powiem kosmetyczne ? C/C++ to jak obecnie C++/C++0x. C++ obiektowy ? Program nie wymaga własnej klasy i dalej można użwać struktur zamiast klas. Obiektowymi nazwałbym raczej Jave albo C#, C++ jest bardzo wszechstronny co dalej, według mnie czyni go najwygodniejszym i najlepszym językiem programowania ;p Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted September 25, 2011 Report Share Posted September 25, 2011 WIesz, mozna programowac w C++ tak samo jak w C, ale nie po to ten jezyk wyprodukowano. Roznice minimalne ? No nie wiem... klasy, dziedziczenie, cala reszta obiektowosci to minimalna roznica ? Link to comment Share on other sites More sharing options...
[Ekspert] Mormegil Posted September 25, 2011 Report Share Posted September 25, 2011 Roznice minimalne ? No nie wiem... klasy, dziedziczenie, cala reszta obiektowosci to minimalna roznica ?Wszystko jak najbardziej do odtworzenia w samym C. Herobrine twierdząc, że zmiany są kosmetyczne nieco jednak przesadza. Różnice składniowe odpowiedzialne za mechanizmy obiektowości są moim zdaniem za duże, żeby nazwać je kosmetycznymi. W rozmowie brakuje jeszcze kwestii szablonów. To jest mechanizm, którego zwyczajnie nie ma w C, a potrafi być bardziej wygodny i wydajny niż obiektowość. Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted September 25, 2011 Report Share Posted September 25, 2011 I przy okazji namieszac sporo w kodzie Ale to fakt, zapomnialem o szablonach. Link to comment Share on other sites More sharing options...
hixohe Posted September 25, 2011 Report Share Posted September 25, 2011 Dla osoby która w życiu nie programowała w początkowym stadium nauki (taka osoba założyła ten temat) różnice będą kosmetyczne. Nie oszukujmy się szablony, klasy, dziedziczenie to odrobinę poważniejsze aspekty programowania. Przy pierwszym kontakcie z programowaniem szablony nie będą odgrywały żadnej istotnej roli. W c++ nie trzeba programować obiektowo i twierdzenie, że c++ jest językiem obiektowym to głupota lub nieznajomość tematu. Jeśli kolega Hakken jest zainteresowany tematem programowania w c++ nieobiektowo to chyba jest na tyle inteligenty żeby wpisać odpowiednią frazę w google lub przeczytać odpowiednią książkę na ten temat. Jeśli chodzi o cout to może dla kolegi Hakkena będzie to szok, ale nie każdy algorytm musi korzystać ze standardowego wyjścia. Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted September 25, 2011 Report Share Posted September 25, 2011 Twierdzenie, ze roznice miedzy C a C++ sa kosmetyczne, to głupota lub nieznajomość tematu. A aplikacje inne niz konsolowe, to odrobinę poważniejsze aspekty programowania ktore Przy pierwszym kontakcie z programowaniem (...) nie będą odgrywały żadnej istotnej roli Pisac strukturalnie w c++ mozna. Tylko po co ? Obiektowo pisze sie wygodniej i latwiej. Link to comment Share on other sites More sharing options...
Herobrine Posted September 25, 2011 Report Share Posted September 25, 2011 Ale żeś powiedział lol. Aplikacje okienkowe poważniejsze aspekty programowania? może dla ciebie, od pisania można zaczynać równie dobrze okienkowo jak i konsolowo. Nieznajomośc tematu/głupota? I mówi to osoba która uznaje C++ za typowo obiektowy język? litości. Interesowały nas fakty na temat języka, to że wygodniej pisać obiektowo to kwestia tylko i wyłącznie gustu, bo różnicy w szybkosci działania programu nie uświadczysz, klas nie używając. Może trochę przesadziłem że zmiany są kosmetyczne, ale biorąc ogół to jest to wlasciwie ten sam język z paroma ułatwieniami i nowościami które można także uzyskać w C (wyjątki zostały podane już w innych postach). Jeżeli ktoś napisze program w C++ strukturalnie za to korzystajac z innych ułatwien tego języka i szybkosc bedzie większa od twojego 100% obiektowo napisanego programu to nazwiesz go głupim? Czy miałeś w ogóle kontakt z C? Link to comment Share on other sites More sharing options...
hixohe Posted September 25, 2011 Report Share Posted September 25, 2011 Generalnie nie widzi mi się dostosowywanie do twojego indywidualnego trybu intelektualnego kolego Hakken, jednak ostatni raz postaram Ci się wytłumaczyć łopatologicznie wszystko po kolei. Tak jak już pisałem przy pierwszym kontakcie(ważne żebyś zwrócił na ten fragment uwagę) z programowaniem różnice będą kosmetyczne lub nie będzie ich wcale. Autor tematu zaczynając przygodę będzie przechodził przez wszystkie podstawowe elementy programowania zmienne/ instrukcje / operatory / wskaźniki. Jeśli dla Ciebie duża różnica jest między while C, a while C++ no to ja się poddaje. Zgodzę się oczywiście, że zagłębiając się w tematykę różnice będą się zwiększały jednak temat dotyczy rozpoczęcia nauki programowania. Nazywać C++ językiem obiektowym można. Uważać, że ziemia jest płaska też można. Tylko po co ? Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted September 25, 2011 Report Share Posted September 25, 2011 Juz pisalem: Mozna w c++ pisac nie-obiektowo, ale nie ma to wiekszego sensu. Bo, jak raczyles zauwazyc, miedzy while w C a while w C++ roznicy nie ma - natomiast nie napiszesz w C np. szablonu klasy. Pisanie obiektowo jako wygodniejsze to tylko kewestia gustu ? Napisz strukturalnie duzy projekt, grupowo, na kilkanascie tysiecy linii kodu. Powodzenia. Gdyby programowanie obiektowe nie bylo wygodniejsze, to by go nie uzywano - wszak programy napisane obiektowo dzialaja wolniej niz te pisane strukturalnie. Nie widzialem jeszcze nigdy, ze ktos, kto dopiero zaczyna programowac robil aplikacje inne niz konsolowe. Chyba, ze uzywa czegos w stylu "przeciagnij myszka z paska na gorze". Oczywiscie, ze przy pierwszym kontakcie nie bedzie duzej roznicy. Przy pierwszym kontakcie nie ma nawet duzej roznicy miedzy pythonem a C. Miedzy C a C++ roznica bedzie jeszcze mniejsza, bo w sumie C++ tak jakby "wyrasta" z C, dodaje do niego nowe mozliwosci. Link to comment Share on other sites More sharing options...
hixohe Posted September 26, 2011 Report Share Posted September 26, 2011 Wreszcie dochodzimy do porozumienia. Od początku dokładnie to miałem na myśli. Co prawda kilkanaście tysięcy linijek kodu da się jeszcze spokojnie ogarnąć (choć nie będzie to wygodne), jednak przy kilkudziesięciu tysiącach jest to już niemożliwe. Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted September 26, 2011 Report Share Posted September 26, 2011 Przeczytalem jeszcze na spokojnie cala dyskusje, i chyba widze skad ta "klotnia" (ach, te rozkminy o 2 w nocy). Otoz, C++ = C +... + Jak zauwazylismy, while czy if nie rozni sie niczym w C i C++, dlatego ja, mowiac, zeby zaczal od C i przeszedl na C++ mialem na mysli ogarniecie skladni C i dzialania procedur, a potem zaczecie pisania obiektowo (w C++). Po prostu jesli ktos uczy sie dopiero calej skladni, zasady dzialania while for if itp. to ciezko mi powiedziec, ze uczy sie C++, skoro tak naprawde nie uzywa tego, co dadano do C++ w stosunku do C. Link to comment Share on other sites More sharing options...
wies.niak Posted September 26, 2011 Report Share Posted September 26, 2011 Tak jak już pisałem przy pierwszym kontakcie(ważne żebyś zwrócił na ten fragment uwagę) z programowaniem różnice będą kosmetyczne lub nie będzie ich wcale. Złośliwie wetknę kij w mrowisko Wszyscy wiemy, że pierwszy program to zazwyczaj "hello world". Skoro tak, to trzeba ten tekst wypisać. W C użyjemy printf, natomiast w C++ większość kursów / książek będzie miała std::cout. Jest różnica? Jest. Jest duża? IMO jest Padła też kwestia wydajności aplikacji pisanych obiektowo i tych strukturalnych. W zdecydowanej większości ludzie mają to w nosie, bo i tak nie zauważają różnicy albo czas oczekiwania jest akceptowalny. A skoro tak, to obiektowo zwykle łatwiej i szybciej jest coś napisać. Aplikacje okienkowe poważniejsze aspekty programowania? może dla ciebie, od pisania można zaczynać równie dobrze okienkowo jak i konsolowo Ani C ani C++ nie posiadają wbudowanych mechanizmów tworzenia aplikacji okienkowych. Albo się korzysta z WinAPI, albo z innych bibliotek. Nie widziałem kursu C++ od podstaw, który zaczynał by się "zróbmy pierwsze okienko". Generalnie nie widzi mi się dostosowywanie do twojego indywidualnego trybu intelektualnego kolego Hakken, jednak ostatni raz postaram Ci się wytłumaczyć łopatologicznie wszystko po kolei. Generalnie nie widzą mi się takie komentarze wobec innych forumowiczów. Potraktuj to jako moją uprzejmą prośbę, by więcej tak nie pisać. Po prostu jesli ktos uczy sie dopiero calej skladni, zasady dzialania while for if itp. to ciezko mi powiedziec, ze uczy sie C++ A niby dlaczego? Skoro while czy if są częścią C++, to ten ktoś uczy się C++. Że w C też to jest? Co z tego - w javie, C# i innych językach też to jest. Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted September 27, 2011 Report Share Posted September 27, 2011 Złośliwie wetknę kij w mrowisko A zlosliwy ty, zlosliwy A dlaczego ciezko mi powiedziec, ze jak ktos z C++ uzywa tylko cout/cin , to pisze w C++ ? Ano wlasnie dlatego, znam zbyt wiele osob, ktorych kod to jest czyste C, tylko zamiast printf()/scanf() jest cout/cin, natomiast nie ma obiektowosci, ani nawet std::string zamiast tablicy charow. I takie zapozyczenie ma determinowac o tym, ze to juz jest C++ a nie C ? To tak, jakbym pisal w C, kompilowal poleceniem g++ -S i twierdzil, ze jestem programista assemblera Link to comment Share on other sites More sharing options...
wies.niak Posted September 27, 2011 Report Share Posted September 27, 2011 Język ustala środowisko, w którym piszesz / wybrany rodzaj projektu / użyty kompilator / użyte biblioteki. Czy piszesz "w pełni C++owo", czy w stylu C, ciągle jest to C++ - kwestia stylu. Gdyby było tak, jak piszesz, ktoś musiałby określić, w którym momencie można siebie nazwać programistą C++owym - np. dopiero wtedy, gdy używa się szablonów, strumieni i, powiedzmy, kontenerów z STL. Podkreślę jeszcze raz, że należy rozróżnić styl programowania od używanego języka. Przykład z asemblerem jest nieadekwatny - asembler i C nie mają wspólnej części składni / gramatyki. Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted September 27, 2011 Report Share Posted September 27, 2011 Mysle, ze to kwestia niewiarygodnie dyskusyjna, i w sumie bez wiekszego znaczenia, bo tak jak powiedziales, nie ma wyznaczonej granicy miedzy programowaniem w C a w C++. No bo czy taki kod to jest C, czy C++: #include <iostream> int main() { std::cout<<"Hello World"; } Niby C++, ale czym sie rozni od C ? zamienic std::cout<<"Hello World"; na printf("Hello World"); i juz mamy problem, bo iostream to biblioteka nalezaca do C++, ale zawiera printf, ktory jest typowy dla C. Inny przyklad: #include <stdio.h> int main() { bool x=true; if (x==true) printf("hello"); return 0; } Tutaj mamy printfa, biblioteka tez jest z C, ale uzywamy bool-a. a tego w czystym C nie ma. Jaki jest to wiec jezyk ? Logika podpowiada, ze C++, poniewaz kompilatorem do C (gcc) tego nie skompilujemy. I tutaj wchodzi przyklad z assemblerem. Za pomoca polecenia g++ -S uzyskam kod w asemblerze, majac kod w C++. Uzyskany w ten sposob kod moge skompilowac kompilatorem do C++ (g++), wiec mozna by powiedziec, ze dany kod jest napisany w C++... no ale przeciez to jest assembler. Link to comment Share on other sites More sharing options...
wies.niak Posted September 27, 2011 Report Share Posted September 27, 2011 Cała dyskusja rozbija się o to, że C++ jest kompatybilny ze swoim poprzednikiem, C. #include <iostream> int main() { std::cout<<"Hello World"; } Niby C++, ale czym sie rozni od C ? zamienic std::cout<<"Hello World"; na printf("Hello World"); i juz mamy problem, bo iostream to biblioteka nalezaca do C++, ale zawiera printf, ktory jest typowy dla C. Właśnie kompatybilność, ale jednak C++ ze względu na bibliotekę, która się pod kompilatorem C nie skompiluje zapewne. #include <stdio.h> int main() { bool x=true; if (x==true) printf("hello"); return 0; } Tutaj mamy printfa, biblioteka tez jest z C, ale uzywamy bool-a. a tego w czystym C nie ma. Jaki jest to wiec jezyk ? Logika podpowiada, ze C++, poniewaz kompilatorem do C (gcc) tego nie skompilujemy. No i właśnie znów kompatybilność, bo C++ zbuduje bibliotekę stdio.h. Jest jeszcze kwestia kompilatora, który może posiadać bool w bibliotece do języka C. Odstępstwo, ale może tak być. I tutaj wchodzi przyklad z assemblerem. Za pomoca polecenia g++ -S uzyskam kod w asemblerze, majac kod w C++. Uzyskany w ten sposob kod moge skompilowac kompilatorem do C++ (g++), wiec mozna by powiedziec, ze dany kod jest napisany w C++... no ale przeciez to jest assembler. Zauważ, że kompilując do asemblera wykonujesz tłumaczenie na inny język, a w tym momencie możesz porównać bardzo wiele języków. Równie dobrze mógłbyś przetłumaczyć pascala na asm (pewnie jest jakieś narzędzie) i też skompilować w g++. Link to comment Share on other sites More sharing options...
[Ekspert] Mormegil Posted September 27, 2011 Report Share Posted September 27, 2011 Tutaj mamy printfa, biblioteka tez jest z C, ale uzywamy bool-a. a tego w czystym C nie ma. Jaki jest to wiec jezyk ?Jest jeszcze kwestia kompilatora, który może posiadać bool w bibliotece do języka C. Odstępstwo, ale może tak być. Psikus, bool jest zgodny z C99. Link to comment Share on other sites More sharing options...