Ćwiczenia 11
Podstawy programowania – Użycie klas
Zmodyfikuj zadania domowe z ostatnich ćwiczeń tak, aby wykorzystywały klasy.
1. Napisz program, który będzie wczytywał z klawiatury (lub jako parameter wywołania programu) jedną liczbę – rozmiar macierzy, np. 3. Następnie będzie alokował pamięć na trzy macierze typu float o zadanym rozmiarze, np. 3x3. W kolejnym kroku program ma wypełnić dwie z nich losowymi liczbami z przedziału od -10 do 10 (wykorzystaj funkcję rand() z biblioteki cstdlib). Następnie program ma wykonać mnożenie tych dwóch macierzy i wynik zapisać w trzeciej, do tej pory pustej. Na koniec program ma wypisać wszystkie trzy macierze na ekran i zwolnić zaalokowaną pamięć.
Modyfikacja: Stwórz klasę Macierz reprezentującą macierze. Wewnątrz tej klasy stwórz odpowiedni konstruktor alokujący pamięć oraz dekonstruktor zwalniający tą pamięć. W klasie stwórz również następujące, dodatkowe metody:
PomnóżMacierze - przyjmującą jako parameter wejściowy obiekt reprezentujący drugą macierz wykorzystaną do mnożenia.
*Wyznacznik – metoda wyznaczająca I zwracająca wyznacznik macierzy (patrz:
http://eduinf.waw.pl/inf/alg/001_search/0082.php)
2. Stwórz program, który będzie implementował ideę listy łączonej (patrz rysunek)
Każdy element (noda) listy ma być zmienną strukturalną zawierającą dwa elementy: liczbę typu int (info) oraz wskaźnik na kolejny element (link).
Zaimplementuj tworzenie takiej listy n elementowej, gdzie n podawane jest z klawiatury przez użytkownika. Wypełnij elementy listy (info) losowymi liczbami. Ustaw odpowiednio wskaźniki wszystkich elementów. Na koniec wypisz zawartość całej listy (parameter info) przechodząc po niej za pomocą wskaźników.
Modyfikacja: Zmień strukturę odpowiadającą elementom listy na klasę. Całą listę również stwórz w postaci klasy. Dodaj do program możliwość usuwania wybranych elementów listy.
Zadanie domowe:
1. Do klasy Macierz z zadania 1 dodaj metodę WartościWłasne wyznaczającą i zwracającą wartości własne danej macierzy.