#! /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 '-----------'.