Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Čermák Petr
Prm1
Commits
89c877bf
Commit
89c877bf
authored
Oct 12, 2020
by
cermak
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Lecture 2
parent
22e100e4
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
104 additions
and
71 deletions
+104
-71
01-uvod/01-uvod.ipynb
01-uvod/01-uvod.ipynb
+14
-6
02-cykly/02-cykly.tex
02-cykly/02-cykly.tex
+26
-0
02-cykly/euklides-modulici.py
02-cykly/euklides-modulici.py
+0
-16
02-cykly/euklides-odcitaci.py
02-cykly/euklides-odcitaci.py
+0
-13
02-cykly/euklides-trikovy.py
02-cykly/euklides-trikovy.py
+0
-10
02-cykly/pocet-cifer.py
02-cykly/pocet-cifer.py
+32
-0
02-cykly/posloupnost-max.py
02-cykly/posloupnost-max.py
+0
-18
02-cykly/posloupnost-soucet-break.py
02-cykly/posloupnost-soucet-break.py
+13
-0
02-cykly/posloupnost-soucet-mroz.py
02-cykly/posloupnost-soucet-mroz.py
+12
-0
02-cykly/posloupnost-soucet.py
02-cykly/posloupnost-soucet.py
+3
-4
02-cykly/prvocisla-else.py
02-cykly/prvocisla-else.py
+2
-2
02-cykly/prvocisla-test.py
02-cykly/prvocisla-test.py
+2
-2
No files found.
01-uvod/01-uvod.ipynb
View file @
89c877bf
...
...
@@ -3,7 +3,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# %load first.py\n",
...
...
@@ -16,7 +18,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# %load first-even.py\n",
...
...
@@ -30,7 +34,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# %load first-input.py\n",
...
...
@@ -47,7 +53,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# %load first-comments.py\n",
...
...
@@ -168,9 +176,9 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
"version": "3.7.6
-final
"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
}
\ No newline at end of file
02-cykly/02-cykly.tex
View file @
89c877bf
...
...
@@ -117,4 +117,30 @@ Existuje zkratka:
% ----------------------------------------------------------------------
\begin{frame}
{
Příklad: sčítáme posloupnost čísel
}
\pycode
{
posloupnost-soucet-break.py
}
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}
{
Příklad: sčítáme posloupnost čísel v Pythonu 3.8
}
Novinka v Pythonu 3.8: „mroží“ operátor (assignment expressions / přiřazovací výrazy).
:= přiřadí hodnotu do proměnné a zároveň hodnoty nabývá
\pycode
{
posloupnost-soucet-mroz.py
}
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}
{
Úkol na zbytek hodiny
}
Spočítejte, kolik má zadané číslo cifer.
\end{frame}
% ----------------------------------------------------------------------
\end{document}
02-cykly/euklides-modulici.py
deleted
100755 → 0
View file @
22e100e4
#!/usr/bin/env python3
# Největší společný dělitel: Euklidův algoritmus s modulem
x
=
int
(
input
())
y
=
int
(
input
())
while
x
>
0
and
y
>
0
:
if
x
>
y
:
x
%=
y
else
:
y
%=
x
if
x
>
0
:
print
(
x
)
else
:
print
(
y
)
02-cykly/euklides-odcitaci.py
deleted
100755 → 0
View file @
22e100e4
#!/usr/bin/env python3
# Největší společný dělitel: Euklidův algoritmus s odčítáním
x
=
int
(
input
())
y
=
int
(
input
())
while
x
!=
y
:
if
x
>
y
:
x
-=
y
else
:
y
-=
x
print
(
x
)
02-cykly/euklides-trikovy.py
deleted
100755 → 0
View file @
22e100e4
#!/usr/bin/env python3
# Největší společný dělitel: Euklidův algoritmus s pár triky navíc
x
=
int
(
input
())
y
=
int
(
input
())
while
y
>
0
:
x
,
y
=
y
,
x
%
y
print
(
x
)
02-cykly/pocet-cifer.py
0 → 100644
View file @
89c877bf
#!/usr/bin/env python3
# Spočítá počet cifer zadaného nezáporného celého čísla
n
=
int
(
input
())
# pomocí řetězce
# takto jsme to nechtěli
print
(
f
"zadané číslo má
{
len
(
str
(
n
))
}
cifer"
)
# rekurzí (to se budeme učit)
def
cifer
(
x
):
if
x
<
10
:
return
1
return
1
+
cifer
(
x
//
10
)
print
(
f
"zadané číslo má
{
cifer
(
n
)
}
cifer"
)
# matematická řešení níže nefungují pro nulu!
if
n
==
0
:
print
(
f
"zadané číslo má
{
1
}
cifer"
)
exit
()
# ukončí program
# řešení s matematickou knihovnou
# nefunguje pro čísla > 999999999999997
import
math
print
(
f
"zadané číslo má
{
int
(
math
.
log10
(
n
))
+
1
}
cifer"
)
# pomocí cyklu (to jsme chtěli)
cifer
=
0
while
n
:
cifer
+=
1
n
//=
10
print
(
f
"zadané číslo má
{
cifer
}
cifer"
)
02-cykly/posloupnost-max.py
deleted
100755 → 0
View file @
22e100e4
#!/usr/bin/env python3
# Načítá čísla ze vstupu ukončená -1,
# vypíše druhé největší z nich
m1
=
0
# Zatím největší číslo
m2
=
0
# Zatím druhé největší
while
True
:
n
=
int
(
input
())
if
n
==
-
1
:
break
if
n
>=
m1
:
m1
,
m2
=
n
,
m1
elif
n
>=
m2
:
m2
=
n
print
(
m2
)
02-cykly/posloupnost-
max2
.py
→
02-cykly/posloupnost-
soucet-break
.py
View file @
89c877bf
#!/usr/bin/env python3
# Načítá čísla ze vstupu ukončená -1,
# vypíše
druhé největší z nich
# vypíše
jejich součet
m1
=
0
# Zatím největší číslo
m2
=
0
# Zatím druhé největší
s
=
0
while
True
:
n
=
int
(
input
())
if
n
==
-
1
:
break
s
+=
n
if
n
>=
m1
:
m1
,
m2
=
n
,
m1
elif
n
>=
m2
:
m2
=
n
print
(
m2
)
print
(
s
)
02-cykly/posloupnost-soucet-mroz.py
0 → 100644
View file @
89c877bf
#!/usr/bin/env python3
# Načítá čísla ze vstupu ukončená -1,
# vypíše jejich součet
# používáme mrože (walrus operator)
# nutný python 3.8
s
=
0
while
(
n
:
=
int
(
input
()))
!=
-
1
:
s
+=
n
print
(
s
)
\ No newline at end of file
02-cykly/posloupnost-soucet.py
View file @
89c877bf
...
...
@@ -4,10 +4,9 @@
s
=
0
while
True
:
n
=
int
(
input
())
if
n
==
-
1
:
break
n
=
int
(
input
())
while
n
!=
-
1
:
s
+=
n
n
=
int
(
input
())
print
(
s
)
02-cykly/prvocisla-else.py
View file @
89c877bf
...
...
@@ -6,8 +6,8 @@ d = 2
while
d
<
n
:
if
n
%
d
==
0
:
print
(
"Číslo
"
,
n
,
"
je dělitelné
"
,
d
)
print
(
f
"Číslo
{
n
}
je dělitelné
{
d
}
"
)
break
d
+=
1
else
:
print
(
"Číslo
"
,
n
,
"
je prvočíslo"
)
print
(
"Číslo
{n}
je prvočíslo"
)
\ No newline at end of file
02-cykly/prvocisla-test.py
View file @
89c877bf
...
...
@@ -7,10 +7,10 @@ mam_delitele = False
while
d
<
n
:
if
n
%
d
==
0
:
print
(
"Číslo
"
,
n
,
"
je dělitelné
"
,
d
)
print
(
f
"Číslo
{
n
}
je dělitelné
{
d
}
"
)
mam_delitele
=
True
break
d
+=
1
if
not
mam_delitele
:
print
(
"Číslo
"
,
n
,
"
je prvočíslo"
)
print
(
f
"Číslo
{
n
}
je prvočíslo"
)
Write
Preview
Markdown
is supported
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