Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00492 007427 10473022 na godz. na dobę w sumie
Programowanie. Od podstaw - książka
Programowanie. Od podstaw - książka
Autor: , Liczba stron: 464
Wydawca: Helion Język publikacji: polski
ISBN: 83-246-0057-4 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> inne - programowanie
Porównaj ceny (książka, ebook, audiobook).

Przystępny kurs programowania dla wszystkich

Mimo dynamicznego rozwoju informatyki wśród większości użytkowników komputerów nadal istnieje przekonanie, że programowanie jest zajęciem dla wybrańców posiadających ogromną i niemal tajemną wiedzę. Tymczasem pisanie programów to umiejętność, którą może opanować każdy. Oczywiście nauka programowania wymaga poznania wielu zagadnień teoretycznych i praktycznych, ale nie wymaga od osoby uczącej się żadnych niezwykłych umiejętności. Każdy może poznać zasady pisania programów, zarówno dla celów hobbystycznych, jak i zawodowych.

Książka 'Programowanie. Od podstaw' to podręcznik programowania przeznaczony dla osób, które dopiero rozpoczynają swoją komputerową przygodę. Zawiera uniwersalne wiadomości przydatne każdemu programiście niezależnie od tego, co i w jakim języku będzie tworzyć. Czytając ją, poznasz wady i zalety różnych języków 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 narzędzia będą Ci potrzebne podczas pracy. Zdobędziesz solidne podstawy, które pozwolą Ci na dalsze rozwijanie swoich umiejętności.

Przekonaj się, że programowanie nie jest trudne.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREŒCI SPIS TREŒCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOŒCIACH O NOWOŒCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK 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 T³umaczenie: Rados³aw Meryk ISBN: 83-246-0057-4 Tytu³ orygina³u: Beginning Programming Format: B5, stron: 464 Przyk³ady na ftp: 449 kB Mimo dynamicznego rozwoju informatyki wœród wiêkszoœci u¿ytkowników komputerów nadal istnieje przekonanie, ¿e programowanie jest zajêciem dla wybrañców posiadaj¹cych ogromn¹ i niemal tajemn¹ wiedzê. Tymczasem pisanie programów to umiejêtnoœæ, któr¹ mo¿e opanowaæ ka¿dy. Oczywiœcie nauka programowania wymaga poznania wielu zagadnieñ teoretycznych i praktycznych, ale nie wymaga od osoby ucz¹cej siê ¿adnych niezwyk³ych umiejêtnoœci. Ka¿dy mo¿e poznaæ zasady pisania programów, zarówno dla celów hobbystycznych, jak i zawodowych. Ksi¹¿ka „Programowanie. Od podstaw” to podrêcznik programowania przeznaczony dla osób, które dopiero rozpoczynaj¹ swoj¹ komputerow¹ przygodê. Zawiera uniwersalne wiadomoœci przydatne ka¿demu programiœcie niezale¿nie od tego, co i w jakim jêzyku bêdzie tworzyæ. Czytaj¹c j¹, poznasz wady i zalety ró¿nych jêzyków 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 narzêdzia bêd¹ Ci potrzebne podczas pracy. Zdobêdziesz solidne podstawy, które pozwol¹ Ci na dalsze rozwijanie swoich umiejêtnoœci. (cid:129) Sposób interpretacji kodu Ÿród³owego przez komputer (cid:129) System binarny i szesnastkowy (cid:129) Warsztat pracy programisty (cid:129) Komentarze w kodach programów (cid:129) Definiowanie zmiennych (cid:129) Instrukcje warunkowe (cid:129) Testowanie i usuwanie b³êdów (cid:129) Projektowanie interfejsów u¿ytkownika (cid:129) Operacje na plikach (cid:129) Wykorzystywanie rejestru Windows (cid:129) Zarz¹dzanie wersjami kodu (cid:129) Kompilacja Przekonaj siê, ¿e programowanie nie jest trudne Spis treści O autorach ..................................................................................................................................................9 Wprowadzenie .......................................................................................................................................... 11 Rozdział 1. Czym jest programowanie? ................................................................................................. 17 Historia programowania ................................................................................................ 17 Czym jest programowanie? ........................................................................................... 21 Dlaczego jest tak wiele języków programowania? ....................................................... 21 Różny kod, te same wyniki ....................................................................................... 23 Programy potrzebne do tworzenia programów ................................................................. 27 Środowisko programisty .......................................................................................... 28 Kompilatory ............................................................................................................ 28 Podsumowanie ............................................................................................................ 29 Rozdział 2. Po co się uczyć programowania? ........................................................................................ 31 Po co programować? .................................................................................................... 32 Programista zawodowy ............................................................................................ 32 Rozwiązywanie problemów ....................................................................................... 35 Chęć wzięcia udziału w projekcie .............................................................................. 36 Dla przyjemności .................................................................................................... 37 Dla sławy ............................................................................................................... 37 Czego się uczyć? ......................................................................................................... 37 Rodzaje programowania .......................................................................................... 38 Mity i fakty dotyczące programowania ............................................................................ 43 Mit 1. Narzędzia programistyczne są drogie .............................................................. 43 Mit 2. Aby być programistą, trzeba ukończyć studia informatyczne .............................. 43 Mit 3. Nauka programowania zajmuje wiele lat .......................................................... 44 Mit 4. Programowanie jest tylko dla osób młodych .................................................... 44 Mit 5. Do programowania potrzebny jest superkomputer z najwyższej półki .................. 44 Mit 6. Od programowania można się uzależnić .......................................................... 44 Mit 7. Języki programowania ciągle się zmieniają ...................................................... 45 Mit 8. Jeśli nauczymy się jednego języka programowania, nauka innych będzie łatwiejsza .............................................................................. 45 Podsumowanie ............................................................................................................ 45 4 Programowanie. Od podstaw Rozdział 3. Jak komputery czytają kod? ...............................................................................................47 Czytanie kodu .............................................................................................................. 47 Góra-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 — język kodu ........................................................................................... 61 System dwójkowy ......................................................................................................... 62 Jak interpretować system dwójkowy? ........................................................................ 62 Duże liczby ............................................................................................................. 64 Grupowanie bitów ................................................................................................... 65 Arytmetyka dwójkowa .............................................................................................. 68 Dlaczego system dwójkowy? .................................................................................... 71 System szesnastkowy .................................................................................................. 72 Interpretacja liczb szesnastkowych ........................................................................... 72 System szesnastkowy a Kalkulator w systemie Windows ........................................... 74 Reprezentacja znaków .................................................................................................. 75 Operatory .................................................................................................................... 83 Operatory arytmetyczne ........................................................................................... 84 Operatory przypisania .............................................................................................. 84 Operatory porównań ................................................................................................ 85 Operatory logiczne .................................................................................................. 85 Operatory znakowe ................................................................................................. 86 Podsumowanie ............................................................................................................ 87 Rozdział 5. Narzędzia do programowania .............................................................................................89 Przygotuj sobie warsztat pracy ....................................................................................... 89 Klawiatura .............................................................................................................. 89 Miejsce pracy ......................................................................................................... 91 Biurko .................................................................................................................... 91 Monitor .................................................................................................................. 91 Wybór języka ............................................................................................................... 94 Nauka programowania ............................................................................................ 95 Szkoła (uczelnia) .................................................................................................... 95 Szkolenie w pracy ................................................................................................... 96 Programista hobbysta ............................................................................................. 97 Języki .................................................................................................................... 98 W jaki sposób będziemy uczyć się programowania? ................................................... 98 Narzędzia .................................................................................................................... 99 Programy ogólnego przeznaczenia ............................................................................ 99 Narzędzia programowania ...................................................................................... 105 Podsumowanie .......................................................................................................... 113 Spis treści 5 Rozdział 6. Proste kodowanie ................................................................................................................115 Zastosowanie komentarzy .......................................................................................... 115 Komentarze w języku VBScript ............................................................................... 116 Komentarze w języku JavaScript ............................................................................. 118 Komentarze w języku C++ ..................................................................................... 120 Zmienne .................................................................................................................... 122 Zastosowanie zmiennych w praktyce ...................................................................... 125 Ćwiczenia ............................................................................................................. 140 Ciągi znaków ............................................................................................................. 141 Czym są ciągi znaków? .......................................................................................... 141 Przetwarzanie ciągów znaków ................................................................................ 143 Przetwarzanie danych wejściowych .............................................................................. 148 Przetwarzanie zmiennych — proste operacje arytmetyczne ............................................ 149 Podsumowanie .......................................................................................................... 152 Rozdział 7. Struktury kodowania ......................................................................................................... 153 Cele stosowania struktur ............................................................................................ 153 Korzyści ............................................................................................................... 154 Analiza struktury ........................................................................................................ 154 Szybkie wprowadzenie do języka C++ ..................................................................... 154 Funkcje ..................................................................................................................... 165 Więcej informacji o funkcjach ................................................................................. 167 Instrukcje warunkowe ................................................................................................. 172 Programowe decyzje .............................................................................................. 172 Warunki ............................................................................................................... 173 Więcej informacji na temat instrukcji warunkowych .................................................. 178 Pętle ......................................................................................................................... 187 Pętle for ............................................................................................................... 188 Pętle while ........................................................................................................... 190 Pętle do...while ..................................................................................................... 191 Tablice ...................................................................................................................... 194 Tablice dwuwymiarowe .......................................................................................... 195 Tablice wielowymiarowe ........................................................................................ 196 Podsumowanie .......................................................................................................... 198 Rozdział 8. Rozwiązywanie problemów ............................................................................................... 199 Podstawy rozwiązywania problemów ............................................................................ 200 Postaraj się dokładnie zrozumieć wymagania .......................................................... 200 Analiza ................................................................................................................. 204 Podział problemów na mniejsze ............................................................................. 206 Faza kodowania ......................................................................................................... 207 Usprawnianie kodu ............................................................................................... 214 Podsumowanie .......................................................................................................... 222 Rozdział 9. Usuwanie błędów ............................................................................................................... 223 Błędy są rzeczą ludzką ............................................................................................... 223 Błędy, błędy, błędy! .................................................................................................... 224 Różne rodzaje błędów ........................................................................................... 224 Błędy kompilacji ......................................................................................................... 225 Błędy wykonania ........................................................................................................ 238 Błędy logiczne ............................................................................................................ 241 6 Programowanie. Od podstaw Jak dostrzec błędy? .................................................................................................... 244 Czytaj każdy wiersz, zanim wciśniesz Enter ............................................................. 245 Sprawdzaj poprzednie instrukcje ............................................................................ 245 Dbaj o klarowny układ kodu ................................................................................... 245 Komentarze, komentarze, komentarze! ................................................................... 246 Usuwaj niejednoznaczności w kodzie ...................................................................... 246 Średniki ............................................................................................................... 247 Testuj kod ............................................................................................................ 247 Śledź wykorzystane zmienne .................................................................................. 248 Podsumowanie .......................................................................................................... 253 Rozdział 10. Interfejs ............................................................................................................................ 255 Czym jest interfejs? .................................................................................................... 255 Jak ważny jest interfejs? ............................................................................................. 257 Co to jest interfejs? .............................................................................................. 257 Czy wszystkie programy mają interfejsy? ................................................................. 258 Analiza interfejsu ....................................................................................................... 258 Interfejsy tekstowe ............................................................................................... 259 Ogólny opis działania programu ............................................................................. 261 Prawidłowe pytania o dane wejściowe ..................................................................... 263 Opisy wyników ...................................................................................................... 266 Potwierdzenie zakończenia pracy ............................................................................ 267 Prosty system pomocy .......................................................................................... 268 Potwierdzenia ....................................................................................................... 273 Tworzenie interfejsu graficznego .................................................................................. 274 Przyciski ............................................................................................................... 275 Menu ................................................................................................................... 275 Pola wyboru .......................................................................................................... 278 Przełączniki .......................................................................................................... 279 Jednowierszowe pola tekstowe .............................................................................. 279 Wielowierszowe pola tekstowe ............................................................................... 280 Rozwijane menu ................................................................................................... 281 Łączenie elementów w całość ..................................................................................... 282 Proste aplikacje .................................................................................................... 282 Rozbudowane aplikacje ......................................................................................... 285 Podsumowanie .......................................................................................................... 288 Rozdział 11. Łączenie elementów w całość .......................................................................................... 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 własności ................................................................................................. 306 Dostrajanie kodu ....................................................................................................... 307 Końcowe testowanie .................................................................................................. 307 Podsumowanie .......................................................................................................... 308 Spis treści 7 Rozdział 12. Interakcje z plikami .......................................................................................................... 309 Zasady zapisywania danych ........................................................................................ 309 Cykl życia pliku .......................................................................................................... 310 Praca z plikami .......................................................................................................... 312 Narzędzia ............................................................................................................. 312 Zaczynamy ................................................................................................................ 313 Tworzenie pliku w języku VBScript ................................................................................ 313 Podstawy ............................................................................................................. 313 Tworzenie folderów ............................................................................................... 316 Tworzenie wielu plików .......................................................................................... 317 Zastosowanie instrukcji warunkowych ..................................................................... 318 Wykorzystanie zmiennych ...................................................................................... 319 Usprawnienia — wyświetlanie pytań o nazwy pliku i folderu ...................................... 319 Sprawdzenie, czy plik istnieje ................................................................................. 322 Edycja istniejącego pliku ............................................................................................. 323 Kod w akcji .......................................................................................................... 324 Dołączanie zawartości do pliku .............................................................................. 325 Otwarcie pliku do odczytu ...................................................................................... 325 Metody ReadAll, ReadLine i Read ........................................................................... 326 Usuwanie plików i folderów ......................................................................................... 329 Usuwanie plików ................................................................................................... 329 Usuwanie folderów ................................................................................................ 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ą języka VBScript .............................................................. 358 Edycja rejestru za pomocą języka JScript ................................................................ 362 Możliwe zastosowania rejestru Windows ...................................................................... 364 Na zakończenie ......................................................................................................... 365 Podsumowanie .......................................................................................................... 365 Rozdział 14. Organizacja, planowanie i zarządzanie wersjami ......................................................... 367 Organizacja, organizacja i jeszcze raz organizacja! ........................................................ 367 Zorganizuj siebie .................................................................................................. 367 Organizacja miejsca pracy ..................................................................................... 368 Najważniejsza sprawa — zorganizuj swojego peceta ...................................................... 370 Tworzenie warsztatu .............................................................................................. 370 Foldery, foldery, foldery .............................................................................................. 371 Grupowanie według języka ..................................................................................... 372 Grupowanie według projektu .................................................................................. 373 Notatka z zawartością folderu ................................................................................ 374 Zarządzanie nazwami plików ....................................................................................... 376 Więcej wskazówek na temat zarządzania wersjami ........................................................ 378 Informacje o wersji w etykietce programu ................................................................ 378 8 Programowanie. Od podstaw Zarządzanie wersjami — kolejne wydania ..................................................................... 383 Programy do zarządzania wersjami .............................................................................. 384 Podsumowanie .......................................................................................................... 385 Rozdział 15. Kompilacja kodu i alternatywy kompilacji ...................................................................... 387 Kompilacja kodu ........................................................................................................ 387 Czy wszystkie kompilatory są takie same? ................................................................... 389 Obsługa błędów .................................................................................................... 395 Inne języki programowania ..................................................................................... 399 Korzyści wynikające z kompilacji .................................................................................. 402 Ochrona własności intelektualnych ......................................................................... 403 Szybkość ............................................................................................................. 403 Szerszy zakres funkcjonalny ................................................................................... 404 Bezpieczeństwo .................................................................................................... 405 Debugowanie ....................................................................................................... 405 Alternatywy kompilacji ................................................................................................ 405 Postaraj się, aby kod był mało czytelny ................................................................... 405 Podsumowanie .......................................................................................................... 412 Rozdział 16. Dystrybucja projektu ........................................................................................................ 413 Rodzaje dystrybucji .................................................................................................... 413 Dystrybucja fizyczna .............................................................................................. 414 Nagrywanie (wypalanie) dysków .............................................................................. 419 Dystrybucja wirtualna ............................................................................................ 428 Podsumowanie .......................................................................................................... 433 Dodatek A Słowniczek .......................................................................................................................... 435 Dadatek B Zasoby internetowe ............................................................................................................. 441 Narzędzia programistyczne ......................................................................................... 441 Narzędzia do obsługi języka Java ................................................................................. 443 Witryny poświęcone językowi Java ............................................................................... 444 Narzędzia do obsługi języka C++ ................................................................................. 444 Witryny poświęcone językowi C++ ................................................................................ 446 Narzędzia do obsługi języka BASIC .............................................................................. 446 Witryny poświęcone językowi BASIC ............................................................................. 447 Języki programowania webowego ................................................................................. 448 Nagrywanie płyt CD .................................................................................................... 448 Narzędzia do kompresji .............................................................................................. 449 Różne narzędzia ......................................................................................................... 451 Skorowidz ............................................................................................................................................. 453 4 Od pojęć do kodu — język kodu W tym rozdziale przeanalizujemy kilka elementów programowania, które pozwalają na przekształcenie pojęć programistycznych na kod. Idealnym językiem programowania byłby język naturalny, za pomocą którego można by wydawać komputerowi proste rozkazy. Na przykład: Wydrukuj ten dokument. Ten element wyświetl w kolorze zielonym. Dodaj do siebie dwie ostatnie liczby. Teoretycznie byłby to najłatwiejszy język, ponieważ jest najbardziej zbliżony do języka naturalnego. Byłby to również język najwyższego poziomu (im wyższy poziom, tym bliżej do języka naturalnego). Stworzenie takiego języka jest jednak nierealne ze względu na nie- jednoznaczność języka mówionego i pisanego oraz złożoność mechanizmu potrzebnego do jego interpretowania (takim mechanizmem jest ludzki mózg). Na przykład wszystkie trzy poniższe instrukcje mają identyczne znaczenie. Komputery nie znają sposobu, aby to stwierdzić: Wydrukuj ten dokument. Wydrukuj bieżący dokument. Wyślij ten dokument na drukarkę. Możliwości wyrażenia tej myśli jest znacznie więcej. Ludzie bez trudu to zrozumieją — komputery nie. Możliwość rozumienia skomplikowanych konstrukcji jest oczywiście celem, do którego dążą programiści pracujący nad językami programowania. Zwróćmy uwagę, że w filmach science fiction (Star Trek, Star Wars i wielu innych) ludzie komunikują się z komputerami za pomocą języka mówionego. Byłoby doskonale, gdyby to było możliwe w rzeczywistości. Ponieważ do komunikacji z komputerami nie możemy wykorzystać języka naturalnego, musimy stosować języki specjalne — języki programowania. W tym rozdziale jeszcze nie będziemy się nimi zajmować; zamiast tego zajmiemy się pewnymi elementami, które tworzą takie języki. Rozpoczniemy od prostego schematu, który komputery wykorzystują do ko- munikacji — systemu dwójkowego. 62 Programowanie. Od podstaw System dwójkowy System dwójkowy (nazywany też binarnym) jest systemem liczbowym. Różni się od syste- mu dziesiętnego, który używamy na co dzień tym, że zamiast dziesięciu 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 dwójkowym określa się jako bity. Dla wielu osób zrozumienie systemu dwójkowego stwarza problemy, ponieważ wykorzy- stywane w nim bity — 0 i 1 (cyfry, które wszyscy znamy) są wykorzystywane w niestan- dardowy sposób. Gdyby zamiast cyfr 0 i 1 wykorzystano inne symbole, być może zrozu- mienie systemu stwarzałoby mniej problemów. Jak interpretować system dwójkowy? Najprostszym sposobem przeanalizowania systemu dwójkowego jest porównanie go ze znanym systemem dziesiętnym. Dziesiętnie Dwójkowo 0 1 2 3 4 5 6 7 8 9 10 11 0 1 10 11 100 101 110 111 1000 1001 1010 1011 Zwróćmy uwagę na to, w jaki sposób wykonywana jest inkrementacja. Ponieważ występują tylko dwa bity, wydaje się, że liczby wzrastają szybciej (z powodu większej liczby pozy- cji), ale nie należy się tym sugerować. Liczby dwójkowe czyta się od prawej do lewej. Im bliżej lewej strony znajduje się bit, tym większa jego waga. Prostym sposobem nauczenia się interpretacji liczb dwójkowych jest wykorzystanie sposobu nauczania czytania liczb, jaki stosuje się w szkołach. Weźmy na przykład następującą liczbę: 1010 Rozdział 4. (cid:81) Od pojęć do kodu — język kodu 63 Gdyby była to liczba dziesiętna, przeczytalibyśmy ją w następujący sposób: Tysiące 1 Setki 0 Dziesiątki 1 Jedności 0 Jeśli zsumujemy poszczególne pozycje, uzyskamy wartość liczby — tysiąc dziesięć. W systemie dwójkowym znaczenie poszczególnych pozycji jest nieco inne. Nie są to kolejne potęgi liczby 10, ale liczby 2 (tzn. wartość kolejnych pozycji podwaja się). Ósemki 1 Czwórki 0 A zatem liczba 1010 ma następującą wartość: 1 0 1 0 × × × × Dwójki 1 8 4 2 1 Jedności 0 = = = = Razem dziesiętnie 8 0 2 0 10 Aby uzyskać dziesiętną wartość dwójkowej liczby 1010, wystarczy zsumować liczby w prawej kolumnie. Uzyskaliśmy wynik dziesięć. A zatem liczba 1010 to jedna ósemka i jedna dwójka, czyli 10. Odczytanie większej liczby dwójkowej wymaga zastosowania tabelki o większej liczbie kolumn. Weźmy następującą liczbę dwójkową: 10010111 Najpierw utworzymy tabelkę (pamiętając, że idąc od prawej do lewej, wartość kolejnej kolumny to podwojona wartość kolumny poprzedniej): Sto dwudziestki Sześćdziesiątki Trzydziestki ósemki 1 czwórki 0 dwójki 0 Szesnastki Ósemki Czwórki Dwójki Jedności 1 0 1 1 1 Aby obliczyć wartość liczby w systemie dziesiętnym, utworzymy tabelkę tak, jak poprzednio, i umieścimy poszczególne bity w lewej kolumnie: 64 Programowanie. Od podstaw 1 0 0 1 0 1 1 1 × × × × × × × × 128 64 32 16 8 4 2 1 = = = = = = = = A zatem w systemie dziesiętnym liczba dwójkowa 10010111 to 151. Razem dziesiętnie 128 0 0 16 0 4 2 1 151 Duże liczby Kiedy opowiadamy dzieciom o liczbach, pierwszą rzeczą, którą robią, jest zapisanie możliwie największej liczby. W przypadku 8 bitów największa możliwa liczba ma wartość 11111111. Oto sposób obliczenia jej wartości: 1 1 1 1 1 1 1 1 × × × × × × × × 128 64 32 16 8 4 2 1 = = = = = = = = Razem dziesiętnie Wystarczy dodać więcej bitów, a liczba będzie większa! 1111111111111111 1 1 1 1 1 1 1 × × × × × × × 32768 16384 8192 4096 2048 1024 512 = = = = = = = 128 64 32 16 8 4 2 1 255 32768 16384 8192 4096 2048 1024 512 1 1 1 1 1 1 1 1 1 Rozdział 4. (cid:81) Od pojęć do kodu — język kodu 65 256 128 64 32 16 8 4 2 1 = = = = = = = = = Razem dziesiętnie 256 128 64 32 16 8 4 2 1 65535 × × × × × × × × × Grupowanie bitów Dla wygody grupom bitów nadano nazwy, dzięki którym łatwiej je zapamiętać i posługiwać się nimi. Przyjrzyjmy się im pokrótce. Bit Bit to pojedyncza cyfra dwójkowa. Bitem jest: 0 Podobnie jak: 1 Maksymalna wartość, jaką można przedstawić za pomocą jednego bitu, to oczywiście 1. Półbajt Grupę czterech bitów nazywa się półbajtem (ang. nibble). Oto przykładowy półbajt: 1010 Maksymalna wartość, jaką można przedstawić za pomocą półbajtu, to 15: 1111 1 1 1 1 × × × × 8 4 2 1 = = = = Razem dziesiętnie 8 4 2 1 15 66 Programowanie. Od podstaw Bajt Grupa ośmiu bitów to bajt. 10101010 Maksymalna wartość, jaką można przedstawić za pomocą bajtu, to 255: 11111111 1 1 1 1 1 1 1 1 × × × × × × × × 128 64 32 16 8 4 2 1 = = = = = = = = Razem dziesiętnie Półsłowo Grupę 16 bitów określa się jako półsłowo. 1010101010101010 Maksymalna wartość, jaką można przedstawić za pomocą półsłowa, to 65535: 1111111111111111 1 1 1 1 1 1 1 1 1 1 × × × × × × × × × × 32768 16384 8192 4096 2048 1024 512 256 128 64 = = = = = = = = = = 128 64 32 16 8 4 2 1 255 32768 16384 8192 4096 2048 1024 512 256 128 64 1 1 1 1 1 1 × × × × × × Rozdział 4. (cid:81) Od pojęć do kodu — język kodu 67 32 16 8 4 2 1 = = = = = = Razem dziesiętnie 32 16 8 4 2 1 65535 Słowo Grupę 32 bitów nazywamy słowem. Oto przykład słowa: 10101010101010101010101010101010 Maksymalna wartość, jaką można przedstawić za pomocą słowa, to 4294967295: 11111111111111111111111111111111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 × × × × × × × × × × × × × × × × × × × 2147483648 1073741824 536870912 268435456 134217728 67108864 33554432 16777216 8388608 4194304 2097152 1048576 524288 262144 131072 65536 32768 16384 8192 = = = = = = = = = = = = = = = = = = = 2147483648 1073741824 536870912 268435456 134217728 67108864 33554432 16777216 8388608 4194304 2097152 1048576 524288 262144 131072 65536 32768 16384 8192 68 Programowanie. Od podstaw 1 1 1 1 1 1 1 1 1 1 1 1 1 × × × × × × × × × × × × × 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 = = = = = = = = = = = = = Razem dziesiętnie 4096 2048 1024 512 256 128 64 32 16 8 4 2 1 4294967295 Podwójne słowo Grupę 64 bitów nazywa się podwójnym słowem. Oto przykład: 1010101010101010101010101010101010101010101010101010101010101010 Maksymalna wartość, jaką można przedstawić za pomocą podwójnego słowa, wyrażona w postaci dziesiętnej, to 18446744073709551615: 1111111111111111111111111111111111111111111111111111111111111111 Arytmetyka dwójkowa Obliczenia z liczbami dwójkowymi wykonuje się w sposób podobny do operacji na licz- bach dziesiętnych. Jednak dla potrzeb zrozumienia materiału zawartego w tej książce nauka teorii arytmetyki binarnej nie jest konieczna. Zamiast tego zaprezentuję o wiele łatwiejszy sposób wykonywania obliczeń z liczbami dwójkowymi — wykorzystanie narzędzia o roz- budowanych możliwościach, które ma do tego dodatkową zaletę — jest darmowe. Owo na- rzędzie pokazano na rysunku 4.1. Tak, to windowsowy Kalkulator! Dla użytkowników systemu Windows jest to doskonała aplikacja służąca do tego celu. Użytkownicy innych systemów operacyjnych również po- winni poszukać kalkulatora z możliwością wykonywania operacji na liczbach dwójkowych. Rysunek 4.1. Rozdział 4. (cid:81) Od pojęć do kodu — język kodu 69 Wykorzystanie Kalkulatora Windows Oto szybki przewodnik wykorzystania Kalkulatora Windows do operacji na liczbach dwójko- wych. Jeśli nie korzystamy z Kalkulatora Windows zbyt często, prawdopodobnie po urucho- mieniu 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 dwójkowych, trzeba przełączyć go do trybu naukowego. W tym celu należy kliknąć menu Widok, a następnie pozycję Naukowy, tak jak pokazano na rysunku 4.3. Rysunek 4.3. 70 Programowanie. Od podstaw Wyświetli się Kalkulator w trybie naukowym, w którym dostępnych jest wiele nowych przy- cisków i funkcji. Jeśli z naszego komputera PC korzystają inni użytkownicy, którym potrzebny jest Kalku- lator do wykonywania prostych działań, pamiętajmy o ponownym przełączeniu go do trybu standardowego po wykonaniu działań! To tak na wszelki wypadek, aby ich nie przestraszyć. W trybie naukowym są dostępne elementy sterujące do zmiany formatu liczb. Liczby dziesiętne reprezentuje napis Dec, natomiast dwójkowe — Bin (rysunek 4.4). Rysunek 4.4. Format liczb można także zmienić za pomocą menu. Służy do tego menu Widok, tak jak pokazano na rysunku 4.5. Rysunek 4.5. Ustawiamy Kalkulator w tryb liczb dziesiętnych i wpisujemy liczbę. Aby obejrzeć tę liczbę w postaci dwójkowej, wystarczy przełączyć Kalkulator z trybu Dec (rysunek 4.6) Rysunek 4.6. Rozdział 4. (cid:81) Od pojęć do kodu — język kodu 71 na Bin, co pokazano na rysunku 4.7 Rysunek 4.7. …i liczba dziesiętna wyświetla się w formacie dwójkowym. Każdą operację arytmetyczną — dodawanie, odejmowanie, mnożenie i dzielenie — wyko- nuje się za pomocą Kalkulatora tak jak zwykle — na liczbach dziesiętnych. Aby zobaczyć wynik w formacie dwójkowym, wystarczy odpowiednio przełączyć widok. Nie potrzeba używać ołówka i papieru, by robić to ręcznie. Warto zwrócić uwagę, że opcje Kalkulatora obejmują także inne systemy liczbowe. Hex oznacza format szesnastkowy, natomiast Oct — ósemkowy. Omówienie formatu ósemkowego wykracza poza zakres tej książki i, ściśle rzecz biorąc, nie ma wielkiego znaczenia, natomiast format szesnastkowy będzie opisany w następnym podrozdziale tego rozdziału. Dlaczego system dwójkowy? Często można usłyszeć pytanie o to, dlaczego trzeba używać systemu dwójkowego? Dlaczego po prostu nie korzystać z systemu dziesiętnego? 72 Programowanie. Od podstaw Odpowiedź jest prosta: system dwójkowy umożliwia reprezentowanie dwóch stanów — włączenia i wyłączenia. Oznacza to, że w systemie komputerowym (lub dowolnym innym systemie elektronicznym) informacje można reprezentować za pomocą przełączników. Zmiana stanu tych przełączników z włączenia na wyłączenie i z powrotem umożliwia wykonywanie działań na liczbach dwójkowych. Jest to podstawa działania procesorów i pamięci (zarówno pamięci RAM, jak i twardych dysków). System dwójkowy można także przedstawić za pomocą impulsów elektrycznych przesyła- nych w przewodach. Jest to podstawa działania sieci i internetu. System dwójkowy może sprawiać wrażenie rozwlekłego i kłopotliwego, ale w rzeczywisto- ści tworzy on system nerwowy wszystkich urządzeń związanych z przesyłaniem, przetwa- rzaniem i zapisywaniem danych. System dwójkowy jest wszędzie — płynie w obwodach, przewodach i w eterze. System szesnastkowy System szesnastkowy (nazywany także heksadecymalnym) jest systemem liczbowym po- dobnym do dwójkowego i dziesiętnego, ale jest nieco bardziej skomplikowany. Dlaczego bardziej skomplikowany? Otóż w systemie dwójkowym są dwie cyfry, w dzie- siętnym — 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 można spotkać liczby szesnastkowe, w których zamiast liter ABCDEF stoso- wane są odpowiednio znaki ~, !, @, #, $ i . Interpretacja liczb szesnastkowych Przyjrzyjmy się systemowi szesnastkowemu i porównajmy go z dziesiętnym. W ten sposób zapoznamy się z nim bliżej. Dziesiętnie Szesnastkowo 0 1 2 3 4 5 6 0 1 2 3 4 5 6 Rozdział 4. (cid:81) Od pojęć do kodu — język kodu 73 7 8 9 10 11 12 13 14 15 16 ... 30 31 32 33 7 8 9 A B C D E F 10 ... 1E 1F 20 21 Zwróćmy uwagę na to, w jaki sposób wykonywana jest inkrementacja. Ponieważ jest 16 cyfr, wydaje się, że liczby wzrastają wolniej niż w systemie dziesiętnym. Podobnie jak w systemie dwójkowym, liczby szesnastkowe czyta się od prawej do lewej. Im bliżej lewej strony znajduje się bit, tym większa jego waga. Słowo heksadecymalny (ang. hexadecimal) jest trochę dziwne, ponieważ przedrostek hexa wywodzi się od greckiego słowa hexifor — 6, natomiast słowo decimal pochodzi z łaciny i oznacza liczbę 10. Starszy i bardziej dokładny jest pochodzący z łaciny termin szesnastkowy (ang. sexidecimal). Terminu zaprzestano używać z powodu nieprzyzwo- itych skojarzeń (nie mówiąc już o tym, że używano go także do określenia systemu sześćdziesiątkowego). Liczby szesnastkowe poprzedza się przedrostkiem 0x lub przyrostkiem h. Na przykład: 0x3F7D Dla potrzeb objaśnienia zasad dotyczących systemu szesnastkowego pominiemy przyrostki i przedrostki, które tylko dodatkowo komplikują zapis i są mylące dla początkujących. Aby przekształcić liczbę szesnastkową na postać dwójkową, wystarczy przekształcić każdą cyfrę szesnastkową na 4-bitową liczbę dwójkową. Tak więc przytoczoną poprzednio liczbę 3F7D można przekształcić na liczbę dwójkową w następujący sposób: 3 0011 F 1111 7 0111 D 1101 74 Programowanie. Od podstaw Przekształcenie dowolnego ciągu reprezentującego liczbę dwójkową na postać liczby szes- nastkowej również nie powinno sprawiać problemu. Weźmy następującą liczbę: 101111 Wystarczy dodać kilka zer z lewej strony liczby, tak aby liczba jej bitów dzieliła się na 4 bez reszty: 00101111 Następnie podzielić liczbę na grupy 4-bitowe (półbajty): 0010 1111 Ostatnią czynnością jest zamiana każdej grupy na liczbę szesnastkową: 2 F A zatem uzyskaliśmy następującą liczbę szesnastkową: 2F Zrobione! Każdy półbajt można przedstawić w postaci jednej cyfry szesnastkowej. Z podanych powyżej powodów bajt zazwyczaj jest przedstawiany jako dwa półbajty. System szesnastkowy a Kalkulator w systemie Windows Za pomocą Kalkulatora Windows można wykonywać operacje na liczbach szesnastkowych, podobnie jak na dwójkowych. Format wyświetlanych liczb można zmieniać za pomocą przycisków interfejsu Kalkulatora lub za pośrednictwem systemu menu. Liczby można przekształcać z systemu szesnastkowego na dziesiętny oraz z dziesiętnego na szesnastkowy w podobny sposób, jak w przypadku liczb dwójkowych. Pokazano to na rysunku 4.8. Rysunek 4.8. Rozdział 4. (cid:81) Od pojęć do kodu — język kodu 75 Reprezentacja znaków Do tej pory omówiliśmy kilka sposobów reprezentowania liczb, ale jak powszechnie wiadomo, użytkowanie komputerów to nie tylko przetwarzanie liczb. Są jeszcze dane tekstowe, symbole i inne znaki. W jaki sposób przejść od systemu dwójkowego (stanowiącego podstawę działania wszystkich komputerów) do znaków wpisywanych z klawiatury lub wyświetlanych na ekranie? Aby umożliwić reprezentowanie znaków w komputerach, opracowano system ASCII (wy- mawia się aski). Skrót ASCII pochodzi od American Standard Code for Information Inter- change — amerykański standard kodu wymiany informacji. Ponieważ komputery potrafią przetwarzać tylko liczby, kod ASCII opisuje przekształcenie znaków, takich jak a lub ~, albo określonych działań (jak np. wysuw arkusza papieru) na liczby. Kod ASCII to standardowy sposób przekształcenia wielkich i małych liter alfabetu angiel- skiego, a także cyfr i znaków specjalnych. Przekształcenie to wykonywane jest z wykorzy- staniem systemu dwójkowego — do reprezentacji wymienionych znaków potrzeba 7 bitów. Jak łatwo policzyć, za pomocą 7 bitów można przedstawić 128 znaków. DZIESIĘTNIE 000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 ÓSEMKOWO SZESNASTKOWO 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 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 DWÓJKOWO 00000000 00000001 00000010 00000011 00000100 00000101 00000110 00000111 00001000 00001001 00001010 00001011 00001100 00001101 00001110 00001111 00010000 00010001 00010010 00010011 00010100 00010101 00010110 00010111 00011000 00011001 00011010 WARTOŚĆ (Znak Null.) (Początek nagłówka) (Początek tekstu) (Koniec tekstu) (Koniec transmisji) (Zapytanie) (Potwierdzenie) (Sygnał dźwiękowy) (Powrót o 1 pozycję) (Tabulacja pozioma) (Wysuw wiersza) (Tabulacja pionowa) (Wysuw arkusza) (Powrót karetki) (Zmiana kodu) (Powrotna zmiana kodu) (Przekodowanie znaków sterujących) (XON)(Sterowanie urządzeniem 1) (Sterowanie urządzeniem 2) (XOFF)(Sterowanie urządzeniem 3) (Sterowanie urządzeniem 4) (Potwierdzenie negatywne) (Tryb synchroniczny) (Koniec bloku transmisji ) (Anulowanie) (Koniec nośnika) (Zastąpienie) NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB 76 Programowanie. Od podstaw 027 028 029 030 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 033 034 035 036 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 01B 01C 01D 01E 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 (Wyjście) (Separator pliku) (Separator grupy) (Żądanie wysłania separatora rekordu) (Separator jednostki) (Spacja) (wykrzyknik) (cudzysłów) (hash) (dolar) (procent) (ampersand) (apostrof) (lewy nawias - otwierający) (prawy nawias - zamykający) (gwiazdka) (plus) (przecinek) (minus lub myślnik) (kropka) (ukośnik) (dwukropek) (średnik) (mniejszy niż) (znak równości) (większy niż) (znak zapytania) (symbol AT) 00011011 00011100 00011101 00011110 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 ESC FS GS RS US SP ! # $ ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; = ? @ A B C D E F G H I Rozdział 4. (cid:81) Od pojęć do kodu — język kodu 77 (lewy nawias kwadratowy) (lewy ukośnik) (prawy nawias kwadratowy) (daszek) (podkreślenie) 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 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 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ń) Zwróćmy uwagę, że do zaprezentowania powyższych znaków wykorzystano 7-bitowe liczby dwójkowe. Jak wspomniałem wcześniej, w ten sposób można przedstawić 127 znaków. Zbiór reprezentowanych znaków tworzy tzw. zestaw znaków. Dlaczego 7 bitów? Pierwsze 127 kodów zarezerwowano dla najważniejszych znaków, aby zmniejszyć ilość miejsca potrzebnego do przechowywania danych. W wielu aplika- cjach wykorzystywanych w początkach komputerów ósme zero było pomijane. Aby można było przedstawić więcej znaków, takich jak znaki narodowe lub symbole ma- tematyczne, wprowadzono ósmy bit. Dzięki temu można przedstawić 256 znaków. Istnieje wiele różnych zestawów znaków. Poniżej zaprezentowano tzw. rozszerzony zestaw znaków. WARTOŚĆ € -- ‚ -- „ … † ‡ -- ‰ Š ‹ Ś Ť Ž Ź -- ‘ ’ “ ” • – — -- DZIESIĘTNIE 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 SZESNASTKOWO 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 Rozdział 4. (cid:81) Od pojęć do kodu — język kodu 79 ™ š › ś ť ž ź ˇ ˘ Ł ¤ Ą ¦ § ¨ © Ş « ¬ -- ® Ż ° ± ˛ ł ´ µ ¶ · ¸ ą ş » Ľ ˝ ľ ż Ŕ Á 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 99 9a 9b 9c 9d 9e 9f a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 80 Programowanie. Od podstaw Â Ă Ä Ĺ Ć Ç Č É Ę Ë Ě Í Î Ď Đ Ń Ň Ó Ô Ő Ö × Ř Ů Ú Ű Ü Ý Ţ ß ŕ á â ă ä ĺ ć ç č é ę ë 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb Rozdział 4. (cid:81) Od pojęć do kodu — język kodu 81 ě í î ď đ ń ň ó ô ő ö ÷ ř ů ú ű ü ý ţ ˙ 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 ec ed ee ef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff Symbol -- oznacza, że dla określonego kodu nie zdefiniowano znaku. Dzięki wykorzystaniu kodu ASCII można przekształcić dane tekstowe na ciągi zer i jedynek oraz w drugą stronę — z postaci ciągów zer i jedynek na postać tekstową. Przekształcenie to nie powoduje utraty danych i jest jednoznaczne. Weźmy na przykład następujący ciąg znaków: Programowanie jest fajne! Dzięki wykorzystaniu tablicy ASCII można przekształcić te znaki na bajty zapisane w for- macie dwójkowym. Oto, co uzyskamy: 01010000011100100110111101100111011100100110000101101101011011110111011101100001 0110111001101001011001010010000001101010011001010111001101110100010000001100110011000 01 01101010011011100110010100100001 Znak P r o g r a Kod dwójkowy 01010000 01110010 01101111 01100111 01110010 01100001 82 Programowanie. Od podstaw Znak m o w a n i e j e s t f a j n e ! Kod dwójkowy 01101101 01101111 01110111 01100001 01101110 01101001 01100101 00100000 01101010 01100101 01110011 01110100 00100000 01100110 01100001 01101010 01101110 01100101 00100001 Przekształcenie ciągu zer i jedynek na postać tekstową nie jest trudne. Aby to zrobić ręcznie, najpierw trzeba podzielić go na bajty. Przetwarzanie długich ciągów zer i jedynek jest uciążliwe — bardzo łatwo o popełnienie błędu. 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 ciągu 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 Przekształcenie nie powoduje utraty danych. W nowoczesnym programowaniu programista niezbyt często jest zmuszony do przekształ- cania znaków na postać dwójkową. W większości przypadków operacje te są wykonywane automatycznie. Czasami jednak zdarzają się sytuacje, w których znajomość relacji pomiędzy liczbami dwójkowymi i znakami jest przydatna (między innymi pokazuje, w jaki sposób dane są reprezentowane w pamięci i na twardym dysku — rysunek 4.9). Rysunek 4.9. Rozdział 4. (cid:81) Od pojęć do kodu — język kodu 83 Warto zapamiętać, że znaki wyświetlane na ekranie nie mają nic wspólnego z kodem dwój- kowym. Liczby dwójkowe (a także szesnastkowe i ósemkowe) są przekształcane na znaki, a dopiero potem wyświetlane przez aplikację lub system operacyjny. Przeanalizowaliśmy różne formaty liczb oraz opisaliśmy sposób wykorzystania liczb do reprezentowania znaków wyświetlanych na ekranie, przetwarzanych bądź zapisywanych w pamięci zewnętrznej. W następnym podrozdziale zajmiemy się operatorami arytmetycznymi i logicznymi. Operatory Programowanie w dużej części polega na przetwarzaniu danych zarówno tekstowych, jak i liczbowych. Operatory umożliwiają wykonywanie operacji na danych oraz porównywanie informacji. Rozpoczniemy od opisania podstawowych operatorów. Dzięki temu zapoznamy się z ich przeznaczeniem i działaniem. Należy pamiętać, że nie dla wszystkich operatorów w róż- nych językach programowania są stosowane takie same symbole (jest to jedna z najczęstszych przyczyn frustracji wśród osób, które przystępują do nauki drugiego języka programowania). Na razie zapamiętajmy więc przeznaczenie podstawowych operatorów. To z pewnością przyda się na dalszych etapach nauki. Operatory można podzielić na pięć kategorii. Każda z nich zostanie opisana w kolejnych punktach: (cid:81) arytmetyczne, (cid:81) przypisania, (cid:81) porównań, (cid:81) logiczne, (cid:81) tekstowe. 84 Programowanie. Od podstaw Operatory arytmetyczne Są to najprostsze operatory, które zna większość osób uczących się programowania, po- nieważ używamy ich na co dzień do wykonywania działań arytmetycznych. Siedem podstawowych operatorów arytmetycznych przedstawiono w poniższej tabeli: Operator + – * / ++ –– Opis Dodawanie Odejmowanie Mnożenie Dzielenie Inkrementacja (dodanie jedynki) Dekrementacja (odjęcie jedynki) Modulo (reszta z dzielenia) Przykład If x = 6 x + 4 If x = 6 x – 2 If x = 6 x * 2 If x = 6 x / 3 If x = 6 x++ If x = 6 x-- 7 2 10 4 12 6 Wynik 10 4 12 2 7 5 1 2 0 Operatory przypisania Operatory przypisania służą do przypisywania wartości. Operatory te wykorzystamy w szerszym zakresie w dalszej części tego rozdziału, kiedy zajmiemy się zastosowaniem zmiennych (x z przykładów w poprzednim punkcie jest przykładem zmiennej, do której przypisano wartość 6). Jest sześć operatorów przypisania: Operator = += –= *= /= = Przykład x = 6 x = y x += y x –= y x *= y x /= y x = y Równoważne wyrażeniu x = 6 x = y x=x+y x=x–y x=x*y x=x/y x=x y W powyższych przykładach x i y to zmienne. Zmiennym należy nadawać unikatowe na- zwy (chyba że korzysta się z nich wielokrotnie). Dla potrzeb omówienia tego materiału wystarczą nam zmienne x i y! Rozdział 4. (cid:81) Od pojęć do kodu — język kodu 85 Operatory porównań Operatory porównań wykorzystujemy w dwóch celach — jak się przekonamy w rozdziale 7., „Struktury kodowania”, są one bardzo przydatne. Jest sześć operatorów porównań. Wynikiem działania każdego z nich jest wartość true lub false w zależności od tego, czy wynik porównywania jest prawdziwy, czy fałszywy. Operator == Opis Równy != = = Różny Większy niż Mniejszy niż Większy lub równy Mniejszy lub równy Przykład 5 == 8 (zwraca false) 8 == 8 (zwraca true) kot == pies (zwraca false) kot == kot (zwraca true) 5 != 8 (zwraca true) 8 != 8 (zwraca false) 5 8 (zwraca false) 8 3 (zwraca true) 5 8 (zwraca true) 8 3 (zwraca false) 5 = 8 (zwraca false) 8 = 3 (zwraca true) 8 =8 (zwraca true) 5 = 8 (zwraca true) 8 = 3 (zwraca false) 3 = 3 (zwraca true) Operatory logiczne Operatory logiczne umożliwiają stosowanie wyrażeń logicznych w tw
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Programowanie. Od podstaw
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: