Zadania laboratoryjne (14-16)

Zadanie #04 — 3 kwietnia 2024 r.

Napisać program analizujący angielski przekład Księgi Rodzaju. Program powinien wczytać treść księgi ze standardowego wejścia, obliczając: sumaryczną ilość wyrazów, średnią długość wyrazu, liczbę wyrazów zawierających literę 'e', liczbę wystąpień słowa 'and' oraz słowa 'God' (także w dopełniaczu). Dodatkowo należy wyświetlić histogram przedstawiający procentowe występowanie wszystkich liter alfabetu łacińskiego w tym tekście.

Etapy rozwiązania (po 1 pkt.):

  1. Pętla while odczytująca wyraz po wyrazie. {0,5 pkt.}
  2. Obliczanie ilości i sumarycznej długości wyrazów. {0,5 pkt.}
  3. Obliczanie liczby wystąpień słowa 'and' (uwględnij wielkość liter!). {0,5 pkt.}
  4. Obliczanie liczby wystąpień słowa 'God' (pamiętaj o dopełniaczu!). {0,5 pkt.}
  5. Obliczanie liczby wystąpień wyrazów zawierających literę 'e'. {0,5 pkt.}
  6. Funkcja void aktualizuj_histogram (unsigned *histogram, const char *wyraz) uzupełniająca podany jako parametr "histogram" na podstawie liter występujących w podanym wyrazie.
  7. Funkcja void wyswietl_histogram (const unsigned *histogram) wyświetlający na ekran procentową zawartość poszczególnych liter w histogramie. {0,5 pkt.}
  8. Utworzenie tablicy na histogram (w fukcji main()) oraz prawidłowe wywoływanie ww. funkcji. {0,5 pkt.}
  9. Wyświetlenie wyników analizy na ekran. {0,5 pkt.}

Zadanie #03 — 20 marca 2024 r.

Program weryfikujący numer konta bankowego podanego w formacie NRB. Program powinien poprosić użytkownika o podanie numeru i wczytać go, ignorując białe znaki (np. spacje, myślniki itd.) oraz wyświetlać komunikat Numer rachunku poprawny/niepoprawny oraz wyświetlić nazwę banku prowadzącego rachunek. Do weryfikacji numeru użyć tzw. metody wielomianowej. Zoptymalizować typy używanych tablic pod kątem oszczędności pamięci.

Etapy rozwiązania (po 1 pkt.):

  1. Stworzenie tablicy typu const short [] zawierającej współczynniki wielomianu; wyświetlenie monitu o podanie NRB.
  2. Wczytanie NRB do tablicy liczb (ignorując białe znaki).
  3. Obliczenie liczby kontrolnej.
  4. Sprawdzenie wartości liczby kontrolnej i na tej podstawie wyświetlenie komunikatu o (nie)poprawności numeru.
  5. Wczytanie pliku z identyfikatorami banków, wyszukanie pasującego identyfikatora i wyświetlenie nazwy banku.

Przykładowe numery kont do weryfikacji działania programu można znaleźć na stronie UM Warszawy.

Propozycja dodatkowego, niepunktowanego zadania domowego: zoptymalizuj operacje na tablicach za pomocą "ruchomych" wskaźników.

Zadanie #2 - 13 marca 2024 r. (5 pkt.)

Napisz program, który zapyta użytkownika o liczbę x > 0, a następnie wyliczy wartość ln(1+x) z wykorzystaniem szeregu Maclaurina. Błąd wyliczonej wartości powinien być mniejszy niż 1/1.000.000.

Etapy rozwiązania programu:

  1. Zapytanie i wczytanie liczby x. Sprawdzenie, czy jest z dozwolonego przedziału. Wyświetlenie komunikatu o ewentualnym błędzie.
  2. Rdzeń pętli liczącej wraz ze sprawdzeniem warunku reszty.
  3. Obliczanie i sumowanie kolejnych wyrazów szeregu. {2 pkt.}
  4. Estetyczne wyświetlenie wyniku na ekran.

Propozycja dodatkowego, niepunktowanego zadania domowego: dodaj do programu menu wyboru i kolejne funkcjonalności - obliczenia funkcji sinus i cosinus.

Zadanie #1 - 6 marca 2024 r. (5 pkt.)

Napisz program do wykonania obliczeń księgowych zestawu towarów. Program po uruchomieniu zapyta o nazwę pliku wejściowego oraz wyjściowego. Zestawienie towarów zawiera w każdej linii kolejno: nazwa towaru (jeden wyraz), cena jednostkowa netto, ilość, numer identyfikujący stawkę VAT (0 - 0%, 1 - 5%, 2 - 8%, 3 - 23%). Do pliku wyjściowego przetworzone dane należy zapisać następująco: nazwa towaru (jeden wyraz), cena jednostkowa netto, ilość, numer identyfikujący stawkę VAT, wartość netto, podatek VAT, wartość brutto. Każda kolumna oddzielona tabulacją. Identyczne informacje należy wyświetlić na ekranie, ale w postaci ładnie sformatowanej tabelki wraz z liczbą porządkową w pierwszej kolumnie.

Etapy rozwiązania programu:

  1. Zapytanie i pobranie nazwy pliku wejściowego i wyjściowego.{0,5 pkt.}
  2. Otwarcie plików wraz z obsługą błędów.
  3. Czytanie linia po linii z pliku wejściowego do zmiennych tymczasowych (buforów).
  4. Przetwarzanie rekordów, obliczanie żądanych wartości i zapis do pliku wynikowego. {1,5 pkt.}
  5. Wyświetlenie nagłówka tabeli oraz ładnie sformatowanych danych.

Propozycja dodatkowego, niepunktowanego zadania domowego: na zakończenie programu na ekran wyświetlić następujące informacje: liczba pozycji, suma netto, suma VAT, suma brutto.

Zadanie #0 - 28 lutego 2024 r.

  1. Skonfiguruj swoje ulubione środowisko programistyczne, tj. Geany.
  2. Napisz swój pierwszy fantastyczny program, który wyświetli na ekranie w czytelny sposób rozmiary (w bajtach) kilku przykładowych zmiennych o różnych typach.
  3. Uśmiechnij się!