Iteracje

Ćwiczenia do indywidualnej realizacji

  1. „Tabliczka mnożenia”. Napisać program wyświetlający tabliczkę mnożenia w postaci zamieszczonej poniżej. Pierwszy wiersz i pierwsza kolumna zawierają mnożną i mnożnik, elementy na przecięciu i-tej kolumny i j-go wiersza zawierają iloczyn i*j. Proszę spróbować poprawić czytelność tabeli poprzez wprowadzanie linii rozdzielającej pierwszy wiersz i pierwszą kolumnę, złożonej odpowiednio ze znaków ’-’ oraz '|’.

    Prosta tabela

     1  2  3  4  5  6  7  8  9 10 
     2  4  6  8 10 12 14 16 18 20 
     3  6  9 12 15 18 21 24 27 30 
     4  8 12 16 20 24 28 32 36 40 
     5 10 15 20 25 30 35 40 45 50 
     6 12 18 24 30 36 42 48 54 60 
     7 14 21 28 35 42 49 56 63 70 
     8 16 24 32 40 48 56 64 72 80 
     9 18 27 36 45 54 63 72 81 90 
    10 20 30 40 50 60 70 80 90 100
    

    Tabela z liniami

     1 |  2  3  4  5  6  7  8  9 10 
    --------------------------------
     2 |  4  6  8 10 12 14 16 18 20 
     3 |  6  9 12 15 18 21 24 27 30 
     4 |  8 12 16 20 24 28 32 36 40 
     5 | 10 15 20 25 30 35 40 45 50 
     6 | 12 18 24 30 36 42 48 54 60 
     7 | 14 21 28 35 42 49 56 63 70 
     8 | 16 24 32 40 48 56 64 72 80 
     9 | 18 27 36 45 54 63 72 81 90 
    10 | 20 30 40 50 60 70 80 90 100 
    

    Wskazówka: Proszę się zainteresować funkcją printf (C, C++, Java (System.out) ) która pozwala formatować wyprowadzane informacje w zakresie szerokości pola oraz wyrównania tekstu w jego obrębie.

  2. Silnia. Napisać program wyliczający wartość silni. Program pyta użytkownika o wartość liczby n dla której ma zostać wyliczona silnia n!. Proszę napisać program w taki sposób, aby użytkownik nie mógł wpisać ujemnej wartości n. Proszę opracować trzy wersje programu, wykorzystujące iteracje do-while, while oraz for. Uwaga, proszę przeprowadzić eksperymenty i wyznaczyć wartość n przy którym program przestanie poprawnie wyliczać wartość silni. Proszę spróbować zmodyfikować program tak, aby sam wykrywał ostatnią wartość n dla której obliczenia są poprawne. Proszę zidentyfikować przyczynę błędu oraz zaproponować w jaki sposób powiększyć wartość n dla której obliczenia będą wykonywane poprawnie. Czy można uzyskać poprawne wyniki dla dowolnie dużego n?
  3. Fibonacci. Napisać program wyliczający wartość n-go wyrazu ciągu Fibonaciego. Program pyta użytkownika o numer wyrazu n dla którego ma zostać wyznaczona wartość. Proszę napisać program w taki sposób, aby użytkownik nie mógł wpisać ujemnej wartości n. Proszę opracować trzy wersje programu, wykorzystujące iteracje do-while, while oraz for. Uwaga, proszę przeprowadzić eksperymenty i wyznaczyć wartość n przy którym program przestanie poprawnie wyliczać wartość ciągu. Proszę spróbować zmodyfikować program tak, aby sam wykrywał ostatnią wartość n dla której obliczenia są poprawne. Proszę zidentyfikować przyczynę błędu oraz zaproponować w jaki sposób powiększyć wartość n dla której obliczenia będą wykonywane poprawnie. Czy można uzyskać poprawne wyniki dla dowolnie dużego n? Jak jest graniczna wartośćn dla ciągu Fibonacciego, jaka dla silni, jeżeli są różnice to czym są spowodowane?
  4. „Za mało za dużo”. Napisać program pozwalający użytkownikowi na odgadnięcie liczby wylosowanej przez komputer. Program losuje nieznaną użytkownikowi liczbę (zakładamy np. przedział 1..100), użytkownik typuje liczbę, program odpowiada użytkownikowi czy to dobra liczba, czy też za mała, lub za duża. Gra trwa tak długo, aż użytkownik odgadnie wylosowaną liczbę. Proszę opracować dwie wersje programu, wykorzystujące iteracje do-while oraz while.
  5. Odwrotne „Za mało za dużo”. Napisać program w wersji, w której komputer odgaduje liczbę wymyśloną przez użytkownika. Komputer typuje liczbę (zakładamy np. przedział 1..100) oraz pyta użytkownika czy to dobra liczba, czy też za mała, lub za duża. Gra trwa tak długo, aż użytkownik potwierdzi odgadnięcie liczby, lub komputer zorientuje się, że użytkownik oszukuje i podaje niewłaściwe odpowiedzi. Proszę opracować dwie wersje programu, wykorzystujące iteracje do-while oraz while.