Semestr wiosenny 2019/20

Konsultacje:
wt. 13:15-14:00, czw. 11:15-12:00, pokój 904
Wykład:
śr. 16:15-18:00 s. WS
laboratorium:
wt. 14:15-16:00 s. 416


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