Ćwiczenia ze Wstępu do Informatyki
Termin: piątek 12:15–13:45,
Miejsce: sala 5840 / laboratorium 3041
Prowadzący: Szczepan Hummel

Punkty z ćwiczeń

Propozycje tematów programów zaliczeniowych (na szaro programy już wybrane):

  1. Słownik. Program wczytuję plik zawierający pary (słowo w jednym języku; słowo w drugim języku), sortuje pary najpierw według słów w jednym języku, potem w drugim. Wyniki wypisuje w dwóch plikach.
  2. Formularze. Program wczytuje plik dokumentu i kilka (określone przez użytkownika) plików z danymi i tworzy tyle plików wynikowych ile jest plików z danymi. Każdy plik wynikowy jest plikiem dokumentu, w którym zamiast każdego wystąpienia ciągu #n (gdzie n jest liczbą naturalną) jest wypisana n-ta linia odpowiedniego pliku z danymi.
  3. Hetmany. Dla podanego n program wypisuje takie ustawienie n hetmanów na planszy n*n, że żadne dwa się nie biją (jeżeli takie ustawienie istnieje).
  4. Permutacje. Program wypisuje w porządku leksykograficznym (słownikowym) wszystkie permutacje zbioru {1,2,...,n}.
  5. Życie. Program symuluje na ekranie grę życie Conwaya na planszy n*n: W każdym momencie gry każda komórka (element tablicy) jest żywa lub martwa. Jeżeli z jedną komórką sąsiadują dwie żywe komórki to nie zmienia ona stanu. Jeżeli dokładnie trzy żywe – w następnym kroku komórka jest żywa. Jeżeli dowolna inna liczba (od 0 do 8) to komórka w następnej turze będzie martwa. Zaczynamy grę ze stanu losowego lub podanego przez użytkownika (do wyboru).
  6. Iloczyn macierzy zespolonych. Dla podanych liczb n, m i k, oraz podanych macierzy (zawierających liczby zespolone) n*m i m*k, program liczy iloczyn tych macierzy.
  7. Dzielenie wielomianów. Program liczy iloraz i resztę z dzielenia dla dwóch wielomianów jednej zmiennej podanych przez użytkownika.
  8. Wielokąt wypukły. Program czyta z pliku współrzędne kolejnych wierzchołków wielokąta i sprawdza czy ten wielokąt jest poprawny (nie ma samoprzecięć) i wypukły.
  9. Punkty wewnątrz wielokąta. Program wczytuje wielokąt z pliku (j.w.) i pewną listę punktów i dla każdego punktu sprawdza czy ten leży wewnątrz wielokąta. (Program może ewentualnie odmówić wykonania zadania jeżeli wielokąt nie jest wypukły)
  10. Liczby rzymskie. Program zamienia liczby rzymskie na dziesiętne i na odwrót.
  11. Daty. Program liczy liczbę dni między dwoma podanymi datami. Program umie też obliczać jaka data jest n dni po innej podanej dacie. (Może też obliczać dzień tygodnia dla podanej daty)
  12. Piramidy. Program wczytuje liczbę piramid (<10) i współrzędne i wysokości kolejnych piramid. Rysuje piramidy na ekranie (poniżej narysowałem jak wygląda piramida wysokości 4 i współrzędnych (13,1)). Potem za pomocą naciśnięcia numeru piramidy i potem strzałek można piramidę zmniejszać, zwiększać i przesuwać.

            *
           ***
          *****
         *******

Proszę pamiętać, że:

Terminy:

Przy pisaniu programów proszę zwrócić uwagę na:

  1. Przemyślany, logiczny i sensowny podział na podprogramy (funkcje). To, oprócz poprawności programu, będzie miało największy wpływ na ocenę.
  2. Funkcje muszą realizować jak najbardziej wyodrębnione fragmenty programu (przekazywanie danych do funkcji przez arametry, nie używanie zmiennych globalnych).
  3. Komentarze – objaśniające kluczowe miejsca programu ale zwięzłe. Jeżeli poprawność użytego algorytmu wymaga dłuższego uzasadnienia to należy je umieścić w osobnym pliku.
  4. Złożoność czasową i pamięciową.
  5. "Idiotoodporność" – na to jeszcze nigdy nie zwracaliśmy uwagi więc jak będą z tym problemy to zapewne będę mógł coś pomóc.
  6. Estetykę kodu – wcięcia, itp.