Vezérlési szerkezetek Vezérlési szerkezetek: feltételes elágazás és ciklusok

Hasonló dokumentumok
Függvények Függvények

Python bevezető foglalkozás Python bevezető foglalkozás

Gyakorló feladatok Gyakorló feladatok

Változók és adattípusok Változók és adattípusok

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Imperatív programozás

BASH script programozás II. Vezérlési szerkezetek

Python tanfolyam Python bevezető I. rész

Webprogramozás szakkör

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 3. előadás

A C# programozási nyelv alapjai

2016, Diszkrét matematika

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

Szkriptnyelvek. 1. UNIX shell

Imperatív programozás

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

1. Egészítsük ki az alábbi Python függvényt úgy, hogy a függvény meghatározza, egy listába, az első n szám faktoriális értékét:

Internet programozása. 3. előadás

S z á m í t ó g é p e s a l a p i s m e r e t e k

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

2018, Diszkrét matematika

2018, Diszkrét matematika

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

van neve lehetnek bemeneti paraméterei (argumentumai) lehet visszatérési értéke a függvényt úgy használjuk, hogy meghívjuk

Listák, szótárak, fájlok Listák, szótárak, fájlok

Informatika terméktervezőknek

Java Programozás 1. Gy: Java alapok. Ismétlés ++

2016, Diszkrét matematika

Programozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása

Szoftvertervezés és -fejlesztés I.

Vezérlési szerkezetek

Objektumorientált Programozás III.

2018, Diszkre t matematika. 10. elo ada s

PYTHON. Avagy hosszú az út a BioPythonig

Vezérlési szerkezetek. Szelekció Ciklusok

Komputeralgebra Rendszerek

2018, Diszkre t matematika. 8. elo ada s

Interaktív alkalmazások készítése Scratch-ben

A Python programozási nyelv

Számítógépes Hálózatok. 1. Gyakorlat

Bevezetés a programozásba I.

Java programozási nyelv

Hálózatok építése és üzemeltetése

Animáció készítése Scratch-ben

Ismerkedés a Python programnyelvvel. és annak micropython változatával

1. Alapok. #!/bin/bash

AWK programozás, minták, vezérlési szerkezetek

Számítógépes Hálózatok. 1. gyakorlat

6. A Pascal nyelv utasításai

6. fejezet: Ciklusok

A programozás alapjai


AWK programozás, minták, vezérlési szerkezetek

A Pascal programozási nyelvben minden programnak a következő szerkezete van:

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

Operációs Rendszerek II. labor. 2. alkalom

2016, Diszkrét matematika

2018, Diszkrét matematika

OOP: Java 1.Gy: Java alapok

Számítógépes grafika

Mi a Python? A Python alapjainak áttekintése. Példaprogram feladatkit zés. Példaprogram megvalósítás

Tanulási segédlet 4. osztály

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Programozási nyelvek Python

Scratch bevezető foglalkozás Scratch bevezető foglalkozás

2017, Diszkrét matematika

HTML. Ismerkedés a JavaScripttel. A JavaScript lehet ségei. A JavaScript kód helye. Önálló JavaScript fájlok

Mintavételes szabályozás mikrovezérlő segítségével

Smalltalk 2. Készítette: Szabó Éva

Python nyelv. Helló Világ. Karakterkódolás. Interpreter. < Python

Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

C programozási nyelv

I. ALAPALGORITMUSOK. I. Pszeudokódban beolvas n prim igaz minden i 2,gyök(n) végezd el ha n % i = 0 akkor prim hamis

2016, Diszkrét matematika

Tervminták a valósidejű gyakorlatban

Imperatív programozás

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Programozási nyelvek 1. előadás

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Programozási nyelvek JAVA EA+GY 1. gyakolat

Szelekció. Döntéshozatal

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

2018, Funkcionális programozás

Algoritmusok helyességének bizonyítása. A Floyd-módszer

Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE

length (s): Az s karaklerlánc hossza, substr(s,m,n): Az s mezőben levő karakterláncnak az m-edik karakterétől kezdődő, n darab karaktert vágja ki.

Java gyakorlat feladatai e s megolda sai ( )

Programozás Minta programterv a 1. házi feladathoz 1.

Matematikai programok

2016, Funkcionális programozás

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér

SZERVER OLDALI JAVASCRIPT. 3. hét Javascript nyelvi elemek

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Kezdő programozók hibái

Programozás I. gyakorlat

Átírás:

: feltételes elágazás és ciklusok töbszörös elágazás (if-elif-else) kilépés while ciklusból (break), ciklus folytatása (continue), és a while ciklus feltételéhez tartozó else ág a for ciklus és a range() függvény teknőc grafika (turtle modul)

Feltételes elágazás (már ismerjük!) if <feltétel>: igen <feltétel> igaz? nem 2

Többszörös elágazás Módosítsd ezt a programot! Módosítsd ezt a programot úgy, hogy három esetet különböztessen meg: ha a szám nagyobb, mint 100, akkor írja ki, hogy ez egy nagy szám, ha a szám kisebb, mint 10, akkor írja ki, hogy ez egy kicsi szám, egyébként írja ki, hogy a szám se nem kicsi, se nem nagy! szam = int(input("írj be egy számot! ")) if (szam > 100): print("ez egy nagy szám.") print("ez egy kicsi szám.") 3

Többszörös elágazás szam = int(input("írj be egy számot! ")) if (szam > 100): print("ez egy nagy szám.") if (szam < 10): print("ez egy kicsi szám.") print("ez egy se nem kicsi, se nem nagy szám.") 4

Többszörös elágazás a többszörös elágazás kényelmesebben megoldható az elif (else-if) utasítással szam = int(input("írj be egy számot! ")) if (szam > 100): print("ez egy nagy szám.") elif (szam < 10): print("ez egy kicsi szám.") print("ez egy se nem kicsi, se nem nagy szám.") 5

Többszörös elágazás if <feltétel_1>: elif <feltétel_2>: elif <feltétel_3>: Ez az utasításblokk akkor hajtódik végre ha <feltétel_1> igaz Ez az utasításblokk akkor hajtódik végre ha <feltétel_1> hamis, de <feltétel_2> igaz Ez az utasításblokk akkor hajtódik végre ha <feltétel_1> és <feltétel_2> hamis, de <feltétel_3> igaz Ez az utasításblokk akkor hajtódik végre ha mindegyik <feltétel_> hamis 6

Többszörös elágazás if <feltétel_1>: elif <feltétel_2>: <feltétel_1>? hamis <feltétel_2>? hamis igaz igaz 7

Ismétlés while ciklussal (már ismerjük!) while <feltétel>: igen <feltétel> igaz? nem 8

Emlékszel erre a programra? from math import sqrt szam = int(input("írj be egy pozitív egész számot: ")) if (szam == 1): print("definíció szerint nem prím.") prim = True n = 2 while (n <= sqrt(szam)): if (szam%n == 0): prim = False n = n + 1 if (prim): print("prím.") print("nem prím.") Ha találtunk egy osztót, akkor már tudjuk, hogy a szám nem lehet prím, és felesleges a további n-ek ellenőrzése. Jó lenne valahogy kilépni a while ciklusból... 9

Kilépés a ciklusból a break utasítással from math import sqrt szam = int(input("írj be egy pozitív egész számot: ")) if (szam == 1): print("definíció szerint nem prím.") prim = True n = 2 while (n <= sqrt(szam)): if (szam%n == 0): prim = False break n = n + 1 if (prim): print("prím.") print("nem prím.") 10

break, continue,... while <feltétel>: igen <feltétel> igaz? nem continue continue break break 11

... és else while <feltétel>: igen <feltétel> igaz? nem continue break continue break 12

Gondoltam egy számra! version 2 Egészítsd ki az alábbi programot! Emlékszel még a Gondoltam egy számra! programra? Most megfordítjuk a szerepeket: te gondolsz egy számra és a számítógép fogja kitalálni! Segítségül a program egy részét megadtuk, neked csak ki kell egészíteni azokkal az elemekkel, amiket most tanultunk: hármas elágazás (if elif else) break utasítás a while cikluson belül while ciklushoz tarozó else ág 13

print("gondolj egy számra 1 és 100 között!") input("ha megvan, nyomd meg az ENTER-t!") lepes = 0 h, H = 1, 101 while (h!= H): tipp = h + (H-h)//2 print("a tippem: ", tipp) lepes += 1 valasz = ' ' while (valasz[0] not in "<>="): valasz = input("a gondolt szám <, > vagy = ezzel? ") : H = tipp # ez a sor akkor hajtódjon végre, ha valasz[0] értéke '<' : h = tipp # ez a sor akkor hajtódjon végre, ha valasz[0] értéke '>' : print(lepes, "lépésből kitaláltam!") # egyébként ez fusson # és utána egyből lépjünk ki a ciklusból : print("hmm... Biztosan nem csaltál?") # ez a while ciklus else ága 14

A for ciklus egy bejárható halmaz elemeit a for ciklus segítségével járhatjuk be bejárható halmazok lehetnek pl. számsorozatok vagy karakterláncok (string-ek) számsorozatokat a range() függvény segítségével képezhetünk pl: range(1, 100) {1, 2, 3,..., 99} vigyázat: a range felső határa nincs benne a halmazban! 16

Próbáld ki! for n in range(1, 10): print(n, end=', ') 1, 2, 3, 4, 5, 6, 7, 8, 9, for n in range(1, 10, 2): print(n, end=', ') 1, 3, 5, 7, 9, for n in range(10, 1, -1): print(n, end=', ') 10, 9, 8, 7, 6, 5, 4, 3, 2, for n in range(10): print(n, end=', ') 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 17

vége eleje eleje vége A tapasztalatok összegzése ha nincs megadva, akkor 0 range(eleje, vége, lépésköz) ha nincs megadva, akkor 1 (vagy -1) [ ] lépésköz [ ] lépésköz (negatív) 18

Hasonlítsd össze! n = 7 while (n <= 70): print(n) n = n + 7 for n in range(7, 71, 7): print(n) n = 7 while (n <= 70): if (n == 7 or n == 70): print(n, "*") print(n) n = n + 7 for n in range(7, 71, 7): if (n == 7 or n == 70): print(n, "*") print(n) 19

Írd át for ciklusra! from math import sqrt szam = int(input("írj be egy pozitív egész számot: ")) if (szam == 1): print("definíció szerint nem prím.") prim = True n = 2 while (n <= sqrt(szam)): if (szam%n == 0): prim = False break n = n + 1 if (prim): print("prím.") print("nem prím.") 20

Próbáld ki! for c in "Szentendre": print(c, end='--') S--z--e--n--t--e--n--d--r--e-- for c in "Szentendre": print(c, end='') if (c == 'e'): print('*', end='') Sze*nte*ndre* for c in "Szentendre": if (c!= 'e'): print(c, end='') Szntndr 22

Tufudsz ífígy befeszéfélnifi? Írj egy fordító programot! Írj egy olyan programot, ami bekér egy szöveget a felhasználótól, majd átfordítja azt egy olyan szövegre, melyben a magánhangzók a következő módon vannak kiegészítve: a afa e efe i ifi... Például: helló hefellófó 23

Próbáld ki! from turtle import * speed(3) for i in range(4): forward(200) left(90) done() 25

Próbáld ki! from turtle import * from math import sqrt speed(5) m = sqrt(2)*200/2 d = 3 for a in range(30): for i in range(4): forward(200) left(90) penup() left(45) forward(m) left(180-d) forward(m) right(180+45) pendown() done() 26

Próbáld ki! from turtle import * speed(0) for i in range(500): forward(i) left(262) done() 27

Próbáld ki! from turtle import * colormode(255) speed(0) for i in range(100): circle(5*i) circle(-5*i) left(i) color(i, 2*i%256, 5*i%256) done() 28

Próbáld ki! from turtle import * bgcolor("blue") pencolor("red") pensize(10) for i in range(12): begin_fill() right(90) forward(150) left(120) forward(150) left(120) forward(150) end_fill() forward(150) done() 29

Próbáld ki! from turtle import * from random import randint speed(8) setup(500, 500, 0, 0) bgcolor("orange") for i in range(100): x = randint(-250, 250) y = randint(-250, 250) goto(x, y) if (x > 50) and (x < 200) and (y > 50) and (y < 200): dot(20, "blue") dot(20, "green") done() 30

Turtle modul teknőc parancsok elérése: from turtle import * háttérszín, tollszín, és tollméret: bgcolor(... ), pencolor(... ), pensize(...) toll letétele és toll felemelése: pendown(), penup() mozgás előre, fordulás jobbra és balra: forward(...), right(...), left(...) 31

Turtle modul kör és pont rajzolás: circle(...), dot(...) terület beszínezése: fillcolor(... ) begin_fill();...; end_fill() teknőc sebessége: speed(...) (speed(0) a leggyorsabb) rajzolás befejezése: done() 32

Összefoglalás többszörös elágazás (if elif else szerkezet) a while ciklus kiegészítései (break, continue, else) a for ciklus és a range() függvény teknőc grafika a turtle modullal példák a for ciklus alkalmazására alapvető parancsok 33

EU zászló Írj programot! Írj programot, ami kirajzolja az EU zászlóját! 34

Készítette: Buttyán Levente Levente.Buttyan@gmail.com CoderDojo Szentendre 2017 36