From 7fbad72b6c02aea86537cc1a426e6554f882dc21 Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Sun, 6 Oct 2019 22:59:43 +0200 Subject: [PATCH] 02: Cykly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Též přesunuty příklady, které přetekly z 01. --- 02-cykly/02-cykly.tex | 116 +++++++++++++++++++++ 02-cykly/Makefile | 3 + {01-uvod => 02-cykly}/euklides-modulici.py | 0 {01-uvod => 02-cykly}/euklides-odcitaci.py | 0 {01-uvod => 02-cykly}/euklides-trikovy.py | 0 02-cykly/prvocisla-else.py | 14 +++ {01-uvod => 02-cykly}/prvocisla-test.py | 1 - {01-uvod => 02-cykly}/prvocisla-vypis.py | 0 8 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 02-cykly/02-cykly.tex create mode 100644 02-cykly/Makefile rename {01-uvod => 02-cykly}/euklides-modulici.py (100%) rename {01-uvod => 02-cykly}/euklides-odcitaci.py (100%) rename {01-uvod => 02-cykly}/euklides-trikovy.py (100%) create mode 100755 02-cykly/prvocisla-else.py rename {01-uvod => 02-cykly}/prvocisla-test.py (99%) rename {01-uvod => 02-cykly}/prvocisla-vypis.py (100%) diff --git a/02-cykly/02-cykly.tex b/02-cykly/02-cykly.tex new file mode 100644 index 0000000..26cf191 --- /dev/null +++ b/02-cykly/02-cykly.tex @@ -0,0 +1,116 @@ +\documentclass{beamer} +\usepackage[utf8]{inputenc} +\usepackage[czech]{babel} +\usepackage{palatino} +\usepackage{verbatim} +\usetheme{Warsaw} +\title{Programování 1: Cykly} +\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} + +% ---------------------------------------------------------------------- + +\begin{frame}{Řídicí příkazy: podmínky} + +{\bf if} {\it podmínka}{\bf :}\\ +\qquad {\it příkazy}\\ +{\bf else:}\\ +\qquad {\it příkazy} + +~ + +~ + +Pokud bychom chtěli {\it příkazy} vynechat, můžeme místo nich napsat {\bf pass}. +To je prázdný příkaz. + +\end{frame} + +% ---------------------------------------------------------------------- + +\begin{frame}{Řídicí příkazy: řetězení podmínek} + +\begin{columns}[t] + +\column{0cm} + +\column{6cm} + +Abychom nemuseli psát: + +~ + +{\bf if} {\it podmínka}{\bf :}\\ +\qquad {\it příkazy}\\ +{\bf else:}\\ +\qquad {\bf if} {\it podmínka}{\bf :}\\ +\qquad\qquad {\it příkazy}\\ +\qquad {\bf else:}\\ +\qquad\qquad {\it příkazy} + +\column{6cm} + +Existuje zkratka: + +~ + +{\bf if} {\it podmínka}{\bf :}\\ +\qquad {\it příkazy}\\ +{\bf elif} {\it podmínka}{\bf :}\\ +\qquad {\it příkazy}\\ +{\bf else:}\\ +\qquad {\it příkazy} + +\end{columns} + +\end{frame} + +% ---------------------------------------------------------------------- + +\begin{frame}{Řídicí příkazy: cykly} + +{\bf while} {\it podmínka}{\bf :}\\ +\qquad {\it příkazy} + +~ + +{\bf break} -- vyskočí z~cyklu + +~ + +{\bf continue} -- přejde na další průchod cyklem + +~ + +{\bf while True} -- nekonečný cyklus + +\end{frame} + +% ---------------------------------------------------------------------- + +\begin{frame}{Příklad: testování prvočísel} + +\verbatiminput{prvocisla-test.py} + +\end{frame} + +% ---------------------------------------------------------------------- + +\begin{frame}{Příklad: jak funguje else za cyklem} + +\verbatiminput{prvocisla-else.py} + +\end{frame} + +% ---------------------------------------------------------------------- + +\end{document} diff --git a/02-cykly/Makefile b/02-cykly/Makefile new file mode 100644 index 0000000..6b500f4 --- /dev/null +++ b/02-cykly/Makefile @@ -0,0 +1,3 @@ +SLIDES=02-cykly.pdf + +include ../Makerules diff --git a/01-uvod/euklides-modulici.py b/02-cykly/euklides-modulici.py similarity index 100% rename from 01-uvod/euklides-modulici.py rename to 02-cykly/euklides-modulici.py diff --git a/01-uvod/euklides-odcitaci.py b/02-cykly/euklides-odcitaci.py similarity index 100% rename from 01-uvod/euklides-odcitaci.py rename to 02-cykly/euklides-odcitaci.py diff --git a/01-uvod/euklides-trikovy.py b/02-cykly/euklides-trikovy.py similarity index 100% rename from 01-uvod/euklides-trikovy.py rename to 02-cykly/euklides-trikovy.py diff --git a/02-cykly/prvocisla-else.py b/02-cykly/prvocisla-else.py new file mode 100755 index 0000000..69ebdd7 --- /dev/null +++ b/02-cykly/prvocisla-else.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 +# Otestuje, zda číslo je prvočíslem (2. pokus) + +n = int(input()) +d = 2 + +while d < n: + if n%d == 0: + print("Číslo", n, "je dělitelné", d) + mam_delitele = True + break + d += 1 +else: + print("Číslo", n, "je prvočíslo") diff --git a/01-uvod/prvocisla-test.py b/02-cykly/prvocisla-test.py similarity index 99% rename from 01-uvod/prvocisla-test.py rename to 02-cykly/prvocisla-test.py index 77e86aa..a224809 100755 --- a/01-uvod/prvocisla-test.py +++ b/02-cykly/prvocisla-test.py @@ -2,7 +2,6 @@ # Otestuje, zda číslo je prvočíslem n = int(input()) - d = 2 mam_delitele = False diff --git a/01-uvod/prvocisla-vypis.py b/02-cykly/prvocisla-vypis.py similarity index 100% rename from 01-uvod/prvocisla-vypis.py rename to 02-cykly/prvocisla-vypis.py -- GitLab