PRI, laboratorium 2


Zakres materiału: Pętle for, while, do-while. Instrukcje sterujące if-else, switch, break, continue. (5 pkt)


Zadanie 1. Pętle for, while, do-while.

  1. W katalogu prm2 utworzyć nowy projekt zad1 i do głównego pliku projektu skopiować zawartość pliku źródłowego zad1.c.
  2. Zapoznać się ze trzema różnymi sposobami wyznaczania silni liczby całkowitej (linie 15-38).
  3. Ile razy jest wykonywana zasadnicza instrukcja pętli (linie 18, 27, 36) dla zadanej wartości zmiennej liczba?
  4. Zmodyfikować sposób obliczania silni z wykorzystaniem pętli for (linie 15-19), tak aby w każdej iteracji pętli zmienna n była zwiększana.
  5. Korzystając z doświadczeń z poprzedniego punktu, napisać program, który oblicza i wypisuje wartości silni dla wszystkich liczb od 1 do zadanej wartości (program zapisać w osobnym pliku, np. silnia.c).

Zadanie 2. Instrukcje sterujące if-else, switch, break, continue.

  1. W katalogu prm2 utworzyć nowy projekt zad2 i do głównego pliku projektu skopiować zawartość pliku źródłowego zad2.c.
  2. Program implementuje prostą grę, w ktorej zadaniem grającego jest zgadnięcie liczby całkowitej z zakresu 1-10 wylosowanej wcześniej przez komputer. Każda próba odgadnięcie (zgadywanie można zakończyć w dowolnym momencie wprowadzając liczbę -1) jest komentowana przez program w następujący sposób:
  3. Zapoznać sie ze sposobem działania programu, zwrócić szczególną uwagę na konstrukcję głównej pętli programu (linie 16-70) oraz instrukcję switch (linie 38-68). Kiedy przerywane jest wykonanie głównej pętli programu?
  4. Korzystając z debuggera (ustawić pułapki na odpowiednich liniach), zapoznać się z działaniem instrukcji continue (linia 32) oraz break (linie 26, 43, 48, 53). Jaka jest róźnica w działaniu instrukcji break w lini 26 oraz w liniach 43, 48, 53?
  5. Zaobserwować, co się wydarzy, gdy zostaną usunięte (najprościej przez wykomentowanie) instrukcje break w liniach 43, 48, 53.
  6. Przepisać instrukcję switch (linie 38-68) z wykorzystaniem sekwencji instrukcji if-else.

Zadanie 3. Zadanie samodzielne.

Grupa A

  1. Napisać i uruchomić program wyznaczający średnią, wartość maksymalną i wartość minimalną ciągu 5 liczb typu float. Liczby wprowadzane z wykorzystaniem funkcji scanf.

  2. Przykładowe wyniki działania programu:

    Prosze podac 5 liczb oddzielonych spacjami: 10 9 3 7 8
    Wartosc srednia: 7.4
    Wartosc maksymalna: 10
    Wartosc minimalna: 3
    

Grupa B

  1. Napisać i uruchomić program przelicznika kowty z PLN na kwote w wybranej walucie (EUR, USD lub CHF). Kwota i kod waluty wprowadzane z wykorzystaniem funkcji scanf. Przy przeliczaniu wykorzystać instrukcję switch.

  2. Przykładowe wyniki działania programu:

    Prosze podać kwote w PLN: 100
    Prosze podac kod waluty (1 EUR, 2 USD, 3 CHF): 1
    Kwota w EUR: 25