Podstawy programowania obiektowego


Zajęcia 1

Pisanie prostych programów: zmienne, instrukcje przypisania, operatory, proste operacje wejścia/wyjścia.

Zadanie 1.1
Napisz program, który wyświetli na ekranie Twoje imię i nazwisko oraz datę urodzenia.
Przykład:
Jan Kowalski
30 stycznia 1978 roku.

Zadanie 1.2
Napisz program, który wczyta dwie liczby rzeczywiste i wyświetli na ekranie ich sumę, różnicę oraz iloczyn z dokładnością do dwóch miejsc po przecinku.

Zadanie 1.3
Napisz program, który wczyta wymiary prostokąta (liczby całkowite), a nastąpnie wyświetla jego pole i obwód.
Przykład:
Podaj wymiary prostokata: 10 12
Pole prostokata wynosi 120, a obwod 44.

Zadanie 1.4
Zadanie 1.5
Napisz program, który po podaniu odległości w centymetrach (liczba całkowita) wypisze tą odległość w metrach, decymetrach i centymetrach.
Przykład:
Podaj liczbę centymetrów: 123
123 cm to 1 metr, 2 decymetry i 3 centymetry.

Zadania do samodzielnej ralizacji:

Zadanie 1.6
Napisz programktóry wczyta wymiary trapezu (liczby całkowite), a nastąpnie wyświetla jego pole i obwód.
Przykład:
Podaj wymiary trapezu:
Podstawy trapezu: 10 12
Wysokosc trapezu: 10
Pole trapezu wynosi 110

Zadanie 1.7
Napisz program, który po podaniu odległości w calach (liczba całkowita) wypisze tą odległość w metrach, decymetrach, centymetrach i milimetrach.
Przykład:
Podaj liczbę cali: 15
15 cali to 3 dm, 8 cm i 1 mm.

Zajęcia 2

Instrukcje wyboru i instrukcje iteracyjne.

Zadanie 2.1
Napisz program, który wczyta od użytkownika długość promienia i w zależności od wyboru użytkownika obliczy obwód lub pole koła.
Przykład:
Podaj długość promienia: 10
Wybierz:
1 - aby obliczyć pole koła
2 - aby obliczyć obwód koła
Twój wybór: 1
Pole koła o promieniu 10 wynosi: 314.

Zadanie 2.2
Napisz program, który dokona zamiany podanej przez użytkownika liczby naturalnej od 1 do 7 na odpowiadający jej dzień tygodnia. Obsłuż sytuację, gdy użytkownik poda wartość spoza zakresu.
Przykład 1:
Podaj numer dnia tygodnia: 3
Trzeci dzień tygodnia to środa.
Przykład 2:
Podaj numer dnia tygodnia: 9
Podałeś wartość spoza zakresu. Tydzień ma siedem dni!

Zadanie 2.3
Napisz program wczytujący kolejne liczby z klawiatury i kończący się gdy ich suma przekroczy wartość 100. Na zakończenie program powinien wypisać ile liczb wczytał i ile wyniosła ich suma.

Zadanie 2.4
Napisz program wczytujący kolejne liczby z klawiatury i kończący się gdy ich suma przekroczy wartość 100. Na zakończenie program powinien wypisać ile liczb wczytał i ile wyniosła ich suma.
Napisz program, który b¦dzie wczytywaa od u»ytkownika liczby dopóki ich suma będzie mniejsza od liczby X (Xpodaje użytkownik na początku działania programu). Suma nie powinna uwzględniać ostatniej z podawanych liczb (tej, która spowodowaaa przekroczenie wartości sumy równej X ). Na zakończenie program powinien wypisać ile liczb wczytał i ile wyniosła ich suma.

Zadanie 2.5
Napisz program wyznaczający wartość minimalną z n liczb. Wartość n podawana jest przez użytkownika na początku działania programu.
Przykład:
Podaj ile liczb chcesz wczytać: 5
Podaj kolejne 5 liczb: 9
3
7
2
3
Wartość minimalna z tych liczb to: 2.

Zadanie 2.6
Napisz program wyświetlający na ekranie kolejne 20 liczb parzystych począwszy od zadanej przez użytkownika wartości.

Zadanie 2.7
Napisz program rysujący na ekranie za pomocą podanego znaku trójkąt równoramienny o zadanej przez użytkownika długości podstawy.
Przykład 1:
Podaj znak: *
Podaj długość podstawy: 7
        *
  ***
 *****
*******
Przykład 2:
Podaj znak: *
Podaj długość podstawy: 8
        **
  ****
 ******
********


Zadania do samodzielnej realizacji:

Zadanie 2.8

Napisz program, który wczytuje liczbę n (gdzie 0 <= n =< 10000), i wypisuje jej słowny odpowiednik.
Przykład:
22 słownie dwadzieścia dwa,
0 słownie zero,
5463 słownie pięć tysięcy czterysta sześdziesiąt trzy.

Zadanie 2.9
Napisz program, który sprawdzi w której ćwiartce układu współrzędnych leży punkt o współrzędnych podanych przez użytkownika.

Zadanie 2.10
Napisz program, który w zależności od wyboru użytkownika będzie dokonywał przeliczania z centymetrów na cale i odwrotnie.

Zadanie 2.11
Napisz program wczytujący liczby z klawiatury, z jednoczesnym zadawaniem pytania "czy koniec wprowadzania t/n ?". Na zakończenie program powinien wyświetlić wartość: średnią, maksymalną, minimalną z podanych liczb.

Zadanie 2.12
Napisz program, który wczyta od użytkownika n liczb i zliczy ile z nich jest parzystych. Wartość n podawana jest przez użytkownika na początku działania programu.

Zadanie 2.12
Napisz program, który wczytuje liczby całkowite podane przez użytkownika aż do momentu podania wartości 0, a następnie wyświetla ich iloczyn. Zero kończące podawanie danych nie jest uwzględniane w wyniku.

Zajęcia 3

Typy tablicowe i algorytmy operujące na tablicach.

Zadanie 3.1
Napisz program, który:
Zadanie 3.2
Napisz program, który po wygenerowaniu 10-cio elementowej tablicy liczb losowych wypisze ją na ekran a następnie wyznaczy i wyświetli na ekranie:
Każda wyliczona wartość powinna być wypisana w nowej linii i poprzedzona informacją co oznacza i jakie liczby brały udział w jej wyznaczaniu.

Zadanie 3.3
Napisz program, który po wylosowaniu liczb z przedziału zadanego przez użytkownika do N-elementowej (N wczytaj od użytkownika) tablicy liczb całkowitych obliczy i wyświetli na ekranie:
Każda wyliczona wartość powinna być wypisana w nowej linii i poprzedzona informacją co oznacza i jakie liczby brały udział w jej wyznaczaniu.

Zadanie 3.4
Napisz program, który obliczy sume dwóch wektorów N-elementowych. N wczytaj od użytkownika.

Zadanie do samodzielnej realizacji:

Zadanie 3.5
Napisz program, który
a) wczyta dane z klawiatury do 10-elementowej tablicy liczb całkowitych,
b) wypisze ją na ekran,
c) sprawdzi czy elementy tablicy mają symetryczną zawartość (tzn. pierwszy element równy ostatniemu, drugi równy przedostatniemu, itd. )

Zadanie 3.6
Napisz program, który obliczy iloczy skalarny dwóch wektorów N-elementowych. N wczytaj od użytkownika.

Zadanie 3.7
Napisz program, który utworzy losowo N-elementową tablicę liczb całkowitych a następnie obliczy i wyświetli na ekranie:
Każda wyliczona wartość powinna być wypisana w nowej linii i poprzedzona informacją co oznacza i jakie liczby brały udział w jej wyznaczaniu.

Zadanie 3.8
Napisz program, który utworzy N-elementową tablicę licz całkowitych, wypisze ją na ekran a nastepnie przesunie jej zawartość cyklicznie o jedną pozycję "w dół", tzn. pierwszy element na miejsce ostatniego, drugi na miejsce pierwszego, trzeci na miejsce drugiego, itd.

Zajęcia 4

Wyodrębnianie kodu w postaci funkcji. Wywoływanie funkcji. Parametry funkcji.

Działanie każdej funkcji sprawdź w programie.

Zadanie 4.1
Napisz funkcje static void MojeDane(), która wypisze na ekranie Twoje imię i nazwisko oraz datę urodzenia.

Zadanie 4.2
Napisz funkcję static void Nieparzyste(int a, int b), która wypisze na ekran wszystkie liczby nieparzyste z zadanego przedziału. Parametrami funkcji są krańce przedziału.

Zadanie 4.3
Napisz funkcję static int silnia(int n), która obliczy wartość silni dla zadanej liczby n.

Zadanie 4.4
Napisz funkcję static int Min(int[] tab), zwracającą wartość elementu minimalnego w jednowymiarowej tablicy liczb całkowitych.

Zadanie 4.5
Napisz funkcję static int Suma(int[] tab), zwracającą sumę elementów jednowymiarowej tablicy liczb całkowitych.

Zadanie 4.6
Napisz cztery warianty funkcji static int sum(int min, int max), która dla liczb z zakresu <min, max>:
Zadanie do samodzielnej realizacji:

Zadanie 4.7
Napisz funkcję int ktoraCwiartka(float x, float y), która dla punktu o współrzędnych (x, y) zwróci wartość 1..4, identyfikującą jedną z ćwiartek układu współrzędnych wewnątrz której leży ten punkt. W przypadku, gdy punkt leży na którejkolwiek osi współrzędnych funkcja powinna zwrócić 0.

Zadanie 4.8
Napisz funkcję static int IleElementow(int[] tab, int x), zwracającą liczbę elementów jednowymiarowej tablicy liczb całkowitych, których suma jest większa od x.

Zadanie 4.9
Napisz funkcję static int sumaAr(int n, int r), która wyznaczy sumę n elementów ciągu arytmetycznego o wyrazie początkowym równym 1 i zadanej różnicy r.

Zadanie 4.10
Napisz trzy warianty funkcji static void zamiana(ref int  a, ref int b), która zamieni wartości dwóch liczb wskazanych przez a i b:

Zajęcia 5

Podejście obiektowe kontra strukturalne do tworzenie programu. Pisanie prostych klas.

Zadanie 5.1
Stwórz klasę Punkt, która zawiera współrzędne punktu oraz jego kolor.
Punkt możemy utworzyć podając jego obydwie współrzędne i kolor, podając tylko kolor (wtedy współrzędne mają losowe wartości) lub nie podając żadnych informacji (wszystkie pola klasy otrzymają losowe wartości).
Nastepnie napisz program, który:
Zadanie do samodzielnej realizacji
Zadanie 5.2
Stwórz klasę Kolo, która zawiera współrzędne środka, długość promienia oraz kolor wypełnienia.
Koło możemy utworzyć podając współrzędne środka, długość promienia i kolor, podając tylko kolor (wtedy współrzędne i promień mają losowe wartości) lub nie podając żadnych informacji (wszystkie pola klasy otrzymają losowe wartości).
Następnie napisz program, który:

Zajęcia 6

Wykorzystanie kompozycji w celu tworzenia nowych klas.


Zajęcia 7

Wykorzystanie dziedziczenia w celu tworzenia nowych klas.



Przykładowe zadania na zaliczenie