01-uvod.tex 3.72 KB
 Martin Mareš committed Sep 26, 2019 1 2 \documentclass{beamer} \usepackage[utf8]{inputenc}  Martin Mareš committed Sep 26, 2019 3 \usepackage[czech]{babel}  Martin Mareš committed Sep 26, 2019 4 \usepackage{palatino}  Martin Mareš committed Sep 26, 2019 5 \usepackage{verbatim}  Martin Mareš committed Sep 26, 2019 6 7 8 9 \usetheme{Warsaw} \title{Programování 1: Úvod do Pythonu} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \institute{Katedra Aplikované Matematiky\\MFF UK Praha}  Martin Mareš committed Sep 29, 2020 10 \date{2020}  Martin Mareš committed Sep 26, 2019 11 12 13 14 15 16 17 18 19 \begin{document} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{footline}{} \setbeamerfont{title page}{family=\rmfamily} \begin{frame} \titlepage \end{frame}  Martin Mareš committed Oct 11, 2019 20 \input ../slidemac.tex  Martin Mareš committed Sep 26, 2019 21 22 23  % ----------------------------------------------------------------------  Martin Mareš committed Sep 26, 2019 24 \begin{frame}{Python jako kalkulačka}  Martin Mareš committed Sep 26, 2019 25   Martin Mareš committed Sep 26, 2019 26 \py{1+1}{2}  Martin Mareš committed Sep 26, 2019 27   Martin Mareš committed Sep 26, 2019 28 \py{2+3*4+1}{15}  Martin Mareš committed Sep 26, 2019 29   Martin Mareš committed Sep 26, 2019 30 \py{2+3 * 4+1}{15}  Martin Mareš committed Sep 26, 2019 31   Martin Mareš committed Sep 26, 2019 32 \py{(2+3)*(4+1)}{25}  Martin Mareš committed Sep 26, 2019 33   Martin Mareš committed Sep 26, 2019 34 \py{2**10}{1024}  Martin Mareš committed Sep 26, 2019 35   Martin Mareš committed Sep 26, 2019 36 \py{2**100}{1267650600228229401496703205376}  Martin Mareš committed Sep 26, 2019 37 38 39 40 41  \end{frame} % ----------------------------------------------------------------------  Martin Mareš committed Sep 26, 2019 42 \begin{frame}{Desetinná čísla}  Martin Mareš committed Sep 26, 2019 43   Martin Mareš committed Sep 26, 2019 44 45 \={Dělení vytváří \uv{desetinná} čísla s~omezenou přesností:} \py{1/3}{0.3333333333333333}  Martin Mareš committed Sep 26, 2019 46   Martin Mareš committed Oct 01, 2019 47 \py{1/3 * 3}{1.0}  Martin Mareš committed Sep 26, 2019 48   Martin Mareš committed Oct 01, 2019 49 \py{1/6 + 1/6 + 1/6 + 1/6 + 1/6 + 1/6}{0.9999999999999999}  Martin Mareš committed Sep 26, 2019 50   Martin Mareš committed Sep 26, 2019 51 52 \={Notace s mantisou a exponentem: $m\cdot10^e$.} \py{1/(2**100)}{7.888609052210118e-31}  Martin Mareš committed Sep 26, 2019 53   Martin Mareš committed Sep 26, 2019 54 55 56 57 58 59 \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Celočíselné dělení}  Martin Mareš committed Sep 26, 2019 60 61 \={Celočíselné dělení:} \py{7//3}{2}  Martin Mareš committed Sep 26, 2019 62   Martin Mareš committed Sep 26, 2019 63 64 \={Zbytek po dělení (modulo):} \py{7\%3}{1}  Martin Mareš committed Sep 26, 2019 65   Martin Mareš committed Sep 26, 2019 66 67 68 \={Dělení záporného čísla zaokrouhluje dolů, nikoliv k nule:} \py{-7//3}{-3} \py{-(7//3)}{-2}  Martin Mareš committed Sep 26, 2019 69   Martin Mareš committed Sep 26, 2019 70 71 \={Vždy platí {\tt (a//b)*b + (a\%b) = a}} \py{-7\%3}{2}  Martin Mareš committed Sep 26, 2019 72 73 74 75 76 77  \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Proměnné}  Martin Mareš committed Sep 26, 2019 78   Martin Mareš committed Sep 26, 2019 79 \={Hodnotu výrazu si můžeme pojmenovat:}  Martin Mareš committed Oct 03, 2019 80 \py{a=100\\b=23\\a+b}{123}  Martin Mareš committed Sep 26, 2019 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172  \={Obsah proměnné jde měnit:} \py{soucet=0\\soucet=soucet+10\\soucet=soucet+3\\soucet}{13} \={Zkrácený zápis:} \py{soucet+=1\\soucet}{14} \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Matematické funkce} \={Matematická knihovna:} \py{import math\\math.pi}{3.141592653589793} \py{math.sin(math.pi / 3)}{0.8660254037844386} \={Voláme o pomoc:} \py{help(math.sin)\\help(math)}{} \={Místo {\tt math.sin} můžeme psát prostě {\tt sin}:} \py{from math import *\\sin(0)}{} \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Klademe Pythonu otázky} \py{5**7 > 7**5}{True} \py{cos(0) < 0}{False} \py{0.8 <= sin(pi/3) <= 0.9}{True} \py{pi>3 and pi<4}{True} \py{x>0 or not x>0}{True} \py{1 == 1}{True} \py{1 != 2}{True} \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Náš první program: počítáme od 1 do 10} \verbatiminput{first.py} \bigskip Odsazování je povinné, udává blokovou strukturu programu. Pak je jasné, které příkazy jsou uvnitř cyklu, a~které už za ním. \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Náš první program: vypisujeme jen sudá čísla} \verbatiminput{first-even.py} \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Náš první program: zeptáme se, do kolika počítat} \verbatiminput{first-input.py} \bigskip V~uvozovkách se zapisují řetězce (o~nich později). Funkce {\tt input()} načte řetězec, {\tt int()} ho převede na číslo. \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Náš první program: ještě trocha komentářů} \verbatiminput{first-comments.py} \bigskip Od {\tt\#} do konce řádku se vše ignoruje. Prvni řádek pod Linuxem říká, čím se má soubor spustit.  Martin Mareš committed Sep 26, 2019 173 174 175 176 177 178  \end{frame} % ---------------------------------------------------------------------- \end{document}