Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG
TWJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK
CZYTELNIA
FRAGMENTY KSIEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Programowanie.
Od podstaw
Autor: Adrian Kingsley-Hughes, Kathie Kingsley-Hughes
Tumaczenie: Radosaw Meryk
ISBN: 83-246-0057-4
Tytu oryginau: Beginning Programming
Format: B5, stron: 464
Przykady na ftp: 449 kB
Mimo dynamicznego rozwoju informatyki wrd wikszoci uytkownikw komputerw
nadal istnieje przekonanie, e programowanie jest zajciem dla wybracw
posiadajcych ogromn i niemal tajemn wiedz. Tymczasem pisanie programw to
umiejtno, ktr moe opanowa kady. Oczywicie nauka programowania wymaga
poznania wielu zagadnie teoretycznych i praktycznych, ale nie wymaga od osoby
uczcej si adnych niezwykych umiejtnoci. Kady moe pozna zasady pisania
programw, zarwno dla celw hobbystycznych, jak i zawodowych.
Ksika Programowanie. Od podstaw to podrcznik programowania przeznaczony dla
osb, ktre dopiero rozpoczynaj swoj komputerow przygod. Zawiera uniwersalne
wiadomoci przydatne kademu programicie niezalenie od tego, co i w jakim jzyku
bdzie tworzy. Czytajc j, poznasz wady i zalety rnych jzykw programowania,
sposoby realizacji typowych zada programistycznych i metody testowania aplikacji.
Dowiesz si, jak komputery przechowuj informacje, jakie systemy liczbowe
wykorzystuje si w programowaniu i jakie narzdzia bd Ci potrzebne podczas pracy.
Zdobdziesz solidne podstawy, ktre pozwol Ci na dalsze rozwijanie swoich
umiejtnoci.
Sposb interpretacji kodu rdowego przez komputer
System binarny i szesnastkowy
Warsztat pracy programisty
Komentarze w kodach programw
Definiowanie zmiennych
Instrukcje warunkowe
Testowanie i usuwanie bdw
Projektowanie interfejsw uytkownika
Operacje na plikach
Wykorzystywanie rejestru Windows
Zarzdzanie wersjami kodu
Kompilacja
Przekonaj si, e programowanie nie jest trudne
Spis treci
O autorach ..................................................................................................................................................9
Wprowadzenie .......................................................................................................................................... 11
Rozdzia 1. Czym jest programowanie? ................................................................................................. 17
Historia programowania ................................................................................................ 17
Czym jest programowanie? ........................................................................................... 21
Dlaczego jest tak wiele jzykw programowania? ....................................................... 21
Rny kod, te same wyniki ....................................................................................... 23
Programy potrzebne do tworzenia programw ................................................................. 27
rodowisko programisty .......................................................................................... 28
Kompilatory ............................................................................................................ 28
Podsumowanie ............................................................................................................ 29
Programowanie. Od podstaw
Rozdzia 3. Jak komputery czytaj kod? ...............................................................................................47
Czytanie kodu .............................................................................................................. 47
Gra-d ................................................................................................................. 47
Podzia kodu .......................................................................................................... 50
Instrukcje ............................................................................................................... 53
Funkcje/Procedury .................................................................................................. 54
Zdania i akapity programowania .................................................................................... 55
Wiersze kodu ......................................................................................................... 55
Akapity kodu .......................................................................................................... 56
Przechowywanie danych ................................................................................................ 57
Dane ..................................................................................................................... 58
Podsumowanie ............................................................................................................ 60
Spis treci
Programowanie. Od podstaw
Jak dostrzec bdy? .................................................................................................... 244
Czytaj kady wiersz, zanim wciniesz Enter ............................................................. 245
Sprawdzaj poprzednie instrukcje ............................................................................ 245
Dbaj o klarowny ukad kodu ................................................................................... 245
Komentarze, komentarze, komentarze! ................................................................... 246
Usuwaj niejednoznacznoci w kodzie ...................................................................... 246
redniki ............................................................................................................... 247
Testuj kod ............................................................................................................ 247
led wykorzystane zmienne .................................................................................. 248
Podsumowanie .......................................................................................................... 253
Spis treci
Programowanie. Od podstaw
Zarzdzanie wersjami kolejne wydania ..................................................................... 383
Programy do zarzdzania wersjami .............................................................................. 384
Podsumowanie .......................................................................................................... 385
Moliwoci wyraenia tej myli jest znacznie wicej. Ludzie bez trudu to zrozumiej
komputery nie.
Moliwo rozumienia skomplikowanych konstrukcji jest oczywicie celem, do ktrego
d programici pracujcy nad jzykami programowania. Zwrmy uwag, e w filmach
science fiction (Star Trek, Star Wars i wielu innych) ludzie komunikuj si z komputerami
za pomoc jzyka mwionego. Byoby doskonale, gdyby to byo moliwe w rzeczywistoci.
62
Programowanie. Od podstaw
System dwjkowy
System dwjkowy (nazywany te binarnym) jest systemem liczbowym. Rni si od systemu dziesitnego, ktry uywamy na co dzie tym, e zamiast dziesiciu cyfr (0,1, 2, 3, 4, 5,
6, 7, 8 i 9) wykorzystuje si w nim tylko dwie (0 i 1). Cyfry wykorzystywane w systemie
dwjkowym okrela si jako bity.
Dla wielu osb zrozumienie systemu dwjkowego stwarza problemy, poniewa wykorzystywane w nim bity 0 i 1 (cyfry, ktre wszyscy znamy) s wykorzystywane w niestandardowy sposb. Gdyby zamiast cyfr 0 i 1 wykorzystano inne symbole, by moe zrozumienie systemu stwarzaoby mniej problemw.
Dwjkowo
10
11
100
101
110
111
1000
1001
10
1010
11
1011
Zwrmy uwag na to, w jaki sposb wykonywana jest inkrementacja. Poniewa wystpuj
tylko dwa bity, wydaje si, e liczby wzrastaj szybciej (z powodu wikszej liczby pozycji), ale nie naley si tym sugerowa. Liczby dwjkowe czyta si od prawej do lewej. Im
bliej lewej strony znajduje si bit, tym wiksza jego waga.
Prostym sposobem nauczenia si interpretacji liczb dwjkowych jest wykorzystanie sposobu
nauczania czytania liczb, jaki stosuje si w szkoach. Wemy na przykad nastpujc liczb:
1010
Rozdzia 4.
63
Setki
Dziesitki
Jednoci
Czwrki
Dwjki
Jednoci
Razem dziesitnie
10
Aby uzyska dziesitn warto dwjkowej liczby 1010, wystarczy zsumowa liczby w prawej
kolumnie. Uzyskalimy wynik dziesi.
A zatem liczba 1010 to jedna semka i jedna dwjka, czyli 10.
Odczytanie wikszej liczby dwjkowej wymaga zastosowania tabelki o wikszej liczbie
kolumn. Wemy nastpujc liczb dwjkow:
10010111
Najpierw utworzymy tabelk (pamitajc, e idc od prawej do lewej, warto kolejnej kolumny
to podwojona warto kolumny poprzedniej):
Sto dwudziestki
semki
Szedziesitki
czwrki
Trzydziestki
Szesnastki semki Czwrki Dwjki Jednoci
dwjki
0
Aby obliczy warto liczby w systemie dziesitnym, utworzymy tabelk tak, jak poprzednio,
i umiecimy poszczeglne bity w lewej kolumnie:
64
Programowanie. Od podstaw
1
128
128
64
32
16
16
Razem dziesitnie
151
Due liczby
Kiedy opowiadamy dzieciom o liczbach, pierwsz rzecz, ktr robi, jest zapisanie moliwie
najwikszej liczby. W przypadku 8 bitw najwiksza moliwa liczba ma warto 11111111.
Oto sposb obliczenia jej wartoci:
1
128
128
64
64
32
32
16
16
=
Razem dziesitnie
1
255
32768
32768
16384
16384
8192
8192
4096
4096
2048
2048
1024
1024
512
512
Rozdzia 4.
65
256
256
128
128
64
64
32
32
16
16
=
Razem dziesitnie
1
65535
Grupowanie bitw
Dla wygody grupom bitw nadano nazwy, dziki ktrym atwiej je zapamita i posugiwa
si nimi. Przyjrzyjmy si im pokrtce.
Bit
Bit to pojedyncza cyfra dwjkowa. Bitem jest:
0
Podobnie jak:
1
Pbajt
Grup czterech bitw nazywa si pbajtem (ang. nibble). Oto przykadowy pbajt:
1010
Razem dziesitnie
15
66
Programowanie. Od podstaw
Bajt
Grupa omiu bitw to bajt.
10101010
128
128
64
64
32
32
16
16
Razem dziesitnie
255
Psowo
Grup 16 bitw okrela si jako psowo.
1010101010101010
32768
32768
16384
16384
8192
8192
4096
4096
2048
2048
1024
1024
512
512
256
256
128
128
64
64
Rozdzia 4.
67
32
32
16
16
Razem dziesitnie
65535
Sowo
Grup 32 bitw nazywamy sowem. Oto przykad sowa:
10101010101010101010101010101010
2147483648
2147483648
1073741824
1073741824
536870912
536870912
268435456
268435456
134217728
134217728
67108864
67108864
33554432
33554432
16777216
16777216
8388608
8388608
4194304
4194304
2097152
2097152
1048576
1048576
524288
524288
262144
262144
131072
131072
65536
65536
32768
32768
16384
16384
8192
8192
68
Programowanie. Od podstaw
1
4096
4096
2048
2048
1024
1024
512
512
256
256
128
128
64
64
32
32
16
16
Razem dziesitnie
4294967295
Podwjne sowo
Grup 64 bitw nazywa si podwjnym sowem. Oto przykad:
1010101010101010101010101010101010101010101010101010101010101010
Arytmetyka dwjkowa
Obliczenia z liczbami dwjkowymi wykonuje si w sposb podobny do operacji na liczbach dziesitnych. Jednak dla potrzeb zrozumienia materiau zawartego w tej ksice nauka
teorii arytmetyki binarnej nie jest konieczna. Zamiast tego zaprezentuj o wiele atwiejszy
sposb wykonywania oblicze z liczbami dwjkowymi wykorzystanie narzdzia o rozbudowanych moliwociach, ktre ma do tego dodatkow zalet jest darmowe. Owo narzdzie pokazano na rysunku 4.1.
Tak, to windowsowy Kalkulator! Dla uytkownikw systemu Windows jest to doskonaa
aplikacja suca do tego celu. Uytkownicy innych systemw operacyjnych rwnie powinni poszuka kalkulatora z moliwoci wykonywania operacji na liczbach dwjkowych.
Rozdzia 4.
69
Rysunek 4.1.
70
Programowanie. Od podstaw
Wywietli si Kalkulator w trybie naukowym, w ktrym dostpnych jest wiele nowych przyciskw i funkcji.
Jeli z naszego komputera PC korzystaj inni uytkownicy, ktrym potrzebny jest Kalkulator do wykonywania prostych dziaa, pamitajmy o ponownym przeczeniu go do
trybu standardowego po wykonaniu dziaa! To tak na wszelki wypadek, aby ich nie
przestraszy.
W trybie naukowym s dostpne elementy sterujce do zmiany formatu liczb. Liczby dziesitne
reprezentuje napis Dec, natomiast dwjkowe Bin (rysunek 4.4).
Rysunek 4.4.
Format liczb mona take zmieni za pomoc menu. Suy do tego menu Widok, tak jak
pokazano na rysunku 4.5.
Rysunek 4.5.
Ustawiamy Kalkulator w tryb liczb dziesitnych i wpisujemy liczb. Aby obejrze t liczb
w postaci dwjkowej, wystarczy przeczy Kalkulator z trybu Dec (rysunek 4.6)
Rozdzia 4.
71
Rysunek 4.6.
72
Programowanie. Od podstaw
Odpowied jest prosta: system dwjkowy umoliwia reprezentowanie dwch stanw
wczenia i wyczenia. Oznacza to, e w systemie komputerowym (lub dowolnym innym
systemie elektronicznym) informacje mona reprezentowa za pomoc przecznikw. Zmiana
stanu tych przecznikw z wczenia na wyczenie i z powrotem umoliwia wykonywanie
dziaa na liczbach dwjkowych. Jest to podstawa dziaania procesorw i pamici (zarwno
pamici RAM, jak i twardych dyskw).
System dwjkowy mona take przedstawi za pomoc impulsw elektrycznych przesyanych w przewodach. Jest to podstawa dziaania sieci i internetu.
System dwjkowy moe sprawia wraenie rozwlekego i kopotliwego, ale w rzeczywistoci tworzy on system nerwowy wszystkich urzdze zwizanych z przesyaniem, przetwarzaniem i zapisywaniem danych. System dwjkowy jest wszdzie pynie w obwodach,
przewodach i w eterze.
System szesnastkowy
System szesnastkowy (nazywany take heksadecymalnym) jest systemem liczbowym podobnym do dwjkowego i dziesitnego, ale jest nieco bardziej skomplikowany.
Dlaczego bardziej skomplikowany? Ot w systemie dwjkowym s dwie cyfry, w dziesitnym 10, natomiast w szesnastkowym jest ich 16:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E i F.
Czasami mona spotka liczby szesnastkowe, w ktrych zamiast liter ABCDEF stosowane s odpowiednio znaki ~, !, @, #, $ i %.
Szesnastkowo
Rozdzia 4.
10
11
12
13
14
15
16
10
...
...
30
1E
31
1F
32
20
33
21
73
Zwrmy uwag na to, w jaki sposb wykonywana jest inkrementacja. Poniewa jest 16 cyfr,
wydaje si, e liczby wzrastaj wolniej ni w systemie dziesitnym. Podobnie jak w systemie
dwjkowym, liczby szesnastkowe czyta si od prawej do lewej. Im bliej lewej strony znajduje
si bit, tym wiksza jego waga.
Sowo heksadecymalny (ang. hexadecimal) jest troch dziwne, poniewa przedrostek
hexa wywodzi si od greckiego sowa hexifor 6, natomiast sowo decimal pochodzi
z aciny i oznacza liczb 10. Starszy i bardziej dokadny jest pochodzcy z aciny termin
szesnastkowy (ang. sexidecimal). Terminu zaprzestano uywa z powodu nieprzyzwoitych skojarze (nie mwic ju o tym, e uywano go take do okrelenia systemu
szedziesitkowego).
0011
1111
0111
1101
74
Programowanie. Od podstaw
Przeksztacenie dowolnego cigu reprezentujcego liczb dwjkow na posta liczby szesnastkowej rwnie nie powinno sprawia problemu. Wemy nastpujc liczb:
101111
Wystarczy doda kilka zer z lewej strony liczby, tak aby liczba jej bitw dzielia si na 4
bez reszty:
00101111
Zrobione!
Kady pbajt mona przedstawi w postaci jednej cyfry szesnastkowej.
Z podanych powyej powodw bajt zazwyczaj jest przedstawiany jako dwa pbajty.
Rozdzia 4.
75
Reprezentacja znakw
Do tej pory omwilimy kilka sposobw reprezentowania liczb, ale jak powszechnie wiadomo,
uytkowanie komputerw to nie tylko przetwarzanie liczb. S jeszcze dane tekstowe, symbole
i inne znaki. W jaki sposb przej od systemu dwjkowego (stanowicego podstaw dziaania
wszystkich komputerw) do znakw wpisywanych z klawiatury lub wywietlanych na ekranie?
Aby umoliwi reprezentowanie znakw w komputerach, opracowano system ASCII (wymawia si aski). Skrt ASCII pochodzi od American Standard Code for Information Interchange amerykaski standard kodu wymiany informacji. Poniewa komputery potrafi
przetwarza tylko liczby, kod ASCII opisuje przeksztacenie znakw, takich jak a lub ~, albo
okrelonych dziaa (jak np. wysuw arkusza papieru) na liczby.
Kod ASCII to standardowy sposb przeksztacenia wielkich i maych liter alfabetu angielskiego, a take cyfr i znakw specjalnych. Przeksztacenie to wykonywane jest z wykorzystaniem systemu dwjkowego do reprezentacji wymienionych znakw potrzeba 7 bitw. Jak
atwo policzy, za pomoc 7 bitw mona przedstawi 128 znakw.
DZIESITNIE
SEMKOWO SZESNASTKOWO
DWJKOWO
000
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
000
001
002
003
004
005
006
007
010
011
012
013
014
015
016
017
020
000
001
002
003
004
005
006
007
008
009
00A
00B
00C
00D
00E
00F
010
00000000
00000001
00000010
00000011
00000100
00000101
00000110
00000111
00001000
00001001
00001010
00001011
00001100
00001101
00001110
00001111
00010000
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
WARTO
017
018
019
020
021
022
023
024
025
026
021
022
023
024
025
026
027
030
031
032
011
012
013
014
015
016
017
018
019
01A
00010001
00010010
00010011
00010100
00010101
00010110
00010111
00011000
00011001
00011010
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
(Znak Null.)
(Pocztek nagwka)
(Pocztek tekstu)
(Koniec tekstu)
(Koniec transmisji)
(Zapytanie)
(Potwierdzenie)
(Sygna dwikowy)
(Powrt o 1 pozycj)
(Tabulacja pozioma)
(Wysuw wiersza)
(Tabulacja pionowa)
(Wysuw arkusza)
(Powrt karetki)
(Zmiana kodu)
(Powrotna zmiana kodu)
(Przekodowanie znakw
sterujcych)
(XON)(Sterowanie urzdzeniem 1)
(Sterowanie urzdzeniem 2)
(XOFF)(Sterowanie urzdzeniem 3)
(Sterowanie urzdzeniem 4)
(Potwierdzenie negatywne)
(Tryb synchroniczny)
(Koniec bloku transmisji )
(Anulowanie)
(Koniec nonika)
(Zastpienie)
76
Programowanie. Od podstaw
027
028
029
030
033
034
035
036
01B
01C
01D
01E
00011011
00011100
00011101
00011110
ESC
FS
GS
RS
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
037
040
041
042
043
044
045
046
047
050
051
052
053
054
055
056
057
060
061
062
063
064
065
066
067
070
071
072
073
074
075
076
077
100
101
102
103
104
105
106
107
110
111
01F
020
021
022
023
024
025
026
027
028
029
02A
02B
02C
02D
02E
02F
030
031
032
033
034
035
036
037
038
039
03A
03B
03C
03D
03E
03P
040
041
042
043
044
045
046
047
048
049
00011111
00100000
00100001
00100010
00100011
00100100
00100101
00100110
00100111
00101000
00101001
00101010
00101011
00101100
00101101
00101110
00101111
00110000
00110001
00110010
00110011
00110100
00110101
00110110
00110111
00111000
00111001
00111010
00111011
00111100
00111101
00111110
00111111
01000000
01000001
01000010
01000011
01000100
01000101
01000110
01000111
01001000
01001001
US
SP
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
(Wyjcie)
(Separator pliku)
(Separator grupy)
(danie wysania
separatora rekordu)
(Separator jednostki)
(Spacja)
(wykrzyknik)
(cudzysw)
(hash)
(dolar)
(procent)
(ampersand)
(apostrof)
(lewy nawias - otwierajcy)
(prawy nawias - zamykajcy)
(gwiazdka)
(plus)
(przecinek)
(minus lub mylnik)
(kropka)
(ukonik)
(dwukropek)
(rednik)
(mniejszy ni)
(znak rwnoci)
(wikszy ni)
(znak zapytania)
(symbol AT)
Rozdzia 4.
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
112
113
114
115
116
117
120
121
122
123
124
125
126
127
130
131
132
133
134
135
136
137
140
141
142
143
144
145
146
147
150
151
152
153
154
155
156
157
160
161
162
163
164
165
166
167
170
171
04A
04B
04C
04D
04E
04F
050
051
052
053
054
055
056
057
058
059
05A
05B
05C
05D
05E
05F
060
061
062
063
064
065
066
067
068
069
06A
068
06C
06D
06E
06F
070
071
072
073
074
075
076
077
078
079
01001010
01001011
01001100
01001101
01001110
01001111
01010000
01010001
01010010
01010011
01010100
01010101
01010110
01010111
01011000
01011001
01011010
01011011
01011100
01011101
01011110
01011111
01100000
01100001
01100010
01100011
01100100
01100101
01100110
01100111
01101000
01101001
01101010
01101011
01101100
01101101
01101110
01101111
01110000
01110001
01110010
01110011
01110100
01110101
01110110
01110111
01111000
01111001
77
78
Programowanie. Od podstaw
122
123
124
125
126
127
172
173
174
175
176
177
07A
07B
07C
07D
07E
07F
01111010
01111011
01111100
01111101
01111110
01111111
z
{
|
}
~
DEL
Aby mona byo przedstawi wicej znakw, takich jak znaki narodowe lub symbole matematyczne, wprowadzono smy bit. Dziki temu mona przedstawi 256 znakw. Istnieje
wiele rnych zestaww znakw. Poniej zaprezentowano tzw. rozszerzony zestaw znakw.
WARTO
DZIESITNIE
SZESNASTKOWO
128
80
--
129
81
130
82
--
131
83
132
84
133
85
134
86
135
87
--
136
88
137
89
138
8a
139
8b
140
8c
141
8d
142
8e
143
8f
--
144
90
145
91
146
92
147
93
148
94
149
95
150
96
151
97
--
152
98
Rozdzia 4.
153
99
154
9a
155
9b
156
9c
157
9d
158
9e
159
9f
160
a0
161
a1
162
a2
163
a3
164
a4
165
a5
166
a6
167
a7
168
a8
169
a9
170
aa
171
ab
172
ac
--
173
ad
174
ae
175
af
176
b0
177
b1
178
b2
179
b3
180
b4
181
b5
182
b6
183
b7
184
b8
185
b9
186
ba
187
bb
188
bc
189
bd
190
be
191
bf
192
c0
193
c1
79
80
Programowanie. Od podstaw
194
c2
195
c3
196
c4
197
c5
198
c6
199
c7
200
c8
201
c9
202
ca
203
cb
204
cc
205
cd
206
ce
207
cf
208
d0
209
d1
210
d2
211
d3
212
d4
213
d5
214
d6
215
d7
216
d8
217
d9
218
da
219
db
220
dc
221
dd
222
de
223
df
224
e0
225
e1
226
e2
227
e3
228
e4
229
e5
230
e6
231
e7
232
e8
233
e9
234
ea
235
eb
Rozdzia 4.
236
ec
237
ed
238
ee
239
ef
240
f0
241
f1
242
f2
243
f3
244
f4
245
f5
246
f6
247
f7
248
f8
249
f9
250
fa
251
fb
252
fc
253
fd
254
fe
255
ff
81
Dziki wykorzystaniu kodu ASCII mona przeksztaci dane tekstowe na cigi zer i jedynek
oraz w drug stron z postaci cigw zer i jedynek na posta tekstow. Przeksztacenie
to nie powoduje utraty danych i jest jednoznaczne.
Wemy na przykad nastpujcy cig znakw:
Programowanie jest fajne!
Dziki wykorzystaniu tablicy ASCII mona przeksztaci te znaki na bajty zapisane w formacie dwjkowym. Oto, co uzyskamy:
01010000011100100110111101100111011100100110000101101101011011110111011101100001
0110111001101001011001010010000001101010011001010111001101110100010000001100110011000
01 01101010011011100110010100100001
Znak
Kod dwjkowy
01010000
01110010
01101111
01100111
01110010
01100001
82
Programowanie. Od podstaw
Znak
Kod dwjkowy
01101101
01101111
01110111
01100001
01101110
01101001
01100101
00100000
01101010
01100101
01110011
01110100
00100000
01100110
01100001
01101010
01101110
01100101
00100001
Przeksztacenie cigu zer i jedynek na posta tekstow nie jest trudne. Aby to zrobi rcznie,
najpierw trzeba podzieli go na bajty. Przetwarzanie dugich cigw zer i jedynek jest uciliwe
bardzo atwo o popenienie bdu.
01010000 01110010 01101111 01100111 01110010 01100001 01101101 01101111 01110111
01100001 01101110 01101001 01100101 00100000 01101010 01100101 01110011 01110100
00100000 01100110 01100001 01101010 01101110 01100101 00100001
Po podzieleniu cigu zer i jedynek na bajty wystarczy skorzysta z tablicy ASCII i odczyta
odpowiednie znaki:
P
r
o
g
r
a
m
o
w
01010000 01110010 01101111 01100111 01110010 01100001 01101101 01101111 01110111
a
n
i
e
j
e
s
t
01100001 01101110 01101001 01100101 00100000 01101010 01100101 01110011 01110100
f
a
j
n
e
!
00100000 01100110 01100001 01101010 01101110 01100101 00100001
Rozdzia 4.
83
Rysunek 4.9.
Warto zapamita, e znaki wywietlane na ekranie nie maj nic wsplnego z kodem dwjkowym. Liczby dwjkowe (a take szesnastkowe i semkowe) s przeksztacane na znaki,
a dopiero potem wywietlane przez aplikacj lub system operacyjny.
Przeanalizowalimy rne formaty liczb oraz opisalimy sposb wykorzystania liczb do
reprezentowania znakw wywietlanych na ekranie, przetwarzanych bd zapisywanych
w pamici zewntrznej. W nastpnym podrozdziale zajmiemy si operatorami arytmetycznymi
i logicznymi.
Operatory
Programowanie w duej czci polega na przetwarzaniu danych zarwno tekstowych, jak
i liczbowych. Operatory umoliwiaj wykonywanie operacji na danych oraz porwnywanie
informacji.
Rozpoczniemy od opisania podstawowych operatorw. Dziki temu zapoznamy si z ich
przeznaczeniem i dziaaniem. Naley pamita, e nie dla wszystkich operatorw w rnych jzykach programowania s stosowane takie same symbole (jest to jedna z najczstszych
przyczyn frustracji wrd osb, ktre przystpuj do nauki drugiego jzyka programowania).
Na razie zapamitajmy wic przeznaczenie podstawowych operatorw. To z pewnoci przyda
si na dalszych etapach nauki.
Operatory mona podzieli na pi kategorii. Kada z nich zostanie opisana w kolejnych
punktach:
Q
arytmetyczne,
przypisania,
porwna,
logiczne,
tekstowe.
84
Programowanie. Od podstaw
Operatory arytmetyczne
S to najprostsze operatory, ktre zna wikszo osb uczcych si programowania, poniewa uywamy ich na co dzie do wykonywania dziaa arytmetycznych.
Siedem podstawowych operatorw arytmetycznych przedstawiono w poniszej tabeli:
Operator
Opis
Przykad
Wynik
Dodawanie
If x = 6
x + 4
10
Odejmowanie
If x = 6
x 2
Mnoenie
If x = 6
x * 2
12
Dzielenie
If x = 6
x / 3
++
If x = 6
x++
If x = 6
x--
7%2
10%4
12%6
1
2
0
Operatory przypisania
Operatory przypisania su do przypisywania wartoci. Operatory te wykorzystamy w szerszym
zakresie w dalszej czci tego rozdziau, kiedy zajmiemy si zastosowaniem zmiennych (x
z przykadw w poprzednim punkcie jest przykadem zmiennej, do ktrej przypisano warto 6).
Jest sze operatorw przypisania:
Operator
Przykad
Rwnowane wyraeniu
x = 6
x = y
x = 6
x = y
+=
x += y
x=x+y
x = y
x=xy
*=
x *= y
x=x*y
/=
x /= y
x=x/y
%=
x %= y
x=x%y
W powyszych przykadach x i y to zmienne. Zmiennym naley nadawa unikatowe nazwy (chyba e korzysta si z nich wielokrotnie). Dla potrzeb omwienia tego materiau
wystarcz nam zmienne x i y!
Rozdzia 4.
85
Operatory porwna
Operatory porwna wykorzystujemy w dwch celach jak si przekonamy w rozdziale 7.,
Struktury kodowania, s one bardzo przydatne.
Jest sze operatorw porwna. Wynikiem dziaania kadego z nich jest warto true lub
false w zalenoci od tego, czy wynik porwnywania jest prawdziwy, czy faszywy.
Operator
Opis
Przykad
==
Rwny
5 == 8 (zwraca false)
8 == 8 (zwraca true)
"kot" == "pies" (zwraca false)
"kot" == "kot" (zwraca true)
!=
Rny
5 != 8 (zwraca true)
8 != 8 (zwraca false)
>
Wikszy ni
<
Mniejszy ni
>=
<=
Operatory logiczne
Operatory logiczne umoliwiaj stosowanie wyrae logicznych w tworzonym kodzie. Mona
je czy z operatorami zaprezentowanymi wczeniej.
S trzy operatory logiczne.
Operator
Opis
Przykad
&&
And
x = 7
y = 2
(x < 12 && y > 1)
zwraca true
86
Programowanie. Od podstaw
Operator
Opis
Przykad
||
Or
x=6
y=1
(x==6 || y==5)
zwraca true
Not
x=6
y=3
!(x==y)
zwraca true
Operatory znakowe
Operatory znakowe su do wykonywania operacji na cigach znakw. Zazwyczaj za pomoc cigw znakw zapisujemy fragmenty tekstu. Oto dwa przykadowe cigi znakw:
string1 = "Witaj, "
string2 = "wiecie!"
Za pomoc operatorw znakowych mona czy ze sob cigi znakw (taka operacja nazywa si konkatenacj).
string3 = string1 + string2
Po wykonaniu tej instrukcji w zmiennej string3 bdzie zapisany cig Witaj, wiecie!.
Jednym z elementw sprawiajcych trudnoci osobom pocztkujcym w wykonywaniu operacji
na cigach znakw s spacje. Dokadniej mwic, problemy stwarza odpowiednie stosowanie
spacji pomidzy cigami znakw, tak aby ostatni wyraz by napisany poprawnie.
Na przykad gdyby w poprzednim przykadzie zmienne miay wartoci:
string1 = "Witaj,"
string2 = "wiecie!"
Rozdzia 4.
87
to po wykonaniu konkatenacji:
string3 = string1 + string2
Po wykonaniu takiej operacji zmienna string3 bdzie miaa prawidow warto Witaj,
wiecie!.
Operacjom na cigach znakw przyjrzymy si bardziej szczegowo w kolejnych rozdziaach. Teraz jednak, kiedy znamy podstawy, o wiele atwiej bdzie nam zrozumie szczegy
i bd one miay wicej sensu.
Podsumowanie
W tym rozdziale przeledzilimy sposoby przechodzenia od poj do kodu. Przeanalizowalimy
kilka systemw liczbowych, z ktrymi mona si spotka, a take sposb wykorzystania systemu
dwjkowego, szesnastkowego i semkowego do reprezentowania znakw w kodzie ASCII.
Pokrtce powiedzielimy take, dlaczego system dwjkowy jest wany w technice komputerowej
i stanowi podstaw niemal wszystkich dziaa wykonywanych w elektronice cyfrowej.
Omwilimy take operatory, ktre umoliwiaj wykonywanie operacji na prostych danych
(na tym wanie polega przetwarzanie danych).
W nastpnym rozdziale omwimy narzdzia potrzebne do programowania.