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

Hasonló dokumentumok
Imperatív programozás

Imperatív programozás

A Python programozási nyelv

A Python programozási nyelv

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

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

Programozási nyelvek Python

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

Python I. Vincze Dávid Miskolci Egyetem, IIT

2018, Diszkrét matematika

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

A C# programozási nyelv alapjai

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

1. Alapok. #!/bin/bash

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

Komputeralgebra Rendszerek

Python tanfolyam Python bevezető I. rész

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

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

PYTHON. Avagy hosszú az út a BioPythonig

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

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

Algoritmizálás és adatmodellezés tanítása 1. előadás

2018, Diszkrét matematika

2018, Diszkrét matematika

Java II. I A Java programozási nyelv alapelemei

Szkriptnyelvek. 1. UNIX shell

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

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

2018, Diszkrét matematika

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Előfeltétel: legalább elégséges jegy Diszkrét matematika II. (GEMAK122B) tárgyból

Az Összetett hálózatok vizsgálata elektronikus tantárgy részletes követeleményrendszere

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

Gyakorló feladatok Gyakorló feladatok

Kifejezések. Kozsik Tamás. December 11, 2016

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

Webprogramozás szakkör

Programozás I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

Apple Swift kurzus 3. gyakorlat

Java programozási nyelv

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

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

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

Informatika terméktervezőknek

Algoritmizálás + kódolás C++ nyelven és Pascalban

2016, Diszkrét matematika

Programozási nyelvek JAVA EA+GY 1. gyakolat

Algoritmusok, adatszerkezetek, objektumok

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs

Programozás I. gyakorlat

Programozási nyelvek (ADA)

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

INFORMATIKA javítókulcs 2016

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

Függvények Függvények

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

Java II. I A Java programozási nyelv alapelemei

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

Programozás alapjai. 5. előadás

Járműfedélzeti rendszerek II. 4. előadás Dr. Bécsi Tamás

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

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

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:

Occam 1. Készítette: Szabó Éva

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

2018, Funkcionális programozás

A JavaScript főbb tulajdonságai

2018, Diszkre t matematika. 8. elo ada s

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

Széchenyi István Szakképző Iskola

Pénzügyi algoritmusok

2018, Funkcionális programozás

Bevezetés a C++ programozásba

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

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

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

2016, Diszkrét matematika

A félév során előkerülő témakörök

C# gyorstalpaló. Készítette: Major Péter

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

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

2015, Diszkrét matematika

2016, Diszkrét matematika

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

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

2015, Diszkrét matematika

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Körkörös listák. fej. utolsó. utolsó. fej

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

2016, Funkcionális programozás

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

B I T M A N B I v: T M A N

Informatika E FAKT , = ±

2018, Funkcionális programozás

Adminisztrációs feladatok Strukturált programok A C programnyelv elemei

Átírás:

Informatika 1 2011 Második előadás, vezérlési szerkezetek Szabó Adrienn 2011. szeptember 14.

Tartalom Algoritmusok, vezérlési szerkezetek If - else: elágazás While ciklus For ciklus Egyszerű típusok Összetett típusok Listák kezelése Egyéb összetett típusok kezelése

A kérdőív eredményei Köszönjük hogy kitöltöttétek! 49% érettségizett (középszinten, jó jegyekkel) 30%-nak van ECDL vizsgája 20% tanult már programozni (főleg Logo, Pascal, C#) Elvárás: megtanulni programozni

If - else: elágazás While ciklus For ciklus Algoritmusok Algoritmuson vagy eljáráson olyan megengedett lépésekből álló módszert, utasítás(sorozato)t, részletes útmutatást, receptet értünk, amely valamely felmerült probléma megoldására alkalmas. Az algoritmust leírhatjuk pszeudokóddal vagy folyamatábrával, illetve implementálhatjuk (megvalósíthatjuk) egy konkrét programnyelven, hogy működő programot kapjunk.

If - else: elágazás While ciklus For ciklus Algoritmus példa Válasszuk ki a, b, c számok közül a legkisebbet! IF a < b: IF a < c: RETURN a ELSE: RETURN c ELSE: IF b < c: RETURN b ELSE: RETURN c c no a, b, c a < b no yes a < c b < c no yes yes a b c

If - else: elágazás While ciklus For ciklus Feltételes utasítás Egy feltételes utasítás így néz ki Sage-ben, ill. Python-ban: (Az elif, else részek el is hagyhatók) x%15 no yes tictac if x%15 == 0: return tictac elif x%5 == 0: return tic elif x%3 == 0: return tac else: return - x%5 no x%3 no - yes yes tac tic

If - else: elágazás While ciklus For ciklus While ciklus A while-ciklus belseje addig fog ciklikusan újra és újra végrehajtódni, amíg a feltétel része teljesül. Sage-ben: while x > 15: x = x-3 print x x < 15 yes no Figyelni kell, hogy ne kerüljön a program végtelen ciklusba! x = x 3 Exit

If - else: elágazás While ciklus For ciklus For ciklus A for ciklus valamilyen lista vagy szekvencia elemein megy végig egyesével. for x in range(4): print str(x) +. elemnél járunk A fenti kód kimenete: 0. elemnél járunk 1. elemnél járunk 2. elemnél járunk 3. elemnél járunk

Egyszerű adattípusok Egyszerű típusok Összetett típusok Listák kezelése Egyéb összetett típusok kezelése A Sage (és kb. egyben a Python) beépített egyszerű típusai: Típus Leírás Példa None,,semmi, null típus None int egész szám (32-bites) 6 long hosszú egész (tetszőlegesen hosszú) 2354099L float lebegőpontos szám (törtek) 3.75 complex komplex szám 3-2*i

Összetett típusok Algoritmusok, vezérlési szerkezetek Egyszerű típusok Összetett típusok Listák kezelése Egyéb összetett típusok kezelése A Sage (és kb. egyben a Python) beépített összetett típusai: Típus Leírás Példa str karakterlánc (string) alma list lista [2, y, bb ] tuple nem írható lista (2, x, aa ) set halmaz set([ a, c ]) dict szótár (kulcs: érték) dict({ one :1, two :2})

Listák bevezető Algoritmusok, vezérlési szerkezetek Egyszerű típusok Összetett típusok Listák kezelése Egyéb összetett típusok kezelése Listát definiálhatunk úgy, hogy megadjuk az elemeit (akármilyen típusúak lehetnek) szögletes zárójelek között: sage: L1 = [pi, abc, 35, pi, 12] Hivatkozhatunk a lista egy elemére (itt a harmadikra): sage: L1[2] 35 Kiválaszthatunk egy rész-listát: sage: L1[1:4] [ abc, 35, pi] Figyeljünk arra, hogy 0-tól kezdődik az elemek számozása!

Listák bevezető 2 Egyszerű típusok Összetett típusok Listák kezelése Egyéb összetett típusok kezelése Létrehozhatunk egy listát a range függvény segítségével: sage: L2 = range(5) sage: L2 [0, 1, 2, 3, 4] Lekérdezhetjük a lista hosszát (hány eleme van): sage: len(l2) 5 A listának bármely elemét felülírhatjuk: sage: L2[1] = egy sage: L2 [0, egy, 2, 3, 4]

A tuple típus Algoritmusok, vezérlési szerkezetek Egyszerű típusok Összetett típusok Listák kezelése Egyéb összetett típusok kezelése A tuple sokmindenben hasonlít a listához, de az elemei utólag nem módosíthatóak. Kerek zárójellel definiáljuk: sage: T = (pi, abc, 35, pi, 12) Hivatkozhatunk a tuple egy elemére: sage: T[2] 35 Ha meg akarnánk változtatni a tuple egy elemét: sage: T[1]= s TypeError: tuple object does not support item assignment

A halmaz típus Algoritmusok, vezérlési szerkezetek Egyszerű típusok Összetett típusok Listák kezelése Egyéb összetett típusok kezelése A set típus megfelel a matematikai halmaz fogalomnak, nem rendezett elemek gyűjteménye. Definiálható a set kulcsszóval és egy lista megadásával: sage: S = set([pi, abc, 35, pi, 12]) Megkérdezhetjük, hogy valami benne van-e a halmazban: sage: 35 in S True Lekérdezhetjük a halmaz méretét (hány eleme van): sage: len(s) Törlés a halmazból: sage: S.remove(pi)

A szótár típus Algoritmusok, vezérlési szerkezetek Egyszerű típusok Összetett típusok Listák kezelése Egyéb összetett típusok kezelése A szótár arra való, hogy kulcs-érték párokat egymáshoz rendelhessünk. Definiálható a dict kulcsszóval a következő módon: D = dict( one :1, two :2, three :3) Kulcshoz tartozó érték lekérdezése: sage: x = D[ one ] Megkérdezhetjük, hogy valami benne van-e a szótárban): sage: two in D True Az értékek között is kereshetünk a values függvénnyel: sage: 2 in D.values() True

Nézd meg a wikin az előadáshoz tartozó Sage-worksheet-et!

További olvasnivalók Hasznos olvasnivalók, néhol a tananyagon túl: Programozás bevezető (angolul): http://johnstachurski.net/book/sample2.pdf Sage Tutorial: http://www.sagemath.org/pdf/sagetutorial.pdf Algoritmus (Wikipédia oldal): http://hu.wikipedia.org/wiki/algoritmus Folyamatábra (angol Wikipédia oldal): http://en.wikipedia.org/wiki/flow chart