Język
Język
programowania
programowania
Rozwijanie zdolności logicznego
i precyzyjnego inżynierskiego myślenia
poprzez naukę programowania
Zakładane wyniki nauki:
- opanowanie logiki układania
programów
- opanowanie podstaw języka
programowania C++
- umiejętność budowania
algorytmów dla rozwiązywania
podstawowych
problemów
inżynierskich
Osoby prowadzące laboratorium:
-
dr inż. Krzysztof Janerka
- dr inż. Jacek Suchoń
- dr inż. Andrzej Studnicki
- dr inż. Dariusz Bartocha
- dr inż. Marcin Kondracki
- dr inż. Marcin Stawarz
- mgr inż. Maria Dziuba
- mgr inż. Anna Dulęba
- mgr inż. Agnieszka Walasek
Prowadzący przedmiot
:
dr hab. inż. Mirosław Cholewa prof.
dr hab. inż. Mirosław Cholewa prof.
Pol. Śl.
Pol. Śl.
Instytut Materiałów Inżynierskich
i Biomedycznych
Zakład Odlewnictwa
Wydział Mechaniczny Technologiczny
Politechniki Śląskiej
Gliwice ul. Towarowa 7
tel.: 231-60-31
Mirosław.Cholewa@polsl.pl
Platforma E-learning
Język Programowania
hasło:
jpm
Laboratorium obejmuje
ćwiczenia
praktyczne
(programowanie
w
C++)
dające prawidłowe nawyki i
właściwe
podejście
do
rozwiązywania
problemów.
Ćwiczenia
praktyczne
są
związane
z
kierunkiem
studiowania.
Ćwiczenia laboratoryjne obejmują:
-
podstawy C++ (obsługa zintegrowanego
środowiska C++, struktura programu, typy
danych, wyrażenia i operatory),
- stopniowe wprowadzanie instrukcji C++
(instrukcje wejścia, wyjścia, warunkowe,
obliczeń cyklicznych-pętle),
- zastosowanie funkcji w programie,
- wybrane funkcje graficzne w C++
- podstawy programowania obiektowego w
C++,
- umiejętność czytania programów w C++.
Tematy ćwiczeń laboratoryjnych
„Język Programowania”
1.
Ogólna struktura i podstawowe elementy
programu źródłowego w C++ - program
sekwencyjny
1.1. Obsługa zintegrowanego środowiska pracy
C++, Ogólna
struktura programu źródłowego w C++,
operacje wejścia-
wyjścia
1.2. Program sekwencyjny – proste typy danych,
wybrane
operatory, funkcje biblioteczne
(matematyczne)
2.
Podejmowanie decyzji w programie
2.1. Instrukcja warunkowa – if...else, operatory
relacyjne i
logiczne,
2.2. Instrukcja wyboru – switch...case.
Tematy ćwiczeń laboratoryjnych cd
„Język Programowania”
3.
Organizacja obliczeń cyklicznych w
programie (pętle)
3.1. Pętle o nieokreślonej liczbie powtórzeń –
instrukcje
while i do-while,
3.2. Pętla o określonej liczbie powtórzeń –
instrukcja for.
4.
Instrukcje sterujące przebiegiem
programu
4.1. Wykorzystanie instrukcji sterujących w
pisaniu
programów.
5.
Zmienne strukturalne w języku C++
5.1. Tablice w języku C++ - tablice liczbowe.
Tematy ćwiczeń laboratoryjnych cd
„Język Programowania”
6.
Konstruowanie funkcji w języku C++
6.1. Programowanie własnych funkcji w języku
C++,
6.2. Wykorzystanie funkcji iteracyjnych i
rekurencyjnych w
programowaniu.
7.
Wskaźniki w języku C++
7.1. Posługiwanie się typem wskaźnikowym w
programowaniu,
7.2. Wykorzystanie wskaźników w operowaniu
tablicami.
Dynamiczny przydział pamięci.
Tematy ćwiczeń laboratoryjnych
cd
„Język Programowania”
8.
Programy graficzne w języku C++
wykorzystujące
bibliotekę graph
8.1. Tworzenie prostej grafiki punktowej w
języku C++ przy
użyciu funkcji standardowych,
9.
Obsługa plików dyskowych w C++ - file
handling
9.1. Zapis i odczyt prostych plików
tekstowych i binarnych.
10.
Wprowadzenie do programowania
obiektowego w C++
10.1. Początki programowania obiektowego w
C++
Zakres tematyczny wykładów
obejmuje:
1.Analizy
problemów
na
przykładach
związanych
z
kierunkiem
studiowania
i
poszukiwanie
metod
ich
rozwiązywania
2.
Projektowanie
algorytmów
według
wybranej
metody
rozwiązywania
problemu
–
budowanie schematów blokowych
Cd Zakres tematyczny wykładu
obejmuje:
3. Podstawy programowania w języku
C++ (struktura programu, typy
danych, deklaracje zmiennych i
stałych,
operatory
i
wyrażenia,
instrukcje, funkcje)
4. Wybrane algorytmy i ich programy
(np. sortowanie, przeszukiwanie).
-
uczestnictwo w zajęciach lab. (dopuszczalne 2 zajęcia
nieusprawiedliwione),
- zaliczenie dwóch kolokwiów na komputerach (pisanie
programów 40 min., poprawa nie zaliczonych kolokwiów tylko
na konsultacjach), warunkiem przystąpienia do 2 kolokwium jest
zaliczenie 1,
-wcześniejsze zaliczenie laboratorium:
-zestaw zadań przygotowany przez wykładowcę -termin 17
listopad
lub
-zadanie inżynierskie przygotowane przez prowadzącego
laboratorium – termin 15 grudzień (?), obrona na konsultacjach-
listing programu źródłowego, dyskietka z programem
źródłowym, oceny
„4; 4,5; 5”
zwalniają
z wykładów),
- zaliczenie wykładów (1 kolokwium),
WARUNKI ZALICZENIA
PRZEDMIOTU:
-ocena końcowa z przedmiotu:
O
K
= 0.6*O
W
+ 0.4*O
L
-możliwość podwyższenia oceny końcowej (na 3.5,
4.0) na konsultacjach po zaliczeniu wybranego
przez prowadzącego zadania z zestawu
- możliwość podwyższenia oceny końcowej (z 4.0
na 4.5, 5.0) tylko po b. db napisaniu programu z
zestawu zadań przygotowanego przez wykładowcę
WARUNKI ZALICZENIA PRZEDMIOTU:
cd
Język niskiego poziomu
(asembler-
symboliczna
reprezentacja języka wewnętrznego komputera
)
–efektywność i szybkość działania kodu
wynikowego programu.
Język wysokiego poziomu
–
łatwiejsza
przenośność
programów,
prostszy zapis algorytmu.
C++
- ogólna charakterystyka
„Język wysokiego, ale dostatecznie
niskiego poziomu” – synteza
Autorami pierwszego standardu
języka C są
Kernighan i Ritchie
Bjarne Stroustrup
z
Laboratorium Bella firmy AT&T jest
twórcą C++ - początek lat 80
1.
Struzińska-Walczak A., Walczak K.:
Nauka
programowania dla początkujących C++.
Wyd.
W&W, Warszawa 2000
2. Zalewski A.: Programowanie w językach C i
C++ z wykorzystaniem pakietu Borland C++.
Wyd. Nakom, Poznań 2000
3. Snaith P.:
Nie tylko dla orłów C++.
Wyd.
Intersoftland, Warszawa 2000
4. N. M. Josuttis:
C++ Biblioteka standardowa.
Podręcznik Programisty.
Wyd. Helion, Gliwice
2003
Literatu
ra
5. Wróblewski P.: Algorytmy struktury
danych i techniki programowania. Wyd.
Helion, Gliwice 1997
6. Bentley J.: Perełki oprogramowania.
WNT, Warszawa 1992
7.
Wirth N
.: Algorytmy+struktury danych
= programy. WNT, Warszawa 1989
Literatura uzupełniająca:
1. Wróblewski P.: Język C++ dla programistów. Wyd. Helion,
Gliwice 1994
2. Kernighan B., Ritchie D.: Język C. WNT, Warszawa 1988
3. Lippman S.: Podstawy języka C++. WNT, Warszawa 1994
4. Delanoy C.: Ćwiczenia z języka C++. WNT, Warszawa 1993
5. Ragen A.: Leksykon języka C. WNT, Warszawa 1990
6. Kopacz T.: Język C w praktyce Turbo C i C++. Wyd. Mikom,
Warszawa 1993
7. Wróblewski P.: Od C do Asemblera. Wyd. Helion, Gliwice 1992
8. K. Loundon: C++ Leksykon kieszonkowy. Wyd. Helion, Gliwice
2003
Wirth N.: Algorytmy+struktury danych = programy. WNT,
Warszawa 1989,
„ ... programowanie stało się
dziedziną wiedzy, której
opanowanie ma zasadnicze
znaczenie przy rozwiązywaniu
wielu problemów
inżynierskich ...”
Niklaus Wirth
Programowanie jako
umiejętność rozwiązywania
problemów
Wykonan
ie
program
u
Dane
Wyniki
Proble
m
Sprawa do
rozwiązania
Algoryt
m
Sposób, przepis rozwiązania
danego problemu w
skończonej liczbie kroków
Progra
m
Sformalizowany zapis
algorytmu w danym języku
programowania
Algorytm
- określa sposób wykonania pewnego
zadania, rozwiązania określonego
problemu,
czy osiągnięcia zamierzonego celu
Algorytm
opracowany dla
progra-mu
określa sposób
przekształcenia danych
wejściowych w dane wyj-
ściowe zgodnie z celem
(dla realizacji jednego celu
można zastosować wiele
algorytmów)
Algorytm składa się z opisu:
Algorytm składa się z opisu:
-
-
obiektów
obiektów
,
,
na których
na których
wykonywane są
wykonywane są
działania
działania
-
-
działań
działań
realizujących cel
realizujących cel
algorytmu
algorytmu
-
-
kolejności działań
kolejności działań
przykładowy
PROBLEM
Korekta zawartości węgla w piecu
metalurgicznym przy wytopie
żeliwa szarego
DANE:
1. - norma określająca zawartość węgla w
wytapianym gatunku żeliwa
2.- masa ciekłego metalu w piecu
3. - dostępne materiały wsadowe do korekty
zawartości węgla
4. - analiza chemiczna zawartości węgla w
wytapianym żeliwie
START
STOP
DANE
CC
max
Oblicz dodatek wsadu
obniża-jący
węgiel
(złom stalowy)
CC
min
Oblicz dodatek wsadu
zwiększający
węgiel
(grafit)
Dodaj do wsadu
Dodaj do wsadu
T
T
N
N
przykładowy
PROBLEM
PROBLEM
Drzwi z zamkiem na hasło.
Po 3-krotnym błędnym wpisaniu
hasła ma uruchomić się alarm.
DANE:
- hasło definiowane jako stała (możliwość
- hasło definiowane jako stała (możliwość
zmiany tylko
zmiany tylko
w programie źródłowym)
w programie źródłowym)
STAR
T
Utwórz wzór hasła
Wprowadź hasło
Poprawne
Dodaj p+1
p>3
Otwórz drzwi
Włącz alarm
STOP
N
T
N
T
przykładowy
PROBLEM
Ustalenie spawalności stali
konstrukcyjnej dla
opracowania optymalnej
technologii spawania.
DANE:
-
-
skład chemiczny stali konstrukcyjnej
STAR
T
STOP
Skład chemiczny
stali
Oblicz równoważnik
węgla Rc
Wybór Rc
Rc0.4
0.4<Rc0.48
0.48<Rc0.5
5
Rc>0.
55
Stal łatwospawalna
Stal spawalna po
podgrzaniu lub
elektrodą zasadową
Stal spawalna po
podgrzaniu tylko
elektrodą zasadową
Stal niespawalna
Podaj technologię
spawania
Schemat blokowy jest graficznym
zapisem algorytmu, pokazuje
następstwo działań, nazywany
jest też
siecią działań
.
SCHEMAT
BLOKOWY
Metody tworzenia algorytmu i jego
zapisu w postaci schematu blokowego
(sieci działań):
metoda od szczegółu do ogółu
metoda od szczegółu do ogółu
:
:
polega na wyodrębnieniu w problemie małych
polega na wyodrębnieniu w problemie małych
fragmentów, które po oddzielnym opisaniu są
fragmentów, które po oddzielnym opisaniu są
składane w coraz większe części, aż do
składane w coraz większe części, aż do
otrzymania całego pełnego algorytmu
otrzymania całego pełnego algorytmu
realizującego problem
realizującego problem
metoda od ogółu do szczegółu
metoda od ogółu do szczegółu:
polega na ogólnym zapisaniu całego problemu
polega na ogólnym zapisaniu całego problemu
bez szczegółowego analizowania jego
bez szczegółowego analizowania jego
fragmentów;
fragmentów;
po otrzymaniu podstawowego algorytmu
po otrzymaniu podstawowego algorytmu
należy przystąpić do podobnej analizy
należy przystąpić do podobnej analizy
poszczególnych fragmentów
poszczególnych fragmentów
Metody tworzenia algorytmu i jego
zapisu w postaci schematu blokowego
(sieci działań):
Postać graficzna podstawowych bloków
wykorzystywanych w schematach
blokowych
blok początkowy
rozpoczyna algorytm
Start
blok we/wy
określa
nazwy
danych
wprowadzanych
i
wyprowadzanych
przez
program
Dane
blok operacyjny
określa działanie, które może
zmienić wartość zmiennej
Działanie
Warunek
nie
tak
blok warunkowy (decyzyjny)
rozdziela wykonywanie algorytmu
na dwie drogi w zależności od
spełnienia
tak
lub
nie
spełnienia
warunku;
nie zmienia stanu zmiennych
Zmienn
a=
w1
w2
w3
w
n
blok wyboru
wybiera jedną z wielu możliwych
dróg
algorytmu,
na
podstawie
aktualnej wartości wyrażenia
Postać graficzna podstawowych bloków
wykorzystywanych w schematach
blokowych cd
Postać graficzna podstawowych bloków
wykorzystywanych w schematach
blokowych
cd
Blok kolekcyjny
-
kolektor
łączy różne drogi algorytmu
Blok końcowy
kończy algorytm
Stop
Blok podprogramu
określa nazwę procedury lub
funkcji
i jej zadanie
Nazwa
Funkcj
a
Postać graficzna podstawowych bloków
wykorzystywanych w schematach blokowych cd
3/5
Blok wyjściowy
łącznika
międzystronicow
ego
Blok
wejściowy
łącznika
międzystronicow
ego
3/5
Blok wejściowy
łącznika na
stronie
1
Blok
wyjściowy
łącznika na
stronie
1
September 28 2002 :
September 28 2002 :
Dev-C++ 5 Beta 6 (4.9.6.0)
Dev-C++ 5 Beta 6 (4.9.6.0)
PC FORMAT Listopad 2002 CD#27
PC FORMAT Listopad 2002 CD#27
Kompilator Dev C++
Kompilator Dev C++
.
.
.
.
Strona internetowa
Strona internetowa
Bloodshed Software
Bloodshed Software
Tworzenie i uruchamianie programów w
C++
Każdy nowoczesny
Każdy nowoczesny
kompilator
kompilator
zawiera :
zawiera :
Edytor
- program do wpisywania i
modyfikowania tekstów programów (kodów
źródłowych)
[*.cpp]
Kompilator
- program do sprawdzania poprawności
i wyszukiwania formalnych błędów w kodzie
źródłowym. Gdy kod jest poprawny kompilator
przekształca go w plik binarny
[*.obj]
Konsolidator
(linker)
- program, który do pliku
binarnego (skompilowanego) dołącza z bibliotek
[*.lib]
kody maszynowe funkcji gotowe do
użycia i tworzy program wykonywalny na
komputerze (program wynikowy, maszynowy)
[*.exe]
Łączenie z bibliotekami -
linkowanie
Tworzenie i uruchamianie programów w
C++
Komput
Komput
er
er
Kod
źródłowy
program
program
źródłowy
źródłowy
[*.cpp]
Kod
kompilowany
kod binarny
kod binarny
[*.obj]
Kod
wykonywalny
Kod maszynowy
Kod maszynowy
[*.exe]
Zintegrowane środowisko
pracy
#
#
main(
main(
)
)
{
{
}
}
dyrektywy preprocesora:
#include –dołącz pliki
nagłówkowe
#define –zdefiniuj stałe
funkcja główna - start
funkcja główna - start
programu
programu
deklaracja zmiennych i ciąg instrukcji
deklaracja zmiennych i ciąg instrukcji
realizujący dany algorytm
realizujący dany algorytm
#
#
main( )
main( )
{
{
}
}
Zadania preprocesora
-definiowanie makrodefinicji
upraszczających postać kodu
źródłowego
-włączanie tekstów (treści)
innych plików
- sterowanie przebiegiem
kompilacji
Ogólny schemat kodu źródłowego
programu w C++
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include
“nazwa_uzytkownika”
#define stala 2
main()
{
int liczba, suma=0, iloczyn=1;
clrscr;
cout<<”Podaj pierwsza liczbe”<<endl;
cin>>liczba;
while (liczba!=0)
{
suma+=liczba;
iloczyn*=liczba;
cin>>liczba;
}
cout<<”Suma liczb wynosi” <<suma<<endl;
cout<<”Podwojony
iloczyn
liczb
wynosi”<<iloczyn*stala<<endl;
getch();
return 0;
}
funkcja główna - start
funkcja główna - start
programu
programu
lista wszystkich
lista wszystkich
zmiennych
zmiennych
ciąg instrukcji
ciąg instrukcji
realizujący
realizujący
dany algorytm
dany algorytm
dyrektywy
preprocesora
Dobrze jest mieć w jednej linijce tylko
Dobrze jest mieć w jednej linijce tylko
jedną instrukcję – mamy możliwość
jedną instrukcję – mamy możliwość
śledzenia wykonywania programu
śledzenia wykonywania programu
linijka za linijką – debuggery –
linijka za linijką – debuggery –
„odpluskwiacze”
„odpluskwiacze”
bug – owad
bug – owad
i
i
nclude
nclude
–
–
zawrzyj
zawrzyj
cout
cout
– C-onsole OUT-put konsola wyjścia – np. ekran
– C-onsole OUT-put konsola wyjścia – np. ekran
<< „ ” ;
<< „ ” ;
main
main
– główny (Funkcja główna)
– główny (Funkcja główna)
{ }
{ }
cin
cin
– Console IN put
– Console IN put
odnosi się do urządzenia wejścia –
odnosi się do urządzenia wejścia –
klawiatury, kierunek strzałek
klawiatury, kierunek strzałek
>>
>>
cuot<<”\n”;
cuot<<”\n”;
odpowiada
odpowiada
cout<<endl
cout<<endl
endl
endl
– end of line
– end of line
cout <<”witam” ;
cout <<”witam” ;
wprowadzanie i wyprowadzanie informacji jest
wprowadzanie i wyprowadzanie informacji jest
poza
poza
definicjami C++, podprogramy są w jednej z bibliotek
definicjami C++, podprogramy są w jednej z bibliotek
programu
programu
# include <iostream.h>
# include <iostream.h>
main()
main()
{
{
cout << ”witam”;
cout << ”witam”;
}
}
Przeniesienie do następnej linii:
Przeniesienie do następnej linii:
\n
\n
Komentarz:
Komentarz:
do końca linii: //…
do końca linii: //…
/*….*/ o dowolnej długości
/*….*/ o dowolnej długości
takie
takie
komentarz
komentarz
e
e
nie mogą być w sobie zagnieżdżane:
nie mogą być w sobie zagnieżdżane:
wewnątrz
wewnątrz
/*…*/
/*…*/
jest nieprawidłowy
jest nieprawidłowy
!!!
!!!
kompilacja warunkowa
kompilacja warunkowa
Nazwy obiektów (zmiennych lub stałych) nie mogą zaczynać się od
Nazwy obiektów (zmiennych lub stałych) nie mogą zaczynać się od
cyfry, dowolnie długi ciąg liter i cyfr oraz podkreśleń, poza słowami
cyfry, dowolnie długi ciąg liter i cyfr oraz podkreśleń, poza słowami
kluczowymi:
kluczowymi:
asm, auto, break, case, catch, char, class, const,
asm, auto, break, case, catch, char, class, const,
continue, default, delete, do, double, else, enum,
continue, default, delete, do, double, else, enum,
extern, float, for, friend, goto, if, inline, int, long, new,
extern, float, for, friend, goto, if, inline, int, long, new,
operator, private, protected, public, register, return, short,
operator, private, protected, public, register, return, short,
signed, sizeof, static, struct, switch, template, this, throw, try,
signed, sizeof, static, struct, switch, template, this, throw, try,
typedef, union, unsigned, virtual, void, volatile, while
typedef, union, unsigned, virtual, void, volatile, while
Każda nazwa musi by
Każda nazwa musi by
ć
ć
zadeklarowana
zadeklarowana
np.:
np.:
int
int
– intiger - l. całkowita
– intiger - l. całkowita
float
float
– l. rzeczywista,
– l. rzeczywista,
z
z
miennoprzecinkowa
miennoprzecinkowa
deklaracja:
deklaracja:
jakbyś spotkał (jakby kompilator spotkał)
jakbyś spotkał (jakby kompilator spotkał)
nazwę: … (np.
nazwę: … (np.
int
int
) to wiedz, że oznacza ona
) to wiedz, że oznacza ona
obiekt typu … (np.
obiekt typu … (np.
całkowitego
całkowitego
)
)
definicja
definicja
:
:
zarezerwuj w pamięci miejsce na obiekt typu
zarezerwuj w pamięci miejsce na obiekt typu
całkowitego o nazwie:…
całkowitego o nazwie:…
Definicja jest równocześnie deklaracją, ale nie odwrotnie
Definicja jest równocześnie deklaracją, ale nie odwrotnie
deklaracja
deklaracja
–
–
clarus
clarus
– jasny, zrozumiały; de-klarować ->
– jasny, zrozumiały; de-klarować ->
wy-jaśniać
wy-jaśniać
definicja
definicja
– finis – kniec, granica; de-finiować ->
– finis – kniec, granica; de-finiować ->
zakreślać granicę (wokół komórek pamięci)
zakreślać granicę (wokół komórek pamięci)
Typy danych w C++
Typ danych
-
definiuje zakres lub zbiór
dopuszczalnych wartości dla stałej,
zmiennej, wyrażenia, funkcji oraz zbiór
dopuszczalnych operacji wykonywanych
na tych wartościach.
- określa też format zapisu w pamięci
1.
Typy proste
(skalary)
- arytmetyczne (
całkowite i
rzeczywiste
)
- wskaźnikowe
- referencyjne
Typy danych w
C++
2.
Typy
strukturalne
(złożone)
-
tablice
- struktury
- unie
- klasy
Systematyka typów z
Systematyka typów z
języka C++
języka C++
dwojaki podział:
dwojaki podział:
- typy fundamentalne
- typy fundamentalne
- typy pochodne, będące wariacjami
- typy pochodne, będące wariacjami
typów fundamentalnych
typów fundamentalnych
lub
lub
-
-
typy wbudowane (build-in)
typy wbudowane (build-in)
- typy zdefiniowane przez użytkownika
- typy zdefiniowane przez użytkownika
– jedno z lepszych rozwiązań C++
– jedno z lepszych rozwiązań C++
typy reprezentujące
typy reprezentujące
liczby całkowite
liczby całkowite
:
:
short int
short int
inaczej
inaczej
short
short
int
int
long int
long int
inaczej
inaczej
long
long
oraz
oraz
typ wyliczeniowy
typ wyliczeniowy
enum
enum
typ reprezentujący obiekty zadeklarowane jako
typ reprezentujący obiekty zadeklarowane jako
znaki alfanumeryczne
znaki alfanumeryczne
char
char
wszystkie powyższe typy mogą być ze znakiem i
wszystkie powyższe typy mogą być ze znakiem i
bez znaku. posługujemy się modyfikatorem
bez znaku. posługujemy się modyfikatorem
:
:
signed
signed
lub
lub
unsiged
unsiged
np.:
np.:
signed int
signed int
-
-
może reprezentować
może reprezentować
liczbę ujemną i dodatnią
liczbę ujemną i dodatnią
unsigned int
unsigned int
–
–
reprezentuje
reprezentuje
liczbę dodatnią
liczbę dodatnią
zapis
zapis
:
:
int a
int a
–
–
oznacza
oznacza
signed int a
signed int a
–
–
czyli typ ze znakiem
czyli typ ze znakiem
Typy całkowite
(skończone , przeliczalne podzbiory zbioru liczb
całkowitych)
Słowa kluczowe określające typy całkowite
char
typ znakowy
alfanumeryczny
(litera, cyfra lub znak przestankowy)
int
typ całkowity
long
typ tzw. długich
liczb całkowitych
signed
liczby ze znakiem
short
typ tzw. krótkich
liczb całkowitych
unsigned
liczby bez znaku
Typy całkowite
Typy całkowite
skończone , przeliczalne podzbiory zbioru liczb
całkowitych
Typ
Typ
Rozmiar w bitach
Rozmiar w bitach
min
min
max
max
unsigned
unsigned
char
char
8, jeden znak
8, jeden znak
0
0
255
255
char, signed
char, signed
char
char
8, jeden znak
8, jeden znak
-128
-128
127
127
int, signed
int, signed
int
int
16
16
-32768
-32768
32767
32767
unsigned int
unsigned int
16
16
0
0
65535
65535
long
long
unsigned int
unsigned int
32
32
0
0
4294967295
4294967295
long signed
long signed
int
int
32
32
-2147483648
-2147483648
2147483647
2147483647
0, lub 1-bit, najmniejsza porcja informacji, bajt 8 bitów
char a, b = 15;
int x, y = 2;
long k;
inicjowanie
składnia
typ całkowity identyfikator = wartość
zainicjowana
Deklaracje i inicjacja zmiennych
całkowitych
Typy rzeczywiste
reprezentujące liczby
zmiennoprzecinkowe
(skończone , przeliczalne podzbiory zbioru liczb
rzeczywistych)
Typ
Rozmiar
w bitach
min
max
Liczba
znaczących
cyfr
float
32
32
3.4E-38 3.4E38
6
double
64
64
1.7E-
308
1.7E30
8
15
long
double
80
80
3.4E-
4932
1.1E49
32
18
Twój komputer może zapisywać inaczej – jak ?- mówi
operator
sizeof
–
rozmiar
- potem
Typy rzeczywiste
(skończone , przeliczalne podzbiory zbioru liczb
rzeczywistych)
Pojęcie znaczących cyfr
Pojęcie znaczących cyfr
Liczbę rzeczywistą w pamięci komputera
Liczbę rzeczywistą w pamięci komputera
zapisuje się
zapisuje się
w postaci dwóch liczb (mantysa, cecha)
w postaci dwóch liczb (mantysa, cecha)
L = mantysa * 10
L = mantysa * 10
cecha
cecha
Dla
Dla
float
float
liczba
liczba
1254986719873674.678
1254986719873674.678
zostanie zapisana w
zostanie zapisana w
0.125498 E16
0.125498 E16
A więc zostanie zaokrąglona do wartości:
A więc zostanie zaokrąglona do wartości:
1254980000000000
1254980000000000
float a, b = 123.16e10;
double x, y = - 145.67;
long double k;
inicjowanie
składnia
typ całkowity identyfikator = wartość
zainicjowana
Deklaracje i inicjacja zmiennych
rzeczywistych