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

Hasonló dokumentumok
Eljárások és függvények

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

Programozás alapjai 6. előadás. Wagner György Általános Informatikai Tanszék

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

Alprogramok, paraméterátadás

Programstrukturáló utasítások

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

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

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

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

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Gregorics Tibor Modularizált programok C++ nyelvi elemei 1

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

A szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete

A programozás alapjai

A programozás alapjai 1 Rekurzió

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

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

8. gyakorlat Pointerek, dinamikus memóriakezelés

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

Eljárások, függvények

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

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

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

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

Programozási nyelvek Java

Mérnöki programozás 7. Szerkesztette: dr. Vass Péter Tamás

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

Gregorics Tibor Tanácsok modularizált programok készítéséhez 1

Java II. I A Java programozási nyelv alapelemei

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

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

A függvények névvel rendelkező utasításcsoportok, melyeknek információkat adhatunk át, és van egy visszatérési értékük.

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

Kommunikáció. 3. előadás

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás

Egyenletek, egyenlőtlenségek V.

Bevezetés a C++ programozási nyelvbe

Operációs rendszerek gyak.

Programozási nyelvek (ADA)

A verem (stack) A verem egy olyan struktúra, aminek a tetejéről kivehetünk egy (vagy sorban több) elemet. A verem felhasználása

C memóriakezelés. Mutató típusú változót egy típus és a változó neve elé írt csillag karakterrel hozhatjuk létre.

C++ referencia. Izsó Tamás február 17. A C++ nyelvben nagyon sok félreértés van a referenciával kapcsolatban. A Legyakoribb hibák:

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

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

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Bevezetés a programozásba I.

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Objektumorientált Programozás VI.

A C programozási nyelv III. Pointerek és tömbök.

2. előadás Programegység, fordítási egység, könyvtári egység, beágyazás, blokkszerkezet, alprogramok, csomagok

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

Java programozási nyelv

A C programozási nyelv III. Pointerek és tömbök.

Kiegészítő előadás. Vizsgabemutató VBA. Dr. Kallós Gábor, Fehérvári Arnold, Pusztai Pál Krankovits Melinda. Széchenyi István Egyetem

ComParts Line Webszolgáltatás tájékoztató

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Feltételezés: A file strukturálisan helyes, tanszékenként nem üres, de az adott listázási feladatban kikötött számút nem haladja meg.

Programozás alapjai Free Pascal

OOP #14 (referencia-elv)

Pénzügyi algoritmusok

Programozás I. 5. Előadás: Függvények

Bevezetés a programozásba. 9. Előadás: Rekordok

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

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

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

Fordítóprogramok. Aszalós László szeptember 7.

ODE SOLVER-ek használata a MATLAB-ban

A C programozási nyelv I. Bevezetés

Már megismert fogalmak áttekintése

A C programozási nyelv I. Bevezetés

Java programozási nyelv 9. rész Kivételkezelés

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

Szimulációs technikák

Bevezetés a programozásba. 11. Előadás: Esettanulmány

Diszkrét matematika 1.

Programozás alapjai 8.Gy: Program struktúra

Sztringkezelő függvények. A string típusú változók kezelése, használata és szerepük a feldolgozás során

Alkalmazott Modul III 3. előadás. Procedurális programozás: alprogramok, kivételkezelés

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Érettségi feladatok: Egyenletek, egyenlőtlenségek 1 / május a) Melyik (x; y) valós számpár megoldása az alábbi egyenletrendszernek?

Egyenletek, egyenlőtlenségek X.

Programozási alapfogalmak

HÁZI FELADAT PROGRAMOZÁS I. évf. Fizikus BSc. 2009/2010. I. félév

Stack Vezérlés szerkezet Adat 2.

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás C++ -ban 2007/7

3 A C programozási nyelv szintaktikai egységei

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

Mathematica automatikusan dolgozik nagy pontossággal, például 3 a 100-dik hatványon egy szám 48 tizedes jeggyel:

Dokumentáció az 1. feladatsorhoz (egyszerű, rövidített kivitelben)

Szkriptnyelvek II. Perl programok

egyenlőtlenségnek kell teljesülnie.

Alkalmazott Modul III 3. előadás. Procedurális programozás: alprogramok, kivételkezelés. Alprogramok Szükségessége

Nézzük tovább a lexikai egységeket!

Átírás:

7. előadás Wagner György Általános Informatikai Tanszék

Jótanács (1) Tipikus hiba a feladat elkészítésekor:

Jótanács (2) Szintén tipikus hiba: a file-ból való törléskor, illetve a file-nak új elemmel való bővítésekor nem szabad két file-t használni!

Eljárások, függvények (1) Jelenség: ha ugyanazt a műveletsort kell elvégezni más és más adathalmazon, akkor jelenleg többször ismétlődő programrészletet kell írnunk a programba. Következmény: sokat kell írni ( majd másolom az ismétlődő utasításokat) hosszú lesz a program ( legalább látják mekkora munkám van) sok helyet foglal a file a HDD-n ( na bumm, elfér, nem?) tovább tart a program lefordítása ( kibírom, van időm) véletlenül hibásan írtam. Hány helyen is kell javítanom?

Eljárások, függvények (2) Például: 5 db másodfokú egyenletet kell megoldani. Variációk: 1. Nincs szubrutin.. Adatbeolvasás Megoldás Kiírás Adatbeolvasás Megoldás Kiírás 1. egyenlet 5. egyenlet

Eljárások, függvények (3) 2. Nyílt szubrutin (makrók) Szimbólummal jelölik, ez alapján hívják. A forrásprogramban csak egyszer van, de a lefordított programban annyiszor fordul elő, ahányszor meghívták... Adatbeolvasás 1. egyenlet Kiírás Megoldó rész Adatbeolvasás 5. egyenlet Kiírás

Eljárások, függvények (4) 3. Zárt szubrutin A hívó rutin területén kívül tárolódik. A forrásban, és a lefordított programban is csak egyszer fordul elő. Kezdetben a tár fix helyén volt, később relokálható lett. Hívás.. Hívás Megoldó rész Adatbeolvasás Kiírás Adatbeolvasás Kiírás 1. egyenlet 5. egyenlet

Eljárások, függvények (5) A Pascal-ban (ANSI, TP, FP egyaránt) a szubrutinok kétfélék lehetnek: eljárások, függvények. A függvényt az különbözteti meg az eljárástól, hogy van visszatérési értéke. Függvény: a := Sin(b); Eljárás: WriteLn( étel az italra, avagy abrakadabra );

Eljárások, függvények (6) Ismétlés, egy TP program felépítése: <program> ::= <programfej> <deklarációs rész> <utasítás rész>. <programfej> ::= PROGRAM <azonosító> {(<file azonosító> {, <file azonosító>})}; <deklarációs rész> ::= {Konstans definíciós rész} {Típus definíciós rész} <Utasításrész> ::= Begin {<utasítás>;} End {Változó deklarációs rész} {Eljárás és függvénydeklarációs rész}

Eljárások, függvények (7) Az eljárások és függvények tetszőleges sorrendben követhetik egymást, az egyetlen kikötés: első felhasználásuk előtt deklarálni kell őket. (Ez egyedül csak olyan esetben probléma, amikor szubrutinok egymást hívják, de akkor is megoldható a FORWARD segítségével). A szubrutinok a program önálló részei, melyeknek a futás során át lehet adni a vezérlést. Ezt úgy nevezzük (zsargon): meghívjuk a szubrutint. Ekkor a szubrutin utasításai hajtódnak végre, majd a végrehajtás a hívó program hívást követő első utasításán folytatódik.

Eljárások, függvények (8) Paraméterek: A szubrutinok paraméterek segítségével kommunikálhatnak környezetükkel. Az eljárások eredményüket is e paraméterek segítségével adják vissza a hívónak. Nem globális változókkal dolgozni!!! Procedure EljNév (paraméterek); Const konstansok; Type típusok; Var változók; Eljárások, függvények Begin End; Function FvNév (paraméterek):típus; Const konstansok; Type típusok; Var változók; Eljárások, függvények Begin End;

Formális és aktuális paraméterek Az eljárások, függvények fejlécében felsorolt paramétereket FORMÁLIS paramétereknek nevezzük. Azokat a paramétereket pedig, amelyekkel az eljárást, vagy függvényt meghívjuk, AKTUÁLIS paramétereknek nevezzük. A formális és aktuális paraméterek darabszámának, és páronként típusának meg kell egyeznie! A paramétereket formális paraméterek esetén pontosvessző, aktuális paraméterek esetén vessző választja el egymástól.

Paraméter átadási módok Kétféle paraméterátadási mód van: címszerinti értékszerinti A paraméter átadás módját a szubrutin fejlécében lehet meghatározni.

Címszerinti paraméterátadás A fv vagy eljárás hívásakor a paraméternek a címe kerül átadásra. A szubrutin a cím alapján tudja módosítani az átadott paraméter értékét úgy, hogy a megváltoztatott érték a hívó programba való visszatérés után is megmarad. A szubrutin fejlécében a paraméter neve előtt ott szerepel a VAR kulcsszó.

Értékszerinti paraméterátadás A fv vagy eljárás hívásakor a szubrutin is helyet foglal a memóriában a változónak, ahova a paraméterként megkapott értéket bemásolja. Ha a függvény vagy eljárás megváltoztatja ennek a paraméternek az értékét, akkor a hívó programba való visszatérés után a megváltoztatott érték nem kerül vissza, hanem elveszik. Értékszerinti paraméterátadáskor a paraméter lehet konstans vagy kifejezés is. Lefutása után a szubrutin az általa lefoglalt memória területeket felszabadítja.

Összehasonlítás Címszerinti: Előny: gyorsabb paraméterátadás, gyorsabb futás rövidebb a lefordított program Hátrány: ha a szubrutin megváltoztatja a paraméter értékét, akkor az visszakerül a főprogramba Értékszerinti Előny: konstansok is átadhatók, így egyszerűbb a meghívás Hátrány: Nagyobb futtatható programméret lassúbb végrehajtás