Ćwiczenie 1 Kilka prostych programów Ćwiczenie to poświęcone jest tworzeniu krótkich programów, pozwalających na zapoznanie się z takimi elementami programowania jak: definiowanie stałych, deklarowanie zmiennych, wykonywanie operacji wejścia/wyjścia, budowanie wyrażeń arytmetycznych i korzystanie z instrukcji sterujących wykonaniem programu instrukcje warunkowe i iteracyjne. 1.1 Przeliczanie jednostek odległości Napisać program przeliczający odległość podaną w metrach na następujące miary: cal, stopę, jard, milę lądową. Można założyć, że użytkownik wprowadzi prawidłową liczbę rzeczywistą. Scenariusz działania programu 1. Program wyświetla informację o jego przeznaczeniu. 2. Program wczytuje liczbę rzeczywistą określającą odległość wyrażona w metrach. 3. Program wyświetla w osobnych liniach odległości wyrażone w zadanych jednostkach długości. 4. Program kończy swoje działanie po naciśnięciu przez użytkownika klawisza Enter. Przykładowa organizacja komunikacji z użytkownikiem Rys. 1 Przebieg dialogu z użytkownikiem
Kilka prostych programów 2 Wymagania Należy odnaleźć (internet, podręczniki itp.) współczynniki pozwalające na przeliczenie jednostek. Współczynniki te mają być reprezentowane w programie w postaci stałych. Wartości po przeliczeniu mają być zaokrąglane do czterech miejsc po przecinku. Należy wbudować w program reakcję na wpisanie przez użytkownika liczby ujemnej. Proszę rozbudować program o przeliczanie na inne jednostki sążnie, mile morskie, angstremy, kable, łokcie, wiorsty, itp., itd.. Proszę również spróbować rozszerzyć program w taki sposób, aby możliwe było powtarzanie operacji przeliczania długości. Powtórzenie wczytania, przeliczenia i wyświetlenia wyników odbywa się po potwierdzeniu przez użytkownika chęci ponowienia obliczeń, przykładowy dialog programu z użytkownikiem może mieć postać przedstawioną na Rys. 2. Rys. 2 Powtarzanie obliczeń na życzenie użytkownika 1.2 Tabela przelicznikowa odległości Napisać program wyświetlający tabelę przeliczeniową odległości wyrażonej w metrach na następujące miary: cal, stopę, jard, milę lądową. Tabela powinna mieć postać zbliżoną do następującej przedstawionej na Rys. 3. Odległości wyrażone w metrach narastają z krokiem równym 5-ciu jednostkom, począwszy od wartości 5 a skończywszy na wartości 100.
3 Proszę rozbudować program o możliwość wprowadzania przez użytkownika kroku zwiększania długości podanej w metrach. Należy się zastanowić nad wartościami ujemnymi, wartością zerową, i tym, że liczba wierszy może przekroczyć pojemność ekranu. W tym ostatnim przypadku należy przewidzieć zatrzymanie wyświetlania np. co 24 linie. W pełnej wersji użytkownik może wprowadzać również, oprócz kroku, wartość startowa i końcową odległości zadawanej w metrach. Rys. 3 Tabela przelicznikowa przykładowa forma 1.3 Kalkulator dwuargumentowy Napisać program realizujący funkcje prostego kalkulatora, pozwalającego na wykonywanie operacji dodawania, odejmowania, mnożenia i dzielenia na dwóch liczbach rzeczywistych. Program ma identyfikować sytuację wprowadzenia błędnego symbolu działania oraz próbę dzielenia przez zero. Podobnie jak w poprzednich przykładach zakładamy, że użytkownik wprowadzi prawidłowe liczby. Scenariusz działania programu 1. Program wyświetla informację o swoim przeznaczeniu. 2. Wczytuje pierwszą liczbę. 3. Wczytuje symbol operacji arytmetycznej: +, -, *, /. 4. Wczytuje drugą liczbę. 5. Wyświetla wynik lub w razie konieczności informację o niemożności wykonania działania.
Kilka prostych programów 4 6. Program kończy swoje działanie po naciśnięciu przez użytkownika klawisza Enter. Przykładowa organizacja komunikacji z użytkownikiem Przykładowy sposób organizacji komunikacji z użytkownikiem przedstawiają Rys. 4, Rys. 5, Rys. 6. Rys. 4 Typowy przebieg wykonania programu Rys. 5 Reakcja na błędny symbol działania Rys. 6 Reakcja na próbę dzielenia przez zero Proszę rozszerzyć program w taki sposób, aby możliwe było powtarzanie obliczeń. Powtórzenie wczytania, przeliczenia i wyświetlenia wyników odbywa się po potwierdzeniu przez użytkownika chęci ponowienia obliczeń, przykładowy dialog programu z użytkownikiem może mieć postać przedstawioną na Rys. 7. Rys. 7 Powtarzanie obliczeń na życzenie użytkownika
5 1.4 Gierka w za dużo, za mało Napisać program realizujący grę polegającą na odgadywaniu liczby wylosowanej przez komputer. Użytkownik próbuje odgadnąć tą liczbę, wprowadzając swoja propozycję. Jeżeli liczba wprowadzona przez użytkownika jest mniejsza od wylosowanej przez program, użytkownik informowany jest, że wprowadził wartość zbyt małą. Jeżeli liczba wprowadzona przez użytkownika jest większa od wylosowanej przez program, użytkownik informowany jest, że wprowadził wartość zbyt dużą. Wprowadzenie wartości równej wylosowanej kończy grę. Scenariusz działania programu 1. Program wyświetla informację o swoim przeznaczeniu. 2. Następuje wylosowanie liczby. 3. Wczytanie propozycji użytkownika. 4. Porównanie liczby wylosowanej i wczytane, wyprowadzenie odpowiednich komunikatów. 5. Jeżeli liczba została odgadnięta to koniec gry, w przeciwnym wypadku powrót do pkt. 3. Przykładowa organizacja komunikacji z użytkownikiem Rys. 8 Przykładowy przebieg gry Proszę rozszerzyć program w taki sposób, aby możliwe było powtarzanie odgadywania liczby bez ponownego uruchamiania programu. Powtórzenie to odbywa się po potwierdzeniu przez użytkownika chęci kontynuowania gry. W ramach każdego cyklu odgadywania wylosowanej liczby powinna być zliczana liczba prób, koniecznych do odgadnięcia. Liczba prób powinna zostać wyświetlona po każdorazowym odgadnięciu wylosowanej liczby. Przykładowy przebieg takiej gry ilustruje Rys. 9.
Kilka prostych programów 6 Następnym krokiem może być rozszerzenie programu o określanie przez użytkownika górnego zakresu losowanych liczb, tak, by np. zakres ten mógł wynosić np. od 1 do 10 po wprowadzeniu przez użytkownika na starcie programu wartości 10 jako górnego ograniczenia zakresu losowanych liczb. Rys. 9 Wersja z powtarzaniem odgadywania i zliczaniem liczby prób 1.5 Co po tym ćwiczeniu należy umieć? Zakładam, że po tym ćwiczeniu każdy wie jak: 1. budować krótkie programy realizujące proste obliczenia, 2. deklarować zmienne i definiować stałe, 3. wykonywać podstawowe operacje we/wy, 4. podejmować decyzje z wykorzystaniem instrukcji warunkowych (if, ifelse, case lub switch),
5. sterować cyklicznym powtarzaniem instrukcji z wykorzystaniem instrukcji iteracyjnych (while, repeat-until lub do-while). 7