Skip to content
Snippets Groups Projects
Select Git revision
  • f2096f2bbb673fbaef0828767309c57f57d3177c
  • master default protected
2 results

PJL.pm

Blame
  • 01-uvod.tex 3.72 KiB
    \documentclass{beamer}
    \usepackage[utf8]{inputenc}
    \usepackage[czech]{babel}
    \usepackage{palatino}
    \usepackage{verbatim}
    \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}
    \date{2019}
    \begin{document}
    \setbeamertemplate{navigation symbols}{}
    \setbeamertemplate{footline}{}
    \setbeamerfont{title page}{family=\rmfamily}
    
    \begin{frame}
    \titlepage
    \end{frame}
    
    \input ../slidemac.tex
    
    % ----------------------------------------------------------------------
    
    \begin{frame}{Python jako kalkulačka}
    
    \py{1+1}{2}
    
    \py{2+3*4+1}{15}
    
    \py{2+3 * 4+1}{15}
    
    \py{(2+3)*(4+1)}{25}
    
    \py{2**10}{1024}
    
    \py{2**100}{1267650600228229401496703205376}
    
    \end{frame}
    
    % ----------------------------------------------------------------------
    
    \begin{frame}{Desetinná čísla}
    
    \={Dělení vytváří \uv{desetinná} čísla s~omezenou přesností:}
    \py{1/3}{0.3333333333333333}
    
    \py{1/3 * 3}{1.0}
    
    \py{1/6 + 1/6 + 1/6 + 1/6 + 1/6 + 1/6}{0.9999999999999999}
    
    \={Notace s mantisou a exponentem: $m\cdot10^e$.}
    \py{1/(2**100)}{7.888609052210118e-31}
    
    \end{frame}
    
    % ----------------------------------------------------------------------
    
    \begin{frame}{Celočíselné dělení}
    
    \={Celočíselné dělení:}
    \py{7//3}{2}
    
    \={Zbytek po dělení (modulo):}
    \py{7\%3}{1}
    
    \={Dělení záporného čísla zaokrouhluje dolů, nikoliv k nule:}
    \py{-7//3}{-3}
    \py{-(7//3)}{-2}
    
    \={Vždy platí {\tt (a//b)*b + (a\%b) = a}}
    \py{-7\%3}{2}
    
    \end{frame}
    
    % ----------------------------------------------------------------------
    
    \begin{frame}{Proměnné}
    
    \={Hodnotu výrazu si můžeme pojmenovat:}
    \py{a=100\\b=23\\a+b}{123}
    
    \={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.
    
    \end{frame}
    
    % ----------------------------------------------------------------------
    
    \end{document}