Semestr wiosenny 2019/20
Projekty na zaliczenie:
Projekt 1:
Napisz program, który poprosi użytkownika o podanie roku (w zakresie od
-2000 do 2020) i zwróci wiek, do którego należy ten rok. W przypadku lat
ujemnych, zwraca odpowiedni wiek z dodatkiem p.n.e. Następnie
program pyta się użytkownika, czy chce kontynuować, i kontynuuje lub kończy.
Przykłady: rok 2000 -> 20 wiek, rok 24 -> 1 wiek, rok -24 -> 1 wiek p.n.e.,
itp
Termin złożenia projektu: niedziela 22.03. (włącznie)
(przedłużony)
Projekt 2:
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 17.05. (włącznie) (termin wydłużony)
Projekt 3:
Napisz program, który będzie rozbudowaną wersją Przykładu 1 do wykładu "Listy". Program ma
realizować i utrzymywać listę dwukierunkową zawierającą dane książek. Każda książka jest strukturą,
trzeba rozbudować tą strukturę o powiedzmy wydawnictwo. Menu powinno oferować
możliwość sortowania listy, i użytkownik miałby wybór, czy sortować alfabetycznie względem Tytułu lub
nazwiska autora, albo względem roku wydania. Lista byłaby wtedy sortowana w pamięci. Najlepiej
sortować "bąbelkowo" (informacje można znaleźć w dowolnym podręczniku lub w sieci). Będzie to wymagało
ewentualnego odwrócenia kolejności dwóch kolejnych elementów listy. Definicje funkcji operujących
na liście powinny być w oddzielnym pliku *.cpp, należy też stworzyć odpowiedni plik nagłówkowy *hpp
dla tych funkcji.
Termin złożenia projektu: niedziela 14.06. (włącznie)
Projekt 4:
Zmodyfikuj Projekt 4 w ten sposób, że struktury zostaną zastąpione przez obiekty. Trzeba zdefiniować klasę która będzie zawierała
książkę. Niezależnie od tego, trzeba stworzyć klasę lista. Będzie zawierała wskaźnik do początku, ew. także końca. Wszystki 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.
Uwaga: Ten projekt może być zespołowy (zespoły 1 - 2 osobowe).
Termin złożenia projektu: niedziela 5.07. (włącznie) (termin wydłużony)
Uwaga: projekty (w postaci pliku .cpp lub kompletu plików .hpp .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 | 26.02.20 | Lista 2 | 4.03.20 | Lista 3 | 11.03.20 |
Lista 4 | 18.03.20 | Lista 5 | 25.03.20 | Lista 6 | 1.04.20 |
Materiały z wykładu:
Wstęp | Przykład 1 | Instrukcje sterujące | Przykład 1 |
Zmienne 18.03.20 | Przykład 1 Przykład 2 | Operatory 25.03.20 | |
Operatory 2 1.04.20 | Projekt 1 | Funkcje 20.04.20 | main.cpp funkcje.cpp funkcje.hpp |
Tablice 26.04.20 | Wskaźniki 12.05.20 | ||
Listy dwukierunkowe 28.05.20 | Przykład 1 | Klasy 15.06.20 |