Semestr wiosenny 2024/25

Konsultacje:
wt. 15-16, śr. 14-15 (p. 904)
Wykład:
śr. 17:15-19:00 s. WS
laboratorium:
śr. 15:15-17:00 s. 417


Projekty na zaliczenie:


Projekt 1:

Napisz program, który obliczy przybliżoną wartość liczby pi, korzystając z dwóch możliwych metod. Pierwsza metoda korzysta ze wzoru całkowego: pi to jest całka od 0 do 1 z funkcji 4/(1+x^2). Druga metoda to tak zwana metoda Monte Carlo. Program generuje losowo punkty w kwadracie [0,1]x[0,1], i sprawdza, które z nich wpadły do ćwiartki koła o środku w punkcie (0,0) i promieniu 1. Proporcja tych, które wpadły do wszystkich powinna wynosić pi/4. Program powinien poprosić użytkownika o wybór metody obliczania i następnie obliczyć. W przypadku metody całkowej całkę należy wyliczyć metodą Simpsona. Należy uzyskać od użytkownika dopuszczalny błąd, a nastepnie skorzystać ze znanych oszacowań na błąd w metodzie Simpsona, żeby wyznaczyć gęstość podziału. W przypadku metody Monte Carlo należe uzyskać od użytkownika ilość punktów do rzucenia. Program powinien komunikować się z użytkownikiem, i proponować mu ponowne obliczenie, dopóki użytkownik nie wybierze opcji zakończenia. Obie metody obliczenia powinny być wydzielone do osobnych plików i kompilowane osobno. Wszelkie problemy i niejasności proszę zgłaszać na wykładzie/laboratoriach/konsultacjach. Proszę pracować samodzielnie. W razie wątpliwości sprawdzający może autora/autorkę dopytać

Uwaga: Pochodna rzędu 4 funkcji 1/(1+x^2) przyjmuje swoją największą wartość (co do modułu) na przedziale [0,1] w punkcie 0, i ta największa wartość (co do modułu) wynosi 24. Kto nie wierzy - niech zmierzy.



Termin złożenia projektu: niedziela 18.05. (włącznie).


Projekt 2:

Napisz program, który będzie bibliotekę utworów muzycznych. Program ma tworzyć i obsługiwać dynamiczną listę dwukierunkową. Lista powinna być obiektem, i wszystkie operacje typowe dla niej powinny być jej metodami. Elementami listy powinny być obiekty, zawierające typowe dane dla utworów muzycznych: wykonawca, tytuł, czas trwania, data wydania, album. Program powinien prezentować menu, które powinno zawierać co najmniej: dodaj utwór, usuń utwór, sortuj listę wg daty wydania (to pole powinno być obowiązkowe), wypisz listę. Wszystkie operacje charakterystyczne dla tego obiektu powinny być metodami tej klasy. Sortowanie można zaimplementować "bąbelkowo", wtedy jedyna operacja na liście, to byłaby zamiana kolejności bezpośrednich sąsiadów. Wszystkie klasy powinny być wydzielone do oddzielnego pliku *.cpp. Powinien być stworzony i "inkludowany" odpowiedni plik nagłówkowy. Klasy powinny spełniać warunki hermetyzacji, wszystkie jej wewnętrzne składniki powinny być prywatne Program powinien, jak zwykle, zawierać wystarczająco dużo komentarzy, aby dało się łatwo wszystko zrozumieć.

Uwaga:Używać można tylko narzędzi omawianych na wykładzie. Proszę nie korzystać z szablonów STL, będą za to zabierane punkty. W razie wątpliwości proszę kontaktować się ze mną, albo ze swoim prowadzącym.



Termin złożenia projektu: poniedziałek 16.06. (włącznie)


Uwaga: projekty (w postaci pliku .cpp lub kompletu plików .h .cpp) proszę przesłać swojemu prowadzącemu grupę laboratoryjną. Plik powinien zawierać wystarczająco dużo komentarzy, żeby prowadzący mógł go skompilować i przetestować. Proszę dowiedzieć się u prowadzącego, jakie szczegółowe kryteria oceniania będzie stosował. W trakcie pisania projektu jak najbardziej można się konsultować z innymi, ale każdy projekt powinien być napisany i przetestowany samodzielnie. Prowadzący po złożeniu projektu mogą zadawać pytania i wyjaśniać różne wątpliwości.



Zasady zaliczania:

Zasady zaliczania ustala prowadzący grupę laboratoryjną. Powyższe projekty będą podstawą zaliczenia w mojej (Paluszyński) grupie. Stopień będzie wspólny dla laboratorium i wykładu.



Tematy na laboratorium:

Lista 1 24.02.25 Lista 2 10.03.25 Lista 3 24.03.25
Lista 4 7.04.25 Lista 5 28.04.25 Lista 6 11.05.25


Materiały z wykładu:

1 Wstęp
Przykład 1 2 Instrukcje sterujące
Przykład 1
3 Zmienne
Przykład 1
Przykład 2
4 Operatory
5 Operatory 2
6 Tablice

 
7 Funkcje
main.cpp   funkcje.cpp
funkcje.h
8 Wskaźniki
  
9 Listy dwukierunkowe
Przykład 1 10 Klasy
main.cpp
listy.cpp
listy.h
ksiazka.cpp
ksiazka.h
TUlamek.cpp