Programowanie w środowisku języka obiektowego 312[01].Z2.02



Podobne dokumenty
Programowanie i techniki algorytmiczne

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Zapisywanie w wybranej notacji algorytmów z warunkami i iteracyjnych

Sposoby przedstawiania algorytmów

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

Zapisywanie algorytmów w języku programowania

Temat 20. Techniki algorytmiczne

Temat 5. Programowanie w języku Logo

Podstawy Programowania Obiektowego

Algorytmika i programowanie usystematyzowanie wiadomości

TEMAT : KLASY DZIEDZICZENIE

Funkcje i instrukcje języka JavaScript

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Programowanie obiektowe

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Wiadomości i umiejętności

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy

WYMAGANIA EDUKACYJNE Z ZAJĘĆ KOMPUTEROWYCH DLA KLASY SZÓSTEJ W ZAKRESIE WIADOMOŚCI I UMIEJĘTNOŚCI UCZNIÓW

Algorytm. a programowanie -

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Komputer i urządzenia cyfrowe

Warsztaty dla nauczycieli

Scenariusz lekcji opartej na programie Program nauczania informatyki w gimnazjum DKW /99

Programowanie obiektowe

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Technologie i usługi internetowe cz. 2

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Projektowanie rozwiązania prostych problemów w języku C++ obliczanie pola trójkąta

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Programowanie obiektowe - 1.

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013

Każdy z nich posiada swoje parametry. W przypadku silnika może to być moc lub pojemność, w przypadku skrzyni biegów można mówić o skrzyni

Elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Scenariusz lekcji. rozpoznać prawidłową deklarację tablicy; podać odwołanie do określonego elementu tablicy.

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

PRZEDMIOTOWY SYSTEM OCENIANIA Z ZAJĘĆ KOMPUTEROWYCH dla uczniów klas IV Szkoły Podstawowej nr 47 im. Jana Klemensa Branickiego w Białymstoku

> C++ dziedziczenie. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

lekcja 8a Gry komputerowe MasterMind

WYMAGANIA EDUKACYJNE. Informatyka Szkoła Podstawowa Klasa 4 NA ŚRÓDROCZNĄ I ROCZNĄ OCENĘ KLASYFIKACYJNĄ

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe

Scenariusz lekcji. scharakteryzować budowę procedury w języku Logo; rozróżnić etapy tworzenia i wykonania procedury;

Programowanie 3 - Funkcje, pliki i klasy

Wymagania edukacyjne z przedmiotu zajęcia komputerowe dla klasy IV

1 Podstawy c++ w pigułce.

Temat: Pole równoległoboku.

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Scenariusz zajęć. Moduł VI. Projekt Gra logiczna zgadywanie liczby

3.1. Na dobry początek

Rok akademicki: 2016/2017 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Konspekt do lekcji informatyki dla klasy II gimnazjum. TEMAT(1): Baza danych w programie Microsoft Access.

Podstawy Programowania C++

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Przedmiotowy system oceniania Programowanie strukturalne i obiektowe mgr Tomasz Włodyka

1 Podstawy c++ w pigułce.

Programowanie obiektowe - zadania

Wymagania edukacyjne z przedmiotu Witryny i aplikacje internetowe klasa 2iA. tworzenia stron. animację - multimedia

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Wśród prostokątów o jednakowym obwodzie największe pole. ma kwadrat. Scenariusz zajęć z pytaniem problemowym dla. gimnazjalistów.

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

PRZEDMIOTOWY SYSTEM OCENIANIA Z MATEMATYKI W KLASIE 4

Proporcjonalność prosta i odwrotna

Programowanie w środowisku języka obiektowego 312[01].Z2.02

Temat: Programujemy historyjki w języku Scratch tworzymy program i powtarzamy polecenia.

Algorytmika i pseudoprogramowanie

1. Zarządzanie informacją w programie Access

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

PRZEDMIOTOWE ZASADY OCENIANIA ZAJĘCIA KOMPUTEROWE

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Zadanie 2: Arytmetyka symboli

mgr Agnieszka Łukasiak Zasadnicza Szkoła Zawodowa przy Zespole Szkół nr 3 we Włocławku

Scenariusz lekcji. podać przykłady zalet użycia takiej instrukcji; opisać algorytm obliczania średniej n liczb;

Dziedziczenie. Zadanie 1

PLAN KIERUNKOWY. Liczba godzin: 180

Lab 9 Podstawy Programowania

Dokument komputerowy w edytorze grafiki

PRZEWODNIK PO PRZEDMIOCIE

Informatyka, I stopień. Programowanie (PRO300.2)

WYMAGANIA EDUKACYJNE zajęcia komputerowe

Wymagania na poszczególne oceny w klasach 3 gimnazjum

KARTA KURSU. Wstęp do programowania

Temat 1. Więcej o opracowywaniu tekstu

Przedmiotowy System Oceniania z zajęć komputerowych w klasach IV - VI

Przedmiotowy system oceniania i wymagania edukacyjne dla klasy I III z informtyki

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

PRZEDMIOTOWY SYSTEM OCENIANIA Z ZAJĘĆ KOMPUTEROWYCH

Programowanie strukturalne i obiektowe. Funkcje

1 Powtórzenie wiadomości

Wymagania edukacyjne z przedmiotu informatyka dla klasy IV

Kryteria oceniania - informatyka

Scenariusz zajęć z matematyki dla klasy I gimnazjum z wykorzystaniem programu edurom Matematyka G1

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO

Transkrypt:

MINISTERSTWO EDUKACJI i NAUKI Andrzej Krawczyk Programowanie w środowisku języka obiektowego 312[01].Z2.02 Poradnik dla nauczyciela Wydawca Instytut Technologii Eksploatacji Państwowy Instytut Badawczy Radom 2005 0

Recenzenci: mgr inż. Ireneusz Przybyłowicz mgr inż. Andrzej Uzar Opracowanie redakcyjne: mgr inż. Katarzyna Maćkowska Konsultacja: dr inż. Bożena Zając Korekta: mgr inż. Tomasz Sułkowski Poradnik stanowi obudowę dydaktyczną programu jednostki modułowej 312[01].Z2.02 Programowanie w środowisku języka obiektowego zawartego w modułowym programie nauczania dla zawodu technik informatyk. Wydawca Instytut Technologii Eksploatacji Państwowy Instytut Badawczy, Radom 2005 1

SPIS TREŚCI 1. Wprowadzenie 3 2. Wymagania wstępne 4 3. Cele kształcenia 5 4. Przykładowe scenariusze zajęć 6 5. Ćwiczenia 10 5.1. Definicja i własności obiektów 10 5.1.1. Ćwiczenia 10 5.2. Pojęcia opisujące obiektowość 12 5.2.1. Ćwiczenia 12 5.3. Obiektowo zorientowana analiza problemów 14 5.3.1. Ćwiczenia 14 5.4. Struktura programu w C++ 15 5.4.1. Ćwiczenia 15 5.5. Deklaracje, stałe, zmienne, wyrażenia i operatory 16 5.5.1. Ćwiczenia 16 5.6. Instrukcje 17 5.6.1. Ćwiczenia 17 5.7. Pliki. Preprocesor 19 5.7.1. Ćwiczenia 19 5.8. Funkcje C++ 20 5.8.1. Ćwiczenia 20 5.9. Tablice 23 5.9.1. Ćwiczenia 23 5.10. Struktury, unie, pola bitowe 27 5.10.1. Ćwiczenia 27 5.11. Wskaźniki, referencje 28 5.11.1. Ćwiczenia 28 5.12. Zarządzanie pamięcią 29 5.12.1. Ćwiczenia 29 5.13. Definicje klasy. Atrybuty i metody klasy. Hermetyzacja 31 5.13.1. Ćwiczenia 31 5.14. Konstruktory i destruktory klasy 32 5.14.1. Ćwiczenia 32 5.15. Funkcje i klasy zaprzyjaźnione 33 5.15.1. Ćwiczenia 33 5.16. Dziedziczenie 34 5.16.1. Ćwiczenia 34 5.17. Funkcje operatorowe, przeciążanie operatorów 35 5.17.1. Ćwiczenia 35 5.18. Polimorfizm 36 5.18.1. Ćwiczenia 36 5.19. Szablony klas i funkcji 37 5.19.1. Ćwiczenia 37 5.20. Strumienie i manipulatory 38 5.20.1. Ćwiczenia 38 5.21. Obsługa wyjątków 39 5.21.1. Ćwiczenia 39 5.22. Projektowanie bibliotek funkcji 40 5.22.1. Ćwiczenia 40 6. Ewaluacja osiągnięć ucznia 41 7. Literatura 49 2

1. WPROWADZENIE Przekazujemy Państwu Poradnik dla nauczyciela, który będzie pomocny w prowadzeniu zajęć dydaktycznych w szkole kształcącej w zawodzie technik informatyk. W poradniku zamieszczono: wymagania wstępne zawierające wykaz umiejętności, jakie uczeń powinien mieć już ukształtowane, aby bez problemów mógł korzystać z poradnika, cele kształcenia zawierające wykaz umiejętności, jakie uczeń ukształtuje podczas pracy z poradnikiem, przykładowe scenariusze zajęć, ćwiczenia zawierające przykładowe ćwiczenia ze wskazówkami do realizacji, zalecanymi metodami nauczania-uczenia oraz środkami dydaktycznymi, ewaluację osiągnięć ucznia zawierającą przykładowe narzędzia pomiaru dydaktycznego. Wskazane jest, aby zajęcia dydaktyczne były prowadzone różnymi metodami ze szczególnym uwzględnieniem aktywizujących metod nauczania, np. samokształcenia kierowanego, tekstu przewodniego, dyskusji, projektów. Formy organizacyjne pracy uczniów mogą być zróżnicowane, począwszy od samodzielnej pracy uczniów do pracy zespołowej. 3

2. WYMAGANIA WSTĘPNE Przystępując do realizacji programu nauczania jednostki modułowej uczeń powinien umieć: sprawnie posługiwać się aparatem matematycznym, zarządzać zasobami na nośnikach stałych, modyfikować dokument tekstowy, wyszukiwać informacje w różnych źródłach, programować korzystając z możliwości języka strukturalnego. 4

3. CELE KSZTAŁCENIA Po zakończonym procesie kształcenia tej jednostki modułowej uczeń będzie potrafił: zastosować obiektowo zorientowaną analizę problemu, określić zasady programowania obiektowego, określić podstawowe elementy języka obiektowego, analizować działanie programów napisanych w językach wysokiego poziomu, posłużyć się stałymi, zmiennymi, wskaźnikami i referencjami, zastosować instrukcje, wyrażenia i makrodefinicje, zdefiniować i zastosować funkcje, przekazywać argumenty, określić pojęcie obiektu, klasy, atrybutu, metody i właściwości, wykorzystać dziedziczenie proste i wielokrotne, posłużyć się funkcjami: zaprzyjaźnionymi, operatorowymi, wirtualnymi, polimorficznymi, zaprojektować i zastosować biblioteki funkcji, posłużyć się strumieniami i obiektowo zorientowanymi operacjami, posłużyć się plikami do przechowywania danych, posłużyć się tablicami, strukturami, uniami, polami bitowymi, posłużyć się klasami, hermetyzacją klas, dziedziczeniem metod i atrybutów, posłużyć się szablonami klas i funkcji, zastosować klasy do obsługi wyjątków i współbieżnej realizacji zadań, zdefiniować pojęcie strukturyzacji, hermetyzacji i polimorfizmu, zaproponować konstruktor i destruktor obiektu, wykorzystać dziedziczenie do definiowania klas obiektów, konstruować listy, stosy, kolejki, drzewa i grafy, zastosować odpowiednie algorytmy, struktury danych i metody podczas rozwiązywania zadań, skompilować, scalić, uruchomić, przetestować, zoptymalizować i udokumentować program, skorzystać z podręczników i dokumentacji języków programowania, posłużyć się terminologią zawodową w języku angielskim. 5

4. PRZYKŁADOWE SCENARIUSZE ZAJĘĆ Scenariusz 1 Temat: Budowanie funkcji Cele: Po zakończeniu zajęć edukacyjnych uczeń powinien umieć: rozpoznawać bloki kodu, które można zadeklarować jako funkcje, budować funkcje, przekazywać wartości do funkcji przez wartość i zmienną, poprawiać błędy kompilacji powstające przy tworzeniu funkcji, pisać programy z wykorzystaniem funkcji. Metody nauczania uczenia się: metoda ćwiczeń. Formy organizacyjne pracy uczniów: praca indywidualna przy stanowisku komputerowym. stanowiska komputerowe uczniowskie z zainstalowanym nieformatującym edytorem tekstu i kompilatorem C++. Czas trwania: 1 godzina dydaktyczna. Uczestnicy: uczniowie uczestniczący w procesie kształcenia w zawodzie technik informatyk. Przebieg zajęć 1. Wprowadzenie do zajęć. 2. Uświadomienie celów zajęć. 3. Plan zajęć. Istnieje duże prawdopodobieństwo, że w grupie znajduje się uczeń (uczniowie), który wie, jak zbudowane są funkcje i w jaki sposób są deklarowane w języku C++ (w przeciwnym razie wskazane jest przygotowanie kodów przykładowych w celu zdynamizowania lekcji, której zagadnienia są uczniom częściowo znane z modułu programowania strukturalnego). Nauczyciel prosi o zgłoszenie się ucznia, który naszkicuje kod na tablicy i objaśni zasady budowania funkcji. Nauczyciel uzupełnia wypowiedź ucznia-asystenta lub potwierdza poprawność wypowiedzi zwracając uwagę na terminologię informatyczną i obcojęzyczną. Poleca uczniom wykonanie Ćwiczenie 1 z rozdziału 5.8.1. W tym czasie uczeń-asystent przygotowuje kod funkcji wykonującej operacje arytmetyczne (Ćwiczenie 2). 6

Cykl powtarza się z udziałem innych uczniów-asystentów. Uczniowie powinni zauważyć oszczędność kodu po wykonaniu Ćwiczenia 2. Nauczyciel poleca uczniom sprawdzanie wartości zmiennych przed i po wywołaniu każdej z funkcji. Prosi o zapisanie wniosków. Przed wykonaniem Ćwiczenia 3 nauczyciel prosi uczniów o przypomnienie i narysowanie na tablicy algorytmu NWD (Euklides). Schemat pomoże wszystkim wykonać ćwiczenie. Ćwiczenie 4 uczniowie powinni wykonać bez dodatkowych wskazówek. Nauczyciel przypomina o obowiązku tworzenia programów przyjaznych dla użytkownika: czytelny, skomentowany interfejs oraz zasadach pisania kodu: wcięcia, nazewnictwo i komentarze. Może ocenić pozytywnie uczniów, którzy zrealizowali pierwsze ćwiczenia według tych zasad. Można pokazać całej grupie najciekawsze rozwiązania. 4. Podsumowanie zajęć: uzasadnienie korzyści z zastosowania funkcji, struktura funkcji w języku C++, zalety korzystania z parametrów, wykorzystanie przeładowania funkcji. 5. Ocena poziomu osiągnięć uczniów i ocena ich aktywności. 6. Ewaluacja Określenie w skali 1-5 stopnia zrozumienia poznanych pojęć i umiejętności budowania funkcji (1 min, 5 max). 7. Podanie i omówienie zadania domowego: wymyślić lub znaleźć inne zastosowania dla przeładowania funkcji, przypomnieć zasady korzystania z tablic, przypomnieć reguły dodawania wektorów. Scenariusz 2 Temat: Korzystanie z tablic Cele: Po zakończeniu zajęć edukacyjnych uczeń powinien umieć: zadeklarować tablicę, wprowadzić dane do tablic wielowymiarowych, wykonać operacje matematyczne na elementach tablic, podać zastosowania tablic. Metody nauczania uczenia się: metoda ćwiczeń. Formy organizacyjne pracy uczniów: praca indywidualna przy stanowisku komputerowym. 7

stanowiska komputerowe uczniowskie z zainstalowanym nieformatującym edytorem tekstu i kompilatorem C++. Czas trwania: 2 godziny dydaktyczne. Uczestnicy: uczniowie uczestniczący w procesie kształcenia w zawodzie technik informatyk. Przebieg zajęć: 1. Wprowadzenie do zajęć. 2. Uświadomienie celów zajęć. 3. Plan zajęć. Wiele operacji daje się zautomatyzować i wiele wartości tego samego typu przechować w czytelny sposób, jeżeli skorzysta się ze zmiennej tablicowej. Oprócz czysto technicznej strony stosowania tablic, istnieje również praktyczna tablice od dawna wykorzystuje się w obliczeniach w innych dziedzinach nauki i techniki. Uczniowie powinni pamiętać z lekcji programowania strukturalnego, w jaki sposób korzysta się z tablic. Wykonanie Ćwiczenia 1 z rozdziału 5.8.1. nie powinno sprawić trudności. Nauczyciel może skoncentrować się na podaniu składni definiowania tablic w języku C i doskonaleniu umiejętności stosowania tablic. Warto zwrócić uwagę na estetykę przedstawiania rezultatu działania programu. Ćwiczenie 2 wymaga umiejętności przedstawiania wektora za pomocą składowych. Warto skorelować treści z nauczycielem fizyki. Uczeń o szerokich zainteresowaniach z fizyki może przygotować informacje i przykłady o zasadach wykonywania działań na wektorach. Może to być dokument hipertekstowy, prezentacja, ewentualnie foliogramy. Ważnym aspektem pracy z tablicami, zwłaszcza wielowymiarowymi, jest operowanie indeksami elementów. Uczeń powinien ukształtować umiejętność wykonywania globalnych operacji na tablicach, to znaczy budować pętle, w obrębie których za pomocą arytmetyki określi, które elementy i w jakiej kolejności będą modyfikowane. Ćwiczenia 3, 4 i 5 wymagają napisania programów, które wykonują działania na tablicach. Uczeń prawdopodobnie nie będzie potrafił intuicyjnie ocenić poprawności wykonania obliczeń. Potrzebna będzie pomoc w postaci tablic z przykładowymi wynikami obliczeń. Można przed lekcją poprosić ucznia o uzdolnieniach matematycznych o przygotowanie przykładów do testowania programów lub zaproponować skorzystanie z informacji i przykładów zawartych w sieci Internet. Uczniowie powinni dbać o czytelne nazywanie obiektów, zapisywanie pracy i prezentowanie rezultatów. Te umiejętności powinny już być ukształtowane. Warto jednak je doskonalić. Można pokazać całej grupie najciekawsze rozwiązania przed przystąpieniem do kolejnych ćwiczeń. Ćwiczenia 6, 7 i 8 pozwalają poznać inne zastosowania tablic i doskonalić umiejętność wykonywania na nich działań. 4. Podsumowanie zajęć: uzasadnienie potrzeby stosowania tablic, przykłady stosowania tablic, adresowanie tablic. 8

5. Ocena poziomu osiągnięć uczniów i ocena ich aktywności. 6. Ewaluacja. Określić w skali 1-5 stopień zrozumienia poznanych pojęć i wykonywania operacji na tablicach (1 min, 5 max). 7. Podanie i omówienie zadania domowego. Wymyślić lub wyszukać inne zastosowania tablic. 9

5. ĆWICZENIA 5.1. Definicja i własności obiektów 5.1.1. Ćwiczenia Ćwiczenie 1 Opisz otaczające przedmioty wykorzystując ideę obiektów. Opisz ich charakterystyczne cechy i funkcje, jakie pełnią. Wskazówki do realizacji Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności postrzegania problemów w sposób obiektowy. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) wybrać dowolną grupę przedmiotów. Może kierować się zainteresowaniami. Powinien zapisać przedmioty w nowym dokumencie tekstowym, 2) dopisać cechy każdego z nich, 3) dopisać funkcje każdego z nich. 4) podzielić się przemyśleniami z innymi uczniami w grupie, 5) uzupełnić notatki na podstawie wypowiedzi innych uczniów. komputer z zainstalowanym edytorem tekstu. Ćwiczenie 2 Spróbuj pociąg osobowy opisać obiektowo. Wymień, z jakich elementów i obiektów się składa, jakie są właściwości i funkcje tych obiektów. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności postrzegania problemów w sposób obiektowy. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zapisać w dokumencie tekstowym, z jakich elementów składa się pociąg, 2) dopisać cechy każdego z nich, 3) dopisać funkcje każdego z nich, 4) podzielić się przemyśleniami z innymi uczniami w grupie, 5) uzupełnić notatki na podstawie wypowiedzi innych uczniów. 10

komputer z zainstalowanym edytorem tekstu. 11

5.2. Pojęcia opisujące obiektowość 5.2.1. Ćwiczenia Ćwiczenie 1 Zdefiniuj klasę (nazwy własności i funkcje obiektu) opisującą telewizor jako obiekt podstawowy i telewizor kineskopowy, plazmowy, LCD jako odmiany podstawowego obiektu. Rozpisując elementy składowe pamiętaj o dziedziczeniu i zachowaniu zasad abstrakcji i hermetyzacji. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności projektowania klas. Uczeń powinien korzystać z dziedziczenia i jego atrybutów. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zapisać w dokumencie tekstowym klasę: telewizor, 2) dopisać własności telewizora, 3) dopisać funkcje telewizora, 4) dopisać telewizor kineskopowy jako nową klasę, 5) uzupełnić własności, 6) uzupełnić funkcje, 7) powtórzyć operacje 4-6 dla pozostałych typów telewizora. komputer z zainstalowanym edytorem teksu. Ćwiczenie 2 Jeżeli obiektem podstawowym jest myśliwiec wojskowy, to czy obiektem pochodnym może być samolot pasażerski? Swoją odpowiedź uzasadnij? Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności korzystania z mechanizmu dziedziczenia. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zapisać w dokumencie tekstowym klasę: myśliwiec wojskowy, 2) dopisać własności myśliwca, 12

3) dopisać funkcje myśliwca, 4) dopisać nową klasę: samolot pasażerski, 5) spróbować uzupełnić własności, 6) spróbować uzupełnić funkcje, 7) porównać otrzymane własności z wyobrażeniem samolotu pasażerskiego, 8) porównać otrzymane funkcje z punktu wyobrażeniem samolotu pasażerskiego, 9) zapisać wnioski z porównań. komputer z zainstalowanym edytorem teksu. Ćwiczenie 3 Zdefiniowana jest klasa samochód, której jedną z właściwości jest ilość paliwa. Oto postać klasy: składowe wartości: silnik, skrzynia biegów, kolor, typ nadwozia, ilość paliwa, składowe funkcje: uruchom i zatrzymaj silnik, zmień bieg w górę i w dół. Brakuje w niej obsługi tankowania. Dopisz odpowiednie działanie. Klasa powinna być stworzona z zachowaniem zasady abstrakcji. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenia umiejętności korzystania z mechanizmu dziedziczenia. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) napisać klasę samochód, 2) zdefiniować atrybuty klasy, 3) zdefiniować metody klasy, 4) dopisać metodę tankowania w taki sposób, by zależała od ilości paliwa, 5) sprawdzić, czy zachowałeś zasadę abstrakcji. komputer z zainstalowanym edytorem teksu. 13

5.3. Obiektowo zorientowana analiza problemów 5.3.1. Ćwiczenia Ćwiczenie 1 Rozrysuj wybrany problem wykorzystując metodę zorientowaną obiektowo. Może to być na przykład stacja obsługi pojazdów. Przeanalizuj czynności i obiekty, które biorą udział w procesie. Możesz wykorzystać język UML. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności obiektowej analizy problemów. Uczeń zdolny może korzystać z notacji UML. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) spróbować wyłonić składowe problemu, 2) opisać składowe, 3) utworzyć sieć połączeń pomiędzy poszczególnymi elementami. komputer z zainstalowanym edytorem teksu. 14

5.4. Struktura programu w C++ 5.4.1. Ćwiczenia Ćwiczenie 1 Odszukaj w Internecie przykłady programów napisanych w języku C++. Przyjrzyj się ich strukturze i zapisowi. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności poprawnego i czytelnego budowania struktury programu. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zapisać w edytorze tekstowym hasła określające rodzaj programu. Powinien myśleć raczej o niewielkich programach. Może wykorzystać tematy, o których uczył się na algorytmice, 2) uruchomić dobrą wyszukiwarkę i wpisać zapytanie, 3) przekopiować kody kilku programów do dokumentu tekstowego, 4) oznaczyć programy, których kod jest dla niego czytelny i zrozumiały. Powinien opierać się na doświadczeniach z programowania strukturalnego, 5) zapisać, które cechy mogą powodować, że w punkcie 4 zostały wybrane właśnie te programy. komputer z zainstalowaną przeglądarką internetową. Ćwiczenie 2 Sprawdź, co się stanie, jeżeli z kodu programu wykasujesz dwie pierwsze linijki. Czy program będzie działał prawidłowo? Czy się skompiluje? Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności rozpoznawania bloków sterujących kodu programu. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) wybrać dowolny z programów skopiowanych w Ćwiczeniu 1, 2) skompilować ten program, 3) usunąć dwie pierwsze linie, 4) zanotować reakcję kompilatora, 5) podzielić się spostrzeżeniami z innymi uczniami w grupie. 15

5.5. Deklaracje, stałe, zmienne, wyrażenia i operatory 5.5.1. Ćwiczenia Ćwiczenie 1 Napisz program liczący drugą potęgę liczby podanej przez użytkownika. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności budowania programów w języku C++. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) przedstawić algorytm realizujący funkcję, o której mowa w ćwiczeniu, 2) wprowadzić odpowiadający kod, 3) skompilować kod, 4) sprawdzić działanie programu. Ćwiczenie 2 Napisz program, który policzy pole i obwód trapezu równobocznego, na podstawie danych podanych przez użytkownika. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności rozwiązywania problemów i budowania programów w języku C++. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) przedstawić algorytm realizujący funkcję, o której mowa w ćwiczeniu, 2) wprowadzić odpowiadający kod, 3) skompilować kod, 4) sprawdzić działanie programu. 16

5.6. Instrukcje 5.6.1. Ćwiczenia Ćwiczenie 1 Napisz program, który obliczy dowolną potęgę liczby 2. Użytkownik powinien móc wpisać wartość wykładnika. Następnie zmodyfikuj program w taki sposób, aby wyliczał dowolną potęgę podstawy podanej przez użytkownika. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności budowania programów w języku C++ i korzystania z instrukcji rozgałęziających. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) przedstawić algorytm realizujący funkcję, o której mowa w pierwszej części ćwiczenia, 2) wprowadzić odpowiadający kod, 3) skompilować kod, 4) sprawdzić działanie programu, 5) zmodyfikować kod zgodnie z drugą częścią ćwiczenia, 6) sprawdzić działanie programu. Ćwiczenie 2 Napisz program, który wylicza sumę ciągu arytmetycznego dla wartości podanych przez użytkownika. Wykorzystaj pętlę for. Następnie zmodyfikuj program w taki sposób, by korzystał z pętli while i pętli do while. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności budowania programów w języku C++ i rozgałęziania programów. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) opracować algorytm realizujący funkcję, o której mowa w pierwszej części ćwiczenia, 2) wprowadzić odpowiadający kod i skompilować go, 17

3) sprawdzić działanie programu, 4) zmodyfikować kod zgodnie z drugą częścią ćwiczenia, 5) sprawdzić działanie programu. Ćwiczenie 3 Napisz program, którego celem będzie wyświetlenie tabliczki mnożenia (do 100). Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności budowania programów w języku C++ i pozycjonowania informacji wyjściowych. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) opracować i przedstawić algorytm realizujący funkcję, o której mowa w ćwiczeniu, 2) wprowadzić odpowiadający kod i dokonać kompilacji, 3) sprawdzić działanie programu. Zadbać o poprawne formatowanie. 18

5.7. Pliki. Preprocesor 5.7.1. Ćwiczenia Ćwiczenie 1 Sprawdź jakie pliki powstają podczas procesu kompilacji i po jej zakończeniu. Korzystając z notatnika podejrzyj zawartość tych plików i sprawdź, w którym z nich znajduje się tekst, a które z nich są w postaci bitowej. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności rozpoznawania i chronienia niezbędnych plików. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) ustalić, gdzie zapisywany jest rezultat kompilacji, 2) otworzyć folder i zapamiętać jego stan, 3) skompilować nowy program i sprawdzić zawartość katalogu. Ćwiczenie 2 Odszukaj w Internecie przykłady wykorzystania dyrektyw, a w szczególności dyrektyw warunkowych. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności poznawania możliwości języka programowania za pomocą różnych źródeł informacji. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) uruchomić dobrą wyszukiwarkę, 2) wpisać zapytanie dotyczące dyrektyw, 3) zapisać wyniki, które uzna za interesujące, 4) podzielić się rezultatami z innymi uczniami w grupie. komputer z zainstalowaną przeglądarką internetową. 19

5.8. Funkcje C++ 5.8.1. Ćwiczenia Ćwiczenie 1 Napisz funkcję, która wyświetli komunikat tekstowy. Pozwól użytkownikowi wpisać tekst. Wykorzystaj funkcję kilkakrotnie. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności budowania funkcji w języku C++. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) wpisać kod programu, który pobiera komunikat od użytkownika i wyświetla go na ekranie, 2) sprawdzić działanie programu, 3) zadeklarować blok kodu z punktu 1 jako funkcję, 4) zamknąć wywołanie funkcji w pętli. Przemyśleć sposób zakończenia pętli, 5) sprawdzić działanie programu. ćwiczenie praktyczne, dyskusja Ćwiczenie 2 Napisz funkcję, która obliczy średnią arytmetyczną dwóch liczb. Oblicz z jej pomocą średnią wartość kilku par liczb. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności budowania funkcji i korzystania z nich w programie. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zbudować funkcję, która obliczy średnią arytmetyczną dwóch liczb, 2) zamknąć wywołanie funkcji w pętli. Przemyśleć sposób zakończenia pętli, 3) sprawdzić działanie programu. 20

Ćwiczenie 3 Napisz funkcje wykonujące następujące działania arytmetyczne: sumę ciągu geometrycznego, NWD, NWW. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności korzystania z funkcji i ukształtowanie umiejętności przekazywania parametrów przez referencję. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) napisać kod funkcji wykonujących wymagane obliczenia, 2) przepisać funkcje w taki sposób, by wykorzystywały referencje, 3) sprawdzić działanie na przykładowych danych. Ćwiczenie 4 Napisz funkcję, która obliczy obwód prostokąta. Dopisz jej wersję przeładowaną, która w przypadku wystąpienia tylko jednego argumentu obliczy obwód kwadratu. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności korzystania z metody przeładowania. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) napisać funkcję obliczającą obwód prostokąta, 2) sprawdzić działanie programu, 3) dopisać funkcję o tej samej nazwie obliczającą obwód kwadratu, 4) sprawdzić działanie wywołując funkcję z różnymi argumentami. 21

Ćwiczenie 5 Sprawdź czy w programach, które do tej pory napisałeś nie powtarzają się identyczne fragmenty kodów. Jeżeli tak jest, to napisz funkcje, które realizują te zadania. Wstaw je do jednego pliku i za pomocą dyrektywy #include włącz ten plik do wcześniej napisanych programów. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności efektywnego korzystania z funkcji. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zapisać powtarzające się fragmenty kodu jako funkcje, 2) zapisać funkcje w osobnym pliku, 3) dołączyć plik do programu jako bibliotekę. 22

5.9. Tablice 5.9.1. Ćwiczenia Ćwiczenie 1 Utwórz tablicę jednowymiarową o rozmiarze 10 i wypełnij ją literami. Wyświetl wszystkie litery. Wyświetl wstecz. Policz, ile razy wystąpiła wybrana litera. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności budowania tabel w języku C++. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zadeklarować tablicę i wpisać litery, najlepiej stanowiące słowo, 2) dopisać polecenie, które określi rozmiar tablicy i dołączyć do kodu pętlę, która wyświetli litery w porządku odwrotnym, 3) dołączyć do pętli licznik wystąpień wybranej litery korzystając z doświadczeń z programowania strukturalnego. Ćwiczenie 2 Elementy dwóch tablic o rozmiarze 2 reprezentują składowe x i y wektora. Oblicz sumę i różnicę wektorów. Oblicz składowe w przypadku sumy wektorów prostopadłych. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności korzystania z tabel. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) narysować wektory na kartce lub w dokumencie tekstowym i obliczyć sumy. Będzie mógł sprawdzić poprawność działania programu, 2) zdefiniować tablice w kodzie programu. Wpisać współrzędne wektorów, 3) dopisać instrukcje obliczające sumę wektorów: [a x,a y ] + [b x,b y ] = [a x +b x,a y +b y ], 4) dopisać instrukcje obliczające różnicę wektorów: [a x,a y ] - [b x,b y ] = [a x -b x,a y -b y ], 5) dopisać instrukcje obliczające sumę wektorów prostopadłych. Może skorzystać z najprostszej postaci, gdy jeden z wektorów jest równoległy do osi Ox, a drugi do osi Oy. 23

Ćwiczenie 3 Wyzeruj elementy na przekątnych macierzy o rozmiarze podanym przez użytkownika. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności wykonywania operacji na tabelach. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) rozważyć elementy tablicy znajdujące się na przekątnej. Zauważyć, jakie mają indeksy. Znaleźć regułę wiążącą elementy na drugiej przekątnej, 2) wypełnić tablicę dowolnymi wartościami, 3) wyzerować elementy na przekątnych, korzystając z punktu 1, 4) wyświetlić tablicę na ekranie, żeby sprawdzić poprawność działania programu. Ćwiczenie 4 Napisz program, który obliczy wyznacznik macierzy 2x2. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności wykonywania działań na tabelach. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) znaleźć informację, jak oblicza się wyznacznik macierzy. Wykonać przykładowe obliczenie na kartce, 2) wpisać kod programu umożliwiający wczytanie elementów tablicy (macierzy), 3) wyświetlić na ekranie tablicę i jej wyznacznik. 24

Ćwiczenie 5 Napisz program, który zsumuje dwie tablice 2x2. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności wykonywania działań na tablicach. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) znaleźć informacje, w jaki sposób dodaje się tablice, 2) wpisać kod programu umożliwiający wczytanie elementów tablicy (macierzy) i wykonanie działania, 3) wyświetlić na ekranie wszystkie trzy tablice. Ćwiczenie 6 Znając definicje tablic, ciągu znakowego i zasadę działania funkcji strcpy, napisz własną implementacje funkcji strcpy. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności wykonywania działań na tabelach i rozwiązywania problemów algorytmicznych. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) znaleźć i przeczytać uważnie opis wbudowanej funkcji strcpy, 2) naszkicować algorytm działania funkcji strcpy, 3) wpisać własny kod, 4) przetestować działanie funkcji. ćwiczenie praktyczne, dyskusja 25

Ćwiczenie 7 Napisz program, który będzie sprawdzał, czy wprowadzony przez użytkownika wyraz jest palindromem. Wykorzystaj do budowy programu funkcje, tablice i pętle. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności wykonywania działań na tablicach i rozwiązywania problemów algorytmicznych. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) narysować algorytm sprawdzający warunki określone w zadaniu, 2) zaplanować sposób zakończenia działania programu, czyli wyjścia z pętli, 3) napisać kod wczytujący wyraz, 4) napisać kod sprawdzający, czy wyraz spełnia zadane warunki, 5) zamknąć wykonanie w pętli, 6) sprawdzić działanie programu. Ćwiczenie 8 Bardzo dobrym sposobem testowania programów wykonujących operacje arytmetyczne na tablicach jest wypełnienie ich wartościami losowymi. Napisz program, który zapisuje liczby losowe do tablicy. Następnie oblicza sumę wszystkich elementów tablicy. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności korzystania z tablic. Uczeń powinien umieć korzystać z generatora liczb losowych. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) planując wykonanie ćwiczenia wziąć pod uwagę sposób określania wymiaru i rozmiaru tablicy, 2) zbudować funkcję wypełniającą tablicę liczbami, 3) wyświetlić na ekranie tablicę, 26

5.10. Struktury, unie, pola bitowe 5.10.1. Ćwiczenia Ćwiczenie 1 Zbuduj trzy struktury, które gromadzić będą odpowiednio dane z dowodu osobistego, prawa jazdy i dowodu rejestracyjnego pojazdu. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności budowania struktur w języku C++. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zanotować dane, które powinny zostać zgromadzone dla każdego z dokumentów, 2) zaproponować strukturę do każdego dokumentu, 3) podzielić się uwagami z pozostałymi uczniami w grupie, 4) utworzyć struktury. Ćwiczenie 2 Napisz program, który będzie gromadził dane o pracownikach. Każdy pracownik powinien być opisany przez zmienne ujęte w strukturze. Dane gromadzone przez system to: imię, nazwisko, dzień, miesiąc i rok urodzenia, staż pracy w latach, zawód wyuczony i wykonywany, dział w jakim pracuje (produkcja, pakowanie, sprzedaż, administracja), pensja. Pracowników w firmie może być maksimum 50. Jaki mechanizm zastosujesz? Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności stosowania struktur. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zaplanować strukturę, która będzie przechowywała dane, 2) zaplanować narzędzie wprowadzania danych, 3) zaplanować narzędzie wyświetlania danych, 4) sprawdzić działanie programu. 27

5.11. Wskaźniki, referencje 5.11.1. Ćwiczenia Ćwiczenie 1 Napisz program, który wylosuje elementy tablicy 10-cio elementowej typu int. Następnie wyświetl na ekranie adres w pamięci poszczególnych elementów tablicy i ich wartość. Wyświetl adres zmiennej, pod którą przechowywana jest tablica. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności korzystania ze wskaźników w języku C++. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) napisać kod losujący wartości elementów tablicy, 2) zaplanować wyświetlanie tablicy na ekranie, 3) wyświetlić adresy elementów tablicy, 4) dopisać kod pokazujący adres tablicy. 28

5.12. Zarządzanie pamięcią 5.12.1. Ćwiczenia Ćwiczenie 1 Napisz program, który będzie pobierał od użytkownika liczby tak długo, aż wpisana zostanie wartość zero. Pobrane liczby program powinien zapisywać w tablicy dynamicznej, a następnie wyświetlić posortowane rosnąco. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności dynamicznego zarządzania pamięcią. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zadeklarować dynamiczną tablicę o rozmiarze podanym przez użytkownika w momencie wykonywania programu, 2) dopisać funkcję pobierania danych, 3) sprawdzić działanie programu. Ćwiczenie 2 Podczas tworzenia bazy danych nie wiadomo ile będzie ona zawierać rekordów. Napisz program, który zbiera podstawowe dane o samochodzie i przechowuje je w tablicy dynamicznej. Elementami tablicy powinny być rekordy. Interfejs programu powinien mieć opcje dopisywania, modyfikowania i kasowania danych. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności dynamicznego zarządzania pamięcią. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zaplanować postać struktury przechowującej dane, 2) zdefiniować dynamiczną tablicę, 3) dopisać kod wprowadzania danych. Pamiętać o sprawdzaniu dostępnej pamięci, 4) dopisać kod wyświetlania danych i sprawdzić funkcjonowanie, 5) dopisać kod modyfikowania danych, 6) dopisać kod usuwania danych, 7) sprawdzić działanie programu. 29

30

5.13. Definicje klasy. Atrybuty i metody klasy. Hermetyzacja 5.13.1. Ćwiczenia Ćwiczenie 1 Znajdź w Internecie dokładniejsze informacje na temat warstw w aplikacji. Dlaczego ten sposób programowania jest tak istotny? Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności korzystania z różnych źródeł informacji oraz ukształtowanie umiejętności rozpoznawania i definiowania warstw aplikacji. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) wyszukać strony zawierające informacje o projektowaniu z wykorzystaniem warstw, 2) wynotować różnice pomiędzy projektowaniem tradycyjnym, a warstwowym, 3) sformułować wnioski, 4) podzielić się wnioskami z innymi uczniami w grupie. komputer z zainstalowaną przeglądarką internetową. Ćwiczenie 2 Napisz klasę, która będzie odpowiednikiem parkingu samochodowego. Klasa ta powinna zwierać dane o ilości samochodów i ilości wolnych miejsc. Każdy samochód powinien być opisany przez model, markę i numer rejestracyjny. Klasa musi mieć metody służące do przyjmowania samochodu na parking i jego zwrotu. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności budowania klas. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) napisać klasę, 2) zdefiniować atrybuty klasy, 3) zdefiniować metody klasy, 4) zastanowić się, czy należy skorzystać z podklas. 31

5.14. Konstruktory i destruktory klasy 5.14.1. Ćwiczenia Ćwiczenie 1 Do klasy z poprzedniego rozdziału, (obsługa parkingu) dopisz odpowiednie konstruktory i destruktory. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności budowania klas. Uczeń powinien potrafić tworzyć konstruktory i destruktory. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) przejrzeć kod klasy obsługi parkingu, 2) dopisać konstruktor domyślny, 3) dopisać konstruktor z parametrem, 4) dopisać destruktor. Ćwiczenie 2 Napisz klasę, która będzie mogła gromadzić informacje o miejscach w samolocie. Konstruktor powinien definiować maksymalną ilość miejsc, a destruktor zwalniać wszystkie miejsca. Klasa powinna mieć zmienne służące do przechowywania podstawowych danych o pasażerach (imię, nazwisko, płeć, klasa biznes / ekonomiczna). Klasa powinna posiadać metody odpowiedzialne za przyjęcie pasażera na pokład i zwalnianie pojedynczego miejsca na pokładzie. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności budowania klas. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) napisać klasę, 2) zdefiniować atrybuty klasy, 3) zdefiniować metody klasy, 4) napisać konstruktor, 5) napisać destruktor. 32

5.15. Funkcje i klasy zaprzyjaźnione 5.15.1. Ćwiczenia Ćwiczenie 1 Napisz program w którym jedna funkcja będzie zaprzyjaźniona z dwiema różnymi klasami i będzie wykonywała obliczenia na zmiennych tych klas. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności budowania klas zaprzyjaźnionych. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zdefiniować dwie klasy, 2) w jednej z klas zaproponować funkcje i uczynić ją zaprzyjaźnioną dla drugiej klasy, 3) napisać kod w drugiej klasie wykorzystujący funkcję zaprzyjaźnioną. Ćwiczenie 2 Napisz klasę figury, która będzie posiadała zaprzyjaźnione klasy prostokąt, kwadrat, trójkąt. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności korzystania z klas zaprzyjaźnionych. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zdefiniować klasy, 2) napisać klasę i uczynić ją zaprzyjaźnioną z inną klasą. 33

5.16. Dziedziczenie 5.16.1. Ćwiczenia Ćwiczenie 1 Napisz program, który będzie tworzył trzy obiekty: prostokąt, trójkąt i kwadrat, na podstawie odpowiednich klas. Klasy poszczególnych obiektów powinny wywodzić się z jednej klasy bazowej: figura, która będzie miała tylko jeden atrybut typu int: pole. Zadaniem każdej z klas pochodnych jest przechowywanie danych potrzebnych do obliczenia pola i metodę liczącą to pole. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności korzystania z zalet dziedziczenia. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zdefiniować klasę bazową, 2) zdefiniować pozostałe klasy wykorzystując klasę bazową, 3) zaprogramować atrybuty i metody klasy. 34

5.17. Funkcje operatorowe, przeciążanie operatorów 5.17.1. Ćwiczenia Ćwiczenie 1 Wzbogać klasę Macierz2_2 o operatory dodawania, odejmowania i operator, który zwraca wymiar macierzy. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności korzystania z funkcji operatorowych. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) przejrzeć klasę macierz i rozpoznać ją, 2) zdefiniować operator dodawania, 3) zdefiniować operator odejmowania, 4) zdefiniować operator zwracający wymiar macierzy, 5) zdefiniować dwie macierze na podstawie tej klasy i sprawdzić działanie operatorów. Ćwiczenie 2 Napisz klasę, która przechowuje imię i nazwisko oraz wysokość wynagrodzenia. Napisz operator, który umożliwi sumowanie ze sobą wynagrodzeń pochodzących z obiektów powstałych na bazie klasy. Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności korzystania z funkcji operatorowych. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zdefiniować klasę, 2) zaprogramować operatory, 3) utworzyć tablicę 10 osób i wypełnić danymi, 4) zsumować wynagrodzenia korzystając z operatora. 35

5.18. Polimorfizm 5.18.1. Ćwiczenia Ćwiczenie 1 Napisz klasy róża, stokrotka i paproć, które dziedziczą z klas kwiat-jednoroczny i kwiat-wieloroczny. Te klasy dziedziczą z jednej klasy Kwiat. Klasa Kwiat ma atrybuty: kolor i wysokość. Klasa Kwiat-wieloroczny posiada atrybut zawierający informację w latach, jak długo kwiat rośnie. Klasy będące pochodną od kwiatów jednoi wielorocznych powinny mieć atrybut kolor-kwiatów, kolor-łodygi i metodę rośnij, która będzie zwiększać wysokość kwiatów o 1cm. Każda klasa końcowa powinna mieć metodę koniecroku, która zwiększa wiek-kwiatu o rok. Jeżeli kwiat będzie starszy niż gatunek, to powinien zwiędnąć. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności korzystania z polimorfizmu. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zdefiniować klasy bazowe, 2) zdefiniować klasy pochodne, 3) wykorzystać polimorfizm do wywołania metody koniecroku, 4) utworzyć 6 obiektów różnych typów. 36

5.19. Szablony klas i funkcji 5.19.1. Ćwiczenia Ćwiczenie 1 Napisz funkcję, która obliczy dowolną potęgę liczby dowolnego typu. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności korzystania z szablonów. Uczeń powinien zauważyć, że wykonanie ćwiczenia wymaga skorzystania z szablonów funkcji. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) napisać funkcję, która policzy potęgę typu całkowitego, 2) przepisać tę funkcję w taki sposób, by korzystała z szablonu. 37

5.20. Strumienie i manipulatory 5.20.1. Ćwiczenia Ćwiczenie 1 Napisz program, który zapisuje tabliczkę mnożenia do pliku. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności korzystania ze strumieni. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) zbudować funkcję, która zapisuje dane do pliku, 2) sprawdzić działanie, 3) dopisać kod, obliczający wartości występujące w jednym wierszu tabliczki mnożenia, 4) sprawdzić działanie programu, przeglądając zawartość pliku. Ćwiczenie 2 Napisz manipulator, który zakończy aktualną linię i na początku nowej napisze kolejny numer linii i dwukropek. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności budowania manipulatorów. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) przemyśleć działanie manipulatora, o którym mowa w ćwiczeniu, 2) wpisać kod manipulatora, 3) sprawdzić działanie. 38

5.21. Obsługa wyjątków 5.21.1. Ćwiczenia Ćwiczenie 1 Napisz program, który odczytuje i zapisuje tekst do pliku. Do programu dodaj obsługę wyjątków tak, by obsługiwała ona nieudany zapis i nieudany odczyt z pliku. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności obsługi wyjątków. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) napisać program, który zapisuje tekst do pliku, 2) dopisać obsługę wyjątku nieudanego zapisu, 3) otworzyć plik za pomocą edytora i sprawdzić obsługę wyjątku, 4) dopisać kod odczytywania zawartości pliku. Ćwiczenie 2 Sprawdź w dostępnych źródłach informacji, czy środowisko systemowe może zapewnić obsługę wyjątków, gdy w programie nie zastosuje się narzędzi ich obsługi? Jeśli tak, to na jakim poziomie? Wykonanie przez uczniów ćwiczenia umożliwi doskonalenie umiejętności korzystania z różnych źródeł informacji i efektywnego korzystania z narzędzi obsługi wyjątków. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) wyszukać w dostępnych źródłach potrzebne informacje. Zanotować również źródło informacji, 2) jeżeli system obsługuje wyjątki, zanotować warunki ich obsługiwania. komputer z zainstalowaną przeglądarką internetową. 39

5.22. Projektowanie bibliotek funkcji 5.22.1. Ćwiczenia Ćwiczenie 1 Napisz własną bibliotekę funkcji, która będzie zawierała deklaracje działań matematycznych takich jak: dodawanie, odejmowanie, mnożenie, dzielenie, potęgowanie i sumę ciągu arytmetycznego. Następnie napisz program, który z tych funkcji skorzysta. Wykonanie przez uczniów ćwiczenia umożliwi ukształtowanie umiejętności budowania i korzystania z bibliotek funkcji. Ćwiczenie powinno być wykonane zgodnie z podanym algorytmem. 1) napisać odpowiednie funkcje i sprawdzić ich działanie, 2) umieścić funkcje w bibliotece, 3) napisać program, który wykorzysta funkcje z biblioteki. 40

6. EWALUACJA OSIĄGNIĘĆ UCZNIA Test dwustopniowy do jednostki modułowej Programowanie w środowisku języka obiektowego Test składa się z zadań wielokrotnego wyboru, z których: zadania 1, 2, 3, 4, 5, 6, 11 są poziomu podstawowego, zadania 7, 8, 9, 10, 12 są poziomu ponadpodstawowego. Punktacja zadań: 0 lub 1 punkt Za każdą prawidłową odpowiedź uczeń otrzymuje 1 punkt. Za złą odpowiedź lub jej brak uczeń otrzymuje 0 punktów. Proponuje się następujące normy wymagań uczeń otrzymuje następujące oceny szkolne: dopuszczający za rozwiązanie co najmniej 5 zadań z poziomu podstawowego, dostateczny za rozwiązanie co najmniej 7 zadań z poziomu podstawowego, dobry za rozwiązanie 9 zadań, w tym co najmniej 2 z poziomu ponadpodstawowego, bardzo dobry za rozwiązanie11 zadań, w tym co najmniej 4 z poziomu ponadpodstawowego Klucz odpowiedzi: 1.b, 2.a, 3.d, 4.c, 5.b, 6.d, 7.c, 8.a, 9.a, 10.b, 11.a, 12.a Plan testu Nr zad. Cel operacyjny Kategoria celu Poziom wymagań Poprawna odpowiedź 1. Wymienić cechy języka obiektowego A P b 2. Rozpoznać główny blok programu B P a 3. Zdefiniować zmienną A P d 4. Rozpoznać podstawowe struktury języka C P c 5. Wymienić zastosowania funkcji B P b 6. Zdefiniować zmienne strukturalne A P d 7. Wymienić zastosowania wskaźnika B PP c 8. Opisać rodzaje składowych klas C PP a 9. Wymienić cechy funkcji zaprzyjaźnionych B PP a 10. Skorzystać z polimorfizmu D PP b 11. Określić źródło i cel strumieni C P a 12. Zastosować obsługę wyjątków C PP a 41

Przebieg testowania Instrukcja dla nauczyciela 1. Ustalić z uczniami termin przeprowadzenia sprawdzianu z wyprzedzeniem co najmniej jednotygodniowym. 2. Przygotować odpowiednią liczbę testów. 3. Zapewnić samodzielność podczas rozwiązywania zadań. 4. Przed rozpoczęciem testu przeczytać uczniom instrukcję dla ucznia. 5. Zapytać, czy uczniowie wszystko zrozumieli. Wszelkie wątpliwości wyjaśnić. 6. Nie przekraczać przeznaczonego czasu na test. Instrukcja dla ucznia 1. Przeczytaj uważnie instrukcję. 2. Podpisz imieniem i nazwiskiem kartę odpowiedzi. 3. Zapoznaj się z zestawem pytań testowych. 4. Test zawiera 12 pytań testowych. Do każdego pytania dołączone są cztery możliwości odpowiedzi. Tylko jedna odpowiedź jest prawidłowa. 5. Udzielaj odpowiedzi wyłącznie na załączonej karcie odpowiedzi, stawiając w odpowiedniej rubryce znak w przypadku pomyłki należy błędną odpowiedź zaznaczyć kółkiem, a następnie ponownie zakreślić odpowiedź prawidłową. 6. Pracuj samodzielnie, bo tylko wtedy będziesz miał satysfakcję z wykonanego zadania. 7. Jeżeli udzielenie odpowiedzi będzie Ci sprawiało trudność, wtedy najlepiej odłóż jego rozwiązanie na później. Wróć do niego, gdy zostanie Ci wolny czas. 8. Na rozwiązanie testu masz 40 minut. Materiały dla ucznia: instrukcja, zestaw pytań testowych, karta odpowiedzi. Zestaw pytań testowych 1. Program napisany według podejścia obiektowego powinien spełniać następujące założenia: a) Dziedziczenie, polikod, odwrócone interfejsy b) Abstrakcja, enkapsulacja, polimorfizm, dziedziczenie c) Przejrzystość, abstrakcja, grupowanie, struktura obiektowa d) Polimorfizmy, dziedziczenie, dziedziczenie odwrócone 2. Jak powinna wyglądać deklaracja głównego bloku programu? a) int main() {... return 0; } b) void main() 42

{ }... return 0; c) int Main() {... return 0; } d) void Main() {... return 0; } 3. Prawidłowa definicja zmiennych w języku C++ ma postać: a) var wiek =12; b) var int: wiek = 12; c) string wiek = 12 ; d) int wiek = 22; 4. Do podstawowych instrukcji w języku C++ należą konstrukcje: a) if, repeat until, for, while, switch, b) switch, goto, foreach, for, while, c) if, for, do while, while, switch, d) goto, ifnot, while, there. 5. Funkcje w języku C++ posiadają następujące własności: a) umożliwiają zgrupowanie kodu w jednym miejscu; mogą występować funkcje o tej samej nazwie i tej samej liczbie argumentów, b) umożliwiają zgrupowanie kodu w jednym miejscu; mogą występować funkcje o tej samej nazwie, ale różnej liczbie argumentów lub różnych typach argumentów, c) umożliwiają zgrupowanie kodu, ale ich ilość w kodzie programu jest ograniczona do 255, d) przyspieszają wykonanie programu, ale wymagają znacząco większej ilości pamięci. 6. Wskaż zdanie nieprawdziwe: a) zmienne definiowane w języku C++ mogą być typu: prostego, tablicowego, strukturalnego, b) zmienne zdefiniowane w języku C++ mogą być tablicą struktur, c) zmienne zdefiniowane w języku C++ mogą być strukturą tablic, d) nie wolno definiować zmiennych typu strukturalnego, które będą zawierały jako pod typ tablice i unie jednocześnie. 43

7. Wskaż zdanie NIEPRAWDZIWE: Wskaźniki w języku C++ mogą posłużyć do: a) przechowywania dowolnej ilości danych, nie określonej w momencie kompilacji programu, b) odwołania się do pierwszego elementu tablicy, c) obliczania wielkości pamięci zajętej przez daną zmienną, d) utworzenia struktury drzewa lub listy jedno i dwu kierunkowej. 8. Klasy w języku C++ dzielą składowe na następujące grupy: a) public, private, protected, b) public, private, final, protected, c) public, private, protect, local, d) publish, private, void. 9. Funkcje zaprzyjaźnione są: a) pomostem pomiędzy funkcjami dwóch różnych klas, b) elementem pozostałym z języka C i nie zalecanym do stosowania w języku C++, c) elementem dodanym do języka C++, aby umożliwić tworzenie programów na różne,platformy d) elementem koniecznym każdej nowo zdefiniowanej klasy własnej. 10. Polimorfizm umożliwia: a) odwołanie się z klasy bazowej do atrybutów i metod klasy dziedziczącej, b) odwołanie się do metod klasy bazowej, c) wielokrotne dziedziczenie, d) kompilację kodu klasy na wiele platform. 11. Zaznacz błędne sformułowanie: a) strumienie są konstrukcją, która umożliwia pobieranie danych tylko z kamer cyfrowych Video Streaming, b) strumienie służą do obsługi danych wejściowych i wyjściowych dla różnych źródeł, c) strumienie mogą być wykorzystane z plikami, klawiaturą i pamięcią, d) strumienie posiadają zdefiniowane operatory << i >>, które znacznie upraszają ich użycie. 12. Prawidłowy blok obsługi wyjątków wygląda następująco: a) try {... throw exception; } catch (type exception) {... } 44

b) c) d) do {... } catch exception (e) {... } try {... throw exception; } catch (type exception) {... } finally {... } try { try {... throw exception;... } } catch (type exception) {... } 45

Test typu próba pracy Instrukcja dla nauczyciela Zadania typu próba pracy pozwalają określić poziom ukształtowanych umiejętności w wyniku wykonania przez ucznia czynności zawodowych, sformułowanych w celach kształcenia jednostki modułowej, na w pełni wyposażonym stanowisku pracy. Testy typu próba pracy mogą pełnić rolę pomiaru kształtującego i sumującego. Zadaniem nauczyciela jest zapewnienie uczniom warunków do wykonania zadania w określonym w teście czasie. Należy przygotować: stanowiska komputerowe z oprogramowaniem niezbędnym do wykonania zadania (środowisko programistyczne umożliwiające pisanie programów w języku C++), plik z treścią i kryteriami oceny zadania. Treść zadania 1. Na pulpicie załóż folder i nazwij go swoim imieniem i nazwiskiem. 2. Zbuduj program obsługi serwisu samochodów: a. zaprojektuj system serwisowania samochodów według dostarczonej specyfikacji: niezbędne dane o samochodzie: marka, model, rocznik, pojemność silnika, właściciel, numer rejestracyjny, opis usterki, data przyjęcia do naprawy, data wykonania naprawy, lista części niezbędnych do wykonania naprawy (najwyżej 10), zadania, które powinien realizować program: przyjęcie samochodu do naprawy i ustawienie w kolejności zgłoszeń, zapisanie wykonania naprawy, wydanie samochodu po naprawie, zarchiwizowanie informacji o naprawie, obsługa napraw ekspresowych (pierwszy w kolejności), b. skompiluj kod i przetestuj program. 3. Zapisz pracę w miejscu wskazanym przez nauczyciela. Na wykonanie zadania masz 60 minut. Umiejętności podlegające ocenie: Projektowanie: Lp. Czynność wykonana przez ucznia Punktów max 1. Wypisanie atrybutów obiektu 1 2. Wypisanie metod obiektu 1 3. Rozrysowanie procesów 1 4. Naszkicowanie interfejsu programu 1 5. Zapisanie procedury testowania programu 1 Razem: 5 Punkty otrzym. 46

Tworzenie programu i testowanie: Lp. Czynność wykonana przez ucznia Punktów max 1. Zastosowanie odpowiednich elementów programowania 2 obiektowego 2. Utworzenie poprawnego kodu przyjęcia samochodu do 1 naprawy 3. Utworzenie poprawnego kodu wykonania naprawy 1 4. Utworzenie poprawnego kodu wydania samochodu po 1 naprawie 5. Utworzenie poprawnego kodu archiwizacji danych po 1 naprawie 6. Utworzenie poprawnego kodu przeglądania aktualnej 1 kolejki napraw 7. Utworzenie poprawnego kodu przeglądania archiwum 1 8. Utworzenie poprawnego kodu realizowania napraw 1 ekspresowych 9. Zapisanie zrzutów ekranu testowania programu 1 Razem: 10 Zapisanie pracy: Lp. Czynność wykonana przez ucznia Punktów max 1. Założenie folderu i zapisanie w nim plików pod czytelnymi 1 nazwami Razem: 1 Punkty otrzym. Punkty otrzym. Normy wymagań na poszczególne oceny Punkty Ocena 15-16 bardzo dobry 13-14 dobry 10-12 dostateczny 7-9 dopuszczający 0-6 niedostateczny 47