Adatbázis és szoftverfejlesztés elmélet

Hasonló dokumentumok
Programzás I gyakorlat

Programozás I. gyakorlat

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozás alapjai Bevezetés

Programozás elmélet tananyag

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Programozás elmélet tananyag

Vizuális, eseményvezérelt programozás XI.

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

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

Készítette: Nagy Tibor István

Programozási nyelv Java

Programozási nyelvek (ADA)

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

SZOFTVER = a számítógépet működtető és az azon futó programok összessége.

OOP #14 (referencia-elv)

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

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

Programozási technológia I.

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Bevezetés a programozásba Előadás: A const

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

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

Mutatók és mutató-aritmetika C-ben március 19.

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

Java I. A Java programozási nyelv

Programozás. Programozás villamosmérnököknek

C programozási nyelv

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok

C programozás. 1 óra Bevezetés

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

Programozás III A JAVA TECHNOLÓGIA LÉNYEGE. Többlépcsős fordítás JAVA PLATFORM. Platformfüggetlenség

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

Java II. I A Java programozási nyelv alapelemei

Operációs rendszerek gyak.

A C# programozási nyelv alapjai

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

Podoski Péter és Zabb László

Java II. I A Java programozási nyelv alapelemei

I. Bevezetés. 1. ábra A Java "logója"

Szoftvertervezés és -fejlesztés I.

Készítette: Nagy Tibor István

Programozási alapismeretek 4.

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

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

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

Objektumorientált Programozás V.

Objektum Orientált Programozás V.

Programozási nyelvek 6. előadás

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

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozás I gyakorlat

Programozási nyelvek Java

Imperatív programozás

A NetBeans IDE Ubuntu Linux operációs rendszeren

Szoftvertervezés és -fejlesztés I.

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

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

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

Bevezetés a programozásba I.

1. Alapok. #!/bin/bash

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

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

Oktatási Hivatal. A 2014/2015 tanévi Országos Középiskolai Tanulmányi Verseny döntő fordulójának feladatai. II. (programozás) kategória

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

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Programozás 1. Dr. Iványi Péter

Programozás I gyakorlat. 10. Stringek, mutatók

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

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

1. Alapok. Programozás II

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Szkriptnyelvek. 1. UNIX shell

Digitális technika VIMIAA01 9. hét

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

C++ programozási nyelv

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

SZOFTVERFEJLESZTÉS. Földtudományi mérnöki mesterszak / Geoinformatikus-mérnöki szakirány. 2017/18 II. félév. A kurzus ebben a félévben nem indult

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

Munka a fájlokkal. Az általánosan használt fájltípusok. Programfájlok. Adatfájlok

Kedvenc Ingyenes editorok avagy milyen a programozó jobbkeze? PSPAD editor DEVPHP IDE

8. gyakorlat Pointerek, dinamikus memóriakezelés

SZOFTVERES SZEMLÉLTETÉS A MESTERSÉGES INTELLIGENCIA OKTATÁSÁBAN _ Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.

Törley Gábor PROGRAMOZÁSI NYELVEK, KÖRNYEZETEK KIFEJEZŐEREJÉNEK VIZSGÁLATA

Bevezetés a Programozásba II 4. előadás. Adattípusok hordozhatósága

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

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

Adatszerkezetek és algoritmusok

ISA szimulátor objektum-orientált modell (C++)

Hardver és szoftver követelmények

Már megismert fogalmak áttekintése

INFORMATIKAI ALAPISMERETEK

A L i n u x r u h á j a

JAVA ALKALMAZÁSOK 1. ELŐADÁS 2/22/2017 1

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

Java programozási nyelv 6. rész Java a gyakorlatban

Átírás:

Adatbázis és szoftverfejlesztés elmélet Témakör 4. Összefoglalás 1. A kódolás eszközei Általános szövegszerkesztő Programozói szövegszerkesztő Fejlesztői környezet Vizuális fejlesztői környezet Általános szövegszerkesztő Az általános (clear text) szövegszerkesztők bármely nyelven való programozáshoz használhatók. Ilyenek lehetnek Windowson a Jegyzettömb, Notepad++, stb. Linuxon mcedit, nano, gedit, stb. Programozói szövegszerkesztő Általában olyan szövegszerkesztő, amelyet kifejezetten programozók számára készítettek. Sok olyan funkciót találunk benne, amely megkönnyíti a programok írását. Több platformos, sok nyelvet támogató ilyen szövegszerkesztő például a Scite. A Scite az útvonalba lévő fordítókat, interpretereket felismeri, így azok azonnal használhatók. A programok fordítás után futtathatók. Fejlesztői környezet Általában valamely programozási nyelvhez tartozó olyan program, amely a programozói munkát a lehető legkönnyebbé igyekszik tenni. Általában tartalmaz hibakövető eszközöket. A fordítás és a futtatás néhány kattintással történik. CodeBlocks (C, C++, D, de bármely nyelv integrálható) Dev-C++ FreePascal IDE, Eclipse stb. Vizuális fejlesztői környezet A program felületét vizuális eszközökkel tudjuk megtervezni, a felület egyes elemeihez eseményeket tudunk rendelni. CodeBlocks (wxwidget projektel), MS Visual Studio, Delphi, Lazarus, NetBeans, Eclipse+plugin stb. 2. Programkészítési technikák Fordító Egy program készítése és használata három szakaszra osztható 1. A programot megfogalmazzuk egy programozási nyelven (Ez a forráskód) 2. Gépikódú utasításra lefordítjuk és futtathatóvá szerkesztjük. 3. A program futtatását az operációs rendszer végzi. Az ilyen programot szokás natív kódnak is nevezni. Értelmező Az implementált programozási nyelvek egy részéhez nem fordítót készítenek, hanem értelmezőt (interpreter-t). Az értelmező a programot csak a futtatással egy időben fordítja le gépkódú utasítások sorozatára. Így magát a forráskódot futtatjuk közvetlenül. Az így előállított program - természetéből adódóan - lassabban fut, mivel előbb le kell azt fordítani. A program futtatásához kell egy értelmező szoftver az operációs rendszerre.

Bájtkód A bájtkód előállításánál a fordítós és az értelmezős technika együtt kerül alkalmazásra. A forráskódot lefordítjuk, de nem gépikódra. Egy köztes kódra fordítjuk, melynek neve bájtkód. Ha futtatni akarjuk előbb az értelmezővel fordítjuk gépikódra, ami elindul. Ez elvileg gyorsabb mint a szimpla értelmezős technika, mivel az eredeti forrást már előfordítottuk. 3. A fordítás lépései A fordítás jellemzően nem egy menetben történik. Először egy úgy nevezett tárgykód (object file) készül el a forrásállomány(ok)ból. Ez Windowsos rendszereken.obj, Unix alapú rendszereken.o kiterjesztésű fájlokat jelent. Ez után egy szerkesztő állítja össze a futtatható állományt. Ennek haszna főleg több forrásfájlnál mutatkozik meg. A fordításhoz tehát két programra (programmodulra) van szükség: fordítóra és szerkesztőre. A fejlesztői környezetek, és ma már a legtöbb fordító parancs ezt a két műveletet egyben megcsinálja. 4. Az értékadás Az értékadó utasítás Az értékadó utasítás formailag azonosító = kifejezés alakú. Ennek segítségével állíthatjuk be, hogy az azonosító milyen értéket képviseljen a programunkban ezen időpillanattól kezdve. Az azonosító általában valamilyen változó neve, de ezen értékadó utasítással állíthatjuk be a konstansok értékét is. A kifejezés lehet egy kódba írt literális konstans, lehet egy másik azonosítóval képviselt érték, vagy - sok esetben - operátorokból és operandusokból épül fel. Az operátorok az adott operandusokon értelmezett műveleteket jelölnek, végrehajtásuk után egy-egy újabb értéket állítanak elő. Az értékek típusát az adott operátor és operandusok ismeretében meg lehet határozni. A kifejezésnek ennek megfelelően mindig levezethető a típusa. Ezt a típust a kifejezés típusának nevezzük.

A szabály szerint egy értékadó utasításban a kifejezés típusának vagy egyformának kell lennie az azonosító által képviselt típussal, vagy léteznie kell implicit típuskonverziónak a kifejezés típusa -> azonosító típusa irányában. Értékadás érték (egyszerű) típusú változók között Az érték típusú változókhoz tartozó memóriaterületen (valahány bájtnyi terület) az adott változók értékei tárolódnak. Két ilyen változó közötti értékadás során e bájtok másolódnak át egyik területről a másikra. Az átmásolás után a két változó a továbbiakban nem áll kapcsolatban egymással. Pl.: double a =12.3; // az a memóriaterületének feltöltése double b = a; // 12.3 átmásolása a b területére Értékadás referencia típusú változók között A referencia típusú változók elsődlegesen egy memóriacímet tárolnak. A változó tényleges, típusának megfelelő értéke ezen a memóriacímen található. Ilyen típus a karakterlánc (string) típus is. String s = almafa ; esetén a memóriában eltárolásra kerül valahol az almafa szöveg (14 byte-on), majd az s változóba bekerül ezen memóriaterület címe. String m = s; Két referencia típusú változó közötti értékadás során nem a típushoz tartozó érték kerül lemásolásra (duplikálás), hanem csak a memóriacímek másolódnak le. A fenti esetben az m változóba átmásolódik az s-ben tárolt memóriacím. Így e pillanattól kezdve az m változó is az almafa szövegre mutat, az m változó értéke is az almafa szöveg lesz.

Ennek az az előnye, hogy egy memóriacím pl. 4 byte-os adat, melynek lemásolása nagyon gyorsan végrehajtható. Ugyanakkor egy String érték akár több ezer karakter is lehet, melynek lemásolása viszont lassú és időigényes, nem is beszélve a memóriapocsékolásról. 5. A típuskonverzió Olyan művelet, mely során egy kifejezés értékének típusát megváltoztatjuk. A programozási nyelvek többségében ismert az automatikus (implicit) típuskonverzió, amikor egy kifejezés kiértékelése közben a különböző reprezentációjú adatok típusegyeztetése beavatkozás nélkül - megtörténik. Továbbá létezik a különböző standard eljárások és függvények segítségével elvégzett ún. kikényszerített (explicit) típuskonverzió. Implicit típuskonverzió A fordítóprogram pontosan ismeri minden értéknek a típusát, és azzal is tisztában van, hogy melyik típusra kellene megváltoztatni azt. Erre szükség lehet egy értékadó utasítás végrehajtása során a bal és a jobb oldal típusának egyeztetésekor, vagy esetleg valamely operátor végrehajtása előtt a két operandus típusait kell közös típusra hozni. Az implicit típuskonverzióról akkor beszélünk, amikor a típusát-alakítást a fordítóprogram önállóan veszi észre és hajtja végre. Az implicit típuskonverzió során az új típusnak a neve nem szerepel az adott ponton a program szövegében, nincs látható nyoma. Explicit típuskonverzió Ha egy kifejezés típusa nem megfelelő a számunkra, direkt módon is előírhatjuk a konverziót. Az explicit típuskonverzió során egy-egy kifejezésben szereplő érték típusát megváltoztatjuk. Ennek során az értéket képviselő operandus elé az új típus nevét leírjuk zárójelben: int a = 12; double b = (double)a*2; A fenti példában a 12 értéket double-ra változtattuk. Nem minden típusú értékből lehet explicit

módon valamely más típusú értéket készíteni. Például egy karakterlánc cseresznye értéket értelmetlen dolog valós típussá alakítani, azaz explicit módon sem lehet azt konvertálni. Kérdések: 1. Sorolja fel a kódolás eszközeit! 2. Mi jellemzi a programozói szövegszerkesztő programokat? 3. Mi jellemzi a fejlesztői környezeteket, beleértve a vizuálisakat is? 4. Hogyan áll elő a futtatható program fordító program használata esetén? 5. Hogyan működik a bájtkódos programkészítés? 6. Hogyan fut egy értelmezőhöz készített program? 7. Hogyan épül fel egy értékadó utasítás? Mi jellemzi a két oldalát? 8. Mutassa be az értékadás folyamatát az egyszerű értéktípusú adatok esetében! 9. Ismertesse az értékadás mikéntjét referencia típusú változók esetében! 10. Mi a típuskonverzió? 11. Mikor beszélünk implicit típuskonverzióról? 12. Mit jelent az explicit típuskonverzió?