C_Typy+Funkcje.doc

(89 KB) Pobierz
Tematyka i cel ćwiczenia

JĘZYK C – TYPY DANYCH, ZMIENNE, FUNKCJE              11

Tematyka i cel ćwiczenia

Celem ćwiczenia jest zapoznanie się z prostymi i złożonymi typami danych oraz własnościami zmiennych statycznych, automatycznych i rejestrowych. Omówione są także podstawowe własności funkcji oraz możliwości strukturalnego tworzenia programów z wykorzystaniem funkcji w języku C.

Wprowadzenie

Typy danych

W języku C typy danych możemy podzielić na proste i złożone.

Typy proste.

W języku C i C++ są dostępne następujące proste typy danych:

1.         Typ pusty

Typ void jest najczęściej używany do deklaracji funkcji nie zwracającej żadnej wartości, do deklaracji pustej listy argumentów funkcji i do deklaracji wskaźników beztypowych.

2.         Typy całkowite

Typ char jest typem znakowym służącym do przechowywania dowolnego znaku ze zbioru znaków dostępnego w danym systemie komputerowym. Każdy znak jest przechowywany jako liczba całkowita (przeważnie bez znaku – zależy to implementacji). W większości implementacji języka C/C++ zmienne typu char mają rozmiar 1 bajtu, co powoduje, że  mogą przechowywać liczby całkowite z zakresu 0 ÷ 255 lub –128 ÷ +127, jeśli są interpretowane ze znakiem. Na obiektach typu char można wykonywać operacje arytmetyczne. Najczęściej stosuje się kodowanie znaków w standardzie ASCII.

Typ int jest typem całkowitym pozwalającym przechowywać liczby całkowite ze znakiem. Rozmiar obiektu typu int odpowiada najczęściej długości słowa danego komputera (lecz nie mniej niż 16 bitów): w systemach 16-bitowych obiekty typu int mają rozmiar 2 bajtów, w systemach 32-bitowych – 4 bajtów.

Przy deklaracji obiektów typu char lub int można stosować następujące modyfikatory typu:

·         unsigned w celu jawnego wyspecyfikowania, że wartości mają być traktowane bez znaku (nieujemne).

·         signed w celu jawnego wyspecyfikowania, że wartości mają być traktowane ze znakiem.

Przy deklaracji obiektów typu int można stosować następujące modyfikatory (oprócz wymienionych powyżej):

·         long – implementacje języka C/C++ gwarantują, że rozmiar obiektów typu long int jest nie mniejszy niż obiektów typu int (mogą być równe) oraz nie mniej niż 32 bity.

·         short – implementacje języka C/C++ gwarantują, że rozmiar obiektów typu short int jest nie większy niż obiektów typu int (mogą być równe).

W tabeli 1 zestawiono rozmiary obiektów typu int i pochodnych, otrzymanych przez dodanie modyfikatorów typu oraz zakresy liczb, które te obiekty mogą przechowywać.

Tabela 1

Typ

Systemy 16-bitowe

Systemy 32-bitowe

Rozmiar

(bajty)

Zakres

Rozmiar

(bajty)

Zakres

short int

2

–215 ¸ (215-1)

2

–215 ¸ (215-1)

unsigned short int

2

0 ¸ (216–1)

2

0 ¸ (216–1)

int

2

–215 ¸ (215-1)

4

–231 ¸ (231–1)

unsigned int

2

0 ¸ (216–1)

4

0 ¸ (232–1)

long int

4

–231 ¸ (231–1)

4

–231 ¸ (231–1)

unsigned long int

4

0 ¸ (232–1)

4

0 ¸ (232–1)

Przykłady deklaracji zmiennych całkowitych:

                            char c;

                            signed char sc, sc1;

                            int x1, x2;

                            long int l1;

                            unsigned int uu, ww;

                            unsigned long int ul1, uL1;

 

3.         Typy zmiennoprzecinkowe (zmiennopozycyjne).

Obiekty zmiennoprzecinkowe służą do przechowywania i wykonywania obliczeń na liczbach rzeczywistych. W implementacjach języka C/C++ można wyróżnić następujące typy zmiennoprzecinkowe:

·         float – typ pojedynczej precyzji,

·         double – typ podwójnej precyzji,

·         long double – typ rozszerzonej precyzji (w wielu implementacjach utożsamiany z typem double).

W tabeli 2 zestawiono dokładność obliczeń, rozdzielczość i dopuszczalny zakres wartości obiektów typu float i double.

Tabela 2

Typ

Dokładność

(cyfr dziesiętnych)

Rozdzielczość

 

Najmniejsza liczba

(moduł)

Największa liczba

(moduł)

float

ok. 6

10–5

10–38

1037

double

ok. 15

2∙10–16

...
Zgłoś jeśli naruszono regulamin