Semestr wiosenny 2021/22
Projekty na zaliczenie:
Projekt 1:
Napisz program, który obliczy przybliżoną wartość liczby pi, korzystając ze wzoru całkowego: pi
to jest całka od 0 do 1 z funkcji 4/(1+x^2). Program powinien poprosić użytkownika o wybór
maksymalnego dopuszczalnego błędu eps>0, i wybór metody całkowania: metoda trapezów lub Simpsona.
Należy skorzystać ze znanych oszacowań błędu w powyższych metodach.
Uwaga 1: 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.
Uwaga 2: Samo obliczenie całki powinno być wydzielone do oddzielnej
funkcji. Każda z dwóch metod całkowania powinna być w oddzielnej funkcji, a każda z tych funkcji w
oddzielnym pliku *.cpp.
Termin złożenia projektu: niedziela 29.05. (włącznie). Projekty proszę
przesłać mailem osobie prowadzącej waszą grupę laboratoryjną.
Projekt 2:
Napisz program, który będzie bibliotekę utworów muzycznych. Program ma tworzyć i obsługiwać dynamiczną
listę dwukierunkową. Elementami listy powinny być struktury, 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ę. Sorotowanie można zaimplementować "bąbelkowo", wtedy jedyna
operacja na liście, to byłaby zamiana kolejności bezpośrednich sąsiadów. Wszystkie funkcje operujące
na liście powinny być wydzielone do funkcji, a funkcje wydzielone do oddzielnego pliku *.cpp. Powinien być
stworzony i "inkludowany" odpowiedni plik nagłówkowy. Funkcje nie powinny operować na żadnych zmiennych
globalnych: cała komunikacja przez zrgumenty formalne i/lub zwracaną wartość. Uwaga: nie można korzystać
z żadnych bibliotek które nie były omawiane na wykładzie (np. vector). Program powinien, jak zwykle,
zawierać wystarczająco dużo komentarzy, aby dało się łatwo wszystko zrozumieć.
Termin złożenia projektu: niedziela 26.06. (włącznie)
Projekt 3:
Zmodyfikuj Projekt 2 w ten sposób, że struktury zostaną zastąpione przez obiekty. Trzeba zdefiniować klasę która będzie zawierała
konkretny utwór. Niezależnie od tego, trzeba stworzyć klasę lista. Będzie zawierała wskaźnik do początku, ew. także końca. Wszystkie funkcje, które
mieliśmy do tej pory należy zrealizować jako metody tych klas. Trzeba przemyśleć, do której klasy dana funkcja pasuje jako metoda. Klasy
powinny być zdefiniowane we własnych plikach *.cpp i posiadać własne pliki nagłowkowe *.h.
Termin złożenia projektu: niedziela 26.06. (włącznie)
Uwaga: projekty (w postaci pliku .cpp lub kompletu plików .h .cpp) proszę przesłać mailem 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:
Podstawą zaliczenia są projekty. Za każdy projekt będą przydzielane punkty, a suma zostanie przeliczona na stopień. Ten stopień będzie wspólny dla laboratorium i wykładu.
Tematy na laboratorium:
Lista 1 | 7.03.22 | Lista 2 | 21.03.22 | Lista 3 | 28.03.22 |
Lista 4 | 11.04.22 | Lista 5 | 30.05.22 | Lista 6 | 13.06.22 |
Materiały z wykładu: