Koło informatyczne

Przyspieszony kurs języka C++

 

Typy danych i zmienne w języku C++

Te same dane binarne można interpretować w różny sposób. Na przykład 4 bitową grupę o wartości 1100 da się zinterpretować jako:

Komputer musi "wiedzieć", którą interpretacje ma zastosować. Do tego celu służą właśnie typy danych w języku C++. Informują one kompilator o tym, jak ma interpretować określone dane. Podstawowe typy danych to:
 

int   32 bitowa liczba całkowita ze znakiem w kodzie U2
unsigned int   32 bitowa liczba całkowita bez znaku w kodzie NBS
double   64 bitowa liczba zmiennoprzecinkowa
char   8 bitowa liczba traktowana jako kod znaku ASCII
bool   8 bitowa liczba traktowana jako wartość logiczna

 

Oprócz typów podstawowych istnieją również typy pochodne, ale tymi zajmiemy się w miarę potrzeb. Poniższy program pokazuje liczbę bajtów (komórek pamięci o pojemności 8 bitów), które zajmuje informacja określonego typu. Korzystamy w nim z operatora sizeof, który podaje tę liczbę.

 

Code::Blocks
// Rozmiar podstawowych typów danych
// Koło informatyczne
// (C)2014 I LO w Tarnowie
//----------------------------------

#include <iostream>

using namespace std;

int main()
{
    cout << "Rozmiar w bajtach podstawowych typów danych\n"
            "===========================================\n\n";
    cout << "int          : " << sizeof(int) << endl
         << "unsigned int : " << sizeof(unsigned int) << endl
         << "double       : " << sizeof(double) << endl
         << "char         : " << sizeof(char) << endl
         << "bool         : " << sizeof(bool) << endl << endl;
    return 0;
}

 

Typy danych służą do deklaracji zmiennych. Zmienna jest obiektem, który przechowuje dane w programie. Typ zmiennej określa sposób interpretacji tych danych. Przed pierwszym użyciem każda zmienna musi być zadeklarowana. Deklaracja zmiennej wygląda następująco:

 

typ nazwa;

 

Przykłady:

 

int a;          // tworzymy zmienną o nazwie a, w której będziemy przechowywali liczby całkowite ze znakiem
unsigned int b; // tworzymy zmienną o nazwie b, w której będziemy przechowywali liczby całkowite bez znaku
double x,y,z;   // tworzymy trzy zmienne, w których będą przechowywane liczby ułamkowe

 

Nazwy zmiennych (oraz, jak zobaczymy później, innych obiektów) w języku C++ muszą być tworzone według kilku reguł:

  1. W nazwach mogą wystąpić tylko litery małe i duże, cyfry oraz znaki podkreślenia _. Litery duże i małe są rozróżniane.
  2. Pierwszym znakiem nazwy nie może być cyfra.
  3. Nazwa nie może być identyczna ze słowem kluczowym. Jeśli nazwa musi mieć taką postać, to zmień jedną z liter na dużą, np. zamiast niedozwolonego int użyj Int.
  4. W nazwach zmiennych nie stosuj samych dużych liter, ponieważ ta opcja jest zarezerwowana standardowo dla stałych, o które poznamy później.

 

Instrukcja przypisania

Po utworzeniu zmiennej zechcemy zwykle umieścić w niej jakieś dane. Do tego celu służy w języku C++ instrukcja przypisania, która wygląda następująco:

 

nazwa = wyrażenie;

 

Komputer wylicza wartość wyrażenia i wynik umieszcza w zmiennej. W wyrażeniu można stosować nazwy zmiennych oraz różne operatory arytmetyczne i logiczne.

 

Code::Blocks
// Zmienne
// Koło informatyczne
// (C)2014 I LO w Tarnowie
//------------------------

#include <iostream>

using namespace std;

int main()
{
    int a, b, c;  // Tworzymy 3 zmienne
    a = 5;        // Zmiennym nadajemy wartości początkowe
    b = 7;
    c = a * b;    // Wyliczamy iloczyn a i b, wynik umieszczamy w c
    cout << a << " x " << b << " = " << c << endl;
    return 0;
}

 

Zmiennym można przypisywać wartości w czasie deklaracji (jednakże nie nadużywaj tego sposobu, ponieważ program może stracić na czytelności):

 

Code::Blocks
// Zmienne
// Koło informatyczne
// (C)2014 I LO w Tarnowie
//------------------------

#include <iostream>

using namespace std;

int main()
{
    int a = 5, b = 7, c = a * b; // Tworzymy 3 zmienne
    cout << a << " x " << b << " = " << c << endl;
    return 0;
}

 

Odczyt danych z klawiatury

Dane możemy odczytać z klawiatury za pomocą strumienia wejścia cin. Składnia jest następująca:

 

cin >> zmienna;

 

Poniższy program wykorzystuje dane zmiennoprzecinkowe typu double. Pozwalają one przetwarzać liczby ułamkowe. Gdy wprowadzasz liczbę ułamkową, to pamiętaj, że część całkowitą oddzielamy od części ułamkowej kropką, a nie przecinkiem.

 

Code::Blocks
 
// Obliczanie obwodu i pola koła
// Koło informatyczne
// (C)2014 I LO w Tarnowie
//------------------------------

#include <iostream>

using namespace std;

int main()
{
    double pi = 3.14159265359;
    double r, obw, pole;
    cout << "Obwód i pole koła\n"
            "=================\n\n";
    cout << "r = "; cin >> r;  // Odczytujemy promień koła
    obw  = 2 * pi * r;         // Obliczamy obwód
    pole = pi * r * r;         // Obliczamy pole
    cout << endl
         << "Obwód = " << obw << endl
         << "Pole  = " << pole << endl << endl;
    return 0;
}

 

Przy przesyłaniu danych zmiennoprzecinkowych do strumienia cout stosuje się często tzw. manipulatory. Określają one sposób prezentacji danych przez strumień. Na przykład możemy sobie zażyczyć, aby liczby zmiennoprzecinkowe były wyświetlane z czterema miejscami po przecinku w polu o szerokości 10 znaków z dosunięciem do lewej krawędzi pola. Dzięki temu wydruki staną się bardziej czytelne dla użytkownika. Aby uzyskać te opcje, należy przesłać do strumienia cout tzw. manipulatory. Dostęp do manipulatorów uzyskamy przez dołączenie do programu pliku nagłówkowego iomanip. W programie użyjemy następujących manipulatorów:

 

fixed liczby zmiennoprzecinkowe będą wyświetlane zawsze jako część całkowita, kropka dziesiętna i część ułamkowa.
setprecision(n) liczby przecinkowe będą wyświetlane z n cyframi ułamkowymi po przecinku
setw(n) następny element będzie wyświetlony w polu o szerokości n znaków

 

Dwa pierwsze manipulatory, fixed i setprecision(), przesyłamy do strumienia cout raz na początku programu. Ustawiają one sposób wyświetlania przez strumień liczb zmiennoprzecinkowych. Manipulator setw() wpływa tylko na następujący po nim element przesyłany do strumienia. Prześledź poniższą modyfikację programu obliczającego obwód i pole koła:

 

Code::Blocks
// Obliczanie obwodu i pola koła
// Koło informatyczne
// (C)2014 I LO w Tarnowie
//------------------------------

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    double pi = 3.14159265359;
    double r, obw, pole;
    cout << fixed << setprecision(4);
    cout << "Obwód i pole koła\n"
            "=================\n\n";
    cout << "r = "; cin >> r;  // Odczytujemy promień koła
    obw  = 2 * pi * r;         // Obliczamy obwód
    pole = pi * r * r;         // Obliczamy pole
    cout << endl
         << "Obwód = " << setw(10) << obw << endl
         << "Pole  = " << setw(10) << pole << endl << endl;
    return 0;
}

 

Inne manipulatory poznamy w miarę potrzeb.

 


   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