Top Banner
1 A programozás alapjai 1 1. előadás Híradástechnikai Tanszék A tárgy címe: A programozás alapjai Amiről szó lesz: 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: A C programozási nyelv Amiről szó lesz: 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)
22

A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

Mar 07, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

1

A programozás alapjai 1

1. előadás

Híradástechnikai Tanszék

A tárgy címe:

A programozás alapjai

Amiről szó lesz:

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:

A C programozási nyelv

Amiről szó lesz:

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 alapozottválasztásos vezérlésszervezés)

Page 2: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

2

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

Amiről szó lesz:

Összetett típusok: halmazok, vektorok, konglomerátumok, szekvenciális és véletlen elérésűadatállományok

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ánakprocesszor oldali támogatása

Amiről szó lesz:

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:

Adatbázisokban alkalmazottadatszerkezetek, több kulcs szerinti rendezett táblák, indexek használata, hash kódolás

Amiről szó lesz:

Az eseményvezérelt(állapotváltozóra alapozott) program modell, adatfeldolgozás,visszalépéses algoritmus, tipikus feladatok

Page 3: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

3

Ajánlott irodalom

Benkő TibornéDr. Poppe András

Együtt könnyebba programozás

C

Ajánlott irodalom

N. Wirth

algoritmusok+adatstruktúrák=programok

Ajánlott irodalom

W. Amsbury

Data Structures

from Arraysto Priority Queues

Programozás:

előírni a számítógépnek, hogy mit csináljon

Programozási paradigmák:

azok az elvek, amelyek menténa problémát megközelítjük

Paradigmák:

Imperatív Deklaratív

- struktúrált - logikai- funkcionális

Page 4: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

4

számítógép külvilág

processzor

memória

perifériák

regiszterek

műveletvégzőegység

processzor

adatok

végrehajthatókód

memória

háttér tárolók

ember-gépkapcsolateszközei

perifériák

számítógép külvilág

processzor

memória

perifériák

Algoritmus:

gépiesen (gondolkodás nélkül) végrehajtható lépések véges sorozata, amely elvezet a megoldáshoz

Page 5: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

5

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:

Egy szám köbgyökét úgykapjuk, ha elosztjuk 4-gyel.

Próba:

8 : 4 = 22 · 2 · 2 = 8

1 kísérlet nem kísérlet!

-8 : 4 = -2-2 · -2 · -2 = -8

Na még egyet!

12 : 4 = 33 · 3 · 3 = 27

Page 6: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

6

Page 7: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

7

Page 8: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

8

Page 9: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

9

Page 10: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

10

Page 11: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

11

Page 12: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

12

Page 13: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

13

Page 14: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

14

Page 15: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

15

Page 16: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

16

Page 17: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

17

A kezelhetetlen probléma definíciója

- Azok a problémák amelyek a futási időtekintetében a feladat méreténekexponenciális függvényével jellemezhetők,

vagy

- Memória szükséglet tekintetébenpolinomiálisak

számítástechnikai szempontból kezelhetetlenek

Page 18: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

18

Algoritmusok kódolása:

STRUKTÚRÁLATLAN és STRUKTÚRÁLTeszközökkel

Gépközeli programozás:

Struktúrálatlan és struktúrált eszközökegyaránt megengedettek

Magas szintű nyelvi programozás:

Struktúrálatlan eszközök kerülendők

A nyelvek használatukat lehetővé teszik

(= tartalmaznak olyan elemeket,amelyek segítségévelszükség esetén megvalósíthatók)

Magas szintű nyelvi programozás:

Struktúrált eszközökből építkezünk

A nyelvek használatukat támogatják

(= olyan elemeket tartalmaznak,amelyek a megvalósítástközvetlenül elősegítik)

A programok építőkockái:

ELEMI TEVÉKENYSÉG

A programok építőkockái:

ÖSSZETETT TEVÉKENYSÉG

Page 19: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

19

A programok építőkockái:

ÖSSZETETT TEVÉKENYSÉG KIFEJTÉSE

A programok építőkockái:

DÖNTÉSI PONT

Megvalósulás a processzor utasításkészletében:

SZUBRUTIN HÍVÁS

Megvalósulás a processzor utasításkészletében:

SZUBRUTIN

BELÉPÉSI PONT

VISSZATÉRÉS

Megvalósulás a processzor utasításkészletében:

FELTÉTELES VEZÉRLÉSÁTADÁS

AZ ÁLLAPOTSZÓEGY BITJE SZERINT

A struktúrált programok építőkockái:

TEVÉKENYSÉG

BELSŐ STRUKTÚRÁJA LEHET !

Page 20: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

20

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

Page 21: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

21

A struktúrált programok építőkockái:

EGÉSZ TÍPUSRA ALAPOZOTT VÁLASZTÁS

α λβ

X

tevékenység1 tevékenység2 tevékenység11

A struktúrált programok építőkockái:

IGAZSÁGÉRTÉKRE ALAPOZOTT VÁLASZTÁS

X = α

tevékenység1

A struktúrált programozás alaptétele:

Minden algoritmusnak létezikstruktúrált programja

Az algoritmus leírásábanmegengedett elemek:

elemi tevékenységszekvenciaelágazás (döntés függvényében)becsatlakozás

A struktúrált program leírásábanmegengedett elemek:

elemi tevékenységszekvenciaciklus (elöl- és hátultesztelő)választás (igazságértékre alapozott)

Ekvivalens átalakításokkal mindenegy bemenetű és egy kimenetűgráf megengedett alakra hozható.

Page 22: A programozás alapjai 1. előadásvitez/Progalap1/Progalap01.pdf5 Módszer (eljárás): gépiesen (gondolkodás nélkül) végrehajtható lépések sorozata, amely elvezet a megoldáshoz

22

Matematikai értelemben nem teljesenkorrekt, de elfogadott a következőszemléletes bizonyítás.

A problémát a struktúlálatlanvezé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

B

C

N← →Y

Példa:

A

B

C

N← →Y Példa:

X ← 0

X

X ← 1 X ← 3X ← 1 X ← 2 X ← 2

X<3

0 1 2

C BA

N← →Y