Programowanie z elementami algorytmiki
Transkrypt
Programowanie z elementami algorytmiki
Programowanie z elementami algorytmiki dr inż. Grzegorz Bazydło [email protected], www.uz.zgora.pl/~gbazydlo Lista zadań nr 4 Zadanie 1 Napisz program, który wyświetla na ekranie zadaną ilość wyrazów ciągu Fibonacciego. Ciąg Fibonacciego to ciąg liczb naturalnych o właściwościach: fib0= 0, fib1 = 1, fibn = fibn-1 + fibn-2 dla n ≥ 2 Początkowe wartości tego ciągu to: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, … Wynik działania: Podaj ilosc wyrazow ciagu Fibonacciego: 12 Kolejne wyrazy ciagu to: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 Zadanie 2 Napisz program, który wczyta liczbę naturalną większą od 3 i wyświetli sumę kwadratów liczb od 1 do wczytanej liczby (np. dla 4 suma kwadratów wynosi 12+22+32+42=1+4+9+16=30). Jeżeli użytkownik poda liczbę mniejszą niż 3 program powinien ponownie poprosić o podanie liczby. Wynik działania: Podaj liczbe wieksza Podaj liczbe wieksza Podaj liczbe wieksza Suma kwadratow liczb od 3: 2 od 3: 3 od 3: 4 w zakresie od 1 do 4 wynosi: 30 Zadanie 3 Zmodyfikuj program z zadania 2 tak, aby w kolejnych wierszach wyświetlał kolejną liczbę naturalną i sumę kwadratów liczb od 1 do tej liczby. Obliczanie kwadratów liczb zamknij w oddzielnej funkcji wywoływanej z funkcji main(). Zwróć także uwagę na wyrównanie liczb na ekranie. Wynik działania: Podaj liczbe wieksza od 3: 2 Podaj liczbe wieksza od 3: 19 Suma kwadratow liczb w zakresie od 1 do danej liczby: 1 1 2 5 3 14 4 30 5 55 6 91 7 140 8 204 9 285 10 385 11 506 12 650 13 819 14 1015 15 1240 16 1496 17 1785 18 2109 19 2470 1 Zadanie 4 Napisz program, który w podanym przez użytkownika okresie (lata od…do) wyświetli wszystkie lata przestępne. Następnie zmodyfikuj program tak, aby sprawdzanie czy rok jest przestępny odbywało się w oddzielnej funkcji wywoływanej z funkcji main(). Wynik działania: Podaj zakres lat: 1893 1910 Lata przestepne: 1896, 1904, 1908, Zadanie 5 (domowe) Napisz program, który wyświetli na ekranie choinkę. Skorzystaj z funkcji putch() (korzystanie z funkcji printf() jest zabronione). Kod programu rysujący trójkąt na ekranie zamknij w oddzielną funkcję. Wynik działania: # ### ##### ####### ######### # ### ##### ####### ######### ########### ############# ############### ################# # ### ##### ####### ######### ########### ############# ############### ################# ################### ##################### ####################### ######################### Zadanie 6 (domowe) Trójka pitagorejska, to trzy liczby naturalne a, b, c (a<b<c), które spełniają równanie Pitagorasa: a2 + b2 = c2. Przykłady trójek pitagorejskich: {3, 4, 5}, {5, 12, 13}, {6, 8, 10}, {7, 24, 25}. Napisz program, który wypisze wszystkie trójki pitagorejskie w zadanym przedziale od 1 do podanej liczby. Wynik działania: Podaj prawy zakres: 20 Trojki pitagorejskie w przedziale od 1 do 20 to: 3 4 5 5 12 13 6 8 10 8 15 17 9 12 15 12 16 20 2 Zadanie 7 (bonus) – zadanie z konkursu „Potyczki algorytmiczne 2006” (autor: Jakub Radoszewski) Na pierwszym kongresie Bajtockiego Towarzystwa Informatycznego uczestnicy zasiedli przy długim prostokątnym stole, wszyscy po tej samej stronie. Jeden z uczestników postawił pytanie, na ile sposobów siedzący mogą uścisnąć sobie dłonie bez wstawania od stołu – w trakcie jednego takiego przywitania, każdy uczestnik może uścisnąć dłoń co najwyżej jednego innego uczestnika, który musi być jego sąsiadem przy stole. Ponieważ uczestnicy kongresu są informatykami teoretykami, poprosili Ciebie o napisanie programu, który policzy dla nich tę liczbę sposobów. Żeby nie operować dużymi liczbami wystarczy, jeżeli podasz im ostatnią cyfrę wyniku. Napisz program który: wczyta liczbę uczestników kongresu, wyznaczy ostatnią cyfrę liczby różnych sposobów uścisków dłoni przez uczestników kongresu, wypisze wynik. Wejściem do programu jest jedna liczba całkowita oznaczająca liczbę uczestników kongresu. Wyjściem z programu jest jedna cyfra – ostatnia cyfra szukanej liczby możliwych sposobów uścisków dłoni. Przykład Dla danych wejściowych: 4 poprawną odpowiedzią jest: 5. Wszystkie poprawne sposoby uścisków dłoni dla 4 uczestników kongresu (5 sposobów): Źródło: main.edu.pl/pl/archive/pa/2006/kon 3