# Autor: Vaclav Hejret # C2184 Uvod do programovani v Pythonu # Kazde zadani ma ruzne mnozstvi reseni, ktere vedou ke stejnemu vysledku # Tato reseni jsou jedny z moznych import math #5.1 #funkce pro rozdeleni vstupniho retezce podle rozdelovace a podeleni prvnich dvou prvku def splitter(text, delimiter = ";"): #rozdeli retezec podle zadaneho rozdelovace, strednik je defaultni data = text.split(delimiter) try: #pokud jsou prvni dva prvky cisla, prevede je na typ integer a podeli je A = int(data[0]) B = int(data[1]) print(A/B) #pokud alespon jeden y prvnich dvou prvku neni cislo, vypise vyjimku except ValueError: print("Nelze prevest, prvni dva prvky nejsou realna cisla.") #pokud bude druhy prvek cislo nula, vypise vyjimku except ZeroDivisionError: print("Nelze delit nulou.") except: print("Retezec ma pouze jeden prvek.") #zavola funkci splitter a jako parametr ji preda vstup z funkce input splitter(input("Zadej retezec s prvky oddelenymi strednikem:")) #jako alternativni volani funkce muze byt i s druhym argumentem, ktery prepise defaultni hodnotu rozdelovace splitter(input("Zadej retezec s prvky oddeleny mezerami:"), " ") #5.2 #funkce pro vypocet obvodu trojuhelniku #nacte vstup od uzivatele a = input("zadej delku strany a: ") b = input("zadej delku strany b: ") c = input("zadej delku strany c: ") def obvod_trojuhelniku(a,b,c): #prevede hodnoty na typ integer a = int(a) b = int(b) c = int(c) #vypocte obvod obvod = a + b + c #vrati vypoctenou hodnotu obvodu return obvod #zavola funkci, ktere preda tri argumenty a funkce vrati zpet obvod trojuhelniku, ktery se rovnou vypise print(obvod_trojuhelniku(a, b, c)) #funkce pro vypocet objemu kuzele #nacte vstup od uzivatele r = input("Zadej delku polomeru r: ") v = input("Zadej vysku kuzele: ") def objem_kuzele(r,v): #prevod vstupu na typ int r = int(r) v = int(v) #vypocet objemu kuzele objem = (1./3) * math.pi * r**2 * v #vrati vypoctenou hodnotu objemu return objem #zavola funkci, ktere preda 2 parametry a funkce vrati zpet objem kuzele, ktery se rovnou vypise print(objem_kuzele(r, v)) #vypocte delku prepony #nacte vstup od uzivatele a = input("Zadej delku prepony a: ") b = input("Zadej delku prepony b: ") def delka_odvesny(a,b): #prevod vstupu na typ int a = int(a) b = int(b) #vypocte delku prepony c = math.sqrt(a**2 + b**2) #vrati vypoctenou hodnotu prepony return c #zavola funkci, ktere preda dva parametry a funkce vrati zpet delku prepony, ktera se rovnou vypise print(delka_odvesny(a, b)) #5.3 #funkce pro vypis fibonacciho posloupnosti 0,1,1,2,3,5,8,13 atd def fibonacci(end): #prevede cislo udavajici pocet cisel posloupnosti na hodnotu integer end = int(end) #inicializace dvou pomocnych promennych na 0 a 1 prvni = 0 druhy = 1 #vypise prvni dva prcky posloupnosti 0,1 #syntaxe end = " " zaruci to, ze se po vypisu neukonci radek, aleposloupnost bude na jednom radku print(prvni, end = " ") print(druhy, end = " ") #cyklus bezi od nuly o dva mene, nez je celkovy pocet cisel posloupnosti for i in range(end-2): #do pomocne treti promenne priradi hodnotu souctu prvni a druhe treti = prvni + druhy #do prvni priradi hodnotu druhe prvni = druhy #do druhe priradi hodnotu treti #zajisti posunuti v poslouponosti o jeden prvek dopredu druhy = treti #vypise hodnotu pomocne promenne #syntaxe end = " " zaruci to, ze se po vypisu neukonci radek, aleposloupnost bude na jednom radku print(treti,end = " ") #zavola funkci a jako paramter ji preda svtup, ktery nacte od uzivatele, tedy celkovy pocet #cisel posloupnosti fibonacci(input("Zadej pocet cisel fibonacciho posloupnosti: ")) print()