Cześć ,
w c++ jestem noga , ale chciałabym zacząć się uczyć , mam program do napisania na zaliczenie z programowania i chciałabym zrobić to sama, tylko nie wiem od czego zacząć ?
Jaki program polecacie dla początkującego ?
Jeżeli mówisz o IDE, to Visual Studio Community są za darmo. Ja mam 2015 i nie narzekam.
A ja od siebie poleciłbym Qt Creator, bardzo przyjemne środowisko :)
Na sam początek dobry będzie Code Blocks.
Qt Craetor i Code Blocks są bardzo fajne, ale mają jedną poważną wadę odziedziczoną po GDB.
Debugowanie aplikacji konsolowych nie działa, a newbie od tego zaczyna, a nauczenie się posługiwanie debuggerem jest ważniejsze niż nauczenie się składni języka.
Dlatego Visual Sudio jest lepszym wyborem.
Jak się bierze udział w dużych projektach C++ to docenia się alternatywy, które są szybsze i bardziej przejrzyste od Visual Studio. (Do C# nie ma nic lepszego).
@MarekR22 Co niby jest nie tak w debugerze od Codeblocksa? Bo ja go bezproblemowo używałem.
QtCreator nie podkreśla błędnej składni, oraz nie rozwija struktur, klas, więc dla przyjemnej pracy newbie raczej się nie nadaje.
Można dodać jeszcze eclipse.
A mieliście coś takiego że program napisany w C w Codeblocks kompletnie sypie się w Visual Community?
Jeśli chodzi o wybór IDE pod C++ to ja podobnie jak kolega Atmal postanowiłem posiedzieć w Visual Community. Obecnie mam 2017. Wybór samego IDE zależy też od posiadanej wersji Windows. Kilka dni temu miałem masę problemów z Expressem 2013 (w Windows 10). Wyczytałem na wieli, wielu forach że masa ludzi ma problem z VSE2013 w Windows 10.
Co do Codeblocksa to wydaje mi się że pozwala on na większą samowolkę w kodzie jak Comminity.
W C++ można ponoć deklarować zmienne tuż przed użyciem. Tak też czyniłem i niestety ale Codeblocks (v 16) zgłaszam masę błedów że jakaś zmienna jest niezadeklarowana a Community już nie. CB wymagał deklaracji wszystkiego od A do Z jedno po drugim na samym początku i dopiero używanie. Źródło które działało w Comminity w Codeblocku już nie chciał mi się kompilować.
Ponoć w C99 dla C też zrobili że można deklarować tuż przed użyciem ale u mnie akurat to nie działało i nigdy nie doszedłem dlaczego.
Różne kompilatory mają różne niestandardowe rozszerzenia , więc ten sam kod może nie działać na jednym z nich. Co do deklarowania zmiennych, to nie ma znaczenia gdzie to uczynimy, aby tylko było to przed pierwszym użyciem (pamiętając o inicjalizacji przed odczytem). Pisząc zgodnie ze standardem nie powinno być problemów.
Poziom ostrzeżeń też ma wpływ, czy coś da się skompilować bądź nie.
Ja zaczynam przesiadke na C# i TS, uzywam VS Code, moge szczerze polecic, mam wykupiona licencje na VS 2017 ale nie uzywam tego, bo o wiele wygodniej mi sie cos robi wlasnie na VS Code. Z tego co widze to ma tez wsparcie dla C++ https://code.visualstudio.com/docs/languages/cpp
W CB miałem masę komunikatów typu: First declare the function before first use. Oczywiście była deklarowana ale w/g nowszych standardów w C++ czyli tuż przed użyciem. Nie wiem dlaczego CB tak czynił. Visual Express nie miał z tym najmniejszego problemu. Po przeniesieniu kodu z VS do CB praktycznie wszystkio trzeba było poprawiać by skompilował.
W Visualu mogłem zrobić coś takiego:
{
int dom1 = 1;
int dom2 = 2;
cout << "Dom 1 kosztował =" << dom1 << "\n";
cout << "Dom 2 kosztował =" << dom2 << "\n";
int dom3 =3;
cout << "Dom 3 natomiast kosztował =" << dom3 << "\n";
cin.get();
}
a Codeblocks chciał tak:
{
int dom1 = 1;
int dom2 = 2;
int dom3 = 3;
cout << "Dom 1 kosztował =" << dom1 << "\n";
cout << "Dom 2 kosztował =" << dom2 << "\n";
cout << "Dom 3 natomiast kosztował =" << dom3 << "\n";
cin.get();
}
Musiałem często cofać się o wiele linii do tyłu by sprawdzić co zadeklarowałem jakiejś zmiennej.
Było to niewygodne. Nie wiem też czy z Codeblockiem miałem coś nie tak a próbowałem z wieloma jego wersjami. Z deklaracjami referencyjnymi też miał problemy. Wiele razy musiałem z lenistwa tworzyć zmienne z nową nazwą i tą samą wartością jak wcześniej bo za groma CB nie chciał użyć wcześniejszej zmiennej w dalszej części kodu. No i dzięki tym problemom których nigdy nie rozwiązałem zacząłem myśleć o kombajnach od Microsoftu. Od tamtej pory tylko Visual Studio dla CPP lub AtmelStudio dla C i C# (Atmel jest na bazie Visual Expressa). Te środowiska nie dla zabawy mają po kilkadziesiąt GB. Moim zdaniem do programowania w Windows nie ma nic lepszego i praktycznie każdy powinien od tego zaczynać bo im szybciej opanuje całe IDE z komunikatami o błędach itp. tym lepiej.
Z tego co już wiem to w większych projektach fachowi programiści używają jednak mniejszych środowisk ze względu na szybkość ale oni akurat są na takim poziomie że sobie z takim Codeblockiem bez problemu poradzą.
@tubiz to NIE CODE BLOCKS! Za to odpowiada kompilator, na Windows zwykle jest to MinGW/GCC, ale można tak skonfigurować CB by używał innego kompilatora.
To ostrzeżenie mówi: brakuje ci prototypu funkcji w nagłówku lub powinieneś zadeklarować funkcję jako stalic.
Na dodatek to jest kwestia ustawień kompilatora. VS też może się o to czepiać jeśli go odpowiednio ustawi. To jest kwestia różnic domyślnych ustawień.
Aleksandra Olciak napisał(a):
ja jestem noga ogolnie z programowania - przedmiot programowanie rownoległe
Powiedz najpierw pod czym chcesz pisać? Windows, Linux?
Widzę, że tu może chodzić o współbieżność linuksa (mutexy, semafory) + mechanizmy IPC. Jeśli wcześniej nie kodziłaś w c/c++ to tutaj naprawdę trzeba będzie usiąść.
Jeśli takie faktycznie równoległe to pewnie coś typu MPI, CUDA? Trochę więcej informacji ;)