Commit 81fca84e authored by cermak's avatar cermak
Browse files

Prepare slides for the first lecture

parent d6f63dc3
Pipeline #12760 failed with stage
in 1 minute and 5 seconds
......@@ -281,4 +281,8 @@ TSWLatexianTemp*
# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib
\ No newline at end of file
#*Notes.bib
_markdown_*
*.markdown.*
.ipynb_checkpoints/*
*.ipynb_checkpoints*
......@@ -19,6 +19,7 @@
"name": "lualatexmk",
"command": "latexmk",
"args": [
"-shell-escape",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
......@@ -83,5 +84,9 @@
],
"env": {}
}
],
"emmet.excludeLanguages": [
"markdown"
]
}
\ No newline at end of file
%% Cell type:code id: tags:
``` python
# %load first.py
i = 1
while i <= 10:
print(i)
i += 1
```
%% Cell type:code id: tags:
``` python
# %load first-even.py
i = 1
while i <= 10:
if i%2 == 0:
print(i)
i += 1
```
%% Cell type:code id: tags:
``` python
# %load first-input.py
n = int(input("Do kolika chceš počítat? "))
i = 1
while i <= n:
if i%2 == 0:
print(i)
i += 1
```
%% Cell type:code id: tags:
``` python
# %load first-comments.py
#!/usr/bin/env python3
# Nejprve zjistíme, do kolika počítat
n = int(input("Do kolika chceš počítat? "))
# Aktuální číslo
i = 1
while i <= n: # Ještě pokračovat?
if i%2 == 0: # Je číslo sudé?
print(i)
i += 1 # Další, prosím!
```
%% Cell type:code id: tags:
``` python
# %load euclid.py
a = 10
b = 15
while a != b:
if b > a:
b = b - a
else:
a = a - b
print(a)
```
%% Cell type:code id: tags:
``` python
# %load euclid-fast.py
while b:
a, b = b, a % b
print(a)
```
%% Cell type:code id: tags:
``` python
# %load ciferny-soucet.py
#!/usr/bin/env python3
# Počítání ciferného součtu
n = int(input())
soucet = 0
while n > 0:
cislice = n % 10
soucet += cislice
n = n // 10
print(soucet)
```
%% Cell type:code id: tags:
``` python
# %load zadavani-cislic.py
#!/usr/bin/env python3
# Skládáme číslo po číslicích
print("Zadávej číslice, ukonči -1:")
n = 0
while True:
cislice = int(input())
if cislice < 0:
break # Vyskočíme z cyklu
n = 10*n + cislice
print(n)
```
%% Cell type:code id: tags:
``` python
```
%% Cell type:code id: tags:
``` python
```
\documentclass{beamer}
\input ../slidemac.tex
\title[NMIN111]{Programování 1: Úvod do Pythonu}
\begin{document}
\begin{frame}
\titlepage
\maketitle
% ----------------------------------------------------------------------
\begin{markdown}
%%begin novalidate
### Úvodní informace
- Web cvičení: [cermak.science/teaching/p1m/](https://cermak.science/teaching/p1m/)
- Podmínky zápočtu: 70/120 bodů v ReCodExu \pause
- Konzultace:
- slack (nejrychlejší)
- mail (klasika)
- zoom (možno si domluvit konzultaci),
- osobní setkání (max 2 naráz, kancelář mám v Troji)
\end{frame}
### Programování = psaní algoritmů
- *Co je Algoritmus?* **Návod na dosažení výsledku.**
- Příklad: Euklidův algoritmus (=nalezení **N**ějvětšího **S**polečného **D**ělitele)
- Vychází z tvrzení $NSD(u, v) = NSD(v, u – qv)$ \pause
- **Návod pro matfyzáka**: *Největší společný dělitel dvou přirozených čísel nalezneme tak, že dokud jsou obě různá, odečítáme menší od většího.* \pause
- **Návod pro opice**: *Vidíš 2 hromady kamenů. Vezmi z té větší tolik, kolik je v té menší a zahoď je. Opakuj dokud není v obou stejně.* \pause
- **Návod pro procesor Z80**: *B8C83803 9018F94F 78914779 18F2* \pause
\setkeys{Gin}{width=.75\linewidth}
![exampleimage](asm-z80.png)
\end{frame}
### Programovací jazyky
- Strojový kód je pro člověka nečitelný
- Závisí na procesoru
- Programovací jazyk je čitelný, *překladač* ho zkompiluje do zdrojového kódu
- Dynamické programovací jazyky - překládají se za běhu \pause
**Python**
- Snadno čitelný kód
- Populární ve vědě, AI, statistice
- Mnoho dostupných knihoven
\end{frame}
%%novalidate
\end{markdown}
% ----------------------------------------------------------------------
\begin{frame}{Euklidův algoritmus v Pythonu}
\py{from math import gcd\\gcd(15,10)}{5}
\={Na konci dnešní hodiny to budete umět naprogramovat bez vestavěné funkce.}
\end{frame}
% ----------------------------------------------------------------------
......@@ -161,6 +219,19 @@ Prvni řádek pod Linuxem říká, čím se má soubor spustit.
\end{frame}
% ----------------------------------------------------------------------
\begin{frame}{Náš druhý program: Euklidův algoritmus}
\pycode{euclid.py}
Trocha Python magic:
\pycode{euclid-fast.py}
\end{frame}
% ----------------------------------------------------------------------
\end{document}
while b:
a, b = b, a % b
print(a)
\ No newline at end of file
a = 10
b = 15
while a != b:
if b > a:
b = b - a
else:
a = a - b
print(a)
\ No newline at end of file
......@@ -3,7 +3,18 @@
\usepackage{palatino}
\usepackage{verbatim}
\usepackage{minted}
%% Load the markdown package
\usepackage[citations,footnotes,definitionLists,hashEnumerators,smartEllipses,tightLists=false,pipeTables,tableCaptions,hybrid]{markdown}
%%begin novalidate
\markdownSetup{rendererPrototypes={
link = {\href{#2}{#1}},
headingOne = {\section{#1}},
headingTwo = {\subsection{#1}},
headingThree = {\begin{frame}\frametitle{#1}},
headingFour = {\begin{block}{#1}},
horizontalRule = {\end{block}}
}}
%%end novalidate
\usetheme{CambridgeUS}
\usecolortheme{seagull}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment