ďťż

[C++] Typy danych w C++

Misja Tereski
Typy danych w C++ & Deklaracja zmiennych i stałych tego typu

Podobnie jak w innych językach programistycznych w C++ nieodzownym elementem są typy danych, które najprościej mówiąc oznaczają jaką zawartość (np. znakową,liczbową) możemy przechować w zmiennej czy stałej tego typu.
Czasem istnieje kilka typów danych, które są do siebie bliźniaczo podobne. Co wtedy? Który typ wybierze programista, aby jego program działał bez zarzutu? Odpowiedź jest prosta : wybierze typ, którego zapotrzebowanie na pamięć jest mniejsze.

1. Kod programu, który wyświetla na ekranie rozmiary bloków pamięci zajmowanych przez zmienne różnego typu.

Download: Rapidshare, Hotfile, Megaupload, Przeklej i Inne #include <stdio.h> #include <conio.h> void rozmiary() { printf("\t signed unsigned\n"); printf("\t char %8i %8i\n", sizeof(signed char), sizeof(unsigned char)); printf("\t int %8i %8i\n", sizeof(signed int), sizeof(unsigned int)); printf("\t short%8i %8i\n", sizeof(signed short), sizeof(unsigned short)); printf("\t long %8i %8i\n", sizeof(signed long), sizeof(unsigned long)); printf("\t long long %8i %8i\n", sizeof(signed long long), sizeof(unsigned long long)); printf("\n\n\t Typy niepasujace do podzialu signed\unsigned\n"); printf("\t bool %8i %8i\n", sizeof(bool)); printf("\t float %8i %8i\n", sizeof(flaotl)); printf("\t double %8i %8i\n", sizeof(double)); } int main() { printf("\n"); printf("\tRozmiary blokow pamieci zajmowanych przez zmienne roznego typu\n\n\n"); rozmiary(); getch(); return 0; } Download bez limitów

2. Objaśnienia do poszczególnych typów danych

I Typ char
- jest to typ znakowy ; przechowuje znaki , litery , cyfry ;
- deklaracja zmiennej : char nazwa_zmiennej ;
- istnieje możliwość zapisania do typu char całego ciągu znaków, czyli stworzyć pseudo-typ string : char nazwa_zmiennej[30] <-- spowoduje utworzenie zmiennej, która może przechować max. 30 znaków ;
- zakres wartości : -128 ... 127 (signed char) & 0 ... 255 (unsigned char) ;

II Typ bool
- jest to typ logiczny ; możliwe wartości zmiennej to 0 oraz 1 (można pisać też false(0) lub true(1) ;
- deklaracja zmiennej : bool nazwa_zmiennej ;
- często wykorzystuje się go w warunkach, np. if (nazwa_zmiennej) {} // konstrukcja if (nazwa_zmiennej == true) {} też jest prawidłowa ;

III Typ int
- jest to typ liczbowy ; przechowuje liczby całkowite (signed int) lub wyłącznie liczby naturalne (unsigned int) ;
- deklaracja zmiennej : int nazwa_zmiennej ;
- zakres wartości : -2147483648 ... 2147483647 (signed int) & 0 ... 65535 (unsigned int) ;

IV Typ long long
- jest to typ liczbowy ; przechowuje liczby całkowite (signed long long) lub wyłącznie liczby naturalne (unsigned long long) ;
- deklaracja zmiennej : long long nazwa_zmiennej ;
- zakres wartości : 0 ... 2^64 - 1 (signed long long) & -2^63 ... 2^63 - 1 (unsigned long long) ;

V Typ long int
- jest to typ liczbowy ; przechowuje liczby całkowite (signed long int) lub wyłącznie liczby naturalne (unsigned long int) ;
- deklaracja zmiennej : long int nazwa_zmiennej ;
- zakres wartości : -2147483648 ... 2147483647 (signed long int) & 0 ... 4294967295 (unsigned long int) ;

VI Typ short int
- jest to typ liczbowy ; przechowuje liczby całkowite (signed short int) lub wyłącznie liczby naturalne (unsigned short int) ;
- deklaracja zmiennej : short int nazwa_zmiennej ;
- zakres wartości : -32768 ... 32767 (signed short int) & 0 ... 65535 (unsigned short int) ;

VII Typ float
- jest to typ liczbowy ; przechowuje liczby rzeczywiste ;
- deklaracja zmiennej : float nazwa_zmiennej ;
- wystarcza do większości zastosowań ;
- zakres wartości : 1.175494351E-38 ... 3.402823466E+38 ;

VII Typ double
- jest to typ liczbowy ; przechowuje liczby rzeczywiste ;
- deklaracja zmiennej : double nazwa_zmiennej ;
- pozwala na wykonywanie obliczeń z większą dokładnością niż float ; zajmuje też więcej pamięci operacyjnej ;
- zakres wartości : 5.0 * 10^-324 .. 1.7 * 10^308 ;

VII Typ long double
- jest to typ liczbowy ; przechowuje liczby rzeczywiste ;
- deklaracja zmiennej : long double nazwa_zmiennej ;
- pozwala na wykonywanie obliczeń z jeszcze większą dokładnością niż float / double ; zajmuje też o wiele więcej pamięci operacyjnej ;
- zakres wartości : największy z możliwych typów ; brak dokładnych informacji ;

3. Tworzenie funkcji i procedur w C++ za pomocą typów danych.

Deklaracja funkcji odbywa się podobnie jak deklaracja zmiennych. Z racji tego, że nic nie uczy tak jak przykłady pokażę to na przykładzie funkcji obliczającej silnie z liczby.

Download: Rapidshare, Hotfile, Megaupload, Przeklej i Inne #include <iostream> // deklaracja biblioteki dla poleceń cin i cout using namespace std; // deklaracja przestrzeni nazw std:: void silnia(int liczba) // deklaracja podprogramu silnia z parametrem liczba, typu całkowitego { int wynik; // deklaracja zmiennej wynik, która będzie przechowywać obliczoną silnię int i; // deklaracja zmiennej iteracyjnej do pętli while if (liczba==0) cout << "Silnia liczby " << liczba << " wynosi 1"; // jeżeli liczba = 0 to wypisz liczbę 1 ; silnia z liczby 0 wynosi zawsze 1 else // w przeciwnym razie { i=1; // i przyjmuje wartość 1 wynik=1; // zmienna wartość przyjmuje wartość 1 while (i<liczba) { // dopóki i mniejsze od zmiennej liczba wykonuj i++; // powiększ i o jeden wynik=wynik*i; // przypisz zmiennej wynik wartość wynik*i } cout << "Silnia liczby " << liczba << " wynosi : " << wynik; // wypisz silnie na ekran } } int main() { int liczba; // z racji tego, że zmienna liczba jest przekazana jako parametr funkcji silnia() należy zadeklarować ją globalnie cout << "Podaj liczbe: "; cin >> liczba; // wczytanie liczby silnia(liczba); // wywołanie funkcji silnia() cout << "\n" << endl; // przejście do następnej linii system("PAUSE"); // zatrzymanie programu return 0; // zwraca kod 0 - program wykonany poprawnie } Download bez limitów

Dziękuje i zapraszam na kolejne poradniki & programy mojego autorstwa.
Jaspher

© Maciej Sikorski, 2010
Wszelkie prawa zastrzeżone.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • lalalu.xlx.pl
  • Menu
    Powered by wordpress | Theme: simpletex | © Misja Tereski