background image

1

Podstawy  informatyki

wykład 4b

 

  

dr Artur Jakubski

ajakubski@icis.pcz.pl

background image

2

Plan wykładu – najważniejsze 

elementy

 

• Typy danych.

• Definicja zmiennej. 

• Operator sizeof() oraz sizeof .

• Operatory. 

• Napisy – klasa string.

• Klasa iomanip .

• Instrukcja warunkowa.

background image

3

Typy danych

  

Typy danych określają: 

– sposób użycia pamięci przez tworzony program,

– sposób wykonywania operacji na poszczególnych 

fragmentach pamięci.

W języku C++ : 

– istnieją zdefiniowane pierwotnie podstawowe typy 

danych ( typy wbudowane ),

– istnieje możliwość tworzenia typów abstrakcyjnych, 

– dostępne są trzy podstawowe typy abstrakcyjne (string, 

vector i complex ) 

background image

4

Typy wbudowane

  

Typy całkowite 

• char – znak lub mała liczba całkowita (1 bajt),
• short, int, long, long long  – liczby całkowite zajmujące 

odpowiednio pół słowa, jedno słowo, jedno lub dwa 
słowa ( tj.. 2, 4, 4 lub 8 bajtów,  przy czym  dla maszyn 
32-bitowych rozmiar typów int i long jest zazwyczaj taki 
sam)

Modyfikatory signed (ze znakiem),  unsigned (bez znaku) 

określają

sposób interpretacji najbardziej znaczącego bitu.
Dla signed int najbardziej znaczący bit  (pierwszy z lewej 

strony) służy

jako bit znaku, przy czym   0 – liczba dodatnia , 1 – liczba 

ujemna. 

Pozostałe bity przedstawiają wartość.

background image

5

Typy wbudowane

Typ zmiennopozycyjny 
float, double, long double – liczby rzeczywiste o różnej
dokładności, zajmujące odpowiednio jedno słowo, dwa 

słowa, trzy lub 

cztery słowa ( dla maszyn 32-bitowych: 4, 8 i 12 bajtów ).

      Typ logiczny 

bool - wartości logiczne posiadające dwa stany opisywane 

dwoma

wbudowanymi stałymi true lub false, które można 

przekształcić 

w wartości całkowite 1 lub ( dla maszyn 32-bitowych: 1 

bajt )

bool, true, false – są to słowa kluczowe

background image

6

Zmienna - nazwa

Nazwa zmiennej może składać się z liter, cyfr, znaku 

podkreślenia.

int liczba;

int liczba_pierwsza;

int liczbaPierwsza;

int m,n,k;

int pLiczba;

background image

7

Zmienna - nazwa

Nazwa zmiennej nie może zaczynać się od cyfry, 

używać polskich czcionek oraz spacji.

int 102liczba;

int koń;

int liczba Pierwsza;

background image

8

Zmienna - nazwa

Tożsamość zmiennej to jej nazwa. 

Nazwa nie może być słowem kluczowym języka C++:

asm, auto, bool, break, case, catch, char, class, const, 

const_cast, continue, default, delete, do, double, 

dynamic_cast, else, enum, explicit, extern, false, float, 

for, friend, goto, if, inline, int, long, mutable, 

namespace, new, operator, private, protected, public, 

register, reinterpret_cast, return, short, signed, sizeof, 

static, static_cast, struct, switch, template, this, throw, 

true, try, typedef, typeid, typename, union, unsigned, 

using, virtual, void, volatile, wchar_t .

background image

9

Definicja zmiennej

Definicja zmiennej polega na podaniu typu tej zmiennej 

oraz jej nazwy (identyfikatora), np.:

   int liczba_calk;           // zarezerwuj w pamięci miejce 

na obiekt typu 

                                      // całkowitego ( np. 4 bajty ) o 

nazwie liczba_calk

   float liczba_rzecz;      // zarezerwuj w pamięci miejce 

na obiekt typu 

                                      // liczby rzeczywistej ( np. 4 

bajty ) o nazwie

                                       // liczba_rzecz

background image

10

Operator sizeof() sizeof 

#include<string.h>
#include<iostream>                
using namespace std;           
int main() 

       

{

                 

int a=3;

cout<<"rozmiar bool - "<<sizeof(bool)<<endl;   
cout<<"rozmiar char - "<<sizeof(char)<<endl;   

  

cout<<"rozmiar short - "<<sizeof(short)<<endl;
cout<<"rozmiar int - "<<sizeof(int)<<endl;

   

cout<<"rozmiar a - "<<sizeof a<<endl;

 

cout<<"rozmiar long - "<<sizeof(long)<<endl;

         cout<<"rozmiar long long - "<<sizeof(long long)<<endl;

cout<<"rozmiar float - "<<sizeof(float)<<endl;
cout<<"rozmiar double - "<<sizeof(double)<<endl;
cout<<"rozmiar long double - "<<sizeof(long double)<<endl;
cout<<"rozmiar string - "<<sizeof(string)<<endl;

   

           
return 0;           

}

                 

background image

11

Operator sizeof() sizeof 

background image

12

signed i unsigned 

Liczby całkowite są albo ze znakiem signed albo bez 

znaku unsigned.

W przypadku liczby całkowitej signed pierwszy bit jest 

bitem znaku (1-liczba ujemna, 0 – liczba dodatnia).

Jeżeli nie wystąpi żaden z tych typów to kompilator 

zakłada domyślnie, że zmienna jest typu signed, czyli 

posiada wartości ujemne.

unsigned int liczba;

background image

13

zmienna 

Zmienna symboliczna - dana adresowana - obiekt 

– jest  związana z określonym typem danych, wyznaczającym: 

• rozmiar i położenie danych w odpowiedniej pamięci,

• zakres wartości, które mogą być przechowywane,

• zbiór operacji, które można wykonywać na tych danych.

– pozwala za pomocą nazwy odwoływać się do zawartości odpowiednich 

obszarów pamięci komputerowej.

background image

14

Operatory 

 operator przypisania =

  a = 5;

 operatory arytmetyczne:

  +  dodawania, - odejmowania, * mnożenia, / dzielenia, 

   % reszty z dzielenia.

   a=a+3;      lub   a+=3;                                       k=k-7;    

  lub   k-=7;

  m=m*k;   lub    m*=k;                                      d=d/5;      

lub   d/=5;

  r=r%7;    lub    r%=7; 

 

background image

15

Operatory 

 operatory relacji :

  < mniejszy niż, > większy niż, <= mniejszy lub równy, 

>= większy lub   

  równy, == równy, != różny

  (k<3)       (3>7)       (m<=k)     (x>=99)      (t==a)     (m!

=n)

 operatory logiczne:

  || operator alternatywy, && operator koniunkcji, ! 

operator negacji  

  (m<=k)  ||  (x>=99)                                      (m<=k)  && 

 (x>=99)

  !(m<=k)     

 

background image

16

Operatory 

 operatory bitowe:

  << przesunięcie w lewo,  >> przesunięcie w prawo,

  | alternatywa bitowa,

  & koniunkcja bitowa, ^ bitowa różnica symetryczna, ~ 

bitowa negacja

  m=m<<3;       m<<=3;

.......................................................................................

 int m=10;

 m<<=3;

 cout<<m;  // wypisze 80

 

background image

17

Napisy – klasa string

background image

18

Napisy – klasa string

background image

19

Klasa iomanip 

  setprecision(n) – ustawienie dokładności n dla zapisu 
zmiennopozycyjnego
  fixed – dziesiętny zapis zmiennopozycyjny
  scientific – wykładniczy zapis liczb zmiennopozycyjny 
  setw(m) – szerokość zapisu równa m

background image

20

Klasa iomanip 

background image

21

Konwersja typów - rzutowanie

background image

22

Konwersja typów - rzutowanie

background image

23

instrukcja warunkowa 

instrukcja warunkowa ma postać :

 if (wyrażenie)
{
    instrukcja1;
}

jeśli wyrażenie jest prawdziwe (różne od zera) wykona 
się instrukcja1.         

background image

24

instrukcja warunkowa 

instrukcja warunkowa if-else ma postać :

if (wyrażenie)
{
    instrukcja1;
}
else
{
    instrukcja2;
}

jeśli wyrażenie jest prawdziwe (różne od zera) wykona 
się instrukcja1, w przeciwnym razie (wtedy, kiedy 
wyrażenie jest fałszywe równe zero) wykona się 
instrukcja2
         

background image

25

instrukcja warunkowa cd.

if (wyrażenie)
{
     instrukcja1;
     instrukcja2;
}
else
{
     instrukcja3;
     instrukcja4;
}

jeśli wyrażenie jest prawdziwe (różne od zera) wykona 
się instrukcja1 
i instrukcja2  w przeciwnym razie (wtedy, kiedy 
wyrażenie jest fałszywe – równe zero) wykona się 
instrukcja3 i instrukcja4.
         

background image

26

instrukcja warunkowa cd.

background image

27

instrukcja warunkowa cd.

background image

28

instrukcja warunkowa cd.

background image

29

instrukcja warunkowa cd.

background image

30

Dziękuję za 

uwagę!

                     


Document Outline