Programowanie obiektowe - zadania

Podobne dokumenty
Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java:

Deklaracja i definicja metod, zwracanie wartości z metod, przekazywania parametrów do metod

Programowanie 3 - Funkcje, pliki i klasy

Instrukcje sterujące

4. Napisz program wyznaczający wartość funkcji. f (x) = x cos x + e 4x 7. w zadanym punkcie.

Programowanie w języku Java

do instrukcja while (wyrażenie);

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

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

Podstawy Programowania C++

Programowanie obiektowe

*W uproszczeniu: jest dziewięciu sędziów przyznających po dwie noty: za wartość techniczną i artystyczną (skala od 0.0 do 6.0)

1. Napisz program, który wyświetli Twoje dane jako napis Witaj, Imię Nazwisko. 2. Napisz program, który wyświetli wizytówkę postaci:

Zajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej

Pętla for. Wynik działania programu:

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

I. Podstawy języka C powtórka

Zadania język C++ Zad. 1. Napisz program wczytujący z klawiatury wiek dwóch studentów i wypisujący informację o tym, który z nich jest starszy.

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

Programowanie - instrukcje sterujące

Programowanie obiektowe

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Aplikacje w środowisku Java

Język C, instrukcje sterujące (laboratorium)

Podstawy Programowania Podstawowa składnia języka C++

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

Konstrukcje warunkowe Pętle

Język C zajęcia nr 5

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

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.

Podstawy Programowania

Zadania z podstaw programowania obiektowego

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

11.6 Klasa do obsługi liczb wymiernych

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Podstawy obiektowości

Proste programy w C++ zadania

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 3

Napisz program wypisujący na standardowym wyjściu następujący napis: Napis zawierający różne dziwne znaczki // \ \$ &%.

Programowanie komputerowe. Zajęcia 3

Dziedziczenie. Zadanie 1

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Podstawy programowania II edycja 2016/17. Zadania laboratoryjne cz. I

Monika Wrzosek (IM UG) Programowanie obiektowe 21 / 25

void Pobierz(Student &a); void Wypisz(Student a); void Ustaw_zaliczenia(Student t[],int r); void Wypisz_najlepszych(Student t[],int r, float prog);

1 Powtórzenie wiadomości

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

Java Podstawy. Michał Bereta

Lab 9 Podstawy Programowania

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

Programowanie obiektowe. Materiały przygotował: mgr inż. Wojciech Frohmberg

Kompilacja javac prog.java powoduje wyprodukowanie kilku plików o rozszerzeniu.class, m.in. Main.class wykonanie: java Main

WYMAGANIA NA POSZCZEGÓLNE OCENY Z MATEMATYKI DLA KL. 5

PROGRAMOWANIE W C++ ZADANIA

Podstawy i języki programowania

Matlab Składnia + podstawy programowania

KRYTERIA WYMAGAŃ NA POSZCZEGÓLNE OCENY SZKOLNE. Przedmiot: matematyka. Klasa: 5

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Warunki logiczne instrukcja if

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

1. Napisz program wypisujący w kolejnych wierszach standardowego wyjścia pojedyncze słowa następującego napisu Bardzo dlugi napis. 2.

Instrukcja wyboru, pętle. 2 wykład. Podstawy programowania - Paskal

C-struktury wykład. Dorota Pylak

C-struktury wykład. Dorota Pylak

Podstawy programowania. Wykład: 4. Instrukcje sterujące, operatory. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

SZCZEGÓŁOWE WYMAGANIA EDUKACYJNE DLA KLAS 4-6 SP ROK SZKOLNY 2015/2016

LISTA 5. C++ PETLE for, while, do while

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Język ludzki kod maszynowy

TEMAT : KLASY DZIEDZICZENIE

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

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Języki i techniki programowania Ćwiczenia 2

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

Programowanie zaawansowane

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie - wykład 4

Języki programowania imperatywnego

1 Podstawy c++ w pigułce.

Część 4 życie programu

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

int suma; pralka czerwona; // definicja egzemplarza obiektu pralka * wskaŝ; // definicja wskaźnika pralka & ruda = czerwona; // definicja referencji

Instrukcje sterujące mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2012

KRYTERIA OCENIANIA Z MATEMATYKI W KLASIE IV

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

wykład II uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C - funkcje, tablice i wskaźniki wykład II dr Jarosław Mederski Spis

Projektowanie aplikacji internetowych laboratorium

IX. Wskaźniki.(3 godz.)

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Wprowadzenie do języka Java

Programowanie w języku Java

Zaprojektować i zaimplementować algorytm realizujący następujące zadanie.

Programowanie komputerowe. Zajęcia 1

Podstawy programowania obiektowego

Zapis algorytmów: schematy blokowe i pseudokod 1

Transkrypt:

Programowanie obiektowe - zadania Elementy języka Java Zad.1. Napisz program, który sprawdza, czy dana liczba całkowita jest parzysta. Zad.2. Napisz program, który sumuje dane dwie liczby tylko w przypadku, gdy obie są dodatnie. Zad.3. Napisz program, który sprawdza, czy dane trzy liczby całkowite tworzą trójkę pitagorejską. Przykład: liczby 3, 4, 5 stanowią trójkę pitagorejską, ponieważ 3 2 + 4 2 = 5 2. Uwaga: W programie należy założyć, że liczby mogą być w dowolnej kolejności, np. 5, 3, 4. Zad.4. Napisz program, który daną ocenę wypisuje słownie: 2 - niedostateczny, 3 - dostateczny, 4 - dobry, 5 - bardzo dobry, 6 - celujący. Wykorzystaj instrukcję switch, której działanie jest wyjaśnione na kolejnym slajdzie. Monika Wrzosek (IM UG) Programowanie obiektowe 1 / 13

Instrukcja switch switch (wyrażenie) { case wartość1 : instrukcja1; break; case wartość2 : instrukcja2; break;... default : instrukcjan; break; } Najpierw obliczane jest wyrażenie umieszczone w nawiasach po słowie switch. Jeśli jego wartość odpowiada którejś z wartości podanej w jednej z etykiet case, wykonywane będą instrukcje począwszy od tej etykiety. Ich wykonywanie kończy się po napotkaniu instrukcji break. Działanie instrukcji switch zostaje wówczas zakończone. Jeśli wartość wyrażenia nie zgadza się z żadną z wartości w etykietach case, wykonywane będą instrukcje po etykiecie default. Etykieta default jest opcjonalna, tzn. może zostać pominięta. Wówczas, jeśli w zbiorze etykiet case nie ma żadnej etykiety równej wartości wyrażenia, instrukcja switch nie będzie wykonana. Instrukcje występujące po etykiecie case nie muszą kończyć się instrukcją break. Jeśli jej nie umieścimy, to będą wykonywane instrukcje znajdujące się pod następną etykietą case. Monika Wrzosek (IM UG) Programowanie obiektowe 2 / 13

p u b l i c c l a s s Main { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { i n t x = 100, y = 5 ; char d z i a l a n i e = ; s w i t c h ( d z i a l a n i e ) { case + : System. out. p r i n t l n ( " Twoj wynik : " + ( x + y ) ) ; break ; case : System. out. p r i n t l n ( " Twoj wynik : " + ( x y ) ) ; break ; case : System. out. p r i n t l n ( " Twoj wynik : " + ( x y ) ) ; break ; case / : System. out. p r i n t l n ( " Twoj wynik : " + ( x / y ) ) ; break ; d e f a u l t : System. out. p r i n t l n ( " D z i a l a n i e n i e j e s t o b s l u g i w a n e. " ) ; break ; } } } Monika Wrzosek (IM UG) Programowanie obiektowe 3 / 13

Zad.5. Napisz program obliczający tygodniowe zarobki brutto i netto pracownika, gdy znana jest jego kategoria zaszeregowania i liczba przepracowanych godzin w ciągu tygodnia. Wykorzystaj instrukcję switch. Dla poszczególnych kategorii zaszeregowania obowiązują następujące stawki: Kategoria zaszeregowania Stawka [zł/godz.] A 15 B 25 C 30 D 35 Jeśli pracownik przepracuje więcej niż 40 godzin w ciągu tygodnia, zapłata za każdą nadgodzinę jest dwukrotnie wyższa od stawki pracownika. Podatek od zarobku jest obliczany według następującej tabeli: Zarobek Stopa procentowa podatku 700 15% 700 1200 20% > 1200 25% Monika Wrzosek (IM UG) Programowanie obiektowe 4 / 13

Zad.6. Napisz program wypisujący wszystkie dzielniki liczby naturalnej n w trzech wersjach: 1. z pętlą for, 2. z pętlą while, 3. z pętlą do... while. Zad.7. Napisz program obliczający sumę n ułamków postaci 1 2, 2 3, 3 4, 4 5,... Zwróć uwagę na działanie operatora dzielenia dla różnych typów argumentów, np: int i = 7; float j = i/2; //zmienna j ma wartość 3 float i = 7; float j = i/2; //zmienna j ma wartość 3.5 Przykład dla n = 5: 1 2 + 2 3 + 3 4 + 4 5 + 5 6 = 3.55 Zad.8. Napisz program sumujący losowe liczby naturalne z przedziału [0, 20] do momentu, gdy kolejna wylosowana liczba będzie taka sama jak poprzednia. Wykorzystaj pętlę do... while. Przykład: 6, 10, 3, 17, 2, 2; suma = 40. Monika Wrzosek (IM UG) Programowanie obiektowe 5 / 13

Zad.9. Napisz program sprawdzający, czy liczba naturalna n jest liczbą doskonałą. Liczba doskonała to taka, której suma dzielników (nie licząc samej liczby n) jest równa tej liczbie. Przykład 1: 6, bo 1 + 2 + 3 = 6. Przykład 2: 28, bo 1 + 2 + 4 + 7 + 14 = 28. Zad.10. Napisz program sprawdzający, czy dana liczba naturalna n jest pierwsza. Zad.11. Napisz program, który tworzy tablicę o rozmiarze 10, wypełnia ją losowymi liczbami całkowitymi z przedziału [0, 20], a następnie podaje liczbę elementów nieparzystych. Przykład: 12, 19, 3, 0, 16, 9, 12, 10, 1, 8; liczba elementów nieparzystych: 4. Zad.12. Napisz program, który tworzy macierz wymiaru 3x 4, wypełnia ją losowymi liczbami całkowitymi z przedziału [10, 50], a następnie znajduje element maksymalny. Przykład: 23 11 30 36 41 19 28 33 27 48 26 19 Element maksymalny: 48. Monika Wrzosek (IM UG) Programowanie obiektowe 6 / 13

Klasy, obiekty, pola i metody Zad.13. Uruchom Eclipse i utwórz nowy projekt. 1. Utwórz klasę o nazwie Punkt, zawierającą dwa publiczne pola typu int (współrzędną x i współrzędną y punktu). 2. W tym samym projekcie utwórz klasę Test. W metodzie main tej klasy utwórz dwa obiekty typu Punkt. Ustaw wartości ich współrzędnych (np. (1,2) i (5,3)) i wypisz je w postaci: Wspolrzedne punktu to (<wartosc x>, <wartosc y>). 3. Do klasy Punkt dodaj metodę wyswietl, która wyświetla wartości współrzędnych x i y punktu. Zmodyfikuj metodę main w klasie Test tak, aby korzystała z nowej metody. 4. Co się stanie, jeżeli oba pola klasy Punkt (współrzędną x i współrzędną y) zmienimy z publicznych na prywatne? 5. Do klasy Punkt dodaj dwie metody: pobierzx i pobierzy, które będą zwracały odpowiednio wartości współrzędnych x i y. Wykorzystaj te metody w metodzie main. Monika Wrzosek (IM UG) Programowanie obiektowe 7 / 13

6. Do klasy Punkt dodaj metodę, która będzie jednocześnie ustawiała pola x i y tej klasy. Nazwij ją ustawxy. Metoda przyjmuje dwa parametry. Przetestuj jej działanie w metodzie main. 7. Zmodyfikuj metodę ustawxy tak, aby jako parametr przyjmowała obiekt typu Punkt i przetestuj jej działanie. 8. Do klasy Punkt dodaj metodę pobierzwsp, która zwróci w wyniku nowy obiekt klasy Punkt o współrzędnych takich, jakie zostały zapisane w polach obiektu bieżącego. Przetestuj jej działanie w metodzie main. 9. Do klasy Punkt dodaj konstruktor dwuargumentowy inicjalizujący zmienne klasy oraz wypisujący komunikat: Utworzono punkt (<wartosc x>,<wartosc y>). W metodzie main klasy Test utwórz kilka obiektów typu Punkt. Zaobserwuj wywołania konstruktora. Monika Wrzosek (IM UG) Programowanie obiektowe 8 / 13

10. Do klasy Punkt dodaj konstruktor przyjmujący jako argument obiekt klasy Punkt, przepisujący wartości odpowiednich zmiennych. Przetestuj jego działanie. 11. Spróbuj utworzyć obiekt klasy Punkt poprzez wywołanie konstruktora bez żadnego argumentu. Co się stanie? 12. Wykomentuj oba konstruktory klasy Punkt (i miejsca ich wywołania w klasie Test) i ponownie wykonaj poprzednie zadanie. Co się stanie? Monika Wrzosek (IM UG) Programowanie obiektowe 9 / 13

Zad.14. Napisz klasę o nazwie Prostokat zawierającą dwie składowe typu Punkt - współrzędne lewego górnego oraz prawego dolnego wierzchołka prostokąta (rozpatrujemy prostokąty o bokach równoległych do osi układu współrzędnych). Zaimplementuj następujące metody dla utworzonej klasy. 1. konstruktor przyjmujący 4 argumenty typu int (kolejne współrzędne punktów), inicjalizujący składowe obiektu (wypisujący odpowiedni komunikat) 2. konstruktor przyjmujący 2 argumenty typu Punkt, 3. metodę wypisującą na ekranie komputera informację o danym prostokącie, 4. metodę obliczającą pole powierzchni prostokąta, 5. metodę, która sprawdza, czy podany punkt leży wewnątrz prostokąta. Utwórz obiekty zaprojektowanej klasy przy użyciu obu konstruktorów. Sprawdź poprawność działania napisanych metod. Monika Wrzosek (IM UG) Programowanie obiektowe 10 / 13

Zad.15. Utwórz klasę Wymierne do obsługi liczb wymiernych. 1. Klasa będzie zawierała dwa pola typu int: licznik i mianownik. 2. Do klasy dodaj dwa konstruktory: dwuargumentowy - ustawiający pola licznik i mianownik, jednoargumentowy - przewidziany do inicjalizacji obiektów o mianowniku 1. 3. Liczba wymierna ma być reprezentowana w postaci nieskracalnej. W tym celu napisz metodę NWD, znajdującą największy wspólny dzielnik dwóch liczb całkowitych. 4. Dodaj metodę Skroc, która podzieli pola licznik i mianownik przez ich największy wspólny dzielnik. Wykorzystaj metodę NWD. 5. Zmodyfikuj konstruktor dwuargumentowy tak, aby przed nadaniem wartości polom licznik i mianownik skracał je. 6. Napisz metody: PobierzLicznik - zwracającą w wyniku wartość pola licznik, PobierzMianownik - zwracającą w wyniku wartość pola mianownik, Wypisz - wypisującą wartości pól klasy w postaci: licznik = <wartość>, mianownik = <wartość> Monika Wrzosek (IM UG) Programowanie obiektowe 11 / 13

7. Napisz metodę Dodaj, której parametrem będzie obiekt klasy Wymierne. Metoda powinna zwracać referencję do nowo utworzonego obiektu, zawierającego wynik sumowania dwóch liczb wymiernych. Np. instrukcja Wymierne u3 = u1.dodaj(u2); spowoduje dodanie ułamków u1 i u2, zapisanie wyniku dodawania w nowym obiekcie, do którego referencja będzie przypisana zmiennej u3. 8. W podobny sposób utwórz metody Odejmij i Pomnoz. 9. Kolejna metoda, DodajDoSiebie, nie tworzy nowego obiektu, ale wynik dodawania zapisuje w obiekcie bieżącym (tzn. w obiekcie na rzecz którego została wywołana). Np. wywołanie u1.dodajdosiebie(u2); spowoduje dodanie ułamków u1 i u2 i zapisanie wyniku dodawania w obiekcie u1 (czyli ułamek u1 zostanie zmieniony). 10. Podobnie napisz metody OdejmijOdSiebie i PomnozPrzezSiebie. 11. Przeciąż metody Dodaj i Pomnoz tak, aby dodawały do ułamka liczby typu int i mnożyły ułamki przez liczby typu int. 12. Utwórz klasę WymierneTest z metodą main, w której przetestujesz wszystkie napisane metody klasy Wymierne. Monika Wrzosek (IM UG) Programowanie obiektowe 12 / 13

Zad.16. Utwórz klasę Student z następującymi składowymi - pola przechowujące: 1. imię, 2. nazwisko, 3. numer indeksu, 4. rok studiów, 5. listę przedmiotów (np. w tablicy napisów (String); zakładamy, że nie ma więcej niż 50 przedmiotów; zapamiętujemy, do którego miejsca tablica jest wypełniona); - konstruktory: 1. 5-argumentowy, przyjmujący imię, nazwisko, numer indeksu, rok, przedmioty; 2. 4-argumentowy, przyjmujący imię, nazwisko, numer indeksu, rok; natomiast na listę przedmiotów wstawiający jeden przedmiot: "Programowanie obiektowe"; - metody: 1. wypisująca komplet danych, np. w postaci: (Jan Kowalski, 234567, rok 2, Programowanie obiektowe, Analiza matematyczna, Rachunek prawdopodobieństwa), 2. zwracająca imię i nazwisko, 3. zwracająca numer indeksu, 4. zwracająca rok studiów, 5. zwiększająca rok studiów, 6. dodająca przedmiot (przyjmująca parametr typu String). Utwórz klasę Main z metodą main i przetestuj wszystkie metody klasy Student. Monika Wrzosek (IM UG) Programowanie obiektowe 13 / 13