ZTP 2019: Zadania przed lab.2

Zadania, które dotyczą zakresu materiału, jaki będzie poruszany na lab. 2. Rozwiązanie tych zadań nie jest wymagane. Stanowią wyłącznie pomoc w przygotowaniu się do zajęć.

Zadanie #1:

W kolejnych wierszach pliku znajdują się wyrażenia arytmetyczne zapisane w odwrotnej notacji polskiej (ale bez wykorzystania nawiasów). Napisz program, który będzie odczytywał wiersz i obliczał wartość, a jeżeli w wyrażeniu jest błąd składni, to rzucał wyjątek. Wyjątek zostaje przechwycony na końcu programu i obsłużony w postaci wyświetlenia komunikatu o rodzaju błędu. Dostosuj wartość wyjątku do rodzaju błędu.

Zadanie #2:

Napisz grę, która będzie losowała dowolne litery z alfabetu i wyświetlała je na ekranie, a zadaniem gracza jest podać szybko kod ascii odpowiadający danej literze. Fragment programu odpowiedzialny za zadawanie pytań i sprawdzanie odpowiedzi użytkownika jest zamknięty w funkcji, która zwraca liczbę całkowitą – sumaryczną liczbę sekund, jakiej użytkownik potrzebował, żeby udzielać odpowiedzi na serię pytań. Może zdarzyć się, że użytkownik poda niewłaściwy kod ascii, ale to nie powoduje przerwania gry. Dopiero w przypadku popełnienia przez użytkownika drugiej pomyłki zamiast kolejnego pytania rzucany jest wyjątek, który jest przechwycony dopiero w funkcji main. W ramach obsługi wyjątku użytkownik dostaje pytanie, czy chce spróbować jeszcze raz i jeżeli tak – funkcja zadająca pytania jest ponownie wywoływana.

Zadanie #3:

Język „Markdown” jest jednym z najprostszych języków znaczników, mimo to jednak znajduje wiele zastosowań, m.in. w plikach readme. W tym języku można formatować tekst, który później zostanie odpowiednio zwizualizowany w oknie przeglądarki.

W języku „Markdown” wskazywanie czcionek, które mają być użyte w poszczególnych fragmentach dokumentu, odbywa się wg następującej składni: najpierw znak otwierający formatowanie, np. _, *, __, ** lub `, potem tekst podlegający formatowaniu, a na koniec ten sam znak, ale tym razem oznaczający koniec formatowanego fragmentu tekstu. Przykłady: _italic_, *italic*, __bold__, **bold**, `monospace`.

Napisz parser, który będzie sprawdzał poprawność formatowania czcionek w tekście zawartym w pliku. Przyjmij, że poprawne formatowanie wymaga, aby liczba znaków otwierających i zamykających była sobie równa, oraz aby formatowane obszary nie przecinały się ani nie zagnieżdżały. W przypadku wykrycia błędu składni rzucany jest wyjątek, który zostanie przechwycony na końcu programu i obsłużony w postaci wyświetlenia komunikatu o błędzie. Dostosuj wartość wyjątku do rodzaju błędu.

ZTP 2019: Zadania przed lab.1

Zadania, które dotyczą zakresu materiału, jaki będzie poruszany na lab. 1. Rozwiązanie tych zadań nie jest wymagane. Stanowią wyłącznie pomoc w przygotowaniu się do zajęć.

Zadanie #1:

W pliku dane-lab1.txt znajdują się dane z czterech czujników mierzących temperaturę. Każdy wiersz reprezentuje jeden pomiar i zawiera cztery wartości: nr porządkowy (liczba całkowita), zmierzoną temperaturę (liczba rzeczywista), datę i godzinę (napis), oraz nr czujnika (liczba całkowita). Separatorem wartości jest przecinek.

Zaproponuj typ danych przechowujący pomiar. Następnie zadeklaruj stuelementową tablicę, korzystając z szablonu Tablica prezentowanego na wykładzie z PO, której elementami są dane z czujników (należy dokonać konkretyzacji szablonu klasy Tablica na rzecz zaproponowanego typu danych reprezentujących dane z czujnika i utworzyć jeden obiekt takiego skonkretyzowanego typu).
Kod szablonu jest dostępny na stronie www:
https://troja.uksw.edu.pl/programowanie-obiektowe/kody-programow/
– plik wykład13b.h

Napisz program, który – z wykorzystaniem strumieni – wczyta dane z pliku do tablicy, a następnie wypisze jej zawartość w oknie konsoli, rezerwując dla każdej z czterech wartości stałą liczbę znaków (sam zaproponuj, ile znaków zarezerwować dla każdej z kolumn, aby żadne wartości nie zostały przycięte, oraz aby kolumny w sumie nie przekroczyły standardowej szerokości okna konsoli).

Zadanie #2:

W pliku dane-lab1.txt znajdują się dane z czterech czujników mierzących temperaturę. Każdy wiersz reprezentuje jeden pomiar i zawiera cztery wartości: nr porządkowy (liczba całkowita), zmierzoną temperaturę (liczba rzeczywista), datę i godzinę (napis), oraz nr czujnika (liczba całkowita). Separatorem wartości jest przecinek. Z wykorzystaniem strumieni wczytaj dane z tego pliku i zapisz do drugiego w formacie tabelki, tj. rezerwując dla każdej z czterech wartości stałą liczbę znaków oraz z ramkami i wierszem nagłówkowym. Do rysowania ramek użyj znaków +, -, |.