1
Podstawy informatyki
wykład 4b
dr Artur Jakubski
ajakubski@icis.pcz.pl
2
Plan wykładu – najważniejsze
elementy
• Typy danych.
• Definicja zmiennej.
• Operator sizeof() oraz sizeof .
• Operatory.
• Napisy – klasa string.
• Klasa iomanip .
• Instrukcja warunkowa.
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 )
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ść.
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 0 ( dla maszyn 32-bitowych: 1
bajt )
bool, true, false – są to słowa kluczowe
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;
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;
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 .
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
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;
}
11
Operator sizeof() sizeof
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;
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.
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;
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)
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
17
Napisy – klasa string
18
Napisy – klasa string
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
20
Klasa iomanip
21
Konwersja typów - rzutowanie
22
Konwersja typów - rzutowanie
23
instrukcja warunkowa
instrukcja warunkowa ma postać :
if (wyrażenie)
{
instrukcja1;
}
jeśli wyrażenie jest prawdziwe (różne od zera) wykona
się instrukcja1.
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
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.
26
instrukcja warunkowa cd.
27
instrukcja warunkowa cd.
28
instrukcja warunkowa cd.
29
instrukcja warunkowa cd.
30
Dziękuję za
uwagę!