PODSTAWY PROGRAMOWANIA
Laboratorium
Temat 2: Instrukcja przypisania, instrukcje warunkowe, instrukcja wyboru
Zadania do wykonania:
1. Stosując instrukcję case, napisz program, który wyprowadza słownie na ekran w języku angielskim wprowadzoną z klawiatury liczbę z zakresu 1 ..10.
2. Wczytaj z klawiatury wartości do zmiennych A, B. Jeżeli A>B, zamień wartości przechowane w zmiennych w taki sposób, by w A była mniejsza, a w B - większa spośród wprowadzonych dwóch wartości. W przeciwnym przypadku pozostaw wartości w A i B niezmienione. Wyprowadź A i B na ekran.
3. Napisz program, który po wprowadzeniu bieżącej daty (dzień, miesiąc rok) oraz daty urodzenia danej osoby (dzień, miesiąc, rok) oblicza wiek tej osoby w latach. Dla zapamiętania dnia, miesiąca i roku zastosuj odpowiednie zmienne całkowitoliczbowe.
4. Załóż treść hasła złożonego z 8 znaków (liter i cyfr). Napisz program, który sprawdza, czy wprowadzony z klawiatury znak po znaku ciąg znaków jest identyczny z założonym hasłem i wyprowada stosowny komunikat. Zastosuj wielostopniową zagnieżdżoną instrukcję if-then oraz wielokrotne wywołania funkcji czytania znaku Readkey.
5. Wprowadź z klawiatury wartości całkowite do zmiennych A, B, C. Następnie napisz instrukcje, które spowodują, że wartość wprowadzona do A znajdzie się w B, wartość wprowadzona do B znajdzie się w C, wartość wprowadzona do C znajdzie się w A.
6. Znajdź wartości X1, X2 spełniające równanie A*X*X+B*X+C=0;. Uwzględnij szczególny przypadek, gdy B*B-4*A*C<0, wobec czego równanie nie ma rozwiązań rzeczywistych.
7. Napisz program spełniający funkcję prostego kalkulatora, wykonującego operacje dodawania, odejmowania, mnożenia i dzielenia. Zastosuj instrukcje wyboru, w której znak operacji pełni rolę wyróżnika. Uwzględnij ochronę, zapobiegającą próbie dzielenia przez 0.
8. Napisz program, który po wczytaniu numeru miesiąca pisze jego nazwę w języku angielskim. Zastosuj instrukcję case.
9. Napisz program, który po wczytaniu znaku z klawiatury rozpoznaje, czy znak należy do grupy liter, cyfr, czy też innych znaków i wyprowadza na ekran odpowiedni komunikat.
10. Napisz program, który, po wprowadzeniu z klawiatury wieku użytkownika, zalicza użytkownika do jednej z trzech grup: dzieci (do 12 lat), młodzieży (12 do 17 lat), dorosłych (od 18 lat). Zastosuj alternatywnie: instrukcję case, zagnieżdzoną instrukcję if-then-else.
11. Wprowadź z klawiatury wartości zmiennych A, B, C, D, E. Stosując sekwencje prostych instrukcji if-then, znajdź największą z nich, zapamiętując ją w zmiennej Max. Wyprowadź rezultat na ekran.
12. Wprowadź z klawiatury wartości zmiennych A, B, C, D, E, F. Znajdź ich sumę, wykorzystując sekwencję instrukcji przypisania typu Suma:= Suma+A; itd. Sprawdź, czy znaleziona suma przekracza wartość 100.
Materiał pomocniczy:
1 Instrukcja przypisania
Ogólna postać instrukcji przypisania jest następująca:
Nazwa_zmiennej := Wyrażenie;
Po lewej stronie instrukcji może wystąpić wyłącznie nazwa zmiennej. Po niej mamy operator przypisania „:=”, a po prawej stronie instrukcji - jakieś wyrażenie. Wyrażenie umieszczone po prawej stronie instrukcji może być stałą jawną, nazwą stałej definiowanej, zmienną, wywołaniem funkcji lub złożonym wzorem, zawierającym wymienione elementy, połączone odpowiednimi operatorami działań.
Nie należy mylić operatora przypisania ':=' ze znakiem równości '='. Operator przypisania jest symbolem operacji przesyłania danej w kierunku od prawej do lewej strony instrukcji. Operacja przypisania składa się z dwóch faz:
Zostaje obliczona wartość wyrażenia po prawej stronie instrukcji
Wynik zostaje zapamiętany w zmiennej, której nazwa jest po lewej stronie instrukcji. (Poprzednia wartość tej zmiennej zostaje wymazana).
Aby instrukcja L:=P; mogła być wykonana, typ zmiennej L powinien być zgodny z typem wyrażenia P. Jednak nie oznacza to, że zgodność występuje tylko wtedy, gdy typy L i P są identyczne. Przypisanie jest dozwolone, kiedy:
L i P mają identyczny typ.
L i P należą do grupy typów porządkowych i jednocześnie wszystkie wartości P należą do zakresu możliwych wartości L.
L i P należą do grupy typów rzeczywistych i jednocześnie wartości P należą do zakresu możliwych wartości L.
L jest typu rzeczywistego, a P jest typu całkowitego.
L i P są typu łańcuchowego.
L jest typu łańcuchowego, a P jest typu znakowego.
L i P są typu zbiorowego i jednocześnie wszystkie elementy P są w zakresie możliwych wartości L.
2. Instrukcja warunkowa if-then-else
Instrukcja if-then-else ma następującą składnię:
if wyrażenie_relacyjne then begin
instrukcja_1;
instrukcja_2;
{-----------}
instrukcja_n;
end
else begin
instrukcja_1;
instrukcja_2;
{-----------}
instrukcja_n;
end;
W klamrach utworzonych przez słowa kluczowe begin i end może znajdować się dowolnie dużo instrukcji; mogą to być także inne instrukcje warunkowe. Jeżeli jest prawdziwe wyrażenie relacyjne po słowie if, to wykona się ciąg instrukcji w klamrze begin-end po słowie then. W przeciwnym przypadku zostanie wykonany ciąg instrukcji po słowie else. Część instrukcji zaczynająca się od słowa else bywa zbyteczna; można ją wtedy pominąć.
3. Instrukcja wyboru
Instrukcja ta ma następującą ogólną postać:
case Wyróżnik of
ww_1: begin sekwencja_instrukcji_1 end;
ww_2: begin sekwencja_instrukcji_1 end;
ww_3: begin sekwencja_instrukcji_1 end;
{---------------------------}
ww_N: begin sekwencja_instrukcji_1 end;
else begin sekwencja instrukcji_e end;
end;
Wyróżnik jest wyrażeniem typu porządkowego (np całkowitego, znakowego). Jego wartość ww_i decyduje o tym, która sekwencja instrukcji zostanie wykonana. Symbole ww_1..ww_N oznaczają konkretne wartości wyróżnika (wolno tu wpisać tylko jawne stałe liczbowe lub znakowe, lub też nazwy stałych definiowanych). Do wykonania zostaje wybrana tylko jedna sekwencja instrukcji - ta, która odpowiada aktualnej wartości wyróżnika. Jeżeli wyróżnik nie przyjmie żadnej z wpisanych wartości, to wykona się sekwencja instrukcji po słowie else. Część instrukcji rozpoczynająca się od słowa else może być pominięta, jeżeli nie jest potrzebna, ale nie wolno pominąć kończącego instrukcję case słowa end.