Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Čermák Petr
Prm1
Commits
e12423fc
Commit
e12423fc
authored
Oct 11, 2019
by
Mareš Martin
Browse files
03: Seznamy
parent
4bbd1734
Changes
5
Hide whitespace changes
Inline
Side-by-side
03-seznamy/03-seznamy.tex
0 → 100644
View file @
e12423fc
\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}
% ----------------------------------------------------------------------
\end{document}
03-seznamy/Makefile
0 → 100644
View file @
e12423fc
SLIDES
=
03-seznamy.pdf
include
../Makerules
03-seznamy/fibonacci.py
0 → 100755
View file @
e12423fc
#!/usr/bin/env python3
# Spočítá prvních N Fibonacciho čísel (N>=2)
N
=
int
(
input
())
fib
=
[
0
,
1
]
for
i
in
range
(
N
-
2
):
fib
.
append
(
fib
[
-
1
]
+
fib
[
-
2
])
print
(
fib
)
03-seznamy/seznam-pozpatku.py
0 → 100755
View file @
e12423fc
#!/usr/bin/env python3
# Načítá čísla ze vstupu ukončená -1,
# vypíše je pozpátku
seznam
=
[]
while
True
:
x
=
int
(
input
())
if
x
==
-
1
:
break
seznam
.
append
(
x
)
for
i
in
range
(
len
(
seznam
)):
print
(
seznam
[
-
i
-
1
])
03-seznamy/sito.py
0 → 100755
View file @
e12423fc
#!/usr/bin/env python3
# Eratosthenovo síto: najde prvočísla mezi 1 a N
N
=
int
(
input
())
A
=
[
True
]
*
(
N
+
1
)
for
i
in
range
(
2
,
N
+
1
):
if
A
[
i
]:
print
(
i
)
for
j
in
range
(
2
*
i
,
N
+
1
,
i
):
A
[
j
]
=
False
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment