You are on page 1of 34

IDZ DO

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

Rozdzia 2. Po co si uczy programowania? ........................................................................................ 31


Po co programowa? .................................................................................................... 32
Programista zawodowy ............................................................................................ 32
Rozwizywanie problemw ....................................................................................... 35
Ch wzicia udziau w projekcie .............................................................................. 36
Dla przyjemnoci .................................................................................................... 37
Dla sawy ............................................................................................................... 37
Czego si uczy? ......................................................................................................... 37
Rodzaje programowania .......................................................................................... 38
Mity i fakty dotyczce programowania ............................................................................ 43
Mit 1. Narzdzia programistyczne s drogie .............................................................. 43
Mit 2. Aby by programist, trzeba ukoczy studia informatyczne .............................. 43
Mit 3. Nauka programowania zajmuje wiele lat .......................................................... 44
Mit 4. Programowanie jest tylko dla osb modych .................................................... 44
Mit 5. Do programowania potrzebny jest superkomputer z najwyszej pki .................. 44
Mit 6. Od programowania mona si uzaleni .......................................................... 44
Mit 7. Jzyki programowania cigle si zmieniaj ...................................................... 45
Mit 8. Jeli nauczymy si jednego jzyka programowania,
nauka innych bdzie atwiejsza .............................................................................. 45
Podsumowanie ............................................................................................................ 45

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

Rozdzia 4. Od poj do kodu jzyk kodu ........................................................................................... 61


System dwjkowy ......................................................................................................... 62
Jak interpretowa system dwjkowy? ........................................................................ 62
Due liczby ............................................................................................................. 64
Grupowanie bitw ................................................................................................... 65
Arytmetyka dwjkowa .............................................................................................. 68
Dlaczego system dwjkowy? .................................................................................... 71
System szesnastkowy .................................................................................................. 72
Interpretacja liczb szesnastkowych ........................................................................... 72
System szesnastkowy a Kalkulator w systemie Windows ........................................... 74
Reprezentacja znakw .................................................................................................. 75
Operatory .................................................................................................................... 83
Operatory arytmetyczne ........................................................................................... 84
Operatory przypisania .............................................................................................. 84
Operatory porwna ................................................................................................ 85
Operatory logiczne .................................................................................................. 85
Operatory znakowe ................................................................................................. 86
Podsumowanie ............................................................................................................ 87

Rozdzia 5. Narzdzia do programowania .............................................................................................89


Przygotuj sobie warsztat pracy ....................................................................................... 89
Klawiatura .............................................................................................................. 89
Miejsce pracy ......................................................................................................... 91
Biurko .................................................................................................................... 91
Monitor .................................................................................................................. 91
Wybr jzyka ............................................................................................................... 94
Nauka programowania ............................................................................................ 95
Szkoa (uczelnia) .................................................................................................... 95
Szkolenie w pracy ................................................................................................... 96
Programista hobbysta ............................................................................................. 97
Jzyki .................................................................................................................... 98
W jaki sposb bdziemy uczy si programowania? ................................................... 98
Narzdzia .................................................................................................................... 99
Programy oglnego przeznaczenia ............................................................................ 99
Narzdzia programowania ...................................................................................... 105
Podsumowanie .......................................................................................................... 113

Spis treci

Rozdzia 6. Proste kodowanie ................................................................................................................ 115


Zastosowanie komentarzy .......................................................................................... 115
Komentarze w jzyku VBScript ............................................................................... 116
Komentarze w jzyku JavaScript ............................................................................. 118
Komentarze w jzyku C++ ..................................................................................... 120
Zmienne .................................................................................................................... 122
Zastosowanie zmiennych w praktyce ...................................................................... 125
wiczenia ............................................................................................................. 140
Cigi znakw ............................................................................................................. 141
Czym s cigi znakw? .......................................................................................... 141
Przetwarzanie cigw znakw ................................................................................ 143
Przetwarzanie danych wejciowych .............................................................................. 148
Przetwarzanie zmiennych proste operacje arytmetyczne ............................................ 149
Podsumowanie .......................................................................................................... 152

Rozdzia 7. Struktury kodowania ......................................................................................................... 153


Cele stosowania struktur ............................................................................................ 153
Korzyci ............................................................................................................... 154
Analiza struktury ........................................................................................................ 154
Szybkie wprowadzenie do jzyka C++ ..................................................................... 154
Funkcje ..................................................................................................................... 165
Wicej informacji o funkcjach ................................................................................. 167
Instrukcje warunkowe ................................................................................................. 172
Programowe decyzje .............................................................................................. 172
Warunki ............................................................................................................... 173
Wicej informacji na temat instrukcji warunkowych .................................................. 178
Ptle ......................................................................................................................... 187
Ptle for ............................................................................................................... 188
Ptle while ........................................................................................................... 190
Ptle do...while ..................................................................................................... 191
Tablice ...................................................................................................................... 194
Tablice dwuwymiarowe .......................................................................................... 195
Tablice wielowymiarowe ........................................................................................ 196
Podsumowanie .......................................................................................................... 198

Rozdzia 8. Rozwizywanie problemw ............................................................................................... 199


Podstawy rozwizywania problemw ............................................................................ 200
Postaraj si dokadnie zrozumie wymagania .......................................................... 200
Analiza ................................................................................................................. 204
Podzia problemw na mniejsze ............................................................................. 206
Faza kodowania ......................................................................................................... 207
Usprawnianie kodu ............................................................................................... 214
Podsumowanie .......................................................................................................... 222

Rozdzia 9. Usuwanie bdw ............................................................................................................... 223


Bdy s rzecz ludzk ............................................................................................... 223
Bdy, bdy, bdy! .................................................................................................... 224
Rne rodzaje bdw ........................................................................................... 224
Bdy kompilacji ......................................................................................................... 225
Bdy wykonania ........................................................................................................ 238
Bdy logiczne ............................................................................................................ 241

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

Rozdzia 10. Interfejs ............................................................................................................................ 255


Czym jest interfejs? .................................................................................................... 255
Jak wany jest interfejs? ............................................................................................. 257
Co to jest interfejs? .............................................................................................. 257
Czy wszystkie programy maj interfejsy? ................................................................. 258
Analiza interfejsu ....................................................................................................... 258
Interfejsy tekstowe ............................................................................................... 259
Oglny opis dziaania programu ............................................................................. 261
Prawidowe pytania o dane wejciowe ..................................................................... 263
Opisy wynikw ...................................................................................................... 266
Potwierdzenie zakoczenia pracy ............................................................................ 267
Prosty system pomocy .......................................................................................... 268
Potwierdzenia ....................................................................................................... 273
Tworzenie interfejsu graficznego .................................................................................. 274
Przyciski ............................................................................................................... 275
Menu ................................................................................................................... 275
Pola wyboru .......................................................................................................... 278
Przeczniki .......................................................................................................... 279
Jednowierszowe pola tekstowe .............................................................................. 279
Wielowierszowe pola tekstowe ............................................................................... 280
Rozwijane menu ................................................................................................... 281
czenie elementw w cao ..................................................................................... 282
Proste aplikacje .................................................................................................... 282
Rozbudowane aplikacje ......................................................................................... 285
Podsumowanie .......................................................................................................... 288

Rozdzia 11. czenie elementw w cao .......................................................................................... 289


Planowanie projektu programistycznego ....................................................................... 289
Bez planowania .................................................................................................... 289
Planowanie ................................................................................................................ 291
Pomys ................................................................................................................ 291
Wymagania .......................................................................................................... 295
Faza programowania .................................................................................................. 298
Programowanie podstaw ....................................................................................... 299
Testowanie ................................................................................................................ 302
Sposoby lepszego testowania ................................................................................ 303
Dodatkowe wasnoci ................................................................................................. 306
Dostrajanie kodu ....................................................................................................... 307
Kocowe testowanie .................................................................................................. 307
Podsumowanie .......................................................................................................... 308

Spis treci

Rozdzia 12. Interakcje z plikami .......................................................................................................... 309


Zasady zapisywania danych ........................................................................................ 309
Cykl ycia pliku .......................................................................................................... 310
Praca z plikami .......................................................................................................... 312
Narzdzia ............................................................................................................. 312
Zaczynamy ................................................................................................................ 313
Tworzenie pliku w jzyku VBScript ................................................................................ 313
Podstawy ............................................................................................................. 313
Tworzenie folderw ............................................................................................... 316
Tworzenie wielu plikw .......................................................................................... 317
Zastosowanie instrukcji warunkowych ..................................................................... 318
Wykorzystanie zmiennych ...................................................................................... 319
Usprawnienia wywietlanie pyta o nazwy pliku i folderu ...................................... 319
Sprawdzenie, czy plik istnieje ................................................................................. 322
Edycja istniejcego pliku ............................................................................................. 323
Kod w akcji .......................................................................................................... 324
Doczanie zawartoci do pliku .............................................................................. 325
Otwarcie pliku do odczytu ...................................................................................... 325
Metody ReadAll, ReadLine i Read ........................................................................... 326
Usuwanie plikw i folderw ......................................................................................... 329
Usuwanie plikw ................................................................................................... 329
Usuwanie folderw ................................................................................................ 330
Podsumowanie .......................................................................................................... 330

Rozdzia 13. Rejestr Windows .............................................................................................................. 333


Rejestr Windows ........................................................................................................ 333
Czym jest rejestr Windows? ........................................................................................ 334
Definicja .............................................................................................................. 334
Regedit i Regedit32 .............................................................................................. 335
Tworzenie kopii zapasowej rejestru ......................................................................... 337
Praca z rejestrem .................................................................................................. 348
Manipulowanie rejestrem za pomoc technik programowania ........................................ 356
Edycja rejestru za pomoc jzyka VBScript .............................................................. 358
Edycja rejestru za pomoc jzyka JScript ................................................................ 362
Moliwe zastosowania rejestru Windows ...................................................................... 364
Na zakoczenie ......................................................................................................... 365
Podsumowanie .......................................................................................................... 365

Rozdzia 14. Organizacja, planowanie i zarzdzanie wersjami ......................................................... 367


Organizacja, organizacja i jeszcze raz organizacja! ........................................................ 367
Zorganizuj siebie .................................................................................................. 367
Organizacja miejsca pracy ..................................................................................... 368
Najwaniejsza sprawa zorganizuj swojego peceta ...................................................... 370
Tworzenie warsztatu .............................................................................................. 370
Foldery, foldery, foldery .............................................................................................. 371
Grupowanie wedug jzyka ..................................................................................... 372
Grupowanie wedug projektu .................................................................................. 373
Notatka z zawartoci folderu ................................................................................ 374
Zarzdzanie nazwami plikw ....................................................................................... 376
Wicej wskazwek na temat zarzdzania wersjami ........................................................ 378
Informacje o wersji w etykietce programu ................................................................ 378

Programowanie. Od podstaw
Zarzdzanie wersjami kolejne wydania ..................................................................... 383
Programy do zarzdzania wersjami .............................................................................. 384
Podsumowanie .......................................................................................................... 385

Rozdzia 15. Kompilacja kodu i alternatywy kompilacji ...................................................................... 387


Kompilacja kodu ........................................................................................................ 387
Czy wszystkie kompilatory s takie same? ................................................................... 389
Obsuga bdw .................................................................................................... 395
Inne jzyki programowania ..................................................................................... 399
Korzyci wynikajce z kompilacji .................................................................................. 402
Ochrona wasnoci intelektualnych ......................................................................... 403
Szybko ............................................................................................................. 403
Szerszy zakres funkcjonalny ................................................................................... 404
Bezpieczestwo .................................................................................................... 405
Debugowanie ....................................................................................................... 405
Alternatywy kompilacji ................................................................................................ 405
Postaraj si, aby kod by mao czytelny ................................................................... 405
Podsumowanie .......................................................................................................... 412

Rozdzia 16. Dystrybucja projektu ........................................................................................................ 413


Rodzaje dystrybucji .................................................................................................... 413
Dystrybucja fizyczna .............................................................................................. 414
Nagrywanie (wypalanie) dyskw .............................................................................. 419
Dystrybucja wirtualna ............................................................................................ 428
Podsumowanie .......................................................................................................... 433

Dodatek A Sowniczek .......................................................................................................................... 435


Dadatek B Zasoby internetowe ............................................................................................................. 441
Narzdzia programistyczne ......................................................................................... 441
Narzdzia do obsugi jzyka Java ................................................................................. 443
Witryny powicone jzykowi Java ............................................................................... 444
Narzdzia do obsugi jzyka C++ ................................................................................. 444
Witryny powicone jzykowi C++ ................................................................................ 446
Narzdzia do obsugi jzyka BASIC .............................................................................. 446
Witryny powicone jzykowi BASIC ............................................................................. 447
Jzyki programowania webowego ................................................................................. 448
Nagrywanie pyt CD .................................................................................................... 448
Narzdzia do kompresji .............................................................................................. 449
Rne narzdzia ......................................................................................................... 451

Skorowidz ............................................................................................................................................. 453

Od poj do kodu jzyk kodu


W tym rozdziale przeanalizujemy kilka elementw programowania, ktre pozwalaj na
przeksztacenie poj programistycznych na kod. Idealnym jzykiem programowania byby
jzyk naturalny, za pomoc ktrego mona by wydawa komputerowi proste rozkazy. Na
przykad:
Wydrukuj ten dokument.
Ten element wywietl w kolorze zielonym.
Dodaj do siebie dwie ostatnie liczby.

Teoretycznie byby to najatwiejszy jzyk, poniewa jest najbardziej zbliony do jzyka


naturalnego. Byby to rwnie jzyk najwyszego poziomu (im wyszy poziom, tym bliej
do jzyka naturalnego). Stworzenie takiego jzyka jest jednak nierealne ze wzgldu na niejednoznaczno jzyka mwionego i pisanego oraz zoono mechanizmu potrzebnego do
jego interpretowania (takim mechanizmem jest ludzki mzg). Na przykad wszystkie trzy
ponisze instrukcje maj identyczne znaczenie. Komputery nie znaj sposobu, aby to stwierdzi:
Wydrukuj ten dokument.
Wydrukuj biecy dokument.
Wylij ten dokument na drukark.

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.

Poniewa do komunikacji z komputerami nie moemy wykorzysta jzyka naturalnego,


musimy stosowa jzyki specjalne jzyki programowania. W tym rozdziale jeszcze nie
bdziemy si nimi zajmowa; zamiast tego zajmiemy si pewnymi elementami, ktre tworz
takie jzyki. Rozpoczniemy od prostego schematu, ktry komputery wykorzystuj do komunikacji systemu dwjkowego.

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.

Jak interpretowa system dwjkowy?


Najprostszym sposobem przeanalizowania systemu dwjkowego jest porwnanie go ze
znanym systemem dziesitnym.
Dziesitnie

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.

Od poj do kodu jzyk kodu

63

Gdyby bya to liczba dziesitna, przeczytalibymy j w nastpujcy sposb:


Tysice

Setki

Dziesitki

Jednoci

Jeli zsumujemy poszczeglne pozycje, uzyskamy warto liczby tysic dziesi.


W systemie dwjkowym znaczenie poszczeglnych pozycji jest nieco inne. Nie s to kolejne
potgi liczby 10, ale liczby 2 (tzn. warto kolejnych pozycji podwaja si).
semki

Czwrki

Dwjki

Jednoci

A zatem liczba 1010 ma nastpujc warto:


1

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

A zatem w systemie dziesitnym liczba dwjkowa 10010111 to 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

Wystarczy doda wicej bitw, a liczba bdzie wiksza!


1111111111111111

32768

32768

16384

16384

8192

8192

4096

4096

2048

2048

1024

1024

512

512

Rozdzia 4.

Od poj do kodu jzyk kodu

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

Maksymalna warto, jak mona przedstawi za pomoc jednego bitu, to oczywicie 1.

Pbajt
Grup czterech bitw nazywa si pbajtem (ang. nibble). Oto przykadowy pbajt:
1010

Maksymalna warto, jak mona przedstawi za pomoc pbajtu, to 15:


1111

Razem dziesitnie

15

66

Programowanie. Od podstaw

Bajt
Grupa omiu bitw to bajt.
10101010

Maksymalna warto, jak mona przedstawi za pomoc bajtu, to 255:


11111111

128

128

64

64

32

32

16

16

Razem dziesitnie

255

Psowo
Grup 16 bitw okrela si jako psowo.
1010101010101010

Maksymalna warto, jak mona przedstawi za pomoc psowa, to 65535:


1111111111111111

32768

32768

16384

16384

8192

8192

4096

4096

2048

2048

1024

1024

512

512

256

256

128

128

64

64

Rozdzia 4.

Od poj do kodu jzyk kodu

67

32

32

16

16

Razem dziesitnie

65535

Sowo
Grup 32 bitw nazywamy sowem. Oto przykad sowa:
10101010101010101010101010101010

Maksymalna warto, jak mona przedstawi za pomoc sowa, to 4294967295:


11111111111111111111111111111111

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

Maksymalna warto, jak mona przedstawi za pomoc podwjnego sowa, wyraona


w postaci dziesitnej, to 18446744073709551615:
1111111111111111111111111111111111111111111111111111111111111111

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.

Od poj do kodu jzyk kodu

69

Rysunek 4.1.

Wykorzystanie Kalkulatora Windows


Oto szybki przewodnik wykorzystania Kalkulatora Windows do operacji na liczbach dwjkowych. Jeli nie korzystamy z Kalkulatora Windows zbyt czsto, prawdopodobnie po uruchomieniu przyjmie on posta tak, jak pokazano na rysunku 4.1, a nie tak, jak na rysunku 4.2.
Rysunek 4.2.

Na rysunku pokazano windowsowy Kalkulator w trybie standardowym. Aby wykonywa


operacje na liczbach dwjkowych, trzeba przeczy go do trybu naukowego. W tym celu
naley klikn menu Widok, a nastpnie pozycj Naukowy, tak jak pokazano na rysunku 4.3.
Rysunek 4.3.

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.

Od poj do kodu jzyk kodu

71

Rysunek 4.6.

na Bin, co pokazano na rysunku 4.7


Rysunek 4.7.

i liczba dziesitna wywietla si w formacie dwjkowym.


Kad operacj arytmetyczn dodawanie, odejmowanie, mnoenie i dzielenie wykonuje si za pomoc Kalkulatora tak jak zwykle na liczbach dziesitnych. Aby zobaczy
wynik w formacie dwjkowym, wystarczy odpowiednio przeczy widok. Nie potrzeba uywa
owka i papieru, by robi to rcznie.
Warto zwrci uwag, e opcje Kalkulatora obejmuj take inne systemy liczbowe. Hex
oznacza format szesnastkowy, natomiast Oct semkowy. Omwienie formatu semkowego
wykracza poza zakres tej ksiki i, cile rzecz biorc, nie ma wielkiego znaczenia, natomiast
format szesnastkowy bdzie opisany w nastpnym podrozdziale tego rozdziau.

Dlaczego system dwjkowy?


Czsto mona usysze pytanie o to, dlaczego trzeba uywa systemu dwjkowego? Dlaczego
po prostu nie korzysta z systemu dziesitnego?

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 %.

Interpretacja liczb szesnastkowych


Przyjrzyjmy si systemowi szesnastkowemu i porwnajmy go z dziesitnym. W ten sposb
zapoznamy si z nim bliej.
Dziesitnie

Szesnastkowo

Rozdzia 4.

Od poj do kodu jzyk kodu

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).

Liczby szesnastkowe poprzedza si przedrostkiem 0x lub przyrostkiem h. Na przykad:


0x3F7D

Dla potrzeb objanienia zasad dotyczcych systemu szesnastkowego pominiemy przyrostki


i przedrostki, ktre tylko dodatkowo komplikuj zapis i s mylce dla pocztkujcych.
Aby przeksztaci liczb szesnastkow na posta dwjkow, wystarczy przeksztaci kad
cyfr szesnastkow na 4-bitow liczb dwjkow. Tak wic przytoczon poprzednio liczb
3F7D mona przeksztaci na liczb dwjkow w nastpujcy sposb:
3

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

Nastpnie podzieli liczb na grupy 4-bitowe (pbajty):


0010 1111

Ostatni czynnoci jest zamiana kadej grupy na liczb szesnastkow:


2 F

A zatem uzyskalimy nastpujc liczb szesnastkow:


2F

Zrobione!
Kady pbajt mona przedstawi w postaci jednej cyfry szesnastkowej.
Z podanych powyej powodw bajt zazwyczaj jest przedstawiany jako dwa pbajty.

System szesnastkowy a Kalkulator w systemie Windows


Za pomoc Kalkulatora Windows mona wykonywa operacje na liczbach szesnastkowych,
podobnie jak na dwjkowych. Format wywietlanych liczb mona zmienia za pomoc
przyciskw interfejsu Kalkulatora lub za porednictwem systemu menu. Liczby mona
przeksztaca z systemu szesnastkowego na dziesitny oraz z dziesitnego na szesnastkowy
w podobny sposb, jak w przypadku liczb dwjkowych. Pokazano to na rysunku 4.8.
Rysunek 4.8.

Rozdzia 4.

Od poj do kodu jzyk kodu

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

Od poj do kodu jzyk kodu


J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y

(lewy nawias kwadratowy)


(lewy ukonik)
(prawy nawias kwadratowy)
(daszek)
(podkrelenie)

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

(lewy nawias klamrowy)


(pionowa kreska)
(prawy nawias klamrowy)
(tylda)
(usu)

Zwrmy uwag, e do zaprezentowania powyszych znakw wykorzystano 7-bitowe liczby


dwjkowe. Jak wspomniaem wczeniej, w ten sposb mona przedstawi 127 znakw. Zbir
reprezentowanych znakw tworzy tzw. zestaw znakw.
Dlaczego 7 bitw? Pierwsze 127 kodw zarezerwowano dla najwaniejszych znakw,
aby zmniejszy ilo miejsca potrzebnego do przechowywania danych. W wielu aplikacjach wykorzystywanych w pocztkach komputerw sme zero byo pomijane.

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

Od poj do kodu jzyk kodu

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

Od poj do kodu jzyk kodu

81

Symbol -- oznacza, e dla okrelonego kodu nie zdefiniowano znaku.

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

Przeksztacenie nie powoduje utraty danych.


W nowoczesnym programowaniu programista niezbyt czsto jest zmuszony do przeksztacania znakw na posta dwjkow. W wikszoci przypadkw operacje te s wykonywane
automatycznie. Czasami jednak zdarzaj si sytuacje, w ktrych znajomo relacji pomidzy
liczbami dwjkowymi i znakami jest przydatna (midzy innymi pokazuje, w jaki sposb dane
s reprezentowane w pamici i na twardym dysku rysunek 4.9).

Rozdzia 4.

Od poj do kodu jzyk kodu

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

++

Inkrementacja (dodanie jedynki)

If x = 6
x++

Dekrementacja (odjcie jedynki)

If x = 6
x--

Modulo (reszta z dzielenia)

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.

Od poj do kodu jzyk kodu

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

5 > 8 (zwraca false)


8 > 3 (zwraca true)

<

Mniejszy ni

5 < 8 (zwraca true)


8 < 3 (zwraca false)

>=

Wikszy lub rwny

5 >= 8 (zwraca false)


8 >= 3 (zwraca true)
8>=8 (zwraca true)

<=

Mniejszy lub rwny

5 <= 8 (zwraca true)


8 <= 3 (zwraca false)
3 <= 3 (zwraca true)

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

Powysze wyraenie mona odczyta w nastpujcy


sposb: x jest mniejsze od 12 i jednoczenie y
wiksze ni 1.
x = 7
y=2
(x < 12 && y < 1)
zwraca false

86

Programowanie. Od podstaw
Operator

Opis

Przykad

||

Or

x=6
y=1
(x==6 || y==5)
zwraca true

Powysze wyraenie mona odczyta w nastpujcy


sposb: x jest rwne 6 lub y jest rwne 5.
x=6
y=l
(x==5 || y==5)
zwraca false
x=6
y=1
(x==6 || y==1)
zwraca true
!

Not

x=6
y=3
!(x==y)
zwraca true

Powysze wyraenie mona odczyta w nastpujcy


sposb: x nie jest rwne y.
x=3+3
y=4+2
!(x==y)
zwraca false

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.

Od poj do kodu jzyk kodu

87

to po wykonaniu konkatenacji:
string3 = string1 + string2

zmienna string3 zawieraa by warto Witaj,wiecie!. Jednym z rozwiza tego problemu


moe by wprowadzenie spacji podczas wykonywania 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.

You might also like