Powtórzenie wiadomości o języku C++

obrazek

Bjarne Stroustrup - (C)Wikipedia

Język C++ jest językiem programowania stworzonym przez Bjarne Stroustrupa, profesora Texas A&M University. Jest to język wysokiego poziomu (ang. HLL - High Level Language), co oznacza, iż oddala się on od struktury wewnętrznej komputera pozwalając programiście skupić się nad samym algorytmem.

Język C++ należy do grupy języków kompilowanych. Oznacza to, iż programista w edytorze tworzy tekst programu, który następnie jest przekazywany do kompilatora. Kompilator analizuje otrzymany tekst i na jego podstawie tworzy program wynikowy zawierający binarne instrukcje dla procesora.

Przykład:

Instrukcja przypisania w języku C++:

a = (b + c) * d;

zostaje zamieniona na ciąg rozkazów maszynowych dla procesora:

mov eax,[b]  ; pobranie do akumulatora zawartości komórki o adresie b
add eax,[c]  ; dodanie do akumulatora zawartości komórki o adresie c
mul [d]        ; wymnożenie akumulatora przez zawartość komórki o adresie d
mov [a],eax ; umieszczenie wyniku w komórce o adresie a

Podane powyżej polecenia są umieszczane w programie wynikowym w postaci swoich kodów binarnych (odpowiednich ciągów bitów 0 lub 1). Z przytoczonego powyżej przykładu wynika jasno, iż języki wysokiego poziomu są bardziej czytelne dla ludzi. Jednakże procesor nie potrafi bezpośrednio wykonywać zawartych w takim programie poleceń - program musi być przetłumaczony do postaci zrozumiałej dla procesora, czyli do binarnych kodów instrukcji maszynowych.

Do programowania w języku C++ będziemy używali zintegrowanego środowiska programowania (ang. IDE - Integrated Developement Environment), które zawiera edytor oraz kompilator. Na lekcjach oprzemy się o darmowe środowisko Dev-C++, które można pobrać z sieci Internet lub z naszego serwisu. Na komputerze domowym ucznia musi być bezwzględnie zainstalowane podane środowisko programowania.

Przygotowanie środowiska pracy

Na dysku C: utwórz katalog, w którym będą tworzone projekty. W naszym przypadku będą to katalogi 3d1 dla I grupy i 3d2 dla grupy II. Wchodzimy do utworzonego katalogu i zakładamy w nim katalog projektu, np. o nazwie 01 (numeracja kolejnych projektów przy nauce programowania jest bardzo dobrym pomysłem).

 

Uruchom Dev-C++.

 

obrazek

 

Wybierz z menu opcję Plik/Nowy/Projekt (ang. File/New/Project). Spowoduje to pojawienie się okienka dialogowego wyboru typu projektu:

 

obrazek

 

U góry klikamy w ikonę Console Aplication. Następnie w polu Nazwa (ang. Name) wpisujemy nazwę projektu, np. p01. Nazwa projektu zwykle przechodzi na nazwę tworzonego programu.

Sprawdzamy jeszcze, czy jest zaznaczona opcja Projekt C++. Jeśli wszystko jest w porządku, klikamy myszką w przycisk OK. Projekt zawsze musi być zapisany na dysku, dlatego pojawi się okienko zapisu pliku projektu. Jako miejsce docelowe wybieramy utworzony przez nas katalog C:\3d1\01 (lub dla grupy II C:\3d2\01). Nazwa pliku projektowego, to p01.dev.

 

obrazek

 

Po zapisie projektu na dysku w edytorze Dev-C++ zostaje utworzony szablon aplikacji konsoli.

 

obrazek

 

Wymaż go (Ctrl+A i klawisz Delete) i wpisz tekst programu z następnego podrozdziału.

Budowa programu w języku C++

Przykładowy program w języku C++:

#include <iostream>

using namespace std;

int main()
{
  cout << "Witaj w C++\n\n";
  system("pause");
  return 0;
}

Na początku programu znajduje się tzw. dyrektywa preprocesora. Preprocesor jest fragmentem kompilatora. Przed rozpoczęciem analizy programu kompilator uruchamia preprocesor, który wstępnie przetwarza pliki tekstów programów. Gdy napotka dyrektywę #include, to dołącza do tekstu programu zawartość pliku nagłówkowego. Pliki nagłówkowe zawierają definicje różnych danych oraz funkcji. Dzięki dołączeniu ich kompilator poprawnie przetłumaczy nasz program na kod wynikowy.

Plik nagłówkowy iostream zawiera definicję strumieni wejścia / wyjścia, komunikujących się z konsolą znakową. Strumienie są częścią rozległej biblioteki STL (ang. Standard Template Library - Biblioteka Standardowych Szablonów), która powszechnie jest używana przez programistów C++. Po dołączeniu pliku iostream uzyskujemy dostęp do dwóch wygodnych obiektów:

cin - wejścia danych z konsoli znakowej, czyli odczytu tego, co użytkownik wpisze z klawiatury
cout - wyjścia na konsole, czyli zapisu tekstów w okienku konsoli znakowej.

Obiekty biblioteki STL są zdefiniowane wewnątrz tzw. przestrzeni nazw std. Dyrektywa using namespace std informuje kompilator, iż będziemy korzystali z tej przestrzeni przy odwołaniach do obiektów STL cin i cout. Dzięki niej upraszcza się zapis nazw obiektów strumieni - bez tej dyrektywy nazwy cin oraz cout należałoby poprzedzać kwalifikatorami:

std::cin
std::cout

W każdym programie w języku C++ musi wystąpić funkcja o nazwie main (główna). Od tej funkcji program rozpoczyna swoje działanie. Zapis:

int main()
{
  ...;
}

definiuje funkcję main. Słówko int oznacza, iż funkcja zwraca jako wynik liczbę całkowitą. Dlatego ostatnim poleceniem w funkcji main jest instrukcja return 0, która zwraca liczbę 0:

int main()
{
  ...;
  return 0;
}

Wewnątrz funkcji main przesyłamy prosty tekst do strumienia cout. Operatorem przesłania danych do strumienia jest <<. Tekst w języku C++ umieszczamy w cudzysłowach. Na końcu tekstu umieszczono dwa znaki specjalne \n, które oznaczają przejście z wydrukiem tekstu do następnego wiersza (ang. newline, stąd \n). Zwróć uwagę, iż każdą instrukcję w języku C++ kończymy średnikiem. Najczęstszym błędem ucznia jest zapominanie o średnikach na końcach instrukcji.

int main()
{
  cout << "Witaj w C++\n\n";
  system("pause");
  return 0;
}

Jeśli program uruchamiamy z poziomu środowiska Windows, to po zakończeniu działania zamyka on okno konsoli. Zwykle nic nie zdążymy przeczytać. Dlatego na końcu dodajemy wywołanie funkcji system("pause"), która uruchamia polecenie systemowe pause. Polecenie to wyświetla napis:

Aby kontynuować, naciśnij dowolny klawisz . . .

i czeka na reakcję ze strony użytkownika. Po naciśnięciu klawisza funkcja przestaje działać i program kończy się.

Kompilacja i uruchomienie programu

Gdy tekst programu jest gotowy, poddajemy go kompilacji. W Dev-C++ najpierw zapisujemy tekst z edytora do katalogu projektowego. Wystarczy nacisnąć klawisze Ctrl+S (można także wybrać opcję menu Plik/Zapisz - File/Save lub kliknąć myszką ikonę dyskietki na pasku narzędziowym).

Po zapisaniu pliku kompilację uruchamiamy za pomocą jednego z opisanych poniżej sposobów.

Jeśli program nie zawiera błędów, to zobaczymy okienko postępu kompilacji:

obrazek

Gdy w polu statusu pojawi się napis Done (Wykonane), klikamy przycisk Zamknij. Kompilacja jest skończona, w katalogu projektowym powinien pojawić się plik programu o nazwie p01.exe. Skompilowany program możemy uruchomić bezpośrednio z poziomu IDE za pomocą jednego z trzech sposobów:

Na ekranie zobaczymy okienko konsoli:

obrazek

Istnieje jeszcze możliwość kompilacji i uruchomienia programu wynikowego:

Jeśli w trakcie kompilacji zostanie znaleziony błąd w tekście programu, to edytor wyróżni wiersz zawierający błąd, a pod spodem okna tekstowego pojawi się komunikat informujący o rodzaju napotkanego błędu.

obrazek

W podanym powyżej przykładzie został wyróżniony wiersz z instrukcją return. W rzeczywistości błąd jest w poprzednim wierszu - brak średnika na końcu instrukcji. Pod spodem okna edytora możemy przeczytać:

expected ';' before 'return'

oczekiwano ';' przed 'return'

Wszystkie błędy składniowe muszą być bezwzględnie poprawione - kompilator nie utworzy programu wynikowego, jeśli tekst źródłowy zawiera błędy.

 


   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