15 listopada 2011

Program wyświetlający tekst

Nadszedł czas na program, który w końcu coś zrobi.Weźmy poprzedni program i wstawmy na początku i między linie drugą i trzecią, nowe linie kodu:

#include <iostream>
using namespace std;

int main(void)

{

  cout<<„To ja twoj komputer.
Mowie do Ciebie.”;
  system(”PAUSE”);
  return 0;
}
Otrzymany program , który wyświetla na ekranie napis:
To ja twoj komputer. Mowie do Ciebie.
Najpierw opiszę pierwszą linię kodu. Słowo #include mówi kompilatorowi jaką bibliotekę ma dołączyć do programu, jest to tzw. dyrektywa preprocesora.

Dyrektywa preprocesora to specjalne instrukcje, które nie są wykonywane przez komputer, ale stanowią informacje o sposobie postępowania dla preprocesora, czyli specjalnego programu uruchamianego przed kompilatorem. Działanie tego programu polega na przygotowaniu kodu programu tak, aby zawierał on wszystko, co potrzebne kompilatorowi (dołącza pliki informujące o bibliotekach, zamienia pewne słowa na inne itp.).

Biblioteka to zbiór zawierający wiedzę dla komputera, czyli instrukcje pozwalające komputerowi wykonywać zadania z określonego działu problemów. Tak naprawdę kompilator po prostu przepisuje zawartość całego pliku biblioteki do kodu programu. Nazwa biblioteki może być ujęta w „ostre” nawiasy <nazwa> lub cudzysłowy „nazwa” i zawiera nazwę pliku zawierającego bibliotekę. Różnica między tymi dwoma sposobami zapisu polega na tym, że w przypadku zapisu <nazwa> kompilator szuka biblioteki tylko w katalogu standardowym, a w przypadku „nazwa” można podać ścieżkę dostępu do katalogu zawierającego ten plik np.

#include „c:\katalog\nazwa”

Za pomocą słów kluczowych using namespace informujemy kompilator, że chcemy aby wszystkie funkcje, klasy i szablony należące do przestrzeni nazw nie wymagały przedrostka. Wyraz występujący po dwóch słowach kluczowych jest istniejącą nazwą przestrzeni. Dla standardowych bibliotek C++ jest to std.

Czym są strumienie? Strumienie występujące w programowaniu, jak nazwa wskazuje, mają coś wspólnego z prawdziwymi strumieniami, z tym tylko, że służą do przenoszenia danych pomiędzy programem a komputerem. Aby móc użyć takiego strumienia należy wskazać kierunek, w którym on płynie. Służą do tego symbole kierunku << i >>. Teraz wystarczy napisać

cout<<”Tekst.”;

aby napis „Tekst” został przez strumień przeniesiony do instrukcji cout, która wysyła go na ekran.
Należy pamiętać aby po każdej instrukcji znajdującej się między nawiasami klamrowymi umieścić średnik ; , który oznacza koniec pojedynczej instrukcji. Bez tego program nie wiedziałby gdzie kończy się, a gdzie zaczyna każda instrukcja.
Dosyć prosta modyfikacja programu, pozwala na wyświetlenie tekstu na ekranie w dwóch linijkach. Od tego momentu, do rozdzielenia kodu programu i wyniku jego działania, będę używał odpowiednio słów: kod i wynik.

Kod:

#include <iostream>
using namespace std;

int main(void)

{

  cout<<„To ja twoj komputer.\n Mowie do Ciebie.”;
  system(“PAUSE”);
  return 0;

}

Wynik:
To ja twój komputer.
Mówię do ciebie.

Jedyna modyfikacja w tym przypadku to symbol \n. Symbol ten oznacza przejście do następnej linii i  jest stosowany jeżeli chcemy zakończyć dany wiersz na ekranie. Możemy napisać:

cout<<„\n”;

co spowoduje, że program nic nie wyświetli tylko przejdzie do następnej linii. Oprócz tego stosowane są też inne symbole specjalne np.
\r - rzesunięcie do początku wiersza(kursor wraca na początek linii, w której się znajduje)
\a - z głośniczka wbudowanego w komputer wydobędzie się krótki sygnał dźwiękowy, który można wykorzystać np. do sygnalizacji błędów
\\  - Wyświetla znak backslash  \
\? - Wyświetla znak zapytania  ?
\'  - Wyświetla apostrof 
\" - Wyświetla podwójny cudzysłów 



Nie są to wszystkie symbole specjalne, ale te wystarczą nam w dalszej pracy. Ostatnie cztery symbole wymagają dodatkowego wyjaśnienia. Otóż w C++ istnieją zarezerwowane symbole, które nie mogą być wyświetlone w sposób standardowy, dlatego stosuje się przed nimi symbol \ co pozwala na użycie ich w programie np. gdybyśmy chcieli wyświetlić \? , to musimy napisać \\\?. Dla ilustracji tego napiszemy prosty program.

Kod:

#include <iostream>
using namespace std;
int main(void)

{
  cout<<"\\ \? \' \" \a \n";//wyświetla kolejno \ ? ‘ „ następnie sygnał dźwiękowy i przejście do następnej linii

 
cout<<"Wyswietlam tekst i wracam na poczatek lini.\r";//wyświetla tekst i ustawia kursor na początku linii

  system(„PAUSE”);
  return 0;

}

Taki sam efekt jak \n daje zastosowanie manipulatora endl, który steruje strumieniem.

#include <iostream>
using namespace std;

int main(void)

{

  cout<<„To ja twoj komputer.”<<endl<<” Mowie do ciebie.”;
  system(„PAUSE”);
  return 0;

}
 
Napisz program wyświetlający na ekranie monitora:
\?”Witam tu twój komputer!!!”?\
a następnie odtwarzający przez głośniczek komputera sygnał dźwiękowy.