Polski Serwis Naukowy - OnLine od 1999 roku
RSS
Piątek, 10 lutego 2012
Gabriel, Scholastyka, Jacek, Tomisława
 W 1920 roku gen. Józef Haller dokonał symbolicznych zaślubin Polski z Morzem Bałtyckim
 1925 - Polska podpisała konkordat z Watykanem
 1990 - na Kremlu spotkali się Michaił Gorbaczow i Helmut Kohl - przywódca ZSRR wyraził zgodę na zjednoczenie Niemiec
Nowe publikacje
[C++] Informacje wstępne. Budowa programu
Dodano:
|28 Maj 2010|, 2010 15:59
|
|
|
Język C++ został stworzony na początku lat 80. w Bell Labs przez Bjarne Stoustrupa. Tworząc nowy język, autorowi najbardziej zależało na tym, aby był on wygodny w użyciu. C++ został stworzony w oparciu o C. Stoustrup dodał jednak do C++ obiektowość – rzecz kluczową dla tego języka (sam temat obiektowości będzie opisany później). Obecnie jest to jeden z najpopularniejszych języków m.in. ze względu na dużą swobodę w pisaniu kodu. Naturalnie, zalet tych jest o wiele więcej, jednak my skupimy się na praktycznej stronie C++, na programowaniu.
Tyle słowem wstępu. Przejdźmy do pierwszego programu i postarajmy się go dokładnie omówić:
#include <iostream>
int main()
{
std::cout << ''Witaj w portalu naukowy.pl'';
return 0;
}
Pierwsza linijka: #include <iostream>. Jest to dyrektywa dla preprocesora (preprocesor to program, który przetwarza pliki źródłowe przed zasadniczą kompilacją) mówiąca o tym, że korzystamy z poleceń biblioteki iostream. #include to dyrektywa, zaś <iostream> jest nazwą biblioteki. Jeśli chcielibyśmy skorzystać z możliwości kilku bibliotek, np. iostream i string, zapisujemy to poprzez:
#include <iostream>
#include <string>
Dociekliwy czytelnik może zadać pytanie, po co w ogóle wypisywać dyrektywy dla preprocesora? Czy nie lepiej byłoby udostępniać od razu wszystkie biblioteki? Odpowiedź brzmi: nie. Wyobraźmy sobie, że idziemy do księgarni z zamiarem kupna nowej książki na temat programowania. Czy bierzemy ze sobą namiot, plecak, zestaw konserw, kanister wody, latarkę, itp.? Oczywiście, że nie, gdyż jest to zupełnie niepotrzebne. Gdybyśmy wybierali się w celu eksploracji dżungli, prawdopodobnie taki zestaw był by pomocny. Podobnie jest w programowaniu. "Bierzemy" tylko to, co jest nam potrzebne. Dzięki temu, program jest mniej obciążony i działa sprawnej.
W tym miejscu warto również krótko wyjaśnić czym są biblioteki, które się udostępnia poprzez #include. Biblioteka zawiera wachlarz poleceń, z których korzystamy. Na przykład, jeśli chcemy wyświetlić napis ''Witaj w portalu naukowy.pl'', korzystamy z obiektu cout, który z kolei znajduje się w bibliotece iostream. Jeżeli chcemy wczytywać znaki z pliku tekstowego korzystamy z poleceń znajdujących się w bibliotece fstream, itd.
Następnie przechodzimy do funkcji main. int main() jest nagłówkiem funkcji, gdzie main jest jej nazwą. Pomiędzy nawiasami sześciennymi znajduje się treść funkcji. Polecenie return 0 kończy wykonywanie programu:
int main()
{
instrukcje
return 0;
}
Instrukcje wraz z instrukcją powrotu (tj. return) tworzą treść funkcji. Treść funkcji łącznie z nawiasami nazywamy definicją funkcji. Funkcja main zostanie dokładniej omówiona kiedy skoncentrujmy się na samych funkcjach. Na chwilę obecną należy jedynie zapamiętać, że z int main() korzysta się zawsze. Istnieją wyjątki jak na przykład dynamicznie wiązane biblioteki DLL, jednak takich przypadków nie będziemy się uczyć.
Na koniec przejdźmy do jedynej instrukcji: std::cout << ''Witaj w portalu naukowy.pl'';. Obiekt cout odpowiada za wyświetlanie napisów na ekranie. Jest to jego zasadnicza własność, nie oznacza to jednak, że jedyna. Samą treść zamieszczamy w cudzysłowie, całość wieńczymy średnikiem na końcu wiersza. Należy zwrócić uwagę na zapis std::cout. Istnienie std:: może wyglądać na nieco zbędne i rzeczywiście dla nas tak po części jest. Problem pojawia się jednak przy rozbudowanych programach. Może wówczas dojść do sytuacji, kiedy korzystamy z kilku funkcji o takiej samej nazwie. Aby komputer wiedział, o którą konkretnie funkcję nam chodzi musimy uwzględniać tzw. przestrzenie nazw. Przykład: Firma Naukowy stworzyła funkcję cout, która odpowiada za działanie A. Z kolei firma Science stworzyła funkcję także o nazwie cout, która wykonuje działanie B. Jeśli chcemy, aby nasz program wykonywał działanie A oraz B i zarazem, aby kompilator wiedział, kiedy ma wykonać na polecenie cout działanie A, a kiedy B, musimy to zaznaczyć. Działanie A firmy Naukowy, zaznaczymy poprzez naukowy::cout, a działanie B poprzez science::cout. Na takiej zasadzie działają klasy, funkcje i zmienne należące do standardowych składników kompilatora C++ (std to skrót od standard).
Pisanie za każdym razem std::cout zamiast cout budzi zwykle irytację u programistów, tym bardziej, podczas pisania złożonego kodu. Na szczęście jest na to rada - dyrektywa using namespace. Pisząc using namepsace std; przed nagłówkiem funkcji main automatycznie uwzględniamy przestrzenie nazw. Dzięki temu, zamiast pisać:
#include <iostream>
int main()
{
std::cout << ''Witaj w portalu naukowy.pl'' << endl;
std::cout << ''Witaj w portalu naukowy.pl'' << endl;
std::cout << ''Witaj w portalu naukowy.pl'' << endl;
std::cout << ''Witaj w portalu naukowy.pl'' << endl;
return 0;
}
Wystarczy napisać:
#include <iostream>
using namespace std;
int main()
{
cout << ''Witaj w portalu naukowy.pl'' << endl;
cout << ''Witaj w portalu naukowy.pl'' << endl;
cout << ''Witaj w portalu naukowy.pl'' << endl;
cout << ''Witaj w portalu naukowy.pl'' << endl;
return 0;
}
Manipulator endl, odpowiadający za przechodzenie do nowego wiersza, zostanie omówiony później.
W ten sposób zapoznaliśmy się z elementarnymi wiadomościami na temat C++. Przed omawianiem kolejnych zagadnień pragnę nadmienić, że w C++ wielkość liter ma znaczenie, zatem, np. COUT i cout to nie to samo. Na wielkość liter oraz średniki na końcu wierszy (uwaga: średnik jest częścią polecenia, a nie, jak niektórzy sądzą, rozdzielaczem kolejnych instrukcji) należy zwracać szczególną uwagę. Błędy tego typu ciężko dostrzec przy rozbudowanych aplikacjach, dlatego warto uczyć się dobrych nawyków od samego początku.
Bibliografia:
Stephen Prata, Szkoła Programowania. Język C++, wyd. Helion, ISBN 83-7361-958-5
|
|
|
^ |
|
 |
|
Komentarze: brak |
|
Powered by
phpBB © 2000, 2002, 2005, 2007 phpBB Group
|