Skip to content
Snippets Groups Projects
Select Git revision
  • 20474c90a6e993cd3de2c0c6cc3810476274edc2
  • master default
  • zs2021
  • zs1920
4 results

03-seznamy.tex

Blame
  • 03-seznamy.tex 2.89 KiB
    \documentclass{beamer}
    \usepackage[utf8]{inputenc}
    \usepackage[czech]{babel}
    \usepackage{palatino}
    \usepackage{verbatim}
    \usetheme{Warsaw}
    \title{Programování 1: Seznamy}
    \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}{Seznamy a jejich indexování}
    
    \py{%
    cisla = [11, 22, 33, 44, 55]
    }{%
    }
    
    \py{%
    cisla[0]
    }{%
    11
    }
    
    \py{%
    cisla[2]
    }{%
    33
    }
    
    \py{%
    cisla[-1]
    }{%
    55
    }
    
    \py{%
    len(cisla)
    }{%
    5
    }
    
    \end{frame}
    
    % ----------------------------------------------------------------------
    
    \begin{frame}{Vnořené seznamy}
    
    \py{%
    matice = [[11, 12, 13], [21, 22, 23]]
    }{%
    }
    
    \py{%
    matice[0]
    }{%
    [11, 12, 13]
    }
    
    \py{%
    matice[0][2]
    }{%
    13
    }
    
    \end{frame}
    
    % ----------------------------------------------------------------------
    
    % \begin{frame}{Řetězec se také chová jako seznam}
    % 
    % \py{%
    % slovo = "mňau"\\
    % len(slovo)
    % }{%
    % 4
    % }
    % 
    % \py{%
    % slovo[1]
    % }{%
    % 'ň'
    % }
    % 
    % \py{%
    % slova = ["mňau", "haf", "kvák"]\\
    % slova[1]
    % }{%
    % 'haf'
    % }
    % 
    % \end{frame}
    
    % ----------------------------------------------------------------------
    
    \begin{frame}{Cyklus for}
    
    \py{%
    slova = ["mňau", "haf", "kvák"]\\
    for x in slova:\.
    \>print(x)
    }{%
    mňau\\
    haf\\
    kvák
    }
    
    \py{%
    for x in range(1, 5):\.
    \>print(x)
    }{%
    1\\
    2\\
    3\\
    4
    }
    
    \py{%
    for i in range(len(x)):\.
    \>print(x[i])
    }{%
    }
    
    \end{frame}
    
    % ----------------------------------------------------------------------
    
    \begin{frame}{Operace se seznamy}
    
    \py{%
    slova = ["mňau", "haf", "kvák"]\\
    slova.append("íá")\\
    slova
    }{%
    ['mňau', 'haf', 'kvák', 'íá']
    }
    
    \py{%
    [1, 2] + [3, 4, 5]
    }{%
    [1, 2, 3, 4, 5]
    }
    
    \py{%
    [0] * 5
    }{%
    [0, 0, 0, 0, 0]
    }
    
    \end{frame}
    
    % ----------------------------------------------------------------------
    
    \begin{frame}{Chyták: proměnné na seznamy jen odkazují!}
    
    \py{%
    x = [1, 2, 3]\\
    y = x\\
    x[2] = 9\\
    y
    }{%
    [1, 2, 9]
    }
    
    \py{%
    m = [[0] * 4] * 3\\
    m
    }{%
    [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
    }
    
    \py{%
    m[0][0] = 1\\
    m
    }{%
    [[1, 0, 0, 0], [1, 0, 0, 0], [1, 0, 0, 0]]
    }
    
    \end{frame}
    
    % ----------------------------------------------------------------------
    
    \begin{frame}{Vypsání čísel pozpátku}
    
    \verbatiminput{seznam-pozpatku.py}
    
    \end{frame}
    
    % ----------------------------------------------------------------------
    
    \begin{frame}{Něco navíc o generátorech}
    
    \py{%
    range(5)
    }{%
    range(0, 5)
    }
    
    \py{%
    list(range(5))
    }{%
    [0, 1, 2, 3, 4]
    }
    
    \py{%
    list(range(2, 20, 3))
    }{%
    [2, 5, 8, 11, 14, 17]
    }
    
    \py{%
    list(range(10, 0))
    }{%
    []
    }
    
    \py{%
    list(range(10, 0, -1))
    }{%
    [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    }
    
    \end{frame}
    
    % ----------------------------------------------------------------------
    
    \end{document}