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

Hasonló dokumentumok
Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Bemutatkozás. Bemutatkozás. Bemutatkozás. Bemutatkozás. 1. előadás. A tárgy címe: A programozás alapjai 1

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

Mindenki abból a három tantárgyból tesz szigorlatot, amelyet hallgatott.

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

Programozási nyelvek 6. előadás

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Programozás alapjai II. (7. ea) C++

A programozás alapjai 1 Rekurzió

Informatika tagozat osztályozóvizsga követelményei

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

Programozás alapjai (ANSI C)

Adatszerkezetek 1. Dr. Iványi Péter

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Objektumorientált paradigma és a programfejlesztés

Bevezetés az informatikába

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

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

Algoritmusok. Dr. Iványi Péter

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

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

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

ALGORITMIKUS SZERKEZETEK ELÁGAZÁSOK, CIKLUSOK, FÜGGVÉNYEK

Rekurzió. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Algoritmusok, adatszerkezetek, objektumok

1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje

Algoritmusok és adatszerkezetek I. 1. előadás

Adatbázis rendszerek Gy: Algoritmusok C-ben

Web-programozó Web-programozó

Objektumorientált paradigma és programfejlesztés Bevezető

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozási segédlet

INFORMATIKA ÉRETTSÉGI VIZSGAKÖVETELMÉNYEK AZ ÉRETTSÉGI VIZSGA RÉSZLETES TEMATIKÁJA

Irányítástechnika Elıadás. PLC-k programozása

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 I. Sergyán Szabolcs Óbudai Egyetem Neumann János Informatikai Kar szeptember 10.

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

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

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

Informatika tanítási módszerek

Láncolt listák. Egyszerű, rendezett és speciális láncolt listák. Programozás II. előadás. Szénási Sándor

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

Számítógép architektúra

A C programozási nyelv II. Utasítások. A függvény.

Java programozási nyelv

Aritmetikai kifejezések lengyelformára hozása

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Oktatási segédlet 2014

Rekurzió. Működése, programtranszformációk. Programozás II. előadás. Szénási Sándor.

Az informatika kulcsfogalmai

Adatszerkezetek 2. Dr. Iványi Péter

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

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

A programozás alapjai

Ugrólisták. RSL Insert Example. insert(22) with 3 flips. Runtime?

Dr. Schuster György február / 32

Programok értelmezése

Programozási módszertan

OKTATÁSI MINISZTÉRIUM. SZÓBELI VIZSGATÉTELEK A többször módosított 100/1997. (VI. 13.) Korm. rendelet alapján szervezett OKJ szakmai vizsgához

Tartalomjegyzék. Köszönetnyilvánítás. 1. Az alapok 1

5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

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

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

Diszkrét matematika 1. estis képzés. Komputeralgebra Tanszék ősz

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

Adatstruktúrák, algoritmusok, objektumok

Struktúra nélküli adatszerkezetek

Ipari Robotok Programozása

Komputeralgebra Rendszerek

Algoritmizálás, adatmodellezés 1. előadás

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

Kiterjesztések sek szemantikája

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

Algoritmusok és adatszerkezetek gyakorlat 03 Oszd meg és uralkodj. Nagy

Adatszerkezetek II. 10. előadás

Információs Technológia

INFORMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI

Algoritmusokfelülnézetből. 1. ELŐADÁS Sapientia-EMTE

Számítógépek felépítése

A szürke háttérrel jelölt fejezet/alfejezet szövege a CD-mellékleten található. A CD-melléklet használata. 1. Elméleti áttekintés 1

Adatszerkezetek 7a. Dr. IványiPéter

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Térinformatikai algoritmusok Elemi algoritmusok

Adatszerkezetek 1. előadás

Digitális technika VIMIAA hét

NP-teljesség röviden

Bevezetés a Programozásba II 1. előadás. Szoftverfejlesztés, programozási paradigmák

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

Bevezetés a programozásba. 8. Előadás: Függvények 2.

Adatszerkezetek és algoritmusok

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Adatszerkezetek I. 1. előadás

Programzás I gyakorlat

4.2. Tétel: Legyen gyenge rendezés az X halmazon. Legyen továbbá B X, amelyre

Térinformatikai algoritmusok Elemi algoritmusok

AZ ALGORITMUS. az eredményt szolgáltatja

Adatszerkezetek Hasító táblák. Dr. Iványi Péter

Átírás:

A programozás alapjai 1 1. előadás Híradástechnikai Tanszék Amiről szólesz: A tárgy címe: A programozás alapjai A számítógép részegységei, alacsony- és magasszintű programnyelvek, az imperatív programozási paradigma, adattípus fogalma, változók Amiről szólesz: Amiről szólesz: A C programozási nyelv Kifejezések, kalkuláció verem alkalmazásával, RPN (Reverse Polish Notation), vezérlési szerkezetek (elöl- és hátultesztelő ciklusszervezés, igazságértékre ill. egész típusokra alapozott választásos vezérlésszervezés) 1

Amiről szólesz: Amiről szólesz: A Struktúrált programozás alapjai, top-down és bottom-up programtervezés, programszegmensek, név-, érték-, referencia szerinti paraméterátadás Összetett típusok: halmazok, vektorok, konglomerátumok, szekvenciális és véletlen elérésű adatállományok Amiről szólesz: Amiről szólesz: Klasszikus vektoralgoritmusok: eldöntés, keresés, kiválasztás, leválogatás, rendezés, összefésülés, rekurzió: az elegancia veszélyei, a rekurzió megvalósításának processzor oldali támogatása Dinamikus adatszerkezetek: listák, fák, listák különleges alkalmazásai: sorok, prioritásos sorok, verem, fák tipikus alkalmazásai: K-ágú fák: bináris rendezőfa, bejárás, kiegyensúlyozás, Amiről szólesz: Amiről szólesz: Adatbázisokban alkalmazott adatszerkezetek, több kulcs szerinti rendezett táblák, indexek használata, hash kódolás Az eseményvezérelt (állapotváltozóra alapozott) program modell, adatfeldolgozás, visszalépéses algoritmus, tipikus feladatok 2

Ajánlott irodalom Ajánlott irodalom Benkő Tiborné Dr. Poppe András Együtt könnyebb a programozás C N. Wirth algoritmusok + adatstruktúrák = programok Ajánlott irodalom W. Amsbury Data Structures from Arrays to Priority Queues Programozás: előírni a számítógépnek, hogy mit csináljon Paradigmák: Programozási paradigmák: Imperatív Deklaratív azok az elvek, amelyek mentén a problémát megközelítjük - struktúrált - logikai - funkcionális 3

számítógép külvilág processzor processzor memória perifériák műveletvégző egység regiszterek memória perifériák végrehajtható kód ember-gép kapcsolat eszközei adatok háttér tárolók számítógép külvilág processzor Algoritmus: perifériák gépiesen (gondolkodás nélkül) végrehajtható lépések véges sorozata, amely elvezet a megoldáshoz memória 4

Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz Mielőtt az algoritmust kódolni kezdjük, meg kell győződni róla, hogy helyes, teljes és véges Valóban azt a feladatot oldja meg, amire szánjuk. Minden lehetséges esetben megoldja. Véges sok lépésben befejeződik. Nem elég kipróbálni, bizonyítani kell! Példa: Próba: Egy szám köbgyökét úgy kapjuk, ha elosztjuk 4-gyel. 8 : 4 = 2 2 2 2 = 8 1 kísérlet nem kísérlet! -8 : 4 = -2-2 -2-2 = -8 Na még egyet! 12 : 4 = 3 3 3 3 = 27 5

6

7

8

9

10

11

12

13

14

15

16

A kezelhetetlen probléma definíciója - Azok a problémák amelyek a futási idő tekintetében a feladat méretének exponenciális függvényével jellemezhetők, vagy - Memória szükséglet tekintetében polinomiálisak számítástechnikai szempontból kezelhetetlenek 17

Gépközeli programozás: Algoritmusok kódolása: STRUKTÚRÁLATLAN és STRUKTÚRÁLT eszközökkel Struktúrálatlan és struktúrált eszközök egyaránt megengedettek Magas szintű nyelvi programozás: Magas szintű nyelvi programozás: Struktúrálatlan eszközök kerülendők Struktúrált eszközökből építkezünk A nyelvek használatukat lehetővé teszik (= tartalmaznak olyan elemeket, amelyek segítségével szükség esetén megvalósíthatók) A nyelvek használatukat támogatják (= olyan elemeket tartalmaznak, amelyek a megvalósítást közvetlenül elősegítik) A programok építőkockái: A programok építőkockái: ELEMI TEVÉKENYSÉG ÖSSZETETT TEVÉKENYSÉG 18

A programok építőkockái: A programok építőkockái: ÖSSZETETT TEVÉKENYSÉG KIFEJTÉSE DÖNTÉSI PONT Megvalósulás a processzor utasításkészletében: Megvalósulás a processzor utasításkészletében: SZUBRUTIN HÍVÁS SZUBRUTIN BELÉPÉSI PONT VISSZATÉRÉS Megvalósulás a processzor utasításkészletében: A struktúrált programok építőkockái: FELTÉTELES VEZÉRLÉSÁTADÁS TEVÉKENYSÉG AZ ÁLLAPOTSZÓ EGY BITJE SZERINT BELSŐ STRUKTÚRÁJA LEHET! 19

A struktúrált programok építőkockái: A struktúrált programok építőkockái: SZEKVENCIA? A struktúrált programok építőkockái: ELÖL TESZTELŐ CIKLUS A struktúrált programok építőkockái: HÁTUL TESZTELŐ CIKLUS A struktúrált programok építőkockái: IGAZSÁGÉRTÉKRE ALAPOZOTT VÁLASZTÁS A struktúrált programok építőkockái: EGÉSZ TÍPUSRA ALAPOZOTT VÁLASZTÁS 20

A struktúrált programok építőkockái: EGÉSZ TÍPUSRA ALAPOZOTT VÁLASZTÁS A struktúrált programok építőkockái: IGAZSÁGÉRTÉKRE ALAPOZOTT VÁLASZTÁS X X = α α β λ tevékenység 1 tevékenység 2 tevékenység 11 tevékenység 1 A struktúrált programozás alaptétele: Minden algoritmusnak létezik struktúrált programja Az algoritmus leírásában megengedett elemek: elemi tevékenység szekvencia elágazás (döntés függvényében) becsatlakozás A struktúrált program leírásában megengedett elemek: elemi tevékenység szekvencia ciklus (elöl- és hátultesztelő) választás (igazságértékre alapozott) Ekvivalens átalakításokkal minden egy bemenetű és egy kimenetű gráf megengedett alakra hozható. 21

Matematikai értelemben nem teljesen korrekt, de elfogadott a következő szemléletes bizonyítás. A problémát a struktúlálatlan vezérlésátadások okozzák. Vezessünk be egy segédváltozót! A program kezdetekor állítsuk nullára! Minden becsatlakozást számozzunk meg! Amikor számozott ponthoz érkezünk, állítsuk be a változó értékét, és a tevékenységet hagyjuk abba! Ciklusban keressük a folytatás helyét, és mindig a kívánt ágat hajtsuk végre! Példa: A C B N Y Példa: A N Y Példa: X 0 N Y C B X 0 1 2 A C B X 1 X 2 X 2 X 1 X 3 X<3 22