spis treści · 2019-06-05 · 2 spis treści rozdział 2. przestrzeganie prawa i zasad...

29

Upload: others

Post on 18-Jun-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku
Page 2: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

1Spis treści

Spis treści

Rozdział 1. Rozumienie i analizowanie problemów. Wprowadzenie do programowania w języku Python

Temat 1. Etapy rozwiązywania zadań za pomocą komputera

Temat 2. Sposoby przedstawiania algorytmów2.1. Lista kroków algorytmu2.2. Schemat blokowy algorytmu2.3. Program w języku programowania wysokiego poziomu

Temat 3. Klasyfi kacja tekstowych języków programowania

Temat 4. Python od pierwszych kroków4.1. Środowisko programowe Pythona4.2. Operacje wejścia-wyjścia4.3. Komentarze4.4. Operatory arytmetyczne4.5. Złożone operatory przypisania

Temat 5. Algorytmy liniowe

Temat 6. Funkcje matematyczne w języku Python

Temat 7. Algorytmy warunkowe7.1. Instrukcje warunkowe7.2. Operatory relacyjne

Temat 8. Operatory logiczne w języku Python

Temat 9. Algorytmy iteracyjne9.1. Funkcja range()9.2. Instrukcja iteracyjna for9.3. Instrukcje iteracyjne while

Temat 10. Iteracja i n-wyrazowe ciągi liczbowe10.1. Obliczanie wartości wyrazów ciągu liczbowego10.2. Wykonywanie działań na wyrazach ciągu liczbowego

Temat 11. Algorytmy rekurencyjne11.1. Funkcje w języku Python11.2. Funkcje rekurencyjne i obliczanie wartości wyrazów ciągu liczbowego

Temat 12. Wyznaczanie wyrazów ciągu Fibonacciego

Temat 13. Algorytm Euklidesa13.1. Algorytm Euklidesa13.2. Obliczanie najmniejszej wspólnej wielokrotności

Zadania do rozdziału 1.

Page 3: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

2 Spis treści

Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa

Temat 14. Przestrzeganie prawa14.1. Prawo autorskie

14.1.1. Ochrona wizerunku

14.1.2. Ustawa o prawie autorskim a szkolny referat14.2. Ochrona danych osobowych

14.2.1. Najważniejsze zasady ochrony danych osobowych

14.2.2. Jakie mamy prawa?

14.2.3. Jak chronić swoje dane?

Zadania do rozdziału 2.

Rozdział 3. Grafika komputerowa i prezentacje multimedialne

Temat 15. Grafika rastrowa15.1. Rozdzielczość a wielkość obrazu15.2. Transformacje obrazu w grafice rastrowej15.3. Formaty plików bitmapowych

Temat 16. Grafika wektorowa16.1. Formaty grafiki wektorowej16.2. Linia prosta i krzywa Béziera w grafice wektorowej16.3. Grafika bitmapowa a grafika wektorowa

Temat 17. Grafika trójwymiarowa — 3D17.1. Techniki tworzenia grafiki 3D17.2. Geometria trójwymiarowa17.3. Paint 3D17.4. Pov-Ray

17.4.1. Z czego składa się trójwymiarowa scena?

17.4.2. Podstawowe obiekty

17.4.3. Transformacje brył

17.4.4. Konstruktywna geometria brył (CSG) na przykładzie programu POV-Ray

Temat 18. Prezentacje multimedialne18.1. Jak tworzyć rozbudowane prezentacje?18.2. Jak ustalać parametry pokazu prezentacji multimedialnej?

Zadania do rozdziału 3.

Page 4: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

3Spis treści

Rozdział 4. Dokumenty tekstowe o złożonej strukturze

Temat 19. Odwołania – spisy19.1. Spis treści19.2. Spis ilustracji19.3. Spis tabel

Temat 20. Kolumny i sekcje20.1. Podział tekstu na kolumny20.2. Sekcje w dokumencie

Temat 21. Własne style i szablony21.1. Tworzenie nowego stylu na podstawie formatowania tekstu21.2. Szablony

Temat 22. Praca w trybie recenzji22.1. Śledzenie zmian22.2. Wersja końcowa po korekcie22.3. Komentarze22.4. Akceptacja lub odrzucenie zmian22.5. Porównanie wersji

Zadania do rozdziału 4.

Page 5: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

4 Spis treści

WstępTechnologia informacyjna i informatyka to dziedziny, których wykorzystanie i dostępność stale wzrastają, a tempo zachodzących w nich zmian jest nieporównywalne z tempem roz-woju innych dyscyplin. Widać to również w dziedzinie edukacji informatycznej. Obszary informatyki, które pojawiają się w edukacji informatycznej na poziomie szkoły podsta-wowej i ponadpodstawowej, to:• rozumienie, analizowanie i rozwiązywanie problemów;• programowanie, aplikacje i robotyka;• komputery, sieci i urządzenia cyfrowe;• kompetencje społeczne;• prawo i bezpieczeństwo.

W konsekwencji na wszystkich etapach realizowane są zagadnienia związane z algorytmiką i programowaniem, co wpływa na rozwój logicznego i algorytmicznego myślenia, a tym samym na umiejętność samodzielnego rozwiązywania problemów.

Informatyka realizowana w szkole ponadpodstawowej na poziomie podstawowym:• jest przedmiotem obowiązkowym prowadzonym we wszystkich klasach;• nie jest przedmiotem maturalnym;• stanowi poziom podstawowy dla przedmiotu informatyka na poziomie rozszerzonym,

a więc wchodzi w zakres wymagań maturalnych tego przedmiotu.

Informatyka Europejczyka to podręczniki do informatyki na poziomie podstawowym (trzy części) i na poziomie rozszerzonym (dwie części). Podręczniki te są w pełni zgodne z podstawą programową obowiązującą od 2019 roku, z uwzględnieniem jej specyficz-nych cech, takich jak:• Spiralność — na każdym etapie wymaga się umiejętności zdobytych wcześniej i roz-

szerza się je o umiejętności nowe; na początku każdego rozdziału w podręczniku po-dane są informacje na temat tego, co uczeń powinien pamiętać ze szkoły podstawowej, czego nauczy się z tego podręcznika oraz co zaplanowane jest jako kontynuacja na po-ziomie rozszerzonym.

• Myślenie komputacyjne — w podręczniku wykorzystywane są narzędzia informatyczne do rozwiązywania problemów wywodzących się z różnych dziedzin życia i przedstawiane są różnorodne zastosowania metod i technik algorytmicznych; zastosowano nauczanie poprzez świadome wykorzystanie metod i narzędzi informatycznych.

• Rozwiązywanie problemów — zastosowano nauczanie poprzez rozwiązywanie prob-lemów z różnych dziedzin życia.

• Stopniowe wprowadzanie trudnej problematyki — abstrakcyjne myślenie algoryt-miczne i programowanie kształtowane są stopniowo, od pierwszej klasy szkoły podsta-wowej, poprzez poziom podstawowy, a dla niektórych również rozszerzony, w szkole ponadpodstawowej, aż do egzaminu maturalnego z informatyki.

• Praca zespołowa i metoda projektów — preferuje się pracę w grupach, wspólne roz-wiązywanie problemów i uzyskiwanie pozytywnych efektów.

Page 6: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

5Wstęp

WstępTechnologia informacyjna i informatyka to dziedziny, których wykorzystanie i dostępność stale wzrastają, a tempo zachodzących w nich zmian jest nieporównywalne z tempem roz-woju innych dyscyplin. Widać to również w dziedzinie edukacji informatycznej. Obszary informatyki, które pojawiają się w edukacji informatycznej na poziomie szkoły podsta-wowej i ponadpodstawowej, to:• rozumienie, analizowanie i rozwiązywanie problemów;• programowanie, aplikacje i robotyka;• komputery, sieci i urządzenia cyfrowe;• kompetencje społeczne;• prawo i bezpieczeństwo.

W konsekwencji na wszystkich etapach realizowane są zagadnienia związane z algorytmiką i programowaniem, co wpływa na rozwój logicznego i algorytmicznego myślenia, a tym samym na umiejętność samodzielnego rozwiązywania problemów.

Informatyka realizowana w szkole ponadpodstawowej na poziomie podstawowym:• jest przedmiotem obowiązkowym prowadzonym we wszystkich klasach;• nie jest przedmiotem maturalnym;• stanowi poziom podstawowy dla przedmiotu informatyka na poziomie rozszerzonym,

a więc wchodzi w zakres wymagań maturalnych tego przedmiotu.

Informatyka Europejczyka to podręczniki do informatyki na poziomie podstawowym (trzy części) i na poziomie rozszerzonym (dwie części). Podręczniki te są w pełni zgodne z podstawą programową obowiązującą od 2019 roku, z uwzględnieniem jej specyfi cz-nych cech, takich jak:• Spiralność — na każdym etapie wymaga się umiejętności zdobytych wcześniej i roz-

szerza się je o umiejętności nowe; na początku każdego rozdziału w podręczniku po-dane są informacje na temat tego, co uczeń powinien pamiętać ze szkoły podstawowej, czego nauczy się z tego podręcznika oraz co zaplanowane jest jako kontynuacja na po-ziomie rozszerzonym.

• Myślenie komputacyjne — w podręczniku wykorzystywane są narzędzia informatyczne do rozwiązywania problemów wywodzących się z różnych dziedzin życia i przedstawiane są różnorodne zastosowania metod i technik algorytmicznych; zastosowano nauczanie poprzez świadome wykorzystanie metod i narzędzi informatycznych.

• Rozwiązywanie problemów — zastosowano nauczanie poprzez rozwiązywanie prob-lemów z różnych dziedzin życia.

• Stopniowe wprowadzanie trudnej problematyki — abstrakcyjne myślenie algoryt-miczne i programowanie kształtowane są stopniowo, od pierwszej klasy szkoły podsta-wowej, poprzez poziom podstawowy, a dla niektórych również rozszerzony, w szkole ponadpodstawowej, aż do egzaminu maturalnego z informatyki.

• Praca zespołowa i metoda projektów — preferuje się pracę w grupach, wspólne roz-wiązywanie problemów i uzyskiwanie pozytywnych efektów.

Page 7: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

6 Wstęp

• Nowoczesność — uwzględniane są najnowsze trendy w zastosowaniach informatyki i wyborze narzędzi.

Podręcznik powinien być realizowany w układzie liniowym — temat po temacie. Jednak jeden temat można wprowadzać na więcej niż jednej lekcji, co zależy od tempa pracy ucz-niów i konieczności wykonania dodatkowych ćwiczeń utrwalających. Podręcznik zawiera wiele przykładów i ćwiczeń, na podstawie których uczeń może przystąpić do rozwiązywa-nia zadań. Każdy rozdział kończy się zadaniami podsumowującymi przerobiony materiał.

W części pierwszej podręcznika uczeń:• Poznaje podstawy algorytmiki i języka tekstowego Python.• Uczy się postępowania zgodnie z regulacjami prawnymi dotyczącymi ochrony danych

osobowych oraz prawa autorskiego, poznaje konsekwencje łamania tych zasad. • Projektuje modele dwuwymiarowe i trójwymiarowe, tworzy i edytuje projekty w gra-

fice rastrowej i grafice wektorowej, wykorzystuje różne formaty obrazów, przekształca pliki graficzne, uwzględniając wielkość i jakość obrazów.

• Opracowuje dokumenty o różnorodnej tematyce, w tym informatycznej, i o rozbudo-wanej strukturze, posługując się przy tym konspektem dokumentu, dzieli tekst na sek-cje i kolumny, tworzy spisy treści, rysunków i tabel, stosuje własne style i szablony, pracuje nad dokumentem w trybie recenzji.

Danuta KormanGrażyna Szabłowicz-Zawadzka

Page 8: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

7

Rozdział 1.

ROZUMIENIE I ANALIZOWANIE PROBLEMÓW. WPROWADZENIE DO PROGRAMOWANIA W JĘZYKU PYTHON

Co już potrafi sz?

Wiesz, czym jest algorytm. Potrafi sz podawać przykłady algorytmów i analizować ich przebieg.

Określasz specyfi kację analizowanego problemu, czyli dane i wyniki dotyczące rozwią-zywanego zadania.

Potrafi sz przedstawiać algorytmy w postaci schematów blokowych i list kroków. Okre-ślasz kroki realizacji algorytmów.

Konstruujesz proste algorytmy liniowe i iteracyjne.

Wiesz, czym jest tekstowy język programowania, i znasz podstawy takiego języka, na przykład Pythona, C++, Processingu, Javy czy Pascala.

Projektujesz, tworzysz i testujesz oprogramowanie sterujące robotem na ekranie lub w rzeczywistości.

Czego się nauczysz?

Poznasz wszystkie etapy rozwiązywania problemów za pomocą komputera — jednym z nich jest specyfi kacja problemu, którą już określasz.

Nauczysz się klasyfi kować tekstowe języki programowania.

Poznasz środowisko programowania dla języka Python.

Dowiesz się, czym jest rekurencja, i będziesz ją stosować w algorytmach.

Będziesz sprawdzać poprawność algorytmów poprzez testowanie dla przykładowych danych.

Rozpoczniesz naukę języka Python — poznasz strukturę programu, operacje wejścia--wyjścia, zmienne, wyrażenia i operatory, instrukcje warunkowe i iteracyjne oraz funkcje.

Co już potrafi sz?

Wiesz, czym jest algorytm. Potrafi sz podawać przykłady algorytmów i analizować ich przebieg.

Określasz specyfi kację analizowanego problemu, czyli dane i wyniki dotyczące rozwią-zywanego zadania.

Potrafi sz przedstawiać algorytmy w postaci schematów blokowych i list kroków. Okre-ślasz kroki realizacji algorytmów.

Konstruujesz proste algorytmy liniowe i iteracyjne.

Wiesz, czym jest tekstowy język programowania, i znasz podstawy takiego języka, na przykład Pythona, C++, Processingu, Javy czy Pascala.

Projektujesz, tworzysz i testujesz oprogramowanie sterujące robotem na ekranie lub w rzeczywistości.

Czego się nauczysz?

Poznasz wszystkie etapy rozwiązywania problemów za pomocą komputera — jednym z nich jest specyfi kacja problemu, którą już określasz.

Nauczysz się klasyfi kować tekstowe języki programowania.

Poznasz środowisko programowania dla języka Python.

Dowiesz się, czym jest rekurencja, i będziesz ją stosować w algorytmach.

Będziesz sprawdzać poprawność algorytmów poprzez testowanie dla przykładowych danych.

Rozpoczniesz naukę języka Python — poznasz strukturę programu, operacje wejścia--wyjścia, zmienne, wyrażenia i operatory, instrukcje warunkowe i iteracyjne oraz funkcje.

Page 9: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

8 Rozdział 1. Rozumienie i analizowanie problemów. Wprowadzenie do programowania w języku Python

Co pojawi się na poziomie rozszerzonym?

Poznasz tekstowy język programowania dopuszczony do egzaminu maturalnego z in-formatyki rozszerzonej. Może to być również język Python, którego podstawy poznajesz na lekcjach informatyki na poziomie podstawowym.

Będziesz omawiać oraz stosować zaawansowane algorytmy iteracyjne i rekurencyjne.

Poznasz i będziesz wykorzystywać reprezentację algorytmów w postaci pseudokodu.

Zajmiesz się analizą efektywności algorytmów.

Poznasz źródła błędów pojawiających się w obliczeniach komputerowych.

Temat 1. Etapy rozwiązywania zadań za pomocą komputeraWiesz już, że:• informatyka to dziedzina, której głównym celem jest rozwiązywanie problemów z wy-

korzystaniem komputera;• algorytmika to dział informatyki obejmujący algorytmy oraz ich własności;• algorytm jest dokładnym przepisem na rozwiązanie problemu lub osiągnięcie jakiegoś

celu, realizowanym w skończonej liczbie kroków; istnieje wiele sposobów rozwiązania danego zadania, dlatego każdemu problemowi odpowiada wiele metod prowadzących do prawidłowych wyników.

Aby znaleźć rozwiązanie określonego problemu, musisz posiadać informacje początkowe, które następnie są wykorzystywane przy realizacji algorytmu prowadzącego do otrzyma-nia danych wyjściowych. Dlatego mówimy również, że algorytm to skończona liczba wy-konywanych kolejno czynności, które prowadzą do przekształcenia danych wejściowych na wyniki będące rozwiązaniem danego zadania.

Termin algorytm pochodzi od nazwiska arabskiego matematyka i astronoma Muhammada ibn Musa Al-Chorezmiego, żyjącego na przełomie VIII i IX wieku. Zapoczątkował on stoso-wanie metod obliczeniowych w matematyce, ponadto upowszechnił wykorzystanie systemu dziesiętnego i określił znaczenie zera w obliczeniach.

Ciekawostka

Przykład 1.1.

Przygotowywanie potraw odbywa się według dokładnej instrukcji. Wiemy, jakie skład-niki są nam potrzebne oraz co chcemy przygotować — to specyfi kacja naszego zadania. Wiemy również, jakie czynności krok po kroku trzeba wykonać, aby uzyskać oczekiwany efekt — to lista kroków lub opis słowny algorytmu. Z algorytmami spotykasz się każdego

Przykład 1.1.Przykład 1.1.Przykład 1.1.

Co pojawi się na poziomie rozszerzonym?

Poznasz tekstowy język programowania dopuszczony do egzaminu maturalnego z in-formatyki rozszerzonej. Może to być również język Python, którego podstawy poznajesz na lekcjach informatyki na poziomie podstawowym.

Będziesz omawiać oraz stosować zaawansowane algorytmy iteracyjne i rekurencyjne.

Poznasz i będziesz wykorzystywać reprezentację algorytmów w postaci pseudokodu.

Zajmiesz się analizą efektywności algorytmów.

Poznasz źródła błędów pojawiających się w obliczeniach komputerowych.

Page 10: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

9Temat 1. Etapy rozwiązywania zadań za pomocą komputera

dnia, defi niujesz ich specyfi kację, podając dane i wyniki, ponadto zapisujesz je w sposób czytelny i jednoznaczny, najczęściej jako listę kroków. Każda instrukcja to zapis algorytmu.

Ćwiczenie 1.1.

Podaj przykłady algorytmów związanych z życiem codziennym lub innymi — poza in-formatyką — przedmiotami szkolnymi. Określ specyfi kację tych algorytmów, czyli opisz dane i wyniki. Podaj krok po kroku czynności, które trzeba wykonać, aby otrzymać ocze-kiwany wynik.

Etapy rozwiązywania zadań

Realizacja zadań za pomocą komputera przebiega etapami. Pierwszy etap — specyfi kacja zadania — jest Ci już znany ze szkoły podstawowej. Poniżej wyszczególnione są wszystkie etapy, które prowadzą do rozwiązania problemu z wykorzystaniem komputera.

1. Określenie problemu, czyli specyfi kacji zadania:• dane (dane wejściowe),• wyniki (dane wyjściowe).

Określając dane wejściowe i wyniki, podajemy również ich typ (czyli określamy ro-dzaj danych, na przykład liczby całkowite, liczby rzeczywiste, znaki, teksty) oraz spo-sób prezentacji. Ważny jest ponadto związek między nimi, a więc wyszczególnienie warunków, jakie muszą spełniać.

2. Defi nicja modeli i pojęć oraz zbadanie, czy analizowany problem ma rozwiązanie. Na podstawie uzyskanych informacji wybieramy odpowiedni algorytm rozwiązu-jący problem. Istnieje wiele sposobów wykonania danego zadania, z czego wynika, że można skonstruować wiele algorytmów rozwiązujących określony problem. Na tym etapie analizujemy problem i dokonujemy wyboru algorytmu, który ma prowadzić do rozwiązania zgodnego ze specyfi kacją.

3. Zapisanie algorytmu w wybranej postaci:• opisu słownego,• listy kroków,• schematu blokowego,• pseudokodu,

• drzewa algorytmu,• drzewa wyrażenia,• programu• i innych.

Jeśli chcemy użyć komputera, musimy skonstruować algorytm w postaci programu w wybranym języku programowania. Pozostałe formy mogą, ale nie muszą powstać jako pomoc w procesie pisania programu.

W szkole podstawowej pojawiły się już: opis słowny algorytmu, lista kroków, schemat blokowy oraz zapis algorytmu w postaci programów w wybranych przez nauczyciela wizualnych i tekstowych językach programowania.

4. Testowanie rozwiązania poprzez wykonywanie obliczeń na komputerze, w tym testowanie programu, który jest implementacją algorytmu, dla różnych danych.

Page 11: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

10 Rozdział 1. Rozumienie i analizowanie problemów. Wprowadzenie do programowania w języku Python

Algorytm powinien działać dla dowolnych, zgodnych ze specyfi kacją, danych wej-ściowych, dając poprawne wyniki. Jest to jeden ze sposobów sprawdzania poprawności wybranego algorytmu. Algorytm jest poprawny, jeśli dla każdych danych wejściowych jest skończony, a uzyskane wyniki są poprawne, czyli zgodne ze specyfi kacją zadania.

5. Analiza własności wybranego algorytmu, w tym ocena efektywności przyjętego rozwiązania, złożoności obliczeniowej (czasowej — określającej czas działania algo-rytmu — i pamięciowej — określającej, ile pamięci potrzeba do realizacji danego al-gorytmu) oraz błędów zaokrągleń wynikających z obliczeń na liczbach przybliżonych. Wybierany jest algorytm, który nie tylko daje poprawne dane wyjściowe, ale również jest efektywniejszy od innych rozwiązań postawionego problemu. Idealnym wynikiem naszych działań jest znalezienie optymalnego algorytmu, jednak nie zawsze jest to możliwe. Algorytm optymalny rozwiązuje problem w najkrótszym czasie, czyli przez wykonanie najmniejszej liczby operacji.

Przykład 1.2.

Wiemy, czym są lata przestępne. To wtedy rok ma 366 dni, a nie 365. Ale czy zdajemy so-bie sprawę z tego, kiedy rok będzie przestępny? Spróbujmy skonstruować algorytm, który sprawdzi, czy podany rok, mający nastąpić w przyszłości, jest przestępny.

Zaczniemy od określenia specyfi kacji. Dany mamy rok, który dopiero nastąpi. Wynikiem będzie informacja, czy podany rok jest przestępny.

Kolejnym krokiem jest analiza problemu. Musimy się dowiedzieć, jakie warunki powinien spełniać taki rok. Wiemy, że ma dopiero nastąpić, mamy więc do czynienia z kalendarzem gregoriańskim, który dokładnie określa te warunki.

Konstruujemy więc algorytm. Jeśli rok jest podzielny przez 4 i jednocześnie nie jest po-dzielny przez 100 lub jeśli rok jest podzielny przez 400, mamy rok przestępny, w przeciw-nym razie rok nie jest przestępny.

Przejdźmy do testowania algorytmu. Na przykład rok 2020 jest podzielny przez 4 i niepo-dzielny przez 100 — jest więc przestępny. Kolejnym przykładem jest rok 2100 — podzielny przez 4 i podzielny przez 100, ponadto niepodzielny przez 400. Czy to jest rok przestępny? Podaj więcej przykładów.

Zadanie 1.1.

Pracownik pewnej fi rmy otrzymuje miesięczne wynagrodzenie zasadnicze w wysokości k złotych. Dodatkowo co dwa miesiące uzyskuje premię w wysokości 10% miesięcznej płacy podstawowej. Wynagrodzenie zasadnicze wzrasta co trzy miesiące o 5%. Pracownik otrzy-muje wynagrodzenie wraz z premią zawsze ostatniego dnia danego miesiąca. Jaką płacę uzyska pracownik po sześciu miesiącach i po roku? Podaj specyfi kację zadania, przeanali-zuj problem i przedstaw sposób (czyli opis słowny algorytmu) obliczenia wynagrodzenia pracownika. Przetestuj skonstruowany algorytm dla przykładowych danych.

Przykład 1.2.Przykład 1.2.Przykład 1.2.

Temat 2. Sposoby przedstawiania algorytmówIstnieje wiele sposobów przedstawiania algorytmów. Wybór odpowiedniej metody powi-nien zależeć od rozwiązywanego problemu. Do wykonywanego zadania dobierz taki sposób reprezentowania algorytmu, który najdokładniej i najczytelniej pokaże jego przebieg. Naj-ważniejsze metody przedstawiania algorytmów wykorzystywane w tym podręczniku to:• lista kroków,• schemat blokowy,• program w tekstowym języku programowania Python.

Do prezentowania algorytmów można stosować też inne metody, na przykład opis słowny, pseudokod, drzewo algorytmu, drzewo wyrażenia, inne języki programowania. Metody za-stosowane w podręczniku poznaliście już w szkole podstawowej. Poniżej przypomnimy naj-ważniejsze informacje na temat listy kroków i schematu blokowego. Język programowania Python zostanie wprowadzony w kolejnych rozdziałach od początku, ponieważ w szkole podstawowej mógł pojawić się inny tekstowy język programowania.

2.1. Lista kroków algorytmu

Jednym z najczęściej stosowanych sposobów prezentacji algorytmów jest lista kroków. Forma ta umożliwia dokładne przedstawienie kolejnych operacji realizowanych przez al-gorytm, z uwzględnieniem powtarzania działań, zakończenia algorytmu po spełnieniu określonych warunków czy zmiany kolejności wykonywanych operacji. Lista kroków jest listą numerowaną, w której każdy krok algorytmu ma przypisany numer. Kroki algorytmu zawarte w liście realizuje się kolejno, należy jednak uwzględniać zmianę kolejności spo-wodowaną wykonaniem polecenia przejścia do kroku o podanym numerze. Umożliwia to na przykład realizację powtarzania operacji w algorytmie.

W podręczniku w listach kroków zastosowano matematyczne symbole operacji i warunków.

Przykład 2.1.

Skonstruujmy algorytm w postaci listy kroków rozwiązujący równanie liniowe ax + b = 0, które rozwiązywaliście na lekcjach matematyki w szkole podstawowej. Zacznijmy od okre-ślenia specyfi kacji zadania.

Specyfi kacja:

Dane: dowolne liczby rzeczywiste: a, b.

Wynik: wartość rzeczywista pierwiastka równania liniowego: x lub komunikat infor-mujący o braku rozwiązania bądź uzyskaniu nieskończenie wielu rozwiązań.

Kolejnym etapem będzie przeprowadzenie analizy rozwiązywanego problemu. Two-rząc algorytm, należy rozpatrzyć wszystkie możliwe sytuacje. W przypadku równania li-niowego rozwiązanie zadania zależy od wartości współczynników a i b, co przedstawia się następująco:

Page 12: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

11Temat 2. Sposoby przedstawiania algorytmów

Temat 2. Sposoby przedstawiania algorytmówIstnieje wiele sposobów przedstawiania algorytmów. Wybór odpowiedniej metody powi-nien zależeć od rozwiązywanego problemu. Do wykonywanego zadania dobierz taki sposób reprezentowania algorytmu, który najdokładniej i najczytelniej pokaże jego przebieg. Naj-ważniejsze metody przedstawiania algorytmów wykorzystywane w tym podręczniku to:• lista kroków,• schemat blokowy,• program w tekstowym języku programowania Python.

Do prezentowania algorytmów można stosować też inne metody, na przykład opis słowny, pseudokod, drzewo algorytmu, drzewo wyrażenia, inne języki programowania. Metody za-stosowane w podręczniku poznaliście już w szkole podstawowej. Poniżej przypomnimy naj-ważniejsze informacje na temat listy kroków i schematu blokowego. Język programowania Python zostanie wprowadzony w kolejnych rozdziałach od początku, ponieważ w szkole podstawowej mógł pojawić się inny tekstowy język programowania.

2.1. Lista kroków algorytmu

Jednym z najczęściej stosowanych sposobów prezentacji algorytmów jest lista kroków. Forma ta umożliwia dokładne przedstawienie kolejnych operacji realizowanych przez al-gorytm, z uwzględnieniem powtarzania działań, zakończenia algorytmu po spełnieniu określonych warunków czy zmiany kolejności wykonywanych operacji. Lista kroków jest listą numerowaną, w której każdy krok algorytmu ma przypisany numer. Kroki algorytmu zawarte w liście realizuje się kolejno, należy jednak uwzględniać zmianę kolejności spo-wodowaną wykonaniem polecenia przejścia do kroku o podanym numerze. Umożliwia to na przykład realizację powtarzania operacji w algorytmie.

W podręczniku w listach kroków zastosowano matematyczne symbole operacji i warunków.

Przykład 2.1.

Skonstruujmy algorytm w postaci listy kroków rozwiązujący równanie liniowe ax + b = 0, które rozwiązywaliście na lekcjach matematyki w szkole podstawowej. Zacznijmy od okre-ślenia specyfi kacji zadania.

Specyfi kacja:

Dane: dowolne liczby rzeczywiste: a, b.

Wynik: wartość rzeczywista pierwiastka równania liniowego: x lub komunikat infor-mujący o braku rozwiązania bądź uzyskaniu nieskończenie wielu rozwiązań.

Kolejnym etapem będzie przeprowadzenie analizy rozwiązywanego problemu. Two-rząc algorytm, należy rozpatrzyć wszystkie możliwe sytuacje. W przypadku równania li-niowego rozwiązanie zadania zależy od wartości współczynników a i b, co przedstawia się następująco:

Przykład 2.1.Przykład 2.1.Przykład 2.1.

Page 13: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

12 Rozdział 1. Rozumienie i analizowanie problemów. Wprowadzenie do programowania w języku Python

a ≠ 0:

x ba

= − ,

a = 0 i b = 0: nieskończenie wiele rozwiązań (w tym przypadku rozwiązaniem jest każda liczba rzeczywista),

a = 0 i b ≠ 0: równanie sprzeczne.

Po wykonaniu analizy zadania możemy przejść do konstruowania algorytmu.

Algorytm w postaci listy kroków:

Krok 1. Jeśli a ≠ 0, oblicz x ba

= − , wypisz wynik x i zakończ algorytm.

Krok 2. (W tym przypadku a = 0). Jeśli b = 0, wypisz komunikat „nieskończenie wiele rozwiązań”, w przeciwnym razie wypisz komunikat „równanie sprzeczne”. Za-kończ algorytm.

2.2. Schemat blokowy algorytmu

Schemat blokowy to graficzny sposób prezentacji algorytmu. Składa się z elementów przed-stawionych w tabeli 2.1, zwanych blokami. Poszczególne części schematu należy łączyć, wykorzystując strzałki, które określają porządek wykonywania operacji.

Tabela 2.1. Elementy schematu blokowego

Element schematu blokowego Opis elementu

Początek i koniec algorytmu

Blok wejścia i wyjścia(wprowadzanie danych lub wypisywanie wyników)

Blok operacyjny(wykonywanie działań)

Blok decyzyjny(konstruowanie warunków i sprawdzanie ich spełnienia)

Page 14: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

13Temat 2. Sposoby przedstawiania algorytmów

Przykład 2.2.

Na rysunku 2.1 przedstawiono schemat blokowy algorytmu rozwiązującego równanie li-niowe ax + b = 0, zapisanego w przykładzie 2.1 w postaci listy kroków.

Rysunek 2.1. Schemat blokowy algorytmu rozwiązującego równanie liniowe ax + b = 0

Przeanalizuj zaproponowane rozwiązanie widoczne na rysunku 2.1. Czy warunki są zgodne z przeprowadzoną wcześniej analizą?

W schemacie blokowym można stosować matematyczne symbole operacji i warunków, operatory danego języka programowania lub opisy słowne wykonywanych operacji. Zapis jednak musi być jednoznaczny i dokładnie określać wykonywane działania. Dla ułatwie-nia w podręczniku w schematach blokowych wykorzystywane są operatory języka Python, w którym będziesz zapisywać programy realizujące omawiane algorytmy.

2.3. Program w języku programowania wysokiego poziomu

Jednym z najważniejszych sposobów przedstawiania algorytmów jest program napisany w języku programowania wysokiego poziomu. Praktyczna implementacja algorytmu, jaką jest napisanie programu, ułatwia jego testowanie dla różnych danych wejściowych. Ponadto jest to sposób zrozumiały dla komputera.

Przykład 2.2.Przykład 2.2.Przykład 2.2.

Page 15: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

14 Rozdział 1. Rozumienie i analizowanie problemów. Wprowadzenie do programowania w języku Python

Przykład 2.3.

Poniżej przedstawiono programy w różnych tekstowych językach programowania reali-zujące algorytm opisany w punktach 2.1 i 2.2, rozwiązujący równanie liniowe ax + b = 0.

Program w języku Python:def rownanie_liniowe(a, b):

if a != 0:

x = -b / a

print("x = ", x)

elif b == 0:

print("nieskończenie wiele rozwiązań")

else: print("równanie sprzeczne")

rownanie_liniowe(-2, 5)

Program w języku C++:#include <iostream>

using namespace std;

int main()

{

double a, b, x;

cout << "podaj a, b: " << endl;

cin >> a >> b;

if (a != 0) { x = –b / a; cout << "x = " << x << endl; }

else if (b == 0) cout << "nieskończenie wiele rozwiązań" << endl;

else cout << "równanie sprzeczne" << endl;

return 0;

}

Program w języku Pascal:program rownanie_liniowe;

var a, b, x: real;

begin

writeln('podaj a, b:');

readln(a, b);

if a <> 0 then begin x := –b / a; writeln('x = ', x) end

else if b = 0 then writeln('nieskończenie wiele rozwiązań')

else writeln('równanie sprzeczne')

end.

Przeanalizuj realizację algorytmu w różnych językach programowania. Który kod pro-gramu wydaje się najprostszy w zapisie? Który jest najkrótszy? Czy zauważasz instrukcje warunkowe?

Przykład 2.3.Przykład 2.3.Przykład 2.3. Temat 4. Python od pierwszych krokówPython to język programowania wysokiego poziomu. Ma on przejrzystą i zwięzłą składnię. Programy pisane są w plikach tekstowych z rozszerzeniem .py. W języku Python istotna jest wielkość liter.

W kodach programów wykorzystuje się wcięcia do wydzielania bloków kodu. Przyjęło się stosowanie czterech spacji, ale nie jest to konieczne. Jednak musimy być konsekwentni, co oznacza, że jeśli pierwsze wcięcie w funkcji miało trzy spacje, to kolejne wcięcia także muszą mieć trzy spacje. Linia bez wcięcia będzie się znajdować poza blokiem.

4.1. Środowisko programowe Pythona

IDLE to zintegrowane środowisko programistyczne tego języka dołączone do interpretera Pythona, które można znaleźć na stronie https://www.python.org/. Oprogramowanie jest darmowe, a interpretery są dostępne na wiele systemów operacyjnych. Zintegrowane środo-wisko programowe IDLE to zestaw narzędzi, które ułatwiają pisanie programów w Pytho-nie. Po uruchomieniu IDLE zgłasza się tryb interaktywny, przedstawiony na rysunku 4.1.

Rysunek 4.1. Tryb interaktywny środowiska programowania IDLE

Aby przejść do edycji nowego programu, należy z menu File wybrać polecenie New File. Otworzy się okno edytora przeznaczone do pisania programów — tryb skryptowy — co widać na rysunku 4.2.

Rysunek 4.2. Tryb skryptowy środowiska programowania IDLE

Page 16: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

15Temat 4. Python od pierwszych kroków

Temat 4. Python od pierwszych krokówPython to język programowania wysokiego poziomu. Ma on przejrzystą i zwięzłą składnię. Programy pisane są w plikach tekstowych z rozszerzeniem .py. W języku Python istotna jest wielkość liter.

W kodach programów wykorzystuje się wcięcia do wydzielania bloków kodu. Przyjęło się stosowanie czterech spacji, ale nie jest to konieczne. Jednak musimy być konsekwentni, co oznacza, że jeśli pierwsze wcięcie w funkcji miało trzy spacje, to kolejne wcięcia także muszą mieć trzy spacje. Linia bez wcięcia będzie się znajdować poza blokiem.

4.1. Środowisko programowe Pythona

IDLE to zintegrowane środowisko programistyczne tego języka dołączone do interpretera Pythona, które można znaleźć na stronie https://www.python.org/. Oprogramowanie jest darmowe, a interpretery są dostępne na wiele systemów operacyjnych. Zintegrowane środo-wisko programowe IDLE to zestaw narzędzi, które ułatwiają pisanie programów w Pytho-nie. Po uruchomieniu IDLE zgłasza się tryb interaktywny, przedstawiony na rysunku 4.1.

Rysunek 4.1. Tryb interaktywny środowiska programowania IDLE

Aby przejść do edycji nowego programu, należy z menu File wybrać polecenie New File. Otworzy się okno edytora przeznaczone do pisania programów — tryb skryptowy — co widać na rysunku 4.2.

Rysunek 4.2. Tryb skryptowy środowiska programowania IDLE

Page 17: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

16 Rozdział 1. Rozumienie i analizowanie problemów. Wprowadzenie do programowania w języku Python

Istnieją też inne środowiska, w których można pisać programy w tym języku, na przykład PyCharm, edytor Geany, edytor Mu. Można również korzystać ze środowisk udostępnia-nych online. Być może na lekcjach informatyki w szkole podstawowej korzystaliście z róż-nych środowisk programowania w języku Python.

Aby rozpocząć pisanie programu w określonym języku programowania, powinno się poznać jego podstawowe polecenia. Bez znajomości „słów” nie jesteśmy w stanie porozumiewać się w żadnym języku. Zapoznaj się z podanymi poniżej informacjami i przeanalizuj przy-kłady. Rozpocznij pisanie swoich pierwszych programów w języku Python w środowisku wybranym przez nauczyciela.

4.2. Operacje wejścia-wyjścia

W tabeli 4.1 podano podstawowe operacje wejścia-wyjścia języka Python.

Tabela 4.1. Podstawowe operacje wejścia-wyjścia w języku Python

Polecenie Opis polecenia

print("tekst", zmienna) Wypisanie komunikatu na ekranie

a = fl oat(input("podaj liczbę rzeczywistą: "))b = int(input("podaj liczbę całkowitą: "))c = input("podaj tekst: ")

Wprowadzanie wartości zmiennych z klawiatury (zmienne są tworzone przez przypisanie wartości)

Przykład 4.1.

Przykład pokazuje zastosowanie operacji wejścia-wyjścia języka Python. Po wprowadze-niu daty urodzenia, kolejno dnia, miesiąca i roku wypisywana jest podana data w odpo-wiednim formacie.

d = int(input("podaj dzień: "))

m = input("podaj miesiąc: ")

r = int(input("podaj rok: "))

print(d, m, r, "r.")

Dla przykładowych danych program powinien działać następująco:

podaj dzień: 23

podaj miesiąc: marca

podaj rok: 2008

23 marca 2008 r.

Ćwiczenie 4.1.

Napisz program w języku Python, w którym wypiszesz na ekranie komunikat: MÓJ PIERW-SZY PROGRAM W JĘZYKU PYTHON.

Przykład 4.1.Przykład 4.1.Przykład 4.1.

Page 18: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

17Temat 4. Python od pierwszych kroków

Ćwiczenie 4.2.

Napisz program w języku Python, w którym przypiszesz wartości zmiennym różnego typu poprzez wpisanie ich z klawiatury, a następnie wypiszesz wartości tych zmiennych na ekra-nie. Przykładowy wynik działania programu powinien być taki:

podaj liczbę rzeczywistą: 25.14

podaj liczbę całkowitą: 378

podaj tekst: Python

liczba rzeczywista = 25.14

liczba całkowita = 378

tekst = Python

Zwróć uwagę na zapis liczby rzeczywistej.

4.3. Komentarze

Komentarz to tekst zawarty w kodzie programu, który nie jest analizowany przez interpre-ter. Wykorzystywany jest on do komentowania programu, w którym został umieszczony. Aby tekst został potraktowany jako komentarz, oznacza się go odpowiednimi znakami. Istnieją dwa rodzaje komentarzy, co zostało przedstawione w tabeli 4.2. Stosuj komenta-rze zawsze, gdy chcesz dopisać swoją uwagę, zrobić notatkę lub wyłączyć z działania pro-gramu fragment kodu.

Tabela 4.2. Komentarze w języku Python

Polecenie Opis polecenia

# komentarz Jednowierszowy komentarz

""" komentarz """''' komentarz '''

Wielowierszowe komentarze ograniczone przez " lub '

4.4. Operatory arytmetyczne

Operatory arytmetyczne (patrz tabela 4.3) to operatory dwuargumentowe realizujące ope-racje arytmetyczne.

Tabela 4.3. Zestawienie operatorów arytmetycznych

Polecenie Opis polecenia Polecenie Opis polecenia

+ Dodawanie // Dzielenie całkowite

– Odejmowanie % Reszta z dzielenia

* Mnożenie ** Potęgowanie

/ Dzielenie

Page 19: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

18

Rozdział 3.

GRAFIKA KOMPUTEROWA I PREZENTACJE MULTIMEDIALNE

Co już potrafi sz?

Potrafi sz tworzyć ilustracje w edytorze grafi ki, rysować za pomocą wybranych narzędzi, przekształcać obrazy i uzupełniać je tekstem. Umiesz tworzyć estetyczne kompozycje gra-fi czne i kolaże. Potrafi sz wykonywać zdjęcia i poddawać je obróbce zgodnie z przeznacze-niem, a także nagrywać krótkie fi lmy i poddawać je podstawowej obróbce cyfrowej.

Potrafi sz tworzyć prezentacje multimedialne, wykorzystując tekst, grafi kę, animację, dźwięk i fi lm. Umiesz korzystać przy tym z gotowych szablonów lub tworzyć własne. Potrafi sz też stosować w prezentacji hiperłącza.

Czego się nauczysz?

Nauczysz się tworzyć i edytować projekty w grafi ce rastrowej i wektorowej oraz projekto-wać modele dwuwymiarowe i trójwymiarowe.

Będziesz korzystać z różnych formatów obrazów i przekształcać pliki grafi czne z uwzględ-nieniem wielkości i jakości obrazów.

Dowiesz się, jak tworzyć rozbudowane prezentacje, także z wykorzystaniem technik mul-timedialnych, oraz jak ustalać parametry pokazu prezentacji multimedialnej.

Co pojawi się na poziomie rozszerzonym?

Nauczysz się tworzyć i edytować dwuwymiarowe oraz trójwymiarowe wizualizacje i ani-macje.

Będziesz stosować właściwe formaty plików grafi cznych.

Przygotowując opracowania rozwiązań złożonych problemów, będziesz się posługiwać wy-branymi aplikacjami w stopniu zaawansowanym.

Temat 16. Grafi ka wektorowa

Grafi ka wektorowa to sposób opisu obrazu oparty na formułach matematycznych.

Defi nicja

W przeciwieństwie do tradycyjnej grafi ki bitmapowej (opartej na zapamiętywaniu koloru i położenia pojedynczych pikseli) grafi ka wektorowa zachowuje informacje o obiektach, liniach prostych i krzywych — włączając w to ich położenie i barwę.

Na początku tematu 15. zaprezentowano przykład, w którym opis pikseli posłużył do sym-bolicznego przedstawienia obrazu bitmapowego. Spróbujmy teraz stworzyć podobną de-fi nicję grafi ki wektorowej i opisać tę bitmapę z rysunku 15.2.

W zapisie wektorowym informacja o obrazie mogłaby wyglądać tak: tło obrazu wraz z in-formacją o rozmiarach i kolorze, kształty z podaniem współrzędnych punktów, które opi-sują dany kształt oraz kolor. Przykładowy obrazek mógłby zostać zapisany w przedstawiony poniżej sposób:

Tło 10, 9, B;

Prostokąt (1,3) (2,6) N;

Prostokąt (4,1) (10,5) C;

Linia (10,1) (2,9) Z;

Linia (10,1) (2,9) Z;

Punkt (8,7) N.

Jest to grafi ka wygenerowana komputerowo. Zmyślone polecenia — Tło, Linia, Prostokąt, Punkt — w symboliczny sposób pokazały ideę tworzenia obrazu za pomocą tzw. prymity-wów. Każdy z takich obiektów można łatwo zdefi niować, podając jedynie kilka parametrów.

16.1. Formaty grafi ki wektorowej

Inaczej niż w przypadku grafi ki rastrowej istnieje bardzo niewiele uniwersalnych (zewnętrz-nych) formatów plików przechowujących grafi kę wektorową. Praktycznie są to jedynie EPS i PDF. Inne formaty zachowywania grafi ki wektorowej to formaty wewnętrzne poszczegól-nych programów wektorowych. Coraz większą popularność zdobywa promowany przez W3C oparty na XML-u format SVG.

World Wide Web Consortium, w skrócie W3C — organizacja, która zajmuje się ustanawia-niem standardów dotyczących stron WWW. Została założona w 1994 roku przez brytyjskiego fi zyka i programistę Tima Bernersa-Lee, twórcę WWW oraz autora pierwszej przeglądarki in-ternetowej i serwera WWW.

Ciekawostka

Page 20: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

19Temat 16. Grafi ka wektorowa

Temat 16. Grafi ka wektorowa

Grafi ka wektorowa to sposób opisu obrazu oparty na formułach matematycznych.

Defi nicja

W przeciwieństwie do tradycyjnej grafi ki bitmapowej (opartej na zapamiętywaniu koloru i położenia pojedynczych pikseli) grafi ka wektorowa zachowuje informacje o obiektach, liniach prostych i krzywych — włączając w to ich położenie i barwę.

Na początku tematu 15. zaprezentowano przykład, w którym opis pikseli posłużył do sym-bolicznego przedstawienia obrazu bitmapowego. Spróbujmy teraz stworzyć podobną de-fi nicję grafi ki wektorowej i opisać tę bitmapę z rysunku 15.2.

W zapisie wektorowym informacja o obrazie mogłaby wyglądać tak: tło obrazu wraz z in-formacją o rozmiarach i kolorze, kształty z podaniem współrzędnych punktów, które opi-sują dany kształt oraz kolor. Przykładowy obrazek mógłby zostać zapisany w przedstawiony poniżej sposób:

Tło 10, 9, B;

Prostokąt (1,3) (2,6) N;

Prostokąt (4,1) (10,5) C;

Linia (10,1) (2,9) Z;

Linia (10,1) (2,9) Z;

Punkt (8,7) N.

Jest to grafi ka wygenerowana komputerowo. Zmyślone polecenia — Tło, Linia, Prostokąt, Punkt — w symboliczny sposób pokazały ideę tworzenia obrazu za pomocą tzw. prymity-wów. Każdy z takich obiektów można łatwo zdefi niować, podając jedynie kilka parametrów.

16.1. Formaty grafi ki wektorowej

Inaczej niż w przypadku grafi ki rastrowej istnieje bardzo niewiele uniwersalnych (zewnętrz-nych) formatów plików przechowujących grafi kę wektorową. Praktycznie są to jedynie EPS i PDF. Inne formaty zachowywania grafi ki wektorowej to formaty wewnętrzne poszczegól-nych programów wektorowych. Coraz większą popularność zdobywa promowany przez W3C oparty na XML-u format SVG.

World Wide Web Consortium, w skrócie W3C — organizacja, która zajmuje się ustanawia-niem standardów dotyczących stron WWW. Została założona w 1994 roku przez brytyjskiego fi zyka i programistę Tima Bernersa-Lee, twórcę WWW oraz autora pierwszej przeglądarki in-ternetowej i serwera WWW.

Ciekawostka

Page 21: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

20 Rozdział 3. Grafika komputerowa i prezentacje multimedialne

EPS

Format EPS (ang. Encapsulated PostScript) służy do zapisu zarówno grafiki wektorowej, jak i bitmapowej. Jest obsługiwany przez właściwie wszystkie programy do edycji grafiki. Przez wiele lat format EPS był jedynym uniwersalnym formatem zapisu plików z grafiką wektorową (umożliwiającym również osadzanie w nim bitmap jako obiektów). Praktycz-nie każdy program stosowany w DTP potrafi takie pliki odczytywać i zapisywać. Każdy bitmapowy plik graficzny może być do tego formatu przekształcony.

Wadą używania grafik w postaci EPS jest konieczność wydruku na drukarce postscripto-wej albo korzystania ze specjalnych programów, które przekształcają PostScript do postaci zrozumiałej przez drukarkę.

SVG

SVG (ang. Scalable Vector Graphics — skalowalna grafika wektorowa) to uniwersalny for-mat dwuwymiarowej, statycznej i animowanej grafiki wektorowej, stworzony w 1999 roku przez konsorcjum W3C z myślą o zastosowaniu go na stronach WWW.

W SVG, oprócz standardowych obiektów (takich jak prostokąty, elipsy, krzywe), można opisywać efekty specjalne, takie jak filtry, maski przezroczystości i wypełnienia gradien-towe. SVG jest domyślnym formatem zapisu obrazu w programie Inkscape.

Większość przeglądarek obsługuje już format SVG, który pozwala na zamieszczenie tej grafiki za pomocą znacznika <img> w postaci: <img src="obraz.svg" />.

Oprogramowanie

Najpopularniejsze komercyjne programy do tworzenia grafiki wektorowej to: CorelDRAW (www.corel.com), Adobe Illustrator (www.adobe.com), AutoCAD (www.autodesk.pl), Adobe Flash (www.adobe.com) oraz bezpłatne, na licencji GNU General Public License, Xara Xtreme (www.xaraxtreme.org) i zdobywający coraz większą popularność Inkscape (www.inkscape.org).

Ćwiczenie 16.1.

W tym ćwiczeniu narysujesz tylko jeden obiekt: prostokąt. Plik w formacie SVG wyświetlisz w oknie przeglądarki internetowej. Edytując go w Notatniku, zmienisz parametry rysunku.

1. Rysowanie prostokąta i zapis pliku w formacie SVG.

W programie Inkscape utwórz nowy plik. Aby obraz był zorientowany poziomo, z menu Plik wybierz Właściwości dokumentu… i zmień orientację na poziomą. Wprowadzona zmiana nie wymaga potwierdzenia, więc po prostu zamknij okno Właściwości dokumentu.

Narzędziem do rysowania prostokątów i kwadratów narysuj prostokąt. Wybierz za pomocą myszy kolor jaskrawozielony. Gdy zbliżysz wskaźnik myszy do danego koloru, w dymku pod-powiedzi pojawi się nazwa koloru oraz jego numer. W tym przypadku jest to Lime(#00FF00).

Page 22: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

21Temat 16. Grafi ka wektorowa

Prostokąt zmienił kolor wypełnienia, a wybrany jednolity kolor widoczny jest w dwóch miejscach: w prawym górnym i w lewym dolnym narożniku programu przy polu Wypeł-nienie:. Poniżej tego pola jest Kontur:. Na rysunku pokazano kontur w kolorze czarnym (000000), o grubości linii 0,265 mm. Zdarza się czasami, że narysowany prostokąt nie ma w ogóle krawędzi; wówczas w miejscu koloru widnieje napis: Nie określono lub None. Aby zmienić kolor i styl konturu, należy kliknąć ten napis lub bieżący kolor. Otworzy się okno Wypełnienie i kontur…. Ma ono kilka zakładek. Rysunek 16.1 ilustruje ustawienie jednoli-tego czarnego koloru ze 100-procentowym kryciem. Na sąsiedniej zakładce można wybrać Styl konturu. Ustal tam jedynie Szerokość: na 1 px.

Zapisz plik w formacie programu Inkscape jako fi gura.svg. Zamknij program.

Rysunek 16.1. Ustawienie wypełnienia i konturu obiektu w programie Inkscape

2. Podgląd w oknie przeglądarki.

Otwórz folder z zapisanym plikiem fi gura.svg. Zauważ, że plik został automatycznie skoja-rzony z domyślną przeglądarką internetową. Możesz poprzez dwukrotne kliknięcie pliku otworzyć okno przeglądarki i zobaczyć swój rysunek. Jeśli chcesz skorzystać z innej przeglą-darki niż domyślna, to otwórz ją, a następnie przeciągnij plik fi gura.svg do okna przeglądarki.

Page 23: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

22 Rozdział 3. Grafika komputerowa i prezentacje multimedialne

Rysunek powstaje w przeglądarce Twojego komputera. W pasku adresu widoczna jest ścieżka dostępu do pliku z rysunkiem. Spróbuj przybliżyć obrazek, a następnie oddalić (Ctrl+scroll myszy). Czy pojawiło się zjawisko dużego piksela? Czy obraz zrobił się niewyraźny, roz-myty? Nie — wszystko jest wyraźne, nie widać dużych pikseli, kolory są żywe, jaskrawe. Spróbuj pobrać rysunek prostokąta. Kliknij prawym przyciskiem myszy figurę. W rozwi-niętym menu kontekstowym nie ma polecenia Zapisz obraz jako…. Widok rysunku w ok-nie przeglądarki z rozwiniętym menu kontekstowym obrazu wektorowego pokazano na rysunku 16.2. Jak zatem pobrać taki rysunek? Polecam zrzut ekranu za pomocą przycisku PrtScr lub narzędzia Wycinanie.

Nie zamykaj okna przeglądarki. Przejdź do folderu z plikiem figura.svg.

Rysunek 16.2. Widok rysunku w formacie SVG w oknie przeglądarki z menu kontekstowym obrazu

3. Edycja pliku SVG w Notatniku.

Otwórz plik figura.svg w Notatniku. Można to zrobić, wybierając z menu kontekstowego pliku polecenie Otwórz za pomocą… i Notatnik. Nie zaznaczaj opcji Zawsze otwieraj pliki typu .svg za pomocą tej aplikacji, aby nie skojarzyć na stałe plików SVG z aplikacją Notat-nik. Sposób otwierania pliku ilustruje rysunek 16.3.

Rysunek 16.3. Otwarcie pliku SVG do edycji w Notatniku

Page 24: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

23Temat 16. Grafi ka wektorowa

Notatnik towarzyszy systemowi Windows od wielu lat. Ma prosty interfejs, jest przydatny do zapisania dokumentu bez żadnego formatowania i dodatków w postaci rysunków, hi-perłączy i tabel. Jest to czysty tekst. Są jednak takie sytuacje, w których kilka dodatkowych funkcji byłoby przydatnych. Notepad++ to rozpowszechniony na licencji GNU GPL, rozbudowany edytor tekstu, który obok Notatnika jest najczęściej używanym narzędziem tego typu. Wśród wielu powodów tego stanu rzeczy dwa są najistotniejsze: linie tekstu są ponumerowane i kod programów jest ko-lorowany. Rozpoznaje programy pisane między innymi w C, C++, C#, Pascalu, HTML-u i XML-u. Wyróżnia również kolorami znaczniki i ich parametry w pliku SVG. Notepad++ jest do pobrania na stronie: https://notepad-plus-plus.org.

Ciekawostka

Obraz w formacie SVG jest zbudowany z poleceń zapisanych w postaci tekstu. Tekst — kod obrazu SVG — przypomina dokument HTML czy CSS, czyli stronę internetową. SVG to format zapisu dwuwymiarowej grafi ki wektorowej oparty na języku XML.

Wyeksportowany obraz z programu Inkscape zapisywany jest w pliku .svg w postaci tekstu. Po otwarciu takiego pliku w programie Notatnik (a jeszcze lepiej w Notepad++) możemy zobaczyć, w jakim miejscu umieszczony jest prostokąt, jaka jest jego szerokość i wysokość, czy jest dodany kontur i jakie są jego właściwości. Wszystko zapisywane jest za pomocą znaczników. Grafi ka SVG nie jest skompilowana i można ją dowolnie zmieniać w kodzie obrazu. Zróbmy to.

W pliku fi gura.svg zamieszczony został tylko jeden prostokąt. Na końcu dokumentu, w wier-szu 56. rozpoczyna się jego opis:

<rect

style="opacity:1;fi ll:#00ff00;fi ll-opacity:1;stroke:#000000;stroke--width:0.26458333;stroke-miterlimit:4;stroke-dasharray:none;stroke-opa-city:1"

id="rect4542"

width="116.20448"

height="78.368881"

x="31.886221"

y="125.01622" />

Spróbujmy co nieco pozmieniać w tym zapisie. W zdefi niowanym stylu znajduje się in-formacja o kolorze wypełnienia (fi ll:#00ff00) prostokąta. Po znaku # podana jest liczba w zapisie szesnastkowym. Składa się ona z sześciu cyfr. Dwie pierwsze cyfry to składowa

Page 25: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

24 Rozdział 3. Grafika komputerowa i prezentacje multimedialne

czerwona (R), dwie kolejne cyfry to składowa zielona (G), a dwie ostatnie to składowa niebie-ska (B) wynikowego koloru. Ogólny zapis koloru można przedstawić jako #RRGGBB. W ko-lorze czerwonym składowa R ma wartości największe (ff), a G i B są wyzerowane. Zmień kolor wypełnienia na czerwony (fill:#ff0000). Zapisz wprowadzoną zmianę (Ctrl+S) i nie zamykaj Notatnika. Przejdź do przeglądarki z prostokątem i odśwież widok pliku (F5). Prostokąt powinien zmienić kolor wypełnienia z zielonego na czerwony. Ponownie przejdź do Notatnika.

Stroke to kontur figury. Jego obecny kolor jest czarny (#000000). Zmień kolor konturu na niebieski (#0000ff). Zapisz zmiany i zobacz, jak wygląda kontur prostokąta w przeglą-darce po odświeżeniu obrazu. Kontur jest narysowany bardzo cienką niebieską linią. Po-wróć do Notatnika. Odszukaj w zdefiniowanym stylu prostokąta informację o szerokości konturu stroke-width:0.26458333 i zwiększ ją do 2 mm, wpisując stroke-width:2. Za-pisz zmiany i odśwież okno przeglądarki. Prostokąt powinien wyglądać tak, jak pokazano na rysunku 16.4.

Rysunek 16.4. Prostokąt po edycji w Notatniku

Powróć do edycji pliku figura.svg. Zaznacz kod z opisem prostokąta, skopiuj go i wklej w no-wej linii pod zamknięciem znacznika <rect /> (ang. rectangle — prostokąt). Na rysunku będzie nadal widoczny jeden prostokąt, gdyż leżą one jeden na drugim. Przesuń skopio-wany prostokąt, zmieniając położenie lewego górnego wierzchołka. Zwiększ wartości x i y. W celu otrzymania kwadratu zmień szerokość (width) i wysokość (height), wpisując jed-nakowe wartości, na przykład 50. Zmień kolor wypełnienia kwadratu na żółty (#ffff00), a grubość konturu na 1. Zapisz wprowadzone zmiany i odśwież okno przeglądarki. Efekt wprowadzonych zmian widoczny jest na rysunku 16.5.

<rect // Początek opisu prostokąta

style="opacity:1;fill:#ff0000;fill-opacity:1;stroke:#0000ff;stroke--width:2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"

id="rect4542"

width="116.20448"

height="78.368881"

Page 26: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

25Temat 16. Grafi ka wektorowa

x="31.886221"

y="125.01622" /> // Koniec opisu prostokąta

<rect // Początek opisu prostokąta skopiowanego

style="opacity:1;fi ll:#ffff00;fi ll-opacity:1;stroke:#0000ff;stroke--width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"

id="rect4542"

width="50" // Szerokość prostokąta

height="50" // Wysokość prostokąta

x="35" // Współrzędna lewego górnego wierzchołka prostokąta odpowiedzialna // za przesunięcie poziome w osi x

y="130" /> // Współrzędna lewego górnego wierzchołka prostokąta odpowiedzialna // za przesunięcie pionowe w osi y

Zmieniając wartości położenia lewego górnego wierzchołka prostokąta, musisz wiedzieć, że punktem odniesienia jest lewy górny narożnik rysunku. Jemu przypisano wartości x=0 i y=0. Gdy wartości x i y rosną, rysunek oddala się od punktu początkowego i przesuwa w prawo (x) oraz w dół (y).

Rysunek 16.5. Widok pliku fi gura.svg po edycji w Notatniku

Skąd wziąć numery różnych kolorów? Z kombinacji RGB można utworzyć ponad 16 mln odcieni (224). Pomocny tu będzie znany już edytor GIMP. Otwórz go i kliknij aktywny ko-lor pierwszoplanowy w celu otwarcia okna Zmiana aktywnego koloru. Przesuwając suwak, wybierz kolor; następnie, klikając obszar pola, wybierz odpowiedni odcień. W dolnej czę-ści okna widzimy podgląd nowego i dotychczasowego koloru. Wartości liczbowe po pra-wej stronie okna zmieniają się. Wybierz kolor i skopiuj z pola Zapis języka HTML: numer koloru. Możesz go teraz wkleić jako kolor wypełnienia lub konturu fi gury w pliku fi gura.svg. Sposób wyboru koloru ilustruje rysunek 16.6.

Page 27: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

26 Rozdział 3. Grafika komputerowa i prezentacje multimedialne

Rysunek 16.6. Odczyt koloru w zapisie języka HTML w programie GIMP z okna Zmiana aktywnego koloru

Numer koloru można skopiować z przeglądarki internetowej. Wpisz w polu wyszukiwa-nia wyszukiwarki Google: ffffff color i zatwierdź przyciskiem Enter. Oprócz milionów wy-szukanych stron zgłasza się aplikacja do wybierania kolorów i generowania ich numerów, którą pokazano na rysunku 16.7. Suwakiem przesuwasz na kolor i w polu powyżej klikasz odpowiedni odcień. Po każdym kliknięciu gererowany jest numer, który można skopiować i wykorzystać nie tylko na stronach WWW, ale także w grafice SVG.

Rysunek 16.7. Aplikacja internetowa generująca numery kolorów

Page 28: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

27Temat 16. Grafi ka wektorowa

16.2. Linia prosta i krzywa Béziera w grafi ce wektorowej

Grafi ka wektorowa wykorzystywana jest głównie w rysunku technicznym, komputerowym wspomaganiu projektowania CAD (ang. Computer Aided Design), w systemach informacji geodezyjnej GIS (ang. Geographical Information System) oraz na stronach WWW.

Za pomocą wyraźnych linii, tworzonych w edytorach grafi ki wektorowej, przygotowywane są schematy, ikony, logo, wykresy, szkice, komiksy, znaki drogowe i informacyjne, symbole, mapy, projekty urządzeń, budowli, odzieży oraz proste grafi ki, na przykład kolorowanki. Lista ta nie uwzględnia zapewne wszystkich zastosowań.

U podstaw grafi ki wektorowej leży linia. Może ona być prostym odcinkiem lub zdefi nio-waną matematycznie linią krzywą, zwaną krzywą Béziera. Przykłady linii pokazano na ry-sunku 3.30. Zostały tam również opisane podstawowe elementy, zwane węzłami. Mogą one być ostre, gładkie lub symetryczne.

Rysunek 16.8. Linie w grafi ce wektorowej

Pierre Étienne Bézier (1910 – 1999) — francuski inżynier, matematyk, twórca technik krzy-wych Béziera i powierzchni Béziera, będących współcześnie podstawą grafi ki komputerowej i projektowania wspomaganego komputerowo.

Ciekawostka

Ćwiczenie 16.2.

Narysowanie profi lu człowieka to z pewnością niełatwe zadanie. Jednak w grafi ce wekto-rowej nie powinno ono sprawić większych trudności. Otwórz program Inkscape do two-rzenia grafi ki wektorowej. Posługując się Piórem, czyli narzędziem do rysowania krzywych Béziera i linii prostych, narysuj łamaną. Klikaj kolejne punkty tworzące zarys głowy i prze-noś wskaźnik myszy bez przytrzymywania wciśniętego przycisku myszy. Aby zamknąć kształt głowy, kliknij punkt początkowy łamanej. Po zamknięciu obszaru wypełnij go do-wolnym kolorem. Nie używaj ciemnych barw, gdyż nie będzie widoczna krawędź rysunku.

Page 29: Spis treści · 2019-06-05 · 2 Spis treści Rozdział 2. Przestrzeganie prawa i zasad bezpieczeństwa Temat 14. Przestrzeganie prawa 14.1. Prawo autorskie 14.1.1. Ochrona wizerunku

28 Rozdział 3. Grafika komputerowa i prezentacje multimedialne

Następnie narzędziem Edycja węzłów (F2), służącym do edycji węzłów i uchwytów steru-jących ścieżek, odcinki proste przekształć w krzywe. Można to zrobić, chwytając myszką za linie proste i odciągając je na boki. Innym sposobem przekształcenia prostych w krzywe jest wskazanie narzędziem Edycja węzłów (F2) prostej i wybranie polecenia znajdującego się nad obrazem: Zmień zaznaczone odcinki w krzywe . Zauważ, że obok znajduje się narzę-dzie wykonujące czynność odwrotną, a mianowicie Zmień zaznaczone odcinki na proste .

Aby głowa przybrała owalny kształt, trzeba zmienić niektóre punkty zaczepienia (węzły) z ostrych na gładkie lub symetryczne. Jeżeli początkowo zamieszczonych zostało zbyt mało punktów zaczepienia, dodaj nowe, dwukrotnie klikając pomiędzy istniejącymi węzłami. Chwytając za uchwyty stycznych lub bezpośrednio za krzywe, wygnij odpowiednio linię, aby narysować kształt profilu. Wyginaj poszczególne odcinki prostych aż do otrzymania kształtu przypominającego głowę człowieka, pokazanego na rysunku 16.9. Jeżeli węzły są w nieodpowiednich miejscach, to przesuń je, przenosząc każdy węzeł osobno narzędziem do edycji węzłów.

Rysunek 16.9. Linie proste i krzywe w grafice wektorowej — przekształcenie prostych w krzywe Béziera

Rysunek zapisz w formacie programu Inkscape pod nazwą głowa.svg. Następnie narzędziem Wskaźnik wskaż obrazek i z menu Plik wybierz Wyeksportuj jako plik PNG…. Po prawej stronie ekranu w oknie eksportu są cztery zakładki. Program domyślnie ustawił aktywną zakładkę Zaznaczenie. Zapamiętał również lokalizację pliku, jednak nazwa eksportowanego obrazu to path4530.png — numer ścieżki przypadkowy. Możesz zmienić nazwę pliku po zapisaniu go lub teraz, klikając przycisk Eksportuj jako… i w oknie Wybierz nazwę ekspor-towanego pliku wpisując nazwę pliku głowa.png. Czynność tę potwierdź przyciskiem Zapisz i powróć do okna eksportu. Przycisk eksportuje bitmapę z wybranymi ustawieniami.

Ćwiczenie 16.3.

Na rysunku 16.10 przedstawiono narysowane w grafice wektorowej cztery obiekty: żółty latawiec, niebieską tarczę, czerwone serce i zielone jabłko. Każdy kolejny obiekt powstawał na bazie poprzedniego. Ćwiczenie ma służyć opanowaniu umiejętności odpowiedniego przekształcania linii i węzłów.