Použití jazyka Python pro realizaci výpočtů a aplikací



Podobné dokumenty
Martin Flusser. Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague. October 17, 2016

Cvičení 11. B1B14ZEL1 / Základy elektrotechnického inženýrství

3. Kmitočtové charakteristiky

VY_32_INOVACE_INF.15. Dějiny počítačů II.

ELEKTROTECHNIKA A INFORMATIKA

Matematické základy šifrování a kódování

Elektrická měření pro I. ročník (Laboratorní cvičení)

Úvod do programování. Lekce 1

Fázorové diagramy pro ideální rezistor, skutečná cívka, ideální cívka, skutečný kondenzátor, ideální kondenzátor.

13 Měření na sériovém rezonančním obvodu

Sada 1 - Základy programování

Fyzika I. Obvody. Petr Sadovský. ÚFYZ FEKT VUT v Brně. Fyzika I. p. 1/36

Programování v Pythonu

Martin Hejtmánek hejtmmar

Algoritmizace a programování

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

MĚŘENÍ Laboratorní cvičení z měření Měření parametrů operačních zesilovačů část Teoretický rozbor

Studium tranzistorového zesilovače

DIGITÁLNÍ UČEBNÍ MATERIÁL

VISUAL BASIC. Práce se soubory

12. Elektrotechnika 1 Stejnosměrné obvody Kirchhoffovy zákony

PŘÍKLAD PŘECHODNÝ DĚJ DRUHÉHO ŘÁDU ŘEŠENÍ V ČASOVÉ OBLASTI A S VYUŽITÍM OPERÁTOROVÉ ANALÝZY

Výpočet napětí malé elektrické sítě

2 Datové typy v jazyce C

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

ZÁKLADY ELEKTROTECHNIKY pro OPT

Katedra geotechniky a podzemního stavitelství

Základy algoritmizace

Digitální učební materiál

Střední průmyslová škola elektrotechnická a informačních technologií Brno

Manuální, technická a elektrozručnost

Vítězslav Stýskala, Jan Dudek. Určeno pro studenty komb. formy FBI předmětu / 06 Elektrotechnika

1. GPIB komunikace s přístroji M1T330, M1T380 a BM595

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Operátory pro maticové operace (operace s celými maticemi) * násobení maticové Pro čísla platí: 2*2

Středoškolská technika SCI-Lab

Proudové převodníky AC proudů

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

VY_32_INOVACE_ENI_3.ME_01_Děliče napětí frekvenčně nezávislé Střední odborná škola a Střední odborné učiliště, Dubno Ing.

20ZEKT: přednáška č. 3

Střední průmyslová škola elektrotechnická a informačních technologií Brno

Basic256 - úvod do programování Příklady. ing. petr polách

SEMESTRÁLNÍ PRÁCE Z PŘEDMĚTU NÁVRH A ANALÝZA ELEKTRONICKÝCH OBVODŮ

Zápis programu v jazyce C#

Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru

7. Derivace složené funkce. Budeme uvažovat složenou funkci F = f(g), kde některá z jejich součástí

[Otázky Autoelektrikář + Mechanik elektronických zařízení 1.část] Na rezistoru je napětí 25 V a teče jím proud 50 ma. Rezistor má hodnotu.

Název: Měření paralelního rezonančního LC obvodu

Programování v Pythonu

ELEKTRONIKA. Maturitní témata 2018/ L/01 POČÍTAČOVÉ A ZABEZPEČOVACÍ SYSTÉMY

Ele 1 RLC v sérií a paralelně, rezonance, trojfázová soustava, trojfázové točivé pole, rozdělení elektrických strojů

Paměť počítače. alg2 1

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Tel-30 Nabíjení kapacitoru konstantním proudem [V(C1), I(C1)] Start: Transient Tranzientní analýza ukazuje, jaké napětí vytvoří proud 5mA za 4ms na ka

Střední průmyslová škola elektrotechnická a informačních technologií Brno

Stručný návod k programu Octave

Programování v jazyce C pro chemiky (C2160) 3. Příkaz switch, příkaz cyklu for, operátory ++ a --, pole

Měřicí přístroje a měřicí metody

Děliče napětí a zapojení tranzistoru

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

TEMATICKÝ PLÁN VÝUKY

U1, U2 vnější napětí dvojbranu I1, I2 vnější proudy dvojbranu

Kapitola 2: Analýza lineárních obvodů metodou admitanční matice

1.1 Pokyny pro měření

MĚŘENÍ Laboratorní cvičení z měření Měření vlastní a vzájemné indukčnosti část Teoretický rozbor

TECHNICKÁ UNIVERZITA V LIBERCI

Základy elektrotechniky (ZELE)

Střední průmyslová škola elektrotechniky a informatiky, Ostrava VÝROBNÍ DOKUMENTACE

4EK213 Lineární modely. 4. Simplexová metoda - závěr

Elektronika ve fyzikálním experimentu

1. Změřte závislost indukčnosti cívky na procházejícím proudu pro tyto případy:

Digitální učební materiál

Programování v Pythonu

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

Předmluva 9 Obsah knihy 9 Typografické konvence 10 Informace o autorovi 10 Poděkování 10

Operační zesilovač. Úloha A2: Úkoly: Nutné vstupní znalosti: Diagnostika a testování elektronických systémů

IB112 Základy matematiky

1. Chyby vstupních dat metody převedení úlohy na numerickou (řád použité metody) zaokrouhlovací reprezentace čísel v počítači

Rezonanční obvod jako zdroj volné energie

Kapacita, indukčnost; kapacitor-kondenzátor, induktor-cívka

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Kódování a Šifrování. Iveta Nastoupilová

4.6.6 Složený sériový RLC obvod střídavého proudu

Matematika Kvadratická rovnice. Kvadratická rovnice je matematický zápis, který můžeme (za pomoci ekvivalentních úprav) upravit na tvar

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

VÝVOJOVÁ DESKA PRO JEDNOČIPOVÝ MIKROPOČÍTAČ PIC 16F88 A. ZADÁNÍ FUNKCE A ELEKTRICKÉ PARAMETRY: vstupní napětí: U IN AC = 12 V (např.

Modelování a simulace Lukáš Otte

Vyčtení / zapsání hodnot z/do OMC8000 pomocí protokolu UDP

Teoretický úvod: [%] (1)

Kompenzovaný vstupní dělič Analogový nízkofrekvenční milivoltmetr

Programování v Pythonu

MO-ME-N-T MOderní MEtody s Novými Technologiemi

SČÍTAČKA, LOGICKÉ OBVODY ÚVOD TEORIE

Programování v jazyce JavaScript

18A - PRINCIPY ČÍSLICOVÝCH MĚŘICÍCH PŘÍSTROJŮ Voltmetry, A/D převodníky - principy, vlastnosti, Kmitoměry, čítače, fázoměry, Q- metry

Profilová část maturitní zkoušky 2017/2018

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

C# konzole Podíl dvou čísel, podmínka IF

Základy elektrotechniky 2 (21ZEL2) Přednáška 1

Transkript:

Použití jazyka Python pro realizaci výpočtů a aplikací Počítače byly původně určeny pouze pro matematické výpočty. V následujícím textu jsou publikovány praktické příklady ilustrující spojení počítačových předmětů (programování a programové vybavení) s předměty elektrotechnické specializace (základy elektrotechniky) a matematiky. Pro každý program je uveden výsledek běhu programu s vloženými vstupními daty. Následující ukázka použití jazyka Python ilustruje vzájemně propojování vyučování odborných předmětů na naší škole. Výpočet kvadratické rovnice Příklad: program pro realizaci výpočtu kvadratické rovnice: "program pro vypocet kvadraticke rovnice " import math # připojení matematické knihovny a = float (raw_input("zadej a ")) # vstup hodnoty a b = float (raw_input("zadej b ")) # vstup hodnoty b c = float (raw_input("zadej c ")) # vstup hodnoty c d= b*b - 4*a*c # výpočet diskriminantu d1=math.sqrt(d) # vyvolání funkce druhé odmocniny x1 = ((-1)*b +d1)/(2*a) # výpočet kořene x1 x2 = ((-1)*b -d1)/(2*a) # výpočet kořene x2 "x1= ",x1 # výstup kořene x1 "x2= ",x2 # výstup kořene x2 Zde je výsledek z běhu programu: Python2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit(intel)]on win32 IDLE 1.0.3 ======================== RESTART ================================ program pro vypocet kvadraticke rovnice zadej a 1 zadej b 5 zadej c 4 x1= -1.0 x2= 0.333333333333 Výše uvedený program neřeší situaci, kdy diskriminant vyjde záporně. Python nemůže odmocnit záporné číslo a program skončí chybou: Python2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit(intel)]on win32 1

IDLE 1.0.3 ======================== RESTART ================================ program pro vypocet kvadraticke rovnice zadej a 3 zadej b 3 zadej c 3 Traceback (most recent call last): File "E:\Python23\kv.py", line 7, in -topleveld1=math.sqrt(d) ValueError: math domain error Kromě knihovny math lze použít knihovnu pro práci s komplexními čísly cmath. Tím se podstatně zjednoduší některé výpočty, například výpočet kvadratické rovnice, kdy není potřeba rozhodovat, zda determinant je záporný či nikoliv. Veškeré funkce knihovny math zde mají své protějšky (například sqrt sqrt apod.) Jednoduchou modifikací předchozího programu pro výpočet kvadratické rovnice zajistíme jeho spolehlivou činnost i při záporném diskriminantu: Zde je výsledek: "program pro vypocet kvadraticke rovnice " import cmath a = float(raw_input("zadej a ")) b = float (raw_input("zadej b")) c = float (raw_input("zadej c")) d= b*b - 4*a*c d1=cmath.sqrt(d) x1 = (-1*b +d1)/(2*a) x2 = (-1 +b -d1)/(2*a) "x1= ",x1 "x2= ",x2 Python2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit(intel)]on win32 IDLE 1.0.3 ======================== RESTART ================================ program pro vypocet kvadraticke rovnice zadej a 3 zadej b 3 zadej c 3 x1= (-0.5+0.866025403784j) x2= (0.4-1.03923048454j) 2

Výpočet soustavy lineárních rovnic Důležitou úlohou v numerické matematice je řešení soustavy lineárních rovnic. Často je tato úloha řešena pomocí Cramerova pravidla. Příklad: řešení matice 3x3: import string "program pro vypocet soustavy 3 linearnich rovnic o trech neznamych" "program pro vypocet soustavy rovnic - cramerovo pravidlo" "zadej matici po jednotlivych radcich vcetne pravych stran " "jednotliva data jsou oddelena carkami " a1=raw_input("zadej prvni radek ") a2=raw_input("zadej druhy radek ") a3=raw_input("zadej treti radek ") ay1=string.split(a1,",") # rozdělení 1. řádku podle čárky ay2=string.split(a2,",") # rozdělení 2. řádku podle čárky ay3=string.split(a3,",") # rozdělení 3. řádku podle čárky a11=float (ay1[0]) # převod řetězce ne číslo typu real a12=float (ay1[1]) a13=float (ay1[2]) b1=float (ay1[3]) a21=float (ay2[0]) a22=float (ay2[1]) a23=float (ay2[2]) b2=float (ay2[3]) a31=float (ay3[0]) a32=float (ay3[1]) a33=float (ay3[2]) b3=float (ay3[3]) def determinant (a11,a21,a31,a12,a22,a32,a13,a23,a33): a=a11*a22*a33+a12*a23*a31+a13*a21*a32-a13*a22*a31- a12*a21*a33 a=a-a11*a23*a32 return (a) # funkce pro výpočet determinantu deta=determinant(a11,a21,a31,a12,a22,a32,a13,a23,a33) deta1=determinant(b1,b2,b3,a12,a22,a32,a13,a23,a33) #vyvolání funkce deta2=determinant(a11,a21,a31,b1,b2,b3,a13,a23,a33) deta3=determinant(a11,a21,a31,a12,a22,a32,b1,b2,b3) x=deta1/deta y=deta2/deta z=deta3/deta "vysledek x= ",x,"y= ",y,"z=",z "konec programu " Výpis běhu programu: program pro vypocet soustavy 3 linearnich rovnic o trech neznamych program pro vypocet soustavy rovnic - cramerovo pravidlo zadej matici po jednotlivych radcich vcetne pravych stran jednotliva data jsou oddelena carkami zadej prvni radek 1,2,3,5 zadej druhy radek 5,-1,-7,8 zadej treti radek 7,-2,-1,23 vysledek x= 3.18181818182 y= -1.0 z= 1.27272727273 konec programu 3

Šifrovací metody Pod pojmem šifrování si představme kódování zprávy tak, aby její význam byl k dispozici pouze příjemci této zprávy. V praxi je již zmíněný pojem obtížně realizovatelný, neboť lze předpokládat, že i jiný subjekt se pokusí zprávu dekódovat. O tom, zda se mu to podaří, či ne rozhoduje několik faktorů: 1) kvalita šifry z hlediska možných útoků 2) dostupnost špičkové výpočetní techniky (rychlý superpočítač) 3) schopný tým analytiků a programátorů Z literatury jsou známy případy použití různých metod. Historicky nejstarším prvkem je tzv. Caesarova šifra. Z doby druhé světové války uvedeme dva příklady různého přístupu k šifrování. V Německu se používal k šifrování stroj Enigma. Zmíněný stroj pracoval na elektromechanickém principu: pomocí relé a krokových mechanismů se natáčely mechanické kódové kotoučky, které prováděly vlastní kódování zprávy zapsané z klávesnice tohoto stroje. Na svoji dobu to bylo velmi pokročilé zařízení. Pro dekódování této šifry silou byl zkonstruován elektronkový počítač pod označením ABC. Ještě před jeho spuštěním do operačního provozu se Spojeneckým vojskům se podařilo získat jeden stroj Enigma. Analýzou tohoto zařízení byla šifra prolomena. Druhý způsob šifrování použila americké armáda zhruba ve stejném období. Použila k němu řeč kmene indiánů Navajo. V té době tuto řeč ovládalo cca 100 příslušníků tohoto kmene. Je zajímavé, že tato v principu jednoduchá šifrovací metoda nebyla rozluštěna během celé druhé světové války. Šifrování pomocí posunutí: Jedná se v principu o jednoduchou šifru, kde posunutí určuje, za jaký znak se má původní znak nahradit. Příklad: při posunutí o 1 se původní text ahoj změní na bipk. Tato šifra je jednoduchá, její realizace se dá provést rychle. Má však jeden zásadní problém. Její rozluštění je při použití například českého jazyka jednoduché, neboť v tomto jazyku je v libovolném textu statisticky největší výskyt samohlásek e, a. Tím se dá text poměrně rychle rozluštit. Tato šifra však dává upokojivé výsledky při použití ostatních znaků například čísel. Příklad použití: x="" "sifrovani textu pomoci posunuti" a= int(raw_input("zadej hodnotu posunuti ")) b=raw_input("zadej text") for i in range (len(b)): y= ord(b[i]) #převod znaku na ASCII f=int(y)+a #výpočet posunutí v ASCII v=chr(f) #převod kódu ASCII na znak x=x+v #skládání do výstupní proměnné "vstupni text :",b # výsledný tisk "vysledny text:",x 4

Výpis běhu programu: Python2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit(intel)]on win32 IDLE 1.0.3 ======================== RESTART ================================ sifrovani textu pomoci posunuti zadej hodnotu posunuti 2 zadej textahoj vstupni text : ahoj vysledny text: cjql Program využívá skutečnosti, která je definována tabulkou ASCII. Zde jsou všem znakům přiřazena pořadová čísla (adresy). Například po znaku a následuje znak b, po znaku b znak c atd.. Vstupní text musíme nejprve převést na pořadová čísla. To nám zabezpečí funkce ord. Tato funkce však vrací hodnotu typu řetězec. Použitím funkce int získáme z řetězce číslo. K tomuto číslu přičteme hodnotu posunutí a převedeme ho zpět pomocí funkce chr na znak. Znaky výstupního řetězce postupně načítáme do výsledného řetězce pomocí funkce chr. Příklad: program pro dešifrování: x="" "desifrovani textu pomoci posunuti" a= int(raw_input("zadej hodnotu posunuti ")) b=raw_input("zadej text") for i in range (len(b)): y= ord(b[i]) # převod znaku na kód ASCII f=int(y)-a # výpočet v=chr(f) # zpětný převod na znak x=x+v "vstupni text :",b "vysledny text:",x Výpis běhu programu: Python2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit(intel)]on win32 5

IDLE 1.0.3 ======================== RESTART ================================ desifrovani textu pomoci posunuti zadej hodnotu posunuti 2 zadej textcjql vstupni text : cjql vysledny text: ahoj Program pracuje oproti předchozímu inverzně. Přečte znak, převede ho na číslo, pak z něj odečte hodnotu posunutí, převede zpět na znak. Toto udělá pro každý znak vstupního řetězce. Dobré možnosti při kódování zabezpečuje funkce XOR. Je to funkce nonekvivalence (součet modulo 2). X Y Výstup 0 0 0 0 1 1 1 0 1 1 1 0 Příklad: program, který šifruje na základě použití funkce XOR: a="abcdefghijkl" klic= "bcdesg" x1="" x2="" " vstupni text ",a " klic ",klic "data prevedena do ASCII" for i in range(len(a)): d=ord (a[i]) c=str (d) x1=x1+c x1 for i in range(len(klic)): t=ord (klic[i]) r=str (t) x2=x2+r x2 e=int(x1)^int(x2) # provedení funkce XOR f=e^int(x2) g=str(e) # převedení na znak h=str(f) "vysledek =",g "pro kontrolu xor s vysledkem ma dat puvodni text" h "konec programu" 6

Výpis běhu programu: Python2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit(intel)]on win32 IDLE 1.0.3 ======================== RESTART ================================ vstupni text abcdefghijkl klic bcdesg data prevedena do ASCII 979899100101102103104105106107108 9899100101115103 vysledek = 979899100101102094918429092648507 pro kontrolu xor s vysledkem ma dat puvodni text 979899100101102103104105106107108 konec programu Popis: program postupně převede jednotlivé vstupní znaky na číselný kód ASCII, totéž provede i s klíčem. Následně provede funkci XOR mezi klíčem a vstupními daty. Z funkce vyplývá poměrně zajímavý výsledek. Tím je, že nové provedení funkce xor mezi výslednými daty a původním klíčem dává zpět původní data. Převod mezi dvěma hodnotami Příklad: následující program převádí mezi stupni celsia a stupni kelvina: "prevod stupňů celsia na stupně kelvina" a=float(raw_input("zadej hodnotu ve stupních celsia ")) "hodnota ve stupních kelvina je ",a+273.15 Výsledek běhu programu: Python2.6(r26:66721, Oct 2 2008,11:35:03)[MSC v.1500 32 bit(intel)]on win32 ============================== RESTART ================================ prevod stupnu celsia na stupne kelvina zadej hodnotu ve stupních celsia 0 hodnota ve stupních kelvina je 273.15 7

Použití programovacího jazyka Python pro základní elektrotechnické výpočty a) sériové řazení odporů "vypocet seriove kombinace odporu " a= int(raw_input("zadej pocet soucastek ")) suma=0 for i in range (a): b=float(raw_input("zadej hodnotu soucastky v ohmech ")) suma = suma+b " vysledna hodnota odporu je ",suma," ohmů" Výsledek běhu programu: Python2.6(r26:66721, Oct 2 2008,11:35:03)[MSC v.1500 32 bit(intel)]on win32 vypocet seriove kombinace odporu zadej pocet soucastek 3 zadej hodnotu soucastky v ohmech 5 zadej hodnotu soucastky v ohmech 100 zadej hodnotu soucastky v ohmech 120 vysledna hodnota odporu je 225.0 ohmù b) paralelní řazení odporů "vypocet paralelni kombinace odporu " a= int(raw_input("zadej pocet soucastek ")) suma=0 for i in range (a): b=float(raw_input("zadej hodnotu soucastky v ohmech ")) c=1/b suma = suma+c " vysledna hodnota odporu je ",1/suma," ohmů" 8

Výsledek běhu programu: Python2.6(r26:66721, Oct2 2008, 11:35:03)[MSC v.1500 32 bit(intel)]on win32 ============================== RESTART ================================ vypocet paralelni kombinace odporu zadej pocet soucastek 3 zadej hodnotu soucastky v ohmech 6 zadej hodnotu soucastky v ohmech 6 zadej hodnotu soucastky v ohmech 6 vysledna hodnota odporu je 2.0 ohmù c) výpočet impedance (cívka) import math "vypocet impedance civky " l= float(raw_input("zadej hodnotu civky v H ")) f= float(raw_input("zadej hodnotu frekvence v Hz ")) z=2*math.pi*f*l " impedance je ",z," ohmů" Výsledek běhu programu: Python2.6(r26:66721, Oct2 2008, 11:35:03)[MSC v.1500 32 bit(intel)]on win32 ============================== RESTART ================================ vypocet impedance civky zadej hodnotu civky v H 5e-3 zadej hodnotu frekvence v Hz 2e6 impedance je 62831.8530718 ohmù 9

d) výpočet impedance (kondenzátor) import math "vypocet impedance a admitance kondenzatoru " c= float(raw_input("zadej hodnotu kondenzatoru v F ")) f= float(raw_input("zadej hodnotu frekvence v Hz ")) y=2*math.pi*f*c z=1/y " impedance je ",z," ohmù" "admitance je ",y," S" Výsledek běhu programu: Python2.6(r26:66721,Oct 2 2008,11:35:03)[MSC v.1500 32 bit (Intel)]on win32 ============================== RESTART ================================ vypocet impedance a admitance kondenzatoru zadej hodnotu kondenzatoru v F 5e-6 zadej hodnotu frekvence v Hz 1000 impedance je 31.8309886184 ohmù admitance je 0.0314159265359 S e) výpočet přechodového jevu RC import math " vypocet prechodoveho jevu prubeh napeti a proudu" "při nabijeni a vybíjení kondenzátoru" u=float(raw_input("zadej hodnotu stejnosměrného napětí ve V ")) r=float(raw_input("zadej hodnotu odporu v ohmech ")) c=float(raw_input("zadej hodnotu kondenzatoru ve F ")) cas=float(raw_input("zadej dobu sledování v sec. ")) cas1=float(raw_input("zadej krok sledování ")) t=0.00000000 tau=r*c i=u/r " ","cas"," ","U"," ","I" "0.0 ","0.00000000000"," ",u/r while t<=cas: t=t+cas1 uvyst=u*(1-(math.exp(-1.0*(t/tau)))) ivyst=i*(math.exp(-1.0*(t/tau))) t," ",uvyst," ",ivyst 10

Výsledek běhu programu: Python2.6(r26:66721, Oct 2 2008,11:35:03)[MSC v.1500 32 bit(intel)]on win32 ============================== RESTART ================================ vypocet prechodoveho jevu prubeh napeti a proudu při nabijeni a vybíjení kondenzátoru zadej hodnotu stejnosměrného napětí ve V 10 zadej hodnotu odporu v ohmech 1 zadej hodnotu kondenzatoru ve F.5 zadej dobu sledování v sec. 9 zadej krok sledování.1 cas U I 0.0 0.00000000000 10.0 0.1 1.81269246922 8.18730753078 0.2 3.29679953964 6.70320046036 0.3 4.51188363906 5.48811636094 0.4 5.50671035883 4.49328964117 0.5 6.32120558829 3.67879441171 0.6 6.98805788088 3.01194211912 0.7 7.53403036058 2.46596963942 0.8 7.98103482005 2.01896517995 0.9 8.34701111778 1.65298888222 1.0 8.64664716763 1.35335283237 1.1 8.89196841638 1.10803158362 1.2 9.09282046711 0.907179532894 1.3 9.25726421786 0.742735782143 1.4 9.39189937375 0.608100626252 1.5 9.50212931632 0.497870683679 1.6 9.59237796022 0.407622039784 1.7 9.66626730040 0.333732699603 1.8 9.72676277553 0.273237224473 1.9 9.77629228144 0.223707718562 2.0 9.81684361111 0.183156388887 2.1 9.85004423180 0.149955768205 2.2 9.87722660097 0.122773399031 2.3 9.89948164255 0.100518357446 2.4 9.91770252951 0.0822974704902 2.5 9.93262053001 0.0673794699909 2.6 9.94483435579 0.0551656442076 2.7 9.95483419057 0.0451658094261 2.8 9.96302136284 0.0369786371648 2.9 9.96972445255 0.0302755474538 3.0 9.97521247823 0.0247875217667 3.1 9.97970569364 0.020294306363 3.2 9.98338442727 0.0166155727317 3.3 9.98639631962 0.0136036803755 3.4 9.98886224852 0.0111377514784 3.5 9.99088118034 0.00911881965555 11

3.6 9.99253414192 0.00746585808377 3.7 9.99388747239 0.0061125276113 3.8 9.99499548567 0.00500451433441 3.9 9.99590265021 0.0040973497898 4.0 9.99664537372 0.00335462627903 4.1 9.99725346430 0.00274653569972 4.2 9.99775132676 0.00224867324179 4.3 9.99815894206 0.00184105793668 4.4 9.99849266925 0.00150733075095 4.5 9.99876590196 0.00123409804087 4.6 9.99898960598 0.00101039401837 4.7 9.99917275934 0.000827240655566 4.8 9.99932271264 0.000677287364909 4.9 9.99944548401 0.000554515994322 5.0 9.99954600070 0.000453999297625 5.1 9.99962829681 0.000371703186841 5.2 9.99969567517 0.000304324830084 5.3 9.99975083990 0.000249160097315 5.4 9.99979600497 0.000203995034112 5.5 9.99983298299 0.000167017007902 5.6 9.99986325804 0.000136741960657 5.7 9.99988804515 0.000111954848426 5.8 9.99990833912 9.16608773625e-05 5.9 9.99992495442 7.50455791508e-05 6.0 9.99993855788 6.14421235333e-05 6.1 9.99994969544 5.03045560711e-05 6.2 9.99995881411 4.11858870754e-05 6.3 9.99996627985 3.37201523414e-05 6.4 9.99997239227 2.76077257204e-05 6.5 9.99997739671 2.26032940698e-05 6.6 9.99998149399 1.85060119758e-05 6.7 9.99998484856 1.51514411214e-05 6.8 9.99998759505 1.24049507996e-05 6.9 9.99998984369 1.015631471e-05 7.0 9.99999168471 8.31528719104e-06 7.1 9.99999319202 6.80798134398e-06 7.2 9.99999442610 5.57390369269e-06 7.3 9.99999543647 4.5635263679e-06 7.4 9.99999626370 3.73629937989e-06 7.5 9.99999694098 3.05902320502e-06 7.6 9.99999749548 2.50451637233e-06 7.7 9.99999794948 2.05052457561e-06 7.8 9.99999832117 1.67882753e-06 7.9 9.99999862549 1.37450772792e-06 8.0 9.99999887465 1.12535174719e-06 8.1 9.99999907864 9.21360083457e-07 8.2 9.99999924565 7.54345834984e-07 8.3 9.99999938239 6.17606133558e-07 8.4 9.99999949435 5.05653134834e-07 8.5 9.99999958601 4.13993771879e-07 8.6 9.99999966105 3.3894943262e-07 8.7 9.99999972249 2.77508324224e-07 8.8 9.99999977280 2.27204599277e-07 8.9 9.99999981398 1.86019392669e-07 9.0 9.99999984770 1.52299797447e-07 9.1 9.99999987531 1.24692527858e-07 12

f) výpočet nezatíženého děliče napětí " vypocet vystupniho napeti na nezatizenem delici napeti" r1=float(raw_input("zadej hodnotu r1 v ohmech ")) r2=float(raw_input("zadej hodnotu r2 v ohmech ")) u=float(raw_input("zadej hodnotu vstupniho napeti ve V ")) uvyst=u*r2/(r1+r2) "Vystupni hodnota napeti je ",uvyst,"v" Výsledek běhu programu: Python2.6(r26:66721, Oct2 2008,11:35:03)[MSC v.1500 32 bit (Intel)]on win32 ============================== RESTART ================================ vypocet vystupniho napeti na nezatizenem delici napeti zadej hodnotu r1 v ohmech 6 zadej hodnotu r2 v ohmech 6 zadej hodnotu vstupniho napeti ve V 10 Vystupni hodnota napeti je 5.0 V g) výpočet zatíženého děliče napětí "zatizeny delic napeti" u=float(raw_input("zadej napajeci napeti ve V ")) r1=float(raw_input("zadej odpor R1 v ohmech ")) r2=float(raw_input("zadej odpor R2 v ohmech ")) rz=float(raw_input("zadej odpor RZ v ohmech ")) r=r1+(r1*rz)/(r2+rz) i=u/r uv = u* (r2*rz)/(r1*r2+rz*r2+r1*rz) "vystupni proud ",i,"a" "vystupni napeti ",uv,"v" konec vypoctu 13

Výsledek běhu programu: Python2.6(r26:66721, Oct2 2008,11:35:03)[MSC v.1500 32 bit (Intel)]on win32 ============================== RESTART ================================ zatizeny delic napeti zadej napajeci napeti ve V 10 zadej odpor R1 v ohmech 10000 zadej odpor R2 v ohmech 10000 zadej odpor RZ v ohmech 80000 vystupni proud 0.000529411764706 A vystupni napeti 4.70588235294 V konec vypoctu h) výpočet rezonance import math "vypocet rezonancniho kmitoctu " c= float(raw_input("zadej hodnotu kondenzatoru v F ")) l= float(raw_input("zadej hodnotu civky v H ")) f=1/(2*math.pi*math.sqrt(l*c)) " rezonancni kmitocet je ",f,"hz" Výsledek běhu programu: Python2.6 r26:66721,oct 2 2008,11:35:03)[MSC v.1500 32 bit (Intel)]on win32 ============================== RESTART ================================ vypocet rezonancniho kmitoctu zadej hodnotu kondenzatoru v F 1e-6 zadej hodnotu civky v H 1e-8 rezonancni kmitocet je 1591549.43092 Hz 14

Použitá literatura: Skalická, Škop Python, učební texty SPŠE, V Úžlabině 320, rok 2007 Skalická,Škop Python - rozšířené vydání, učební texty SPŠE, V Úžlabině 320, rok 2008 Škop Výuka programování na střední škole, Závěrečná práce studia DPS, Pedf UK, rok 2008 15