Table Of Content(cid:3)(cid:125)(cid:152)(cid:171)(cid:141)(cid:0)(cid:204)
(cid:16)(cid:117)(cid:114)(cid:106)(cid:117)(cid:100)(cid:112)(cid:114)(cid:122)(cid:100)(cid:113)(cid:108)(cid:104)(cid:0)(cid:100)(cid:115)(cid:111)(cid:108)(cid:110)(cid:100)(cid:102)(cid:109)(cid:108)(cid:0)
(cid:108)(cid:113)(cid:119)(cid:104)(cid:117)(cid:113)(cid:104)(cid:119)(cid:114)(cid:122)(cid:124)(cid:102)(cid:107)
(cid:11)(cid:122)(cid:100)(cid:111)(cid:108)(cid:131)(cid:110)(cid:100)(cid:102)(cid:109)(cid:100)(cid:0)(cid:9)(cid:14)(cid:6)(cid:221)(cid:211)(cid:204)
(cid:20)(cid:122)(cid:114)(cid:117)(cid:125)(cid:104)(cid:113)(cid:108)(cid:104)(cid:0)(cid:108)(cid:0)(cid:100)(cid:103)(cid:112)(cid:108)(cid:113)(cid:108)(cid:118)(cid:119)(cid:117)(cid:114)(cid:122)(cid:100)(cid:113)(cid:108)(cid:104)(cid:0)(cid:0)
(cid:118)(cid:119)(cid:117)(cid:114)(cid:113)(cid:100)(cid:112)(cid:108)(cid:0)(cid:108)(cid:0)(cid:100)(cid:115)(cid:111)(cid:108)(cid:110)(cid:100)(cid:102)(cid:109)(cid:100)(cid:112)(cid:108)(cid:0)(cid:108)(cid:113)(cid:119)(cid:104)(cid:117)(cid:113)(cid:104)(cid:119)(cid:114)(cid:122)(cid:124)(cid:112)(cid:108)(cid:0)
(cid:114)(cid:117)(cid:100)(cid:125)(cid:0)(cid:101)(cid:100)(cid:125)(cid:100)(cid:112)(cid:108)(cid:0)(cid:103)(cid:100)(cid:113)(cid:124)(cid:102)(cid:107)
(cid:16)(cid:114)(cid:103)(cid:117)(cid:152)(cid:102)(cid:125)(cid:113)(cid:108)(cid:110)(cid:0)(cid:103)(cid:114)(cid:0)(cid:113)(cid:100)(cid:120)(cid:110)(cid:108)(cid:0)(cid:125)(cid:100)(cid:122)(cid:114)(cid:103)(cid:120)
(cid:119)(cid:104)(cid:102)(cid:107)(cid:113)(cid:108)(cid:110)(cid:0)(cid:108)(cid:113)(cid:105)(cid:114)(cid:117)(cid:112)(cid:100)(cid:119)(cid:124)(cid:110)(cid:0)(cid:108)(cid:0)(cid:119)(cid:104)(cid:102)(cid:107)(cid:113)(cid:108)(cid:110)(cid:0)(cid:115)(cid:117)(cid:114)(cid:106)(cid:117)(cid:100)(cid:112)(cid:108)(cid:118)(cid:119)(cid:100)
(cid:10)(cid:114)(cid:111)(cid:100)(cid:113)(cid:119)(cid:100)(cid:0)(cid:16)(cid:114)(cid:110)(cid:114)(cid:117)(cid:118)(cid:110)(cid:100)
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości
lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione.
Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie
książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie
praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi
bądź towarowymi ich właścicieli.
Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce
informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności
ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie
praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania
informacji zawartych w książce.
Redaktor prowadzący: Joanna Zaręba
Projekt okładki: Jan Paluch
Fotografia na okładce została wykorzystana za zgodą Shutterstock.
Helion SA
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: [email protected]
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie?inf033_ebook
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
ISBN: 978-83-283-7054-8
Copyright © Helion 2020
(cid:120) Poleć książkę na Facebook.com (cid:120) Księgarnia internetowa
(cid:120) Kup w wersji papierowej (cid:120) Lubię to! » Nasza społeczność
(cid:120) Oceń książkę
Spis treści
Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Rozdział 1. Podstawy programowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1. Zasady programowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2. Proste algorytmy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3. Środowiska programistyczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4. Pytania i zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Rozdział 2. Aplikacje internetowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2. Wzorce projektowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3. Serwery aplikacji internetowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4. Pakiet XAMPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5. Pytania i zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Rozdział 3. Język JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2. Struktura języka JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3. Składnia języka JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4. Instrukcje sterujące . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.5. Funkcje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6. Obiekty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.7. Obiekty wbudowane języka JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.8. Obiekty DOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.9. Obsługa zdarzeń . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.10. Wykorzystanie skryptów na stronie internetowej . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.11. Walidacja formularzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.12. Pytania i zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Rozdział 4. Biblioteka jQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.1. Opis biblioteki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.2. Zdarzenia biblioteki jQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
4.3. Zastosowanie biblioteki jQuery na stronie internetowej . . . . . . . . . . . . . . . . . . . . . 136
3
Spis treści
4.4. Walidacja formularzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
4.5. Pytania i zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Rozdział 5. Inne biblioteki języka JavaScript . . . . . . . . . . . . . . . . . . . . . . . . 157
5.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
5.2. Angular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.3. React.js . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
5.4. Pytania i zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Rozdział 6. Język PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
6.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
6.2. Struktura języka PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
6.3. Składnia języka PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
6.4. Instrukcje sterujące . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
6.5. Funkcje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
6.6. Funkcje wbudowane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
6.7. Funkcje obsługi plików . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
6.8. Obsługa formularzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
6.9. Pliki cookies i sesje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
6.10. Bazy danych w PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
6.11. Biblioteka PDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
6.12. Pytania i zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
Rozdział 7. Walidacja kodu aplikacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
7.1. Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
7.2. Testy aplikacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
7.3. Debugowanie aplikacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
7.4. Pytania i zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Rozdział 8. Dokumentowanie aplikacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
8.1. Komentarze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
8.2. Tworzenie dokumentacji programu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
8.3. Automatyczne generowanie dokumentacji użytkownika . . . . . . . . . . . . . . . . . . . . . 309
8.4. Pytania i zadania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
Skorowidz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
4
Wstęp
Szybki rozwój internetu i pojawienie się nowych technologii pozwoliły na tworzenie
aplikacji internetowych, z których można korzystać za pomocą przeglądarki interneto-
wej. Aplikacje webowe stały się narzędziem do nowoczesnego zarządzania firmą, umoż-
liwiły także stałą kontrolę nad procesami biznesowymi z każdego miejsca na świecie.
Nauka zawodów technik informatyk i technik programista pozwala na pogłębienie wie-
dzy z zakresu projektowania i tworzenia aplikacji internetowych. Zdobyte kwalifikacje
dają możliwość szybkiego znalezienia bardzo atrakcyjnej pracy.
Podręcznik Kwalifikacja INF.03. Tworzenie i administrowanie stronami i aplikacjami
internetowymi oraz bazami danych. Część 3. Programowanie aplikacji internetowych.
Podręcznik do nauki zawodu technik informatyk i technik programista zawiera treści
przeznaczone dla osób kształcących się w zawodach technik informatyk i technik
programista. Podręcznik został opracowany zgodnie z nową podstawą programową,
obowiązującą od 1 września 2019 r., i obejmuje materiał kwalifikacji INF.03. Tworzenie
i administrowanie stronami i aplikacjami internetowymi oraz bazami danych w zakresie
programowania aplikacji internetowych.
W publikacji zostały omówione zagadnienia teoretyczne z zakresu programowania apli-
kacji webowych. Zamieszczono też liczne ćwiczenia, które ułatwią nabycie umiejętności
praktycznych, a proponowane rozwiązania pomogą w ugruntowaniu zdobytej wiedzy.
Podręcznik składa się z ośmiu rozdziałów. Ich budowa pozwala na realizację treści
programowych w sposób wybrany przez nauczyciela oraz umożliwia samodzielne roz-
wijanie umiejętności przez uczniów.
Rozdział 1., „Podstawy programowania”, zawiera omówienie podstawowych zagadnień
z zakresu programowania i algorytmiki. Dotyczy efektów związanych z przestrzeganiem
zasad programowania. Efektami tymi są: stosowanie zasad programowania struktural-
nego, analiza problemów programistycznych i korzystanie z algorytmów.
Rozdział 2., „Aplikacje internetowe”, zawiera omówienie podstawowych zagadnień
z zakresu użycia aplikacji internetowych. Dotyczy efektów związanych z tworzeniem
oraz wykorzystywaniem aplikacji webowych. Efektami tymi są: rozpoznawanie techno-
logii działających po stronie klienta i serwera, identyfikowanie wzorców projektowych,
korzystanie z frameworków, instalowanie serwerów WWW.
Rozdział 3., „Język JavaScript”, zawiera omówienie zagadnień z zakresu stosowania
skryptów wykonywanych po stronie klienta przy tworzeniu aplikacji internetowych.
Dotyczy efektów związanych ze stosowaniem funkcji, obiektów i metod w języku Java-
Script, z tworzeniem własnych funkcji, obiektów i metod oraz testowaniem powstającej
aplikacji i modyfikowaniem jej kodu źródłowego. Efektami tymi są: identyfikowanie
operatorów arytmetycznych, bitowych i logicznych, stosowanie obsługi zdarzeń myszy
5
Wstęp
i klawiatury, definiowanie skryptów obsługujących formularze i kontrolki HTML, wyko-
rzystywanie mechanizmów walidacji formularzy HTML, korzystanie z funkcji modelu
DOM, analizowanie poprawności tworzonych obiektów i metod.
Rozdział 4., „Biblioteka jQuery”, zawiera omówienie zagadnień z zakresu wykorzysta-
nia biblioteki jQuery do tworzenia własnych aplikacji. Dotyczy efektów związanych
ze stosowaniem funkcji, metod i obiektów biblioteki jQuery, tworzeniem własnych
funkcji, obiektów i metod z użyciem biblioteki jQuery oraz wykorzystywaniem ich
na stronie internetowej. Efektami tymi są: identyfikowanie i stosowanie instrukcji,
metod, obiektów i zdarzeń biblioteki jQuery, używanie odpowiednich instrukcji, pro-
cedur i metod biblioteki jQuery do tworzenia efektów na stronie internetowej oraz do
walidacji formularzy.
Rozdział 5., „Inne biblioteki języka JavaScript”, zawiera omówienie zagadnień z zakre-
su wykorzystania bibliotek Angular i React do tworzenia własnych aplikacji. Dotyczy
efektów związanych z przygotowaniem środowiska uruchomieniowego tych bibliotek
oraz stosowaniem ich do tworzenia strony internetowej. Efektami tymi są: dobieranie
środowisk programistycznych do określonych zadań, tworzenie programów w wybranych
środowiskach programistycznych, instalowanie i konfigurowanie środowisk programi-
stycznych, korzystanie z bibliotek i frameworków języka JavaScript.
Rozdział 6., „Język PHP”, zawiera omówienie podstawowych zagadnień z zakresu
stosowania skryptów wykonywanych po stronie serwera przy tworzeniu aplikacji
internetowych. Dotyczy efektów związanych z wykorzystaniem wbudowanych typów
danych, stosowaniem funkcji i tworzeniem własnych funkcji w języku PHP oraz testo-
waniem powstającej aplikacji i modyfikowaniem jej kodu źródłowego. Efektami tymi
są: identyfikowanie operatorów arytmetycznych, bitowych i logicznych, tworzenie włas-
nych typów danych, stosowanie instrukcji i funkcji języka PHP do określonych zadań,
wykorzystywanie operacji na plikach i katalogach, tworzenie i walidacja formularzy,
wysyłanie danych z formularza, używanie plików cookie i sesji, stosowanie bibliotek
do obsługi bazy danych, analizowanie poprawności tworzonych aplikacji.
Rozdział 7., „Walidacja kodu aplikacji”, zawiera omówienie zagadnień z zakresu testo-
wania i debugowania kodu aplikacji internetowej. Dotyczy efektów związanych z ana-
lizą testów tworzonej aplikacji oraz sposobami debugowania aplikacji. Efektami tymi
są: analiza błędów w kodzie źródłowym programu, poprawianie błędów, stosowanie
debugera w przeglądarce internetowej, rozpoznawanie rodzajów testów.
Rozdział 8., „Dokumentowanie aplikacji”, zawiera omówienie zagadnień z zakresu
dokumentowania tworzonej aplikacji. Dotyczy efektów związanych z opracowywaniem
dokumentacji programu. Efektami tymi są: identyfikowanie sposobów dokumento-
wania powstającej aplikacji, tworzenie dokumentacji programu, przygotowywanie
instrukcji użytkownika, stosowanie komentarzy w celu automatycznego generowania
dokumentacji użytkownika.
6
1
Podstawy
programowania
1.1. Zasady programowania
Język programowania służy do tworzenia programów komputerowych, których zada-
niem jest przetwarzanie danych, wykonywanie obliczeń i algorytmów. Może zawierać
konstrukcje składniowe do manipulowania strukturami danych i zarządzania prze-
pływem sterowania. Niektóre języki programowania mają specyfikację swojej składni
i semantyki, inne zdefiniowane są jedynie przez oficjalne implementacje.
Elementy języka:
q Składnia — zbiór reguł opisujących sposób definiowania struktur danych, rodzaje
dostępnych słów kluczowych i symboli oraz zasady, według których symbole mogą
być łączone w większe struktury.
q Semantyka — zbiór reguł definiujących znaczenie słów kluczowych i symboli oraz
ich funkcji w programie.
q Typy danych — dostępne typy danych, ich właściwości oraz operacje, które mogą
być wykonane na wartościach danego typu.
Przykładami używanych obecnie języków programowania są: C, C++, C#, Java, PHP,
Perl, Python, Ruby.
Niektóre z tych języków wywodzą się z języka C, na przykład C++ czy C#. Języki Java
i Python są popularne, gdyż pozwalają na bardzo szybkie tworzenie aplikacji. Wy-
dajniejsze języki, takie jak C czy C++, posłużyły do napisania programów biurowych
typu edytory tekstu czy edytory grafiki. Języki PHP i Java są popularne w aplikacjach
internetowych. Python bywa wykorzystywany w administrowaniu systemami i do
tworzenia aplikacji.
Wybór języka programowania może zależeć od przeznaczenia końcowej aplikacji,
indywidualnych upodobań lub strategii firmy tworzącej oprogramowanie. Najlepszym
7
Rozdział 1. t Podstawy programowania
wyjściem jest wybór języka programowania najbardziej dostosowanego do rozwiązy-
wanego zadania i istniejącej infrastruktury.
Kod źródłowy programu jest tworzony i zapisywany w formacie tekstowym. Rozszerzenie
pliku zależy od wybranego języka programowania. Identyfikuje ono język, w którym
program został napisany, na przykład c dla języka C, cpp dla C++, java dla Javy, cs dla
C#. Niezależnie od rozszerzenia plik zawierający kod źródłowy programu można ot-
worzyć w dowolnym edytorze tekstu.
1.1.1. Paradygmaty programowania
Paradygmat programowania to pewien wzorzec określający sposób pisania i wykonania
programu komputerowego. Języki programowania korzystają z różnych paradygmatów.
Paradygmaty programowania opisują między innymi programowanie:
q strukturalne, q funkcyjne,
q obiektowe, q uogólnione.
q proceduralne,
Różnice polegają na różnych strukturach programów oraz na różnym podejściu do
problemu.
Najbardziej rozpowszechniony jest paradygmat strukturalny (programowanie struktu-
ralne) oraz obiektowy (programowanie zorientowane obiektowo).
W programowaniu strukturalnym następuje dzielenie kodu na bloki (procedury i funk-
cje). Instrukcje są pobierane ze stosu i są wykonywane z wykorzystaniem pętli i instrukcji
warunkowych. W większości języków można programować strukturalnie.
W programowaniu obiektowym programy definiowane są za pomocą obiektów. Pro-
gram napisany zgodnie z zasadami programowania obiektowego składa się ze zbioru
obiektów, które komunikują się między sobą, aby wykonać określone zadania.
W programowaniu proceduralnym program dzielony jest na procedury, czyli fragmenty
wykonujące ściśle określone operacje. Procedury nie powinny korzystać ze zmiennych
globalnych, lecz wszystkie dane powinny być pobierane i przekazywane jako parametry
wywołania.
W programowaniu uogólnionym kod programu powstaje bez wcześniejszej znajomości
typów danych, na których będzie pracował. Do języków programowania wykorzystu-
jących uogólnienia należą: C++, Java.
Określony język może wspierać różne paradygmaty programowania. Może przykładowo
zawierać elementy programowania proceduralnego, obiektowego i uogólnionego. Wtedy
jest to język hybrydowy. Można w takim języku programować, stosując się na przykład
wyłącznie do paradygmatów programowania strukturalnego lub wykorzystując elementy
wielu paradygmatów. To programista decyduje, w jaki sposób będzie tworzył program.
8
1.1. Zasady programowania
1.1.2. Programowanie strukturalne
W programowaniu strukturalnym kod programu jest dzielony na hierarchicznie ułożone
bloki. Program tworzony jest z wcześniej zdefiniowanych struktur, takich jak sekwencja
(ciąg kolejnych instrukcji), instrukcja warunkowa ( , ), pętla ( ,
if if...else while
), instrukcja wyboru. Struktury te są stosowane do małych bloków programu
repeat
zawierających podstawowe instrukcje typu podstawienia, wejścia-wyjścia lub wywołania
procedur i funkcji. Dzięki temu kod jest przejrzysty i łatwy w utrzymaniu.
Występujące w językach strukturalnych instrukcje skoku ( ) lub przerwania (
goto con-
, ) są niezgodne z zasadami strukturalności, ale pojawiają się w językach
tinue switch
programowania, ponieważ zwiększają czytelność programu.
Prawie w każdym języku można programować strukturalnie. Jednak niektóre z nich są
do tego celu specjalnie przeznaczone. Modelowym przykładem języka strukturalnego
był język Pascal.
Reasumując: programowanie strukturalne zachęca do dzielenia programu na bloki
(moduły, podprogramy), a powstałych bloków na mniejsze jednostki w kolejności wy-
konywania. Wykorzystuje instrukcje sterowania i pętle do kontrolowania przebiegu
programu. K od staje się dzięki temu bardziej przejrzysty i wzrasta jego wydajność.
Sposób programowania w tym paradygmacie może być różny w zależności od zasto-
sowanego systemu operacyjnego i języka programowania. Jednak podstawowe zasady
programowania powinny zostać niezmienne.
Zmienna
Jednym z podstawowych elementów języków programowania jest zmienna. Jest ona
abstrakcją komórki pamięci komputera. Każdą zmienną można opisać za pomocą
nazwy, adresu, wartości, typu, okresu życia i zakresu widoczności.
Nazwa — określa nazwę, przez którą następuje odwołanie do zmiennej. Dla nazwy
powinny zostać zdefiniowane: zakres dozwolonych znaków, liczba dozwolonych zna-
ków, rozróżnialność małych i dużych liter.
Adres — określa bieżący adres zmiennej w pamięci.
Wartość — określa wartość przypisaną do zmiennej.
Typ — określa zbiór dopuszczalnych wartości, jakie zmienna może przyjmować.
Zakres widoczności — określa blok instrukcji, w których zmienna jest widoczna i można
się do niej odwołać.
Okres życia — określa czas, przez który zmienna istnieje. Przykładowo okres życia
zmiennej zadeklarowanej w funkcji zaczyna się od wejścia do funkcji i kończy się
w momencie zakończenia funkcji. Istnieją również zmienne zadeklarowane w funkcji,
które widoczne są tylko w tej funkcji, ale okres życia dotyczy całego czasu wykonania
programu.
9
Rozdział 1. t Podstawy programowania
Proste typy danych
Typ to zbiór wartości, które może przyjmować zmienna. Większość języków progra-
mowania ma zestaw typów prostych.
Typ całkowity (int, integer) odpowiada liczbom całkowitym, ale mogą wystąpić jego
warianty związane z rozmiarem liczby (byte, short, long) i jej znakiem (signed, unsigned).
Typy zmiennopozycyjne odpowiadają liczbom rzeczywistym (float, double).
Typy znakowe przechowują informacje o znakach zapisane w kodzie ASCII lub coraz
częściej w Unicode (char, character).
Typ logiczny przechowuje wartość logiczną Prawda lub Fałsz i jest zapisywany za
pomocą jednego bitu lub całego bajta.
Typy stałoprzecinkowe mają ustaloną liczbę cyfr i miejsc po przecinku.
Z typów prostych można tworzyć typy złożone, na przykład rekordy, tablice, typy wy-
liczeniowe.
Operatory
Z każdym typem związana jest grupa operacji, które mogą zostać wykonane na war-
tościach tego typu. Przykładowo:
Typ całkowity — operacje dodawania (+), odejmowania (–), mnożenia (*), dzielenia (/).
Typ logiczny — operacje koniunkcji (And), alternatywy (Or), negacji (Not).
Typ znakowy — operacja łączenia tekstów (+).
Operacje wejścia-wyjścia
Operacje wejścia-wyjścia pozwalają na pobieranie i wypisywanie danych z konsoli.
Instrukcje
Sekwencja — ciąg kolejnych poleceń (rysunek 1.1).
Instrukcja warunkowa — pozwala na rozgałęzienie przebiegu działania programu
(rysunek 1.2).
Instrukcja1
Nie Tak
Wyrażenie
Instrukcja2
Instrukcja1 Instrukcja2
Instrukcja3
Rysunek 1.1. Sekwencja Rysunek 1.2. Instrukcja warunkowa
10