Początki w programowianiu językiem C++


(D Kielbania) #1

Zacząłem się uczyć programować językiem C++. Jednak nie wiem jakich programów używać do tego. Chciałbym się Was poradzić czego najlepiej używać na początku.


(Sawyer47) #2

Jeżeli używasz systemu unikso-podobnego to polecam Ci:

-> edytor tekstu: Vi, Emacs, Kate

-> kompilator g++ (wchodzi w skład pakietu GCC)

-> środowisko programistyczne kDevelop


(D Kielbania) #3

używam systemu windows XP


(Rafał(c)) #4

Właściwie to dwa środowiska:

DevC++

Borland C++ 6 Personal

Obydwia programy są darmowe (drugi do użytku własnego również). Osobiście używam tego pierwszego.


(system) #5

tez polecam DevC++ w windowsie


(Fiołek) #6

MS Visual C++ 2005 jest jednym z najlepszych(jak nie najlepszym) IDE pod Windowsa.


(D Kielbania) #7

Ok, dzięki panowie za pomoc w doborze programu. Ale mam jeszcze kilka pytań

  1. Gdy napisałem pierwszy program (zgodnie z kursem, który posiadam) to po uruchomieniu programu jest on automatycznie zamykany (włącza się i wyłącza)

  2. jest błędem, gdy napiszę:

    "tekst"

a wg. kursu powinno być:

" tekst "

? 3. Co w tym kodzie jest źle wpisane?

//Listing 2.2 użycie std::cout

#include 

int main()


{

    std::cout << "Hej tam\n ";

    std::cout << " to jest 5: " << 5 << "\n ";

    std::cout << " Manipulator std::endl ";

    std::cout << " wpisuje nowa linie na ekranie. ";

    std::cout << std::endl;

    std::cout << " to jest bardzo duza liczba:\t" << 7000

    std::cout << std::endl;

    std::cout << " to jest suma 8 i 5 ";

    std::cout << 8+5 << std endl;

    std::cout << " to jest ulamek\t\t ";

    std::cout << (float) 5/8 <
    std::cout << " i bardzo, bardzo duza liczba ";

    std::cout << (double) 7000 * 7000 << std::endl;

    std::cout << " Nie zapomnij zmienic Jesse Liberty ";

    std::cout << " na swoje nazwisko...\n ";

    std::cout << "xxx xxx jest programista C++!\n "

    return 0;

}

(somekind) #8

Dodaj sobie

system("PAUSE");

przed instrukcją

return 0;

w funkcji main. Pomoże.

Dla kompilatora nie.

Są błędy w trzech linijkach. Czytaj komunikaty i sam je napraw.

std::cout << " to jest bardzo duza liczba:\t" << 7000

std::cout << 8+5 << std endl;

std::cout << "xxx xxx jest programista C++!\n "

(D Kielbania) #9

Dzięki wielkie za pomoc. Jak na razie poważniejszych błędów brak.


(Ryan) #10

Poważniejszego kodu też brak. :wink: Jeśli aplikacja nie kompiluje się, czytaj uważnie błędy od pierwszego (przy najniższym numerze linii). W większości przypadków błąd dotyczy dokładnie miejsca wskazanego przez błąd, lub miejsca tuż przed (poprzedniego słowa, poprzedniej linii). Wbrew pozorom komunikat błędu kompilacji mówi wszystko co niezbędne na temat problemu.

Poza tym zamiast pisać wszędzie std::cout i std::cokolwiek, możes pisać np. samo cout, jeśli zadeklarujesz, że używasz przestrzeni nazw std.


(D Kielbania) #11

OK, więc trafiłem na bardziej skomplikowany błąd, mianowicie wyświetla mi się coś takiego:

[Linker error] undefined reference to `WinMain@16'

oto kod źródłowy programu:

#include 

int amin()

{

    using std::cout;

    using std::cin;


    int MetsScore, YankessScore;

    cout << "wpisz wynik dla Metsow: ";

    cin >> MetsScore;


    cout << " \n Wpiszwynik dla Yankess: ";

    cin >> YankessScore;


    cout << "\n";

    if (MetsScore > YankessScore)

    {

    cout << " Go Yankess! \n";

}

if (MetsScore == YankessScore)

{

              cout << "Remis? Eeeee... Nie Moze byc... \n";

              cout << "Podaj mi prawdziwy wynik dla Yanks: ";

              cin >> YankessScore;


              if (MetsScore > YankessScore)

              cout << "Wiedzialem! Go Mets!";


              if (YankessScore > MetsScore)

              cout << "Wiedizalem, Go Yanks!";


              if (YankessScore == MetsScore)

              cout << "Coz, rzeczywiscie byl remis!";

              }

              cout << "\nDzieki za informacje. \n";

              return 0;

}

Ryan , wiem, że nie są to jakieś poważne kody programów, ale ja dopiero zaczynam przygodę z C++, więc napisanie czegoś takiego sprawia mi sporo trudności (nawet, gdy wzoruję się na książce)


(Ryan) #12

Ale przecież ja nie piszę tego, żeby pokazać jaki jestem mastah a Ty jak mało potrafisz. Piszę to, by zachęcić do prób samodzielnego rozwiązywania problemów z kodem. :slight_smile:

Ale do rzeczy. WinMain z czymś Ci się kojarzy? Szczególnie część "main"? WinMain, main i wmain to kilka dozwolonych funkcji głównych w kodzie C++ (zależy od kompilatora, środowiska docelowego i paru innych rzeczy). Skoro komunikat błędu mówi, że nie można znaleźć głównej funkcji (tzw. entry point) to mówi Ci to nic więcej jak to, że nie masz maina (lub jego wariacji - patrz wyżej). I co ja widzę w Twoim kodzie?

int amin()

Popatrz uważnie gdzie masz błąd. :slight_smile: Poza tym wyrób sobie nawyk wyrównywania wcięć, np:

if (s == true)

{

  for (;;)

  {

    if (buf == NULL)

    {

      break;

    }

    else

    {

      printf("b");

      break;

    }

  }

}

else

{

  printf("a");

}

a nie

if (s == true)

{

for (;;)

{

   if (buf == NULL)

    {

      break;}

else

{

      printf("b");

 break;

    }

}

}

else {

 printf("a");

}