Pomoce:

Instalacja Code Blocks i tworzenie projektu aplikacji konsoli.

 

Struktura programu w języku C++

Utwórz w środowisku Code Blocks projekt aplikacji konsoli, a następnie w edytorze usuń szablon programu i wpisz poniższy tekst:

 

int main()
{

}

 

Jest to najprostszy program w C++, który nic nie robi, ale daje się skompilować i uruchomić. Zawiera on funkcję main(), która zwraca wartość całkowitą. Funkcja main() w C++ pełni specjalną rolę - od niej program rozpoczyna swoje działanie - wynika stąd prosty wniosek:

 

Każdy program w języku C++ musi posiadać funkcję main(), od której rozpoczyna działanie.

 

Sprawdź co się stanie, gdy nazwę funkcji wpiszesz jako Main(), zamiast main().

Funkcja main() zwraca wartość całkowitą, którą można wykorzystać (i często to się robi) do zwrócenia dodatkowych informacji przez program - np. czy wykonanie go powiodło się, czy też wystąpił jakiś błąd. Do zwracania wartości przez funkcję używamy polecenia return. Jeśli go pominiesz, to funkcja zwróci zero. Zmień program w edytorze na poniższy:

 

int main()
{
    return 155;
}

 

Jeśli teraz skompilujesz i uruchomisz program, w oknie konsoli pojawi się informacja:
 

Process returned 155 (0x9B) execution time : 0.040 s
Press any key to continue.
 

To właśnie jest argument instrukcji return. Dodatkowo, ponieważ kod zwrócony przez program był różny od 0, w okienku Logs & others pojawi się na czerwonym tle napis:

 

Process terminated with status 155 (0 minutes, 0 seconds)

 

Tak będzie zawsze, jeśli funkcja main() zwróci wartość różną od 0 (oznaczającego wykonanie z sukcesem - inna wartość jest zawsze interpretowana jako błąd). Najczęściej funkcję main() będziemy kończyli instrukcją:

 

int main()
{
    return 0;
}

 

Jeśli teraz skompilujesz i uruchomisz program, to w oknie Logs & others nie pojawi napis na czerwonym tle, lecz napis niebieski:

 

Process terminated with status 0 (0 minutes, 1 seconds)
Proces zakończył się ze statusem 0 ...

 

Zwykle program w C++ musi odczytywać dane z konsoli i wyprowadzać na nią wyniki swojego działania. Operacje wejścia/wyjścia nie są częścią definicji języka C++, lecz osobną biblioteką. Jeśli chcemy z nich korzystać, to musimy poinformować kompilator o obiektach, które tych operacji dokonują. Powszechnie wykorzystywaną biblioteką we/wy w C++ jest biblioteka STL (ang. Standard Template Library - Biblioteka Standardowych Szablonów). Definicje tych obiektów zawarte są w tzw. plikach nagłówkowych (ang. header files), które dołączamy do programu dyrektywą #include. Wpisz poniższy program:

 

#include <iostream>

int main()
{
    return 0;
}

 

Pliki nagłówkowe są bardzo wygodnym rozwiązaniem - zamiast w każdym programie wpisywać żmudnie definicje tych samych obiektów, wpisujemy jedynie prostą dyrektywę. Przed rozpoczęciem kompilacji plik źródłowy jest wstępnie obrabiany przez tzw. preprocesor. Wyszukuje on w programie źródłowym swoich poleceń, które nazywamy dyrektywami preprocesora. Np. polecenie #include każe preprocesorowi zastąpić się zawartością odpowiedniego pliku nagłówkowego, który jest wstawiany w miejscu tej dyrektywy. Następnie tak zmieniony plik wędruje do kompilatora, który ma już pod ręką wszystkie potrzebne definicje.

Plik nagłówkowy iostream definiuje tzw. strumienie wejścia/wyjścia konsoli (ang. input output streams). Strumień wyjścia cout (ang. console output) pozwala wyświetlać informację w oknie konsoli. Strumień wejścia cin (ang. console input) z kolei pozwala odczytywać informację wpisaną przez użytkownika z klawiatury. Wpisz poniższy program:

 

#include <iostream>

int main()
{
    std::cout << "Tutaj program w C++" << std::endl;
    return 0;
}

 

Po uruchomieniu zobaczymy w oknie konsoli napis:

 

Tutaj program w C++

Process returned 0 (0x0) execution time : 0.130 s
Press any key to continue.

 

<< jest operatorem przesłania danych do strumienia.

endl to tzw. manipulator powodujący przejście z wydrukiem do następnego wiersza w oknie konsoli. Dzięki niemu po napisie Tutaj program w C++ mamy jeden pusty wiersz odstępu. Zamiast manipulatora endl można w tekście umieszczać znaki końca wiersza - \n:

 

#include <iostream>

int main()
{
    std::cout << "Tutaj program w C++\n";
    return 0;
}

 

Zwróć uwagę, że nazwy cout oraz endl są poprzedzone napisem std::. Jeśli go usuniesz, to program nie da się skompilować, ponieważ kompilator nie potrafi odnaleźć cout i endl. Napis std to tzw. przestrzeń nazw, w której żyją obiekty biblioteki STL. Wyobraź sobie ją jako worek z napisem std. Poza tym workiem nazwy zdefiniowanych w nim obiektów są niedostępne, o ile nie poprzedzisz je napisem std:: - wtedy kompilator będzie po prostu wiedział gdzie szukać. Możesz jednakże poinformować kompilator, że chcesz standardowo korzystać z danej przestrzeni nazw - do tego celu służy dyrektywa using namespace, za którą wpisujemy nazwę przestrzeni nazw. Gdy taką dyrektywę umieścisz w swoim programie, to nie będziesz musiał poprzedzać nazw cout, cin i innych z STL kwalifikatorem std:: - do duże ułatwienie. Dyrektywa using namespace std mówi po prostu kompilatorowi, że jeśli nie znajdzie danej nazwy w standardowym środowisku, to ma jej poszukać w worku o nazwie std. Przestrzenie nazw zmniejszają ryzyko konfliktów nazw różnych obiektów i z tego powodu znalazły się w języku C++. Uwierz nam, to dobry wynalazek.

Wpisz poniższy program:

 

#include <iostream>

using namespace std;

int main()
{
    cout << "Tutaj program w C++" << endl;
    return 0;
}

 

Na początku programu umieszczamy zwykle krótki komentarz informujący użytkownika o przeznaczeniu danego programu, autorze i dacie utworzenia. Komentarze mamy za darmo - nie są one przenoszone do programu wynikowego i w żaden sposób nie zwiększają jego pojemności ani nie zmniejszają szybkości działania. Komentujmy zatem programy - staną się o wiele czytelniejsze nawet dla samych ich autorów - szczególnie po upływie kilku tygodni od daty utworzenia.

 

// Przykładowy program w C++
// (C)2010 mgr Jerzy Wałaszek
// I LO w Tarnowie
//---------------------------

#include <iostream>

using namespace std;

int main()
{
    cout << "Tutaj program w C++" << endl;
    return 0;
}

 

Podsumowanie

Program w języku C++ posiada następującą strukturę:

 

// Przykładowy program w C++
// (C)2010 mgr Jerzy Wałaszek
// I LO w Tarnowie
//---------------------------
Komentarz
#include <iostream>
Pliki nagłówkowe zawierające definicje używanych w programie
struktur danych oraz funkcji bibliotecznych.
using namespace std;
Jeśli wykorzystujemy elementy biblioteki STL, to wstawiamy do programu
dyrektywę informującą kompilator o używanej przestrzeni nazw.
int main()
{
    cout << "Tutaj program w C++" << endl;
    return 0;
}
Każdy program w języku C++ musi posiadać funkcję main(), od której
rozpoczyna się wykonywanie programu. Zawartość tej funkcji określa to, co program robi.

 


   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2024 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe