Technologie Informacyjne i Komunikacyjne

#! /usr/bin/python3
# -*- coding: utf-8 -*-

Funkcje | Wejście i wyjście:

Zadanie 1. Napisz program wyznaczający n-tą liczbę ciągu Fibonacciego (2 sposoby: rekurencyjnie i iteracyjnie).

def rekurencja(n):
    if n<2:
        return n
    else:
        return rekurencja(n-1)+rekurencja(n-2)

def iteracja(n):
    a = 0
    b = 1

    if n==0:
        return a
    else:
        for i in range(n):
            a,b = b,a+b
        return a

def wzor_binet(n):
    return (1/5**0.5)*((1+5**0.5)/2)**n - (1/5**0.5)*((1-5**0.5)/2)**n

if __name__ == '__main__':
    numer = 10
    print('rekurencja', rekurencja(numer))
    print('iteracja', iteracja(numer))
Zadanie 2. Napisz program wyznaczający czas wykonywania funkcji.
from fibonacci import *
import time

time.process_time()
time.process_time_ns()

def czas(funkcja,*args):
    # pierwszy argument - funkcja
    # drugi argument - argumnety funkcji
    start = time.process_time_ns()
    funkcja(*args)
    stop = time.process_time_ns()

    return stop-start   

if __name__ == '__main__':
    numer = 30
    print('wzor Bineta', czas(wzor_binet,numer))
    print('rekurencyjnie', czas(rekurencja,numer))
    print('iteracyjnie', czas(iteracja,numer))
Zadanie 3. Napisz program sprawdzający pierwszą i ostatnią literę dwóch podanych wyrazów.
def wyrazy(wyraz1, wyraz2):
    wyraz1 = wyraz1.lower()
    wyraz2 = wyraz2.lower()

    if wyraz1[0] == wyraz2[0] and wyraz1[-1] == wyraz2[-1]:
        print('{0} i {1} mają taki sam poczatek i koniec'.format(wyraz1,wyraz2))
    else:
        print('{0} i {1} nie mają takiego samego poczateku i konca'.format(wyraz1,wyraz2))

if __name__ == '__main__':
    wyrazy('sok', 'Skok')
    wyrazy('soki', 'Skok')
Zadanie 4. Napisz program wyznaczający największy wspólny dzielnik dwóch liczb całkowitych.
Niech program działa według poniższego wzorca:
$ nwd.py 7029 72704 -> 71
def nwd(a, b):
    '''
    Algorytm Euklidesa.
    '''
    if a < b:
        a, b = b, a
    while b > 0:
        a, b = b, a % b
    return a


if __name__ == '__main__':
    from sys import argv
    a = int(argv[1])
    b = int(argv[2])
    print(nwd(a, b))
Zadanie 6. Utwórz plik Inwokacja.txt i przekopiuj do niego treść Inwokacji Pana Taduesza. Następnie wczytaj plik .txt do Pythona i odczytaj wszystkie linijki.

Zadanie 7. Po każdej linijce z inwokacji dopisz linijkę, w której będzie zapisane '-----------'.