background image

Język 

Język 

programowania

programowania

Rozwijanie zdolności logicznego 

i precyzyjnego inżynierskiego myślenia 

poprzez naukę programowania 

 

background image

        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

background image

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ż. Tomasz Szuter
- 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.

background image

Katedra Odlewnictwa

 

Wydział Mechaniczny Technologiczny

Politechniki Śląskiej

Gliwice ul. Towarowa 7

tel.: 338 55 35

Mirosław.Cholewa@polsl.pl

Platforma E-learning

                   

http://

www.platforma.imiib.polsl.pl

Język Programowania

              

hasło:   

jpm

background image

                Laboratorium  obejmuje 

ćwiczenia 

praktyczne

 

(programowanie 

C++) 

dające  prawidłowe  nawyki  i 
właściwe 

podejście 

do 

rozwiązywania 

problemów. 

Ćwiczenia 

praktyczne 

są 

związane 

kierunkiem 

studiowania.

background image

Ć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++. 

background image

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.

background image

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.   

background image

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.
 

background image

    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++

background image

Zakres tematyczny wykładów 

obejmuje:

 

1.Analizy 

problemów 

na 

przykładach 

związanych 

kierunkiem 

studiowania

 

poszukiwanie 

metod 

ich 

rozwiązywania

2. 

Projektowanie 

algorytmów 

według 

wybranej 

metody 

rozwiązywania 

problemu 

– 

budowanie schematów blokowych

background image

Cd   Zakres tematyczny wykładu 

obejmuje:

 

3. Podstawy programowania w języku 
  C++  (struktura  programu,  typy 
danych,  deklaracje  zmiennych  i 
stałych, 

operatory 

wyrażenia, 

instrukcje, funkcje)

4. Wybrane algorytmy i ich programy 
(np. sortowanie, przeszukiwanie).
 

background image

-  

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 16 
listopad 

lub 

-zadanie inżynierskie przygotowane przez prowadzącego 
laboratorium – termin 14 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:

background image

-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

background image

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

background image

 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

background image

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

background image

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:

background image

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

background image

 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 

background image

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 języku 
programowania

background image

Algorytm

 

 - określa sposób wykonania pewnego 
zadania, rozwiązania określonego 
problemu, 
czy osiągnięcia zamierzonego celu

 

background image

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)

background image

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ń

background image

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

background image

START

STOP

DANE

C>C

max

Oblicz dodatek wsadu 

obniża-jący

 węgiel 

(złom stalowy)

C<C

min

Oblicz dodatek wsadu 

zwiększający

 węgiel 

(grafit)

Dodaj do wsadu

Dodaj do wsadu

T

T

N

N

background image

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)

background image

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

background image

przykładowy 

PROBLEM 

 

 

Ustalenie spawalności stali 
konstrukcyjnej dla 
opracowania optymalnej 
technologii spawania.

 

DANE:

 

 

-  

-  

      

      skład chemiczny stali konstrukcyjnej

background image

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

background image

Schemat blokowy jest graficznym 

zapisem algorytmu, pokazuje 

następstwo działań, nazywany 

jest też 

siecią działań

.

SCHEMAT 

BLOKOWY

background image

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

background image

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ń):

background image

Postać graficzna podstawowych bloków  

wykorzystywanych w schematach 

blokowych 

blok początkowy

 

rozpoczyna algorytm

Start

blok we/wy

 

określa 

nazwy 

danych 

wprowadzanych 

wyprowadzanych 

przez 

program

Dane

blok operacyjny

 

określa działanie, które może 
zmienić wartość zmiennej
 

Działanie

background image

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

background image

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

background image

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

background image

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++           

http://katodl.mt.polsl.gliwice.pl/www/C++.htm

http://katodl.mt.polsl.gliwice.pl/www/C++.htm

l

l

 

 

Strona internetowa

Strona internetowa

  Bloodshed Software

  Bloodshed Software

            

            

http://

http://

www.bloodshed.net

www.bloodshed.net

Tworzenie i uruchamianie programów w 
C++

 

background image
background image

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++

 

background image

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

background image

#

#

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

background image

#

#

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

background image

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

background image

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

background image

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”;

}

}

background image

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

background image

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)

background image

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

background image

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 

background image

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++

background image

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

background image

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

background image

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

background image

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 

background image

Wielokrotności bitów

Przedrostki dziesiętne

(

SI

)

Przedrostki binarne

(

IEC 60027-2

)

Nazwa

Symbol

Mnożnik

Nazwa

Symbol

Mnożnik

kilobit

kb

10

3

=1000

1

kibibit

Kib

2

10

=1024

1

megabit

Mb

10

6

=1000

2

mebibit

Mib

2

20

=1024

2

gigabit

Gb

10

9

=1000

3

gibibit

Gib

2

30

=1024

3

terabit

Tb

10

12

=1000

4

tebibit

Tib

2

40

=1024

4

petabit

Pb

10

15

=1000

5

pebibit

Pib

2

50

=1024

5

eksabit

Eb

10

18

=1000

6

eksbibit

Eib

2

60

=1024

6

zettabit

Zb

10

21

=1000

7

zebibit

Zib

2

70

=1024

7

jottabit

Yb

10

24

=1000

8

jobibit

Yib

2

80

=1024

8

Bit (w 

ang.

 kawałek

skrót

 od binary digit, czyli 

cyfra dwójkowa

) – najmniejsza ilość 

informacji

 potrzebna do określenia, który z dwóch 

równie prawdopodobnych stanów przyjął układ. Jednostka logiczna.
Jest to również najmniejsza 

jednostka informacji

 używana w odniesieniu do sprzętu komputerowego a oznaczana jest za pomocą „b”. 

Przeważnie stosuje się podstawowe przedrostki wielokrotności 

SI

, czyli o mnożniku 1000.

Bit przyjmuje jedną z dwóch wartości, które zwykle określa się jako 0 (zero) i 1 (jeden), choć można przyjąć dowolną inną parę wartości, np. 
prawda i fałsz, tak lub nie czy -1 i +1. W pierwszym przypadku bit jest tożsamy z 

cyfrą

 w systemie dwójkowym.

Binarny sposób zapisu informacji związany jest z tym, że komputer jako urządzenie cyfrowe rozpoznać może dwa stany napięciowe:

•0 – brak napięcia lub bardzo niskie (mniej niż 10% wartości wysokiego)

•1 – wysokie napięcie.
Z tego względu obliczenia wykonywane przez procesor opierają się na 

binarnym

background image

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

background image

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

background image

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

background image

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


Document Outline