Laboratorium PRM, semestr letni 2014/2015


Informacje

konsultacje: poniedziałek 14:15-15:00 s. 227 (proszę wcześniej o kontakt mailowy: pjarosik(at)stud.elka.pw.edu.pl)

Laboratoria

Ćwiczenia opracowane na podstawie treści udostępnionej przez Piotra Wąsiewicza oraz Arkadiusza Lewandowskiego.

LP. (Data) Tematyka Punktacja
3. (16 III) Pętle for, while, do-while. Instrukcje sterujące if-else, switch, break, continue. Operacje logiczne. 0-5
4. (23 III) Funkcje, przekazywanie argumentów przez wartość oraz przez wskazanie. 0-5
5. (30 III) Tablice jako zmienne automatyczne, tablice dwuwymiarowe, tablice jako argumenty funkcji. 0-5
6. (13 IV) Dekompozycja prostych problemów, prawidłowe wyodrębnienie i użycie funkcji. 0-5
7. (20 IV) Struktury, dynamiczna alokacja pamięci. 0-5

Projekt

W ramach projektu należy przygotować dokumentację wstępną i przesłać ją na mój adres (pjarosik(at)stud.elka.pw.edu.pl) do końca dnia 11.05.15. Dokumentacja wstępna nie powinna zajmować więcej niż jedną stronę formatu A4 i powinna zawierać odpowiedzi na następujące pytania:

Za dokumentację wstępną można uzyskać 5 punktów. Pozostałe 15 punktów można uzyskać za implementację oraz dokumentację techniczną projektu (przykład takiej dokumentacji).

Jak zdobyć dużą liczbę punktów z projektu?

Najszybszą formą komunikacji ze mną jest kontakt mail'owy - w razie jakichkolwiek wątpliwości proszę o wiadomość na mój adres z tytułem rozpoczynającym się od [PRM]. W trakcie projektu jestem również do Państwa dyspozycji w terminie laboratorium, w sali 011 lub w trakcie konsultacji, w obu przypadkach po wcześniejszym uzgodnieniu spotkania mail'em.

Tematy projektów

    Matematyka

  1. Kalkulator operacji na macierzach
    Zaimplementować dodawanie, usuwanie, mnożenie par macierzy; wyznacznik oraz transpozycja macierzy; mnożenie macierzy przez liczbę. Macierz może mieć dowolne wymiary (wykorzystać dynamiczną alokację pamięci).
    (algebra liniowa)
  2. Kalkulator operacji na skończonych zbiorach liczb zmiennoprzecinkowych
    Zaimplementować sumę, przecięcie, różnicę, iloczyn kartezjański par zbiorów; moc (liczebność) zbioru. Zbiory są skończone i mogą przechowywać liczby typu double. Zbiór może mieć dowolny rozmiar (wykorzystać dynamiczną alokację pamięci).
    (teoria mnogości)
  3. Całkowanie i różniczkowanie wielomianów jednej zmiennej
    Zaimplementować operacje:
    (analiza matematyczna)
  4. Kalkulator RPN liczb zespolonych
    Zaimplementować kalkulator liczb zespolonych akceptujący wyrażenia w postaci Odwrotnej Notacji Polskiej. Liczby zespolone będą podawane przez użytkownika w nawiasach, np.
            (1+2j) (3) + (4+5j) - 
            
          
    daje wynik -3j.
    (algebra liniowa)
  5. Minimalizacja wielomianu z wykorzystaniem metody gradientu prostego
    Zaimplementować program poszukujący minimum funkcji wielomianowej jednej zmiennej w zadanym przedziale, przy użyciu metody gradientu prostego. Punkt startowy powinien być wylosowany z rozkładem jednostajnym w przedziale, w którym poszukiwane jest minimum. Użytkownik podaje stopień oraz współczynniki wielomianu, granice zakresu, długość kroku.
    (analiza matematyczna,optymalizacja)
  6. Gry

  7. Gra w życie
    Zaimplementować grę w życie przy zastosowaniu np. reguł gry wg Conwaya. Interfejs aplikacji powinien być przygotowany przy użyciu ncurses.
  8. Kółko i krzyżyk
    Zaimplementować interfejs do gry w kółko i krzyżyk przy użyciu biblioteki ncurses, przy jednym z następujących założeń:
  9. Samotnik
    Zaimplementować grę w samotnika. Interfejs do gry powinien być przygotowany przy użyciu ncurses.
  10. Saper
    Zaimplementować grę w sapera. Interfejs do gry powinien być przygotowany przy użyciu ncurses.