Zadania do wykonania
Zadanie 1 (max. 5 punkty)
Napisać program, który:
- tworzy i inicjuje z użyciem inicjatora klamrowego tablicę ltab liczb całkowitych,
- wylicza sumę jej elementów o parzystych indeksach,
- tworzy tablicę łańcuchów znakowych txt, każdy z których składa się z l powtórzeń litery x, gdzie l - kolejny element tablicy ltab, x kolejna litera, poczynając od 'a'.
- przestawia miejscami w tablicy txt elementy parzyste i nieparzyste (czyli - uwaga! - pierwszy z drugim, trzeci z czwartym, etc.)
- wyprowadza na konsolę w kolejnych wierszach kolejne elementy tablicy txt.
Przykład:
jeżeli tablica ltab zawiera elementy 2, 5, 3, 1, 7 to sumaParzystych = 12.
txt jest tablicą o elementach "aa", "bbbbb", "ccc", "d", "eeeeeee"
wynik dzialania programu:
"bbbbb"
"aa"
"d"
"ccc"
"eeeeeee"
Uwaga: każde z w/w części zadania (oprócz pierwszego) należy oprogramować jako odrębną metodę.
Zapewnić sprawdzanie błędów
Zadanie 2 (max. 6 punktów)
Napisać program, który wczytuje napisy podawane przez użytkownika (dopóki
nie zrezygnuje on z ich wprowadzania), a następnie podaje liczbę wystąpień
wszystkich wprowadzonych napisów. Np. po wprowadzeniu napisów Aaa, Bbb, Aaa,
Ccc, Aaa, Bbb powinniśmy otrzymać raport: Aaa 3, Bbb 2, Ccc 1.
W celu zliczania liczby wystąpień takich samych napisów użyć tablicy (koniecznie).
Spróbować uwzględnić możliwość wystąpienia całkowicie dowolnej liczby napisów.
Punktacja:
podstawowa częśc zadania - 2 punkty.
uwzględnienie dowolnej liczby napisów - dodatkowe 4 punkty.
Zadanie 3 (max. 5 punktów)
Stworzyć klasę Matrix i dostarczyć w niej metod sumowania, odejmowania, mnożenia przez skalar i mnożenia macierzy
oraz wyliczania sum wierszowych i kolumnowych oraz sumy elementów całej macierzy.
Przetestować klasę dla następujących operacji na macierzach:
2 3 1
A = 1 7 B = 1 8 2 x = [ 1 2 3 ] y = 2 q = 3
3.1 2 2 2 2 3
C = 2 2 2
2 2 2
operacje:
A+B, B+C, AB, BC, Ax, Bx, Ay, By, xy, yx, qA, qx, suma kolumnowa, wierszowa i wszystkich elementów A, B, x, y.
Uwaga: z operacjami na macierzach można zapoznać się w dowolnym elementarnym
podręczniku podstaw matematyki (nie mówiąc już o algebrze liniowej) dla dowolnego
kierunku studiów.
Zadanie 4 (max. 8 punktów)
Mamy półki. Każda półka ma swoją nazwę i rozmiar (liczbę książek, które może pomieścić)
Mamy książki. Opis książki: autor, tytuł.
Inicjalnie każda książka jest poza jakąkolwiek półką ("luzem").
Można ją wstawić na wybraną półkę, albo zdjąć z półki, na której się znajduje.
Napisać program, który manipuluje N książkami i M pólkami
wstawiając je na półki i przestawiając.
Dla każdej książki należy umożliwić uzyskanie info o książce, zawierającej Autora i Tytuł.
Oprócz tego o każdej książce powinniśmy móc się dowiedzieć gdzie się akurat znajduje (nazwa półki lub "luzem").
Dla każdej półki należy umożliwić uzyskanie info w postaci:
Nazwa półki
---------------
lista książek
W programie pokazać efekty wstawiania i przestawiania książek w postaci wyprowadzania informacji o książkach i o półkach.
Zadanie 5 (8p) - Tabele ocen studentów
Zdefiniuj i przetestuj w programie klasę Student reprezentującą tabelę
ocen z różnych przedmiotów dla danego studenta:
|
zaliczenie |
egzamin |
ANG |
3.0 |
? |
MAD |
4.5 |
3.0 |
PRG1 |
3.5 |
? |
ALG |
4.0 |
3.5 |
Dane do tabeli powinny być wprowadzane z okienek dialogowych lub z konsoli z obsługą błędów
.
Zastosuj tablicę dwuwymiarową i wymyśl sposób wypełnienia tabeli jeżeli z
danego przedmiotu nie było egzaminu.
W klasie Student zdefiniuj nastepujące metody:
min() //podaje najniższą ocenę w tabeli
max() //podaje najwyższą ocenę w tabeli
sred() //oblicza średnią arytmetyczną ocen w tabeli
minZal() // podaje najniższą ocenę zaliczenia
maxZal() //podaje najwyższą ocenę zaliczenia
minEgz() //podaje najniższą ocenę z egzaminu
maxEgz() //podaje najwyższą ocenę z egzaminu
sredZal() //oblicza średnią arytmetyczną ocen z zaliczeń
sredEgz() //oblicza średnią arytmetyczną ocen z egzaminów
Rozważ możliwość zastosowania tablicy lub innej struktury danych do
przechowywania obiektów klasy Student.