Régi programozási nyelvek. Készítette: Hudasi Luca Flóra

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Régi programozási nyelvek. Készítette: Hudasi Luca Flóra"

Átírás

1 Régi programozási nyelvek Készítette: Hudasi Luca Flóra

2 A programvezérlésű számítógépek a 2. világháború után indultak fejlődésnek. A számítógépeknek ebben az időben megnőtt a számítási sebességük, pontosabban számoltak, és lehetőség volt az információ tárolására is. A műveleteket emberi beavatkozás nélkül is el tudták végezni. A számítógépes programnyelvek - főleg az első időben - matematikai problémák megoldására koncentrálódtak. A mérnökök/matematikusok/programozók úgy vélték, hogy amennyiben a számítógéppel meg tudnak oldatni egy összetettebb matematikai problémát, akkor utána a matematika segítségével bármilyen hétköznapi problémát is le lehet írni. A programtervezés során először a probléma matematikai modelljét készítették el, majd ezt a modellt átültették egy algoritmusba, és csak ezután került az algoritmus a mai értelemben vett leprogramozásra. 1 A korai nyelvek (Fortran, A, B) az előbb kifejtettek miatt rendelkeztek zömmel csak matematikai utasításkészlettel és színtaktikával. A programozáshoz kezdetben alaposan ismerni kellett a számítógép felépítését. Később az algoritmikus programozási nyelvek kifejlesztésével leegyszerűsödött a programozás. A teljesen gépi nyelvű programozás (0-ák és 1-esek) nagyon körülményes volt, és hamar rájöttek, hogy bizonyos ismétlődő tevékenységeket (utasításokat) a számítógéppel is el lehet végeztetni, mindössze egy mintafelismerő fordító programot kell hozzá írni, mely átalakítja a kulcsszavakat gépi utasításokra. Ilyen nyelvek voltak kezdetben az assembler típusú nyelvek, melyek géporientáltak voltak. A mai napig használt és ismert alacsony szintű nyelv az Assembly. Az Assembly tulajdonképpen gépi utasítások sorozata, melyhez egyrészt ismerni kell a 16-os és 8-as számrendszereket, valamint a gép felépítését és a regiszterek állapotát. A mai modern programok is mind assembly kódra fordulnak le, mert a gép ezt érti meg. Ha ma megírnánk egy programot assemblyben és ugyan azt megírnánk C#-ban, majd lefuttatnánk a kettőt, az assembly lényegesen gyorsabban futna. Ennek az az oka, hogy hiába fordul le a C#-os program is assemblyre, az lényegesen több utasítást tartalmaz, mint az assemblyben megírt program. Nyilvánvalóan az ember jobban ki tudja szűrni, hogy milyen utasításokra van szüksége és jobban optimalizálja a kódot, mint a beépített C# fordító. Ettől függetlenül, a mai gyors számítógépeknek hála a programozók megengedhetik maguknak ezt a pazarlást és egyre kevesebb olyan programozó van, aki még tud assemblyben komolyan programozni. Vegyük az alábbi egyszerű példát az assembly nyelv logikájának bemutatására. A példaprogram 2 kiszámol egy tetszőleges indexű Fibonacci számot, amely jelen esetben 5: 1 Artiaga Davis: Algoritmusok és FORTRAN programjaik, 1977, Műszaki Könyvkiadó (Budapest) Erdélyi Zoltán: FORTRAN programozási nyelv, 1979, Tankönyvkiadó (Budapest) 2 Saját program

3 global _main section.text _main: mov ecx,5 mov eax,1 mov ebx,1 mov edx,0 luca: xor edx,edx add edx,ebx add edx,eax mov ebx,eax mov eax,edx loop luca A példából látszik, hogy ebben az esetben a memóriakezelést teljes mértékben a programozó végzi olyan mélységig, hogy még azt is meg kell adni melyik adat melyik regiszterbe kerüljön. Néhány minimális eszköz áll csak a programozó rendelkezésére, mint például a ciklus használata (loop) vagy a függvény deklaráció (_main). Ma már lehetőség van a rendszer C függvényeinek használatára is, így tulajdonképpen ki lehet bővíteni a lehetőségeket a C nyelv képességeivel, de régebben ilyen nem létezett. Az assembler típusú nyelvek után elég gyors fejlődésnek indultak és megjelentek a különböző magasabb szintű (algoritmikus) programozási nyelvek is fordítóval együtt. Ezekben a nyelvekben az utasításkészlet közelebb áll a matematikában használatos jelölésekhez, és kevés gépi ismeret szükséges hozzájuk. Kezdetben úgynevezett autokódok léteztek, melyek ugyan már nem gépi kódok voltak, hanem fordítóval és szimbolikus utasításkészlettel rendelkező nyelvek, de mégis különböző változatban fordultak elő a különböző számítógépekhez. Például az NME Matematikai Intézetben működő ODRA es gépnek az EMA volt az autokódja (programozási nyelve). Tehát egy másik motiváció is előremozdította a programozási nyelvek fejlődését, mégpedig, hogy minél univerzálisabb legyen, mert annál hordozhatóbb lesz a program számítógépek között. Az években két magasszintű univerzális programozási nyelvet dolgoztak ki, a FORTRAN-t és az ALGOL-t. A FORTRAN eredetileg az IBM számítógépeinek az autokódja volt, de az IBM számítógépekkel együtt annyira elterjedt, hogy univerzális kód lett belőle. Az ALGOL egy európai programozási nyelv, és kifejlesztésekor törekedtek arra, hogy minél általánosabban lehessen vele leírni minden matematikai algoritmust. A számítógépeket kezdetben nem univerzális használatra gyártották, hanem különböző szakterületeken előforduló problémák megoldására specializálták a példányokat. A programozási nyelvek is követték a mintát, és szükség volt szak-nyelvekre.

4 Ilyen problémaorientált univerzális nyelv a COBOL, mely az adatfeldolgozásban játszott fontos szerepet. Egy másik példa a SIMSCRIPT, melyet rendszerszimulációs problémák megoldására használtak. A FORTRAN programozási nyelv az 1970-es években élte fénykorát. A szó a formula és translation szavakból jött. Ez egy algoritmikus nyelv, fejlettebb, mint az assembly. A FORTRAN nyelv több változata volt használatban, melyek utasításaikban kicsit eltértek egymástól annak függvényében, hogy melyik számítógép családra használták ben az Amerikai Szabványügyi Hivatal (ASA) egy külön munkacsoportot hozott létre, amelynek az volt a feladata, hogy a FORTRAN-t számítógéptől független, szabályos programozási nyelvként definiálja 3. Amellett, hogy ez nem egy feladatspecifikált nyelv, mint például a SIMSCRIPT, azért is aratott nagy sikert, mert könnyen érthető volt a logikája, és a korabeli beviteli eszközöket, mint a lyukkártyát és lyukszalagot könnyű volt ezen a nyelven programozni. Bemutatunk egy nagyon egyszerű példaprogram FORTRAN nyelven 4 mely meghatározza legfeljebb 100 valós szám számtani átlagát: MASTER ATLAG DIMENSION X (100) READ (6, 55) N, (X(I), I=1, N) 55 FORMAT (I3/(8F10.3)) S = 0 I = 1 3 S = S + X (I) I = I + 1 IF (I.LE.N) GO TO 3 S = S/FLOAT(N) WRITE (7,66) S 66 FORMAT (1 H1, F10.3) STOP END A FORTRAN nyelvben használatosak voltak a ma is ismert program logikai tagolások, mint a függvény, eljárás, main metódus, adatdeklaráció, stb. Az utasításkészletből látható, hogy az assemblyvel ellentétben itt nem kell a regiszterekkel törődni és a nyelv felépítése valóban általános. Az 1970-es években megjelent egy másik nyelv, a B nyelv, melyet Ken Thompson fejlesztett ki a Bell Labs-ban. A nyelv logikája, szintaxisa különbözött a többi korabelitől. Multics rendszerek programozására használták, és ez a nyelv volt az alapja a későbbi C nyelvnek. A következő példakódból 5 látható mennyit fejlődött a programozás és hogyan kezdett közeledni a mai úgynevezett C alapú nyelvekhez: 3 Erdélyi Zoltán: FORTRAN programozási nyelv, 1979, Tankönyvkiadó (Budapest) 19. oldal 4 Erdélyi Zoltán: FORTRAN programozási nyelv, 1979, Tankönyvkiadó (Budapest) 24. oldal 5 Ken Thompson : Users' Reference to B 1972, (scannelt változat:

5 main() { extrn putchar, n, v; auto i, c, col, a; i = col = 0; while(i<n) v[i++] = 1; while(col<2*n) { a = n+1 ; c = i = 0; while (i<n) { c =+ v[i] *10; v[i++] = c%a; c =/ a--; putchar(c+'0'); if(!(++col%5)) putchar(col%50?' ': '*n'); putchar('*n*n'); v[2000]; n 2000; A program kiszámolja az e-2 értékét (azaz 2 ).! A B nyelvben továbbá megjelent az argv[] mint előre definiált vektor. Ezzel a legtöbb mai modern nyelv rendelkezik, és arra szolgál, hogy a programot indulásakor fel lehessen paraméterezni. A B nyelv ezen kívül már beépített fájlműveleteket is tartalmazott. A B nyelvre erősen ráépült a mai napig is használatos és legelterjedtebb C nyelv. A számítógép programozásra igen nagy hatást gyakorolt ez a nyelv. Szintaktikailag nagyon hasonló a B nyelvhez, néhány változtatás, újítás került bele, hogy még hatékonyabb legyen. Például megjelent a void típusú metódus, mely lehetővé tette, hogy olyan függvényt írjunk, amelynek nincs visszatérési értéke. Ma ezeket nem függvényeknek, hanem eljárásoknak nevezzük. Kezdetben ezt is Unix alapú operációs rendszerekre írták, mint a B nyelvet, de aztán olyan nagy sikert aratott, hogy megjelentek más operációs rendszerekkel is kompatibilis fordítók. A következő C program stringeket vizsgál, és összeadja a bennük fellelhető természetes számokat 6 : 6 Juhász Kósa Pánovics Édelkraut: C példatár (

6 unsigned long termszam( char *s ) { unsigned long osszeg = 0; int i; for ( i = 0; s[ i ]; ++i ) if (!isdigit( s[ i ] ) ) s[ i ] = ' '; while ( 1 ) { char *p; osszeg += strtoul( s, &p, 10 ); if ( s == p ) break; s = p; return osszeg; A C nyelvet ma főképpen hardver programozására, illetve rendszer kernel programozására használják. Az assembly helyettesítője lett, habár az assembly is még használatban van. Érdekességként érdemes megemlíteni az ABC nyelvet, melynek a neve szándékosan került ki az A, B és C programnyelvek neveinek összevonásából. Ugyan a C nyelv sokkal kezelhetőbb volt, mint a megelőző nyelvek, mégis sokan nehezen érthetőnek találták. Egy jó C programozónak továbbra is megalapozott matematikai és gépi ismeretekkel kellett rendelkeznie, ezért néhány szakemberben megfogalmazódott az a gondolat, hogy kéne egy olyan nyelvet készíteni, amely sokkal gyorsabban megtanulható, azaz sokkal beszédesebb mint az A, B és C nyelvek. Így fejlesztették ki az ABC programozási nyelvet. Ennek hatására két táborra oszlottak a programozók, és különféle publikációk jelentek meg arról, hogy miért lenne érdemes megkönnyíteni a programozók dolgát, illetve, a másik csoport nézete szerint miért nem kéne ledegradálni a programozást csupán a kényelem kedvéért. Végül a C nyelv győzött de csak az ABC-vel szemben, mivel az ABC elvesztette a népszerűségét, és tanulónyelvnek bélyegezték. Az irányzat viszont, miszerint alkossunk olyan nyelveket, amelyeknél a programozás megkönnyítésére helyezzük a hangsúlyt, tovább élt, és a későbbi menedzser nyelvek mind ebből nőttek ki (például C#). Az alábbi program részlet 7 egy nagyobb program része, de illusztrálja az ABC nyelv beszédességét : 7 Geurts Meertens Pemberton: ABC programmer s handbook, 70. oldal (Bosko Books, 2005, Bristol)

7 HOW TO GENERATE IMITATION FROM followers: PUT choise keys followers IN group WHILE group in keys followers: GENERATE ONE CHARACTER WRITE / GENERATE ONE CHARACTER: PUT choise followers[group] IN character WRITE character UPDATE group WITH character Ugyan sokan vitatják, hogy programozási nyelv lenne-e, de meg kell említeni az SQL-t, amely szintén az 1970-es években látta meg a napvilágot. Az SQL-t (structured-querylanguage) az IBM fejlesztette ki. Azáltal, hogy szélesebb körben is elterjedtek a számítógépek, és egyre több cég és szervezet tárolta gépeken az adatokat, igény volt arra, hogy ehhez a tárolt, nyilvántartott adatmennyiséghez gyorsan és hatékonyan hozzá lehessen férni. Az adatbázis kitalálása magával hozta az adatbázis-nyelv kialakulását is. Egy olyan nyelvre volt szükség, amellyel könnyedén és egyszerűen meg lehet valósítani halmazműveleteket és halmazok közötti adatmozgató/módosító utasításokat. Az SQL egy célnyelv, amelyet kifejezetten adatbázis műveletekre írtak. A személyes véleményem az, hogy ez is épp olyan programnyelv mint a többi, mivel az alap funkciók mind megvannak benne: függvény deklaráció, változó deklaráció, ciklusok, stb. Általában azt szokták programozási nyelvnek nevezni, ami Turing-teljes. Arról, hogy az SQL Turing-teljes-e, megoszlanak a vélemények. Vannak bizonyos újabb SQL nyelvek, melyek már biztosan azok, de a hagyományos SQL-nél ez nem bizonyított. Bemutatunk egy példaprogramot az összetettebb SQL műveletre 8 : 8 saját program

8 VARCHAR(50) VARCHAR(256) INT INT INT VARCHAR(50) GROUP = 1 declare HumanCursor CURSOR FOR SELECT HumanName, , GroupId FROM MyDB.IMPORT WITH(NOLOCK) WHERE GROUP declare PriorityCursor CURSOR FOR SELECT CASE WHEN ISNUMERIC(Priority) = 1 THEN CAST(Priority AS INT) ELSE 0 END FROM MyDB. IMPORT WITH(NOLOCK) WHERE GROUP OPEN HumanCursor OPEN PriorityCursor FETCH NEXT FROM @GroupId FETCH NEXT FROM PriorityCursor = 0 BEGIN HumanID = GROUP,@Priority,0 UPDATE MyDB.IMPORT SET HumanID=@HumanID WHERE GroupId=@GroupId FETCH NEXT FROM @GroupId FETCH NEXT FROM PriorityCursor END CLOSE HumanCursor CLOSE PriorityCursor DEALLOCATE HumanCursor DEALLOCATE PriorityCursor; A példában szereplő ciklus, változó, függvényhívás a megszokott programozási elemek csak más szintaxissal. Az as évektől kezdve rohamos fejlődésnek indultak a magasabb szintű programozási nyelvek. Sokféle ma is használatos nyelv alakult ki, mint például a C++, Basic, Pascal, Matlab, stb. Azáltal, hogy a számítógépeket már sorozatban kezdték gyártani, megnyílt a piac a hordozható, gépfüggetlen nyelvek előtt. A programnyelvekhez immáron compiler is tartozott. Megjelentek a fejlesztőkörnyezetek (IDE-k). A computerek megnövekedett kapacitásával, memóriájával az elvégzendő feladatok is bonyolultabbak lettek, a korábbi nyelvek pedig már korlátoltnak bizonyultak ezekhez a feladatokhoz.

9 Kezdett két éles csoport kialakulni a programnyelvek között: a ma is használatos régi nyelveket is magába foglaló csoport a hardver programozására szakosodott, a másik csoport pedig a hardver független felső, szoftveres rétegre. Az első csoport igényeinek továbbra is megfelelt az assembly és C nyelv, melyek időközben egyéb funkciókkal egészültek ki. Viszont a másik új csoport térhódításával teljesen új igények jelentek meg. Ilyen volt a szép felület, dinamikus, grafikus interfész, és a felhasználói élmény fokozása. Ha egy mai grafikus szoftvert szeretnénk megírni assemblyben vagy akár C-ben, ahhoz, hogy ugyanazt a hatást érjük el, mint mondjuk Java-val, igen sokat és körülményesen kellene programozni. Ahhoz, hogy ésszerű időn belül le lehessen fejleszteni egy szoftvert, szükség volt újabb, modernebb programozási technikákra. A szoftverfejlesztésben igen nagy mérföldkőnek számító objektumorientált programnyelv volt a megoldás erre a problémára. A C továbbfejlesztett, objektum orientált változata lett a C++, a Pascal-é pedig az Object Pascal. Az objektumorientáltság igazából egy elv, amellyel gyorsabban tudjuk leprogramozni, és később átlátni és változtatni a megoldandó problémát. Objektumorientáltan akár C nyelven is lehetne programozni, hiszen ez egy elv nem pedig technika, de mivel az új, objektumorientált nyelvek eleve erre épülnek szintaktikailag is, így azokban ez sokkal könnyebb és gyorsabb. A modern programnyelvek lényege, hogy nem a programozó dolga a memória és egyéb hardverek kezelése, mivel ezt megoldja a háttérben a fordító. A kód fordításkor gépi kódra fordul át. Nyilvánvaló, hogy ezáltal memória és erőforrás pazarlás történik, de a technika fejlődésével ez egyre jobban megengedhető volt, nem úgy, mint a régi időkben, amikor minden bit számított. A 90-es években még tovább fejlődtek az objektumorientált nyelvek, és új, még korszerűbbek jelentek meg, mint például a Java és a Python. A Microsoft, látva a Java sikerét és térhódítását, kifejlesztette a saját nyelvét, a C#-ot. Köztudottan ez a nyelv a C++ és a Java képességeiből lett összegyúrva. Talán mondhatjuk, hogy az egyik legkönnyebben programozható nyelv. Szintaktikailag nagyon közel áll a Javahoz, viszont továbbra is lehetőség van benne a memória kezelésére és pointerek használatára, mint C++-ban. A következő példakód 9 egy Java program egyik osztályából való, és bemutatja a tipikus objektumorientált szemléletmódot: 9 Saját program

10 package WebService; import exceptions.idgeneratingfailureexception; import java.util.concurrent.concurrenthashmap; import java.util.concurrent.concurrentmap; /** * luca */ public class ClientRegister { final private static Object mutex = new Object(); final private static Object instancemutex = new Object(); private static ClientRegister _singleton = null; private static ConcurrentMap<String,Client> _clients = null; public static ClientRegister getinstance() { synchronized(instancemutex) { if (_singleton == null) { _singleton = new ClientRegister(); return _singleton; private ClientRegister() { _clients = new ConcurrentHashMap<String, Client>(); protected String put(string id, String password) throws IdGeneratingFailureException { if ((id == null) (password == null)) return null; if ((id.length() == 0) password == null) return null; if (ClientVerifier.getInstance().verify(id, password) == false) return null; synchronized(mutex) { if (_clients.containskey(id)) { return _clients.get(id).getgeneratedid(); String generatedid = IdGenerator.getInstance().generate(); if(generatedid == null generatedid.length()==0) { throw new IdGeneratingFailureException("Generating id failed. Try again later."); Client client = new Client(id, generatedid); _clients.put(id,client); return generatedid;

11 A példa egy webproxy program egyik osztálya. A bejelentkezett klienseknek generál egy azonosítót (generatedid), eltárolja a bejelentkezett klienst majd visszatéríti a generált egyedi azonosítót. Még a szinkronizációt is az objektumok kihasználásával oldja meg. Ugyanezt az osztályt egy tízszer hosszabb kódban lehetett volna megvalósítani mondjuk a régi Pascal nyelven, amit ráadásul utólag módosítani megint csak többszörös munka. Az említett programnyelveken kívül rengeteg példát lehetne még hozni különböző irányzatokra, melyek hozzájárultak a programozás fejlődéséhez, de mindegyik alapvető elvben a régi programozási nyelvekből nőtte ki magát, és a régi időben lefektetett elvek még a mai napig is tartják magukat. Ennek nyilvánvalóan egyik oka a technikai korlátozottság, valamint olyan alapvetően adott körülmények, mint a kettes számrendszer használata gépi szinten. A programozás tulajdonképpen a matematika egyik speciális ága, a program felfogható úgy, mint egy bonyolult matematikai függvény. A gépek és a programnyelvek fejlődésével ez a módszer egyre több lehetőséget teremt, és nagymértékben hozzájárul világunk technikai előrehaladásához.

12 Felhasznált irodalom Erdélyi Zoltán: FORTRAN programozási nyelv, 1979, Tankönyvkiadó (Budapest) Artiaga Davis: Algoritmusok és FORTRAN programjaik, 1977, Műszaki Könyvkiadó (Budapest) Geurts Meertens Pemberton: ABC programmer s handbook, 2005, Bosko Books (Bristol) Ken Thompson : Users' Reference to B, 1972 (scannelt változat: Juhász Kósa Pánovics Édelkraut: C példatár ( dr. Mersich Istvánné: Alkalmazott számítástechnika, 1992, Műszaki Könyvkiadó (Budapest)

Történeti áttekintés

Történeti áttekintés Történeti áttekintés Előzmények A számítástechnika kezdetén elterjedt (egyeduralkodó) volt a mérnökpult használata, a gép és az ember kommunikációja bináris nyelven zajlott. A gépi kódú programozás nem

Részletesebben

Adatbázis rendszerek. dr. Siki Zoltán

Adatbázis rendszerek. dr. Siki Zoltán Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti

Részletesebben

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

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével

Részletesebben

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

Adatbázis-kezelő rendszerek. dr. Siki Zoltán Adatbázis-kezelő rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati

Részletesebben

C programozás. 1 óra Bevezetés

C programozás. 1 óra Bevezetés C programozás 1 óra Bevezetés A C nyelv eredete, fő tulajdonságai 1. Bevezető C nyelv alapelemei többsége a BCPL (Basic Combined Programming Language {1963}) Martin Richards B nyelv Ken Thompson {1970}

Részletesebben

Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN

Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN Adatbázis Rendszerek II. 1. SQL programozási felületek 39/1B IT MAN B IT v: 2016.02.10 MAN SQL felületek Hatékony: SQL parancsok kiadására Eredmények megtekintésére Nehézkes: Nagyobb volumenű, rutintevékenységek

Részletesebben

Java és web programozás

Java és web programozás Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:

Részletesebben

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc 4. fejezet Fordítók felépítése Grafikus Processzorok Tudományos Célú Programozása Fordítók Kézzel assembly kódot írni nem érdemes, mert: Egyszerűen nem skálázik nagy problémákhoz arányosan sok kódot kell

Részletesebben

Bevezetés, a C++ osztályok. Pere László

Bevezetés, a C++ osztályok. Pere László Programozás módszertan II. p. Programozás módszertan II. Bevezetés, a C++ osztályok Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK

Részletesebben

Felhasználó által definiált adattípus

Felhasználó által definiált adattípus Felhasználó által definiált adattípus C++ Izsó Tamás 2017. február 24. Izsó Tamás Felhasználó által definiált adattípus/ 1 Irodalom Izsó Tamás Felhasználó által definiált adattípus/ 2 Programtervezési

Részletesebben

Bevezetés. Dr. Iványi Péter

Bevezetés. Dr. Iványi Péter Bevezetés Dr. Iványi Péter Programozási készség Számos munka igényel valamilyen szintű programozási készséget Grafikus a képfeldolgozót, Zenész a szintetizátort, Programozó a számítógépet programozza.

Részletesebben

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o Miért Java? széleskörben elterjedt Micro Edition - beágyazott rendszerek, régi telefonok Standard Edition - PC, android ezen alapul Enterprise Edition - vállalati programok, web service-ek multiplatform

Részletesebben

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

GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és Függvénysablonok Gyakorlatorientált szoftverfejlesztés C++ nyelven Visual Studio Community fejlesztőkörnyezetben

Részletesebben

7. fejezet: Mutatók és tömbök

7. fejezet: Mutatók és tömbök 7. fejezet: Mutatók és tömbök Minden komolyabb programozási nyelvben vannak tömbök, amelyek gondos kezekben komoly fegyvert jelenthetnek. Először is tanuljunk meg tömböt deklarálni! //Tömbök használata

Részletesebben

Adatbázisok elleni fenyegetések rendszerezése. Fleiner Rita BMF/NIK Robothadviselés 2009

Adatbázisok elleni fenyegetések rendszerezése. Fleiner Rita BMF/NIK Robothadviselés 2009 Adatbázisok elleni fenyegetések rendszerezése Fleiner Rita BMF/NIK Robothadviselés 2009 Előadás tartalma Adatbázis biztonsággal kapcsolatos fogalmak értelmezése Rendszertani alapok Rendszerezési kategóriák

Részletesebben

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

ISA szimulátor objektum-orientált modell (C++) Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?

Részletesebben

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

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14. 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

Részletesebben

Elôszó a magyar kiadáshoz A Kiadó Elôszó

Elôszó a magyar kiadáshoz A Kiadó Elôszó Elôszó a magyar kiadáshoz A C programnyelvet eredetileg a Bell Laboratóriumban az UNIX operációs rendszerhez, az alatt fejlesztették ki PDP-11_ számítógépen. A kifejlesztése óta eltelt évek során bebizonyosodott,

Részletesebben

A programozás alapjai

A programozás alapjai A programozás alapjai Változók A számítógép az adatokat változókban tárolja A változókat alfanumerikus karakterlánc jelöli. A változóhoz tartozó adat tipikusan a számítógép memóriájában tárolódik, szekvenciálisan,

Részletesebben

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:

Részletesebben

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész Java Programozás 9. Gy: Java alapok Adatkezelő 5.rész 15/1 B ITv: MAN 2018.04.22 A Keresés funkció Programlogika: 1. A keresés az etm táblamodellben fog keresni, és a találat rekordokat átmásolja egy másik

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve

Részletesebben

117. AA Megoldó Alfréd AA 117.

117. AA Megoldó Alfréd AA 117. Programozás alapjai 2. (inf.) pót-pótzárthelyi 2011.05.26. gyak. hiányzás: kzhpont: MEG123 IB.028/117. NZH:0 PZH:n Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

Részletesebben

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN B IT v: 2016.03.03 MAN Csomagok A DBMS csomagok a PL/SQL alkalmazások fejlesztését segítik, bennük tároljuk a létrehozott programok kódjait. A specifikációs

Részletesebben

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető

Részletesebben

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor Java Programozás 4. Gy: Java GUI Tipper, MVC kalkulátor 15/1 B ITv: MAN 2018.03.10 1. Feladat: Tipper Készítsük el a tippelős programunk grafikus változatát. Az üzleti logika kódja megvan, a felület pedig

Részletesebben

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

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin 1 A PROGRAMOZÁS ALAPJAI 3 Készítette: Vénné Meskó Katalin Információk 2 Elérhetőség meskokatalin@tfkkefohu Fogadóóra: szerda 10:45-11:30 Számonkérés Időpontok Dec 19 9:00, Jan 05 9:00, Jan 18 9:00 egy

Részletesebben

3. Gyakorlat Ismerkedés a Java nyelvvel

3. Gyakorlat Ismerkedés a Java nyelvvel 3. Gyakorlat Ismerkedés a Java nyelvvel Parancssori argumentumok Minden Java programnak adhatunk indításkor paraméterek, ezeket a program egy tömbben tárolja. public static void main( String[] args ) Az

Részletesebben

Java Programozás 11. Ea: MVC modell

Java Programozás 11. Ea: MVC modell Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát

Részletesebben

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet

Részletesebben

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,

Részletesebben

Adatbázisok webalkalmazásokban

Adatbázisok webalkalmazásokban Sapientia - EMTE, Pannon Forrás,,Egységes erdélyi felnőttképzés a Kárpát-medencei hálózatban 2010 A JDBC API A Data Access Object tervezési minta Adatforrás - DataSource JDBC architektúra A JDBC API java.sql

Részletesebben

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL ) Célok: a Java DB adatbázis-kezelő rendszer használatának ismertetése, adatbázisok használata Java alkalmazásokban - kétrétegű architektúra, egyszerű kliens-szerver architektúra használata hálózati alkalmazásokhoz.

Részletesebben

Széchenyi István Szakképző Iskola

Széchenyi István Szakképző Iskola A SZAKKÖZÉPISKOLAI SZAKMACSOPORTOS ALAPOZÓ OKTATÁS ISKOLAI PROGRAMJA 9 12. évfolyam Érvényes a 2003-2004-es tanévtől felmenő rendszerben Átdolgozva, utolsó módosítás: 2004. április 26. A szakmacsoportos

Részletesebben

Programozás II gyakorlat. 6. Polimorfizmus

Programozás II gyakorlat. 6. Polimorfizmus Programozás II gyakorlat 6. Polimorfizmus Típuskonverziók C-ben: void * ptr; int * ptr_i = (int*)ptr; Ez működik C++-ban is. Használjuk inkább ezt: int * ptr_i = static_cast(ptr); Csak egymással

Részletesebben

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni? A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály

Részletesebben

Programozás alapjai Bevezetés

Programozás alapjai Bevezetés Programozás alapjai Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Programozás alapjai Bevezetés SWF1 / 1 Tartalom A gépi kódú programozás és hátrányai A magas szintÿ programozási nyelv fogalma

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. november A C++ programozási nyelv Soós Sándor 1/12 Tartalomjegyzék Miért

Részletesebben

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*; Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely

Részletesebben

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

Ismerkedés a Python programnyelvvel. és annak micropython változatával Ismerkedés a Python programnyelvvel és annak micropython változatával A Python programozási nyelv története Az alapötlet 1980-ban született, 1989 decemberében kezdte el fejleszteni Guido van Rossum a CWI-n

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

Részletesebben

Java programozási nyelv

Java programozási nyelv Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék

Részletesebben

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

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

Széchenyi István Szakképző Iskola

Széchenyi István Szakképző Iskola A SZAKKÖZÉPISKOLAI SZAKMACSOPORTOS ALAPOZÓ OKTATÁS EMELT SZINTŰ ISKOLAI PROGRAMJA 11-12. évolyam Érvényes a 2003-2004-es tanévtől felmenő rendszerben Átdolgozva, utolsó módosítás: 2004. április 26. Az

Részletesebben

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozási nyelvek JAVA EA+GY 1. gyakolat Programozási nyelvek JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2018/2019. tavaszi félév Tartalom 1 A Java alapjai 2 Java program

Részletesebben

4. Programozási nyelvek osztályozása. Amatőr és professzionális

4. Programozási nyelvek osztályozása. Amatőr és professzionális 4. Programozási nyelvek osztályozása. Amatőr és professzionális programozási nyelvek. Számítási modellek (Neumann-elvű, automataelvű, funkcionális, logikai). Programozási nyelvekkel kapcsolatos fogalmak

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 1. Előadás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu Programozás

Részletesebben

Programozási alapismeretek 4.

Programozási alapismeretek 4. Programozási alapismeretek 4. Obejktum-Orientált Programozás Kis Balázs Bevezetés I. Az OO programozási szemlélet, egy merőben más szemlélet, az összes előző szemlélettel (strukturális, moduláris, stb.)

Részletesebben

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés Tartalom D Szoftvertechnológia elıadás Architektúra D vs CORBA Példá 2 1987 Dynamic Data Exchange (DDE) Windows 2.0-ban Windows alkalmazások közötti adatcsere Ma is használatos (pl. vágólap) NetDDE NetBIOS

Részletesebben

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk. OO PDO PDO VS MYSQLi VS MYSQL ================================================================================ A PHP mysql metódusai elavultak, helyette lehet hazsnálni a MYSQLi metódusokat, amelyek szinte

Részletesebben

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában? Szálkezelés 1. A szekvencia diagram feladata az objektumok egymás közti üzenetváltásainak ábrázolása egy időtengely mentén elhelyezve. Az objektumok életvonala egy felülről lefelé mutató időtengely. A

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

Java programozási nyelv 4. rész Osztályok II.

Java programozási nyelv 4. rész Osztályok II. Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

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

Kifejezések. Kozsik Tamás. December 11, 2016 Kifejezések Kozsik Tamás December 11, 2016 Kifejezések Lexika Szintaktika Szemantika Lexika azonosítók (változó-, metódus-, típus- és csomagnevek) literálok operátorok, pl. + zárójelek: (), [], {},

Részletesebben

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási

Részletesebben

C++ programozási nyelv Konstruktorok-destruktorok

C++ programozási nyelv Konstruktorok-destruktorok C++ programozási nyelv Konstruktorok-destruktorok Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

Programozási nyelvek 6. előadás

Programozási nyelvek 6. előadás Programozási nyelvek 6. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig) Számítási modell (hogyan

Részletesebben

Alprogramok, paraméterátadás

Alprogramok, paraméterátadás ELTE Informatikai Kar, Programozási Nyelvek és Fordítóprogramok Tanszék October 24, 2016 Programozási nyelvek Alprogramok Függvények, eljárások Metódusok Korutinok stb. Alprogramok Alprogram: olyan nyelvi

Részletesebben

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

Programozási nyelvek a közoktatásban alapfogalmak I. előadás Programozási nyelvek a közoktatásban alapfogalmak I. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig)

Részletesebben

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

1. Egyszerű (primitív) típusok. 2. Referencia típusok II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek középszint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM

Részletesebben

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?

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? 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? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"

Részletesebben

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat Kivételkezelés, beágyazott osztályok Nyolcadik gyakorlat Kivételkezelés Nem minden hibát lehet fordítási időben megtalálni Korábban (pl. C-ben) a hibakezelést úgy oldották meg, hogy a függvény hibakódot

Részletesebben

Haladó DBMS ismeretek 1

Haladó DBMS ismeretek 1 Haladó DBMS ismeretek 1 Hasznos információk A tantárgy weboldala: it.inf.unideb.hu/honlap/halado_oracle1 Oracle Junior képzés Gyakorlatok és a neptun Gyakorlat követelmények Ajánlott irodalom Juhász István

Részletesebben

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked

Részletesebben

Programozás C++ -ban

Programozás C++ -ban Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is

Részletesebben

Informatika terméktervezőknek

Informatika terméktervezőknek Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások

Részletesebben

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

sallang avagy Fordítótervezés dióhéjban Sallai Gyula sallang avagy Fordítótervezés dióhéjban Sallai Gyula Az előadás egy kis példaprogramon keresztül mutatja be fordítók belső lelki világát De mit is jelent, az hogy fordítóprogram? Mit csinál egy fordító?

Részletesebben

3. Az elektronikus számítógépek fejlődése napjainkig 1

3. Az elektronikus számítógépek fejlődése napjainkig 1 2. Az elektronikus számítógépek fejlődése napjainkig Vázold fel az elektronikus eszközök fejlődését napjainkig! Részletesen ismertesd az egyes a számítógép generációk technikai újdonságait és jellemző

Részletesebben

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3) Programozás alapjai C nyelv 5. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.17. -1- Tömbök Azonos típusú adatok tárolására. Index

Részletesebben

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző

Részletesebben

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

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

Részletesebben

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1.

Táblakezelés: Open SQL Internal table. Tarcsi Ádám: Az SAP programozása 1. Táblakezelés: Open SQL Internal table Tarcsi Ádám: Az SAP programozása 1. OPEN SQL Tarcsi Ádám, ELTE SAP Excellence Center: SAP programozás oktatóanyag 2 Open SQL Az Open SQL kulcsszavai: SELECT INSERT

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)

Részletesebben

Kliens oldali SQL-API

Kliens oldali SQL-API Adatbázis rendszerek I mysql SQL program API ME- GEIAL Dr. Kovács Lászl szló Üzleti logika elhelyezése adatbázis Kliens üzleti logika Nagy hálózati forgalom Decentralizált lt karbantartás Lassabb végrehajt

Részletesebben

Objektumorientált programozás C# nyelven III.

Objektumorientált programozás C# nyelven III. Objektumorientált programozás C# nyelven III. Kivételkezelés Tulajdonságok Feladatok Készítette: Miklós Árpád Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és

Részletesebben

Szakmai program 2015

Szakmai program 2015 2015 Célok és feladatok a szakközépiskolai képzésben A szakközépiskolában folyó nevelés-oktatás továbbépíti, kiszélesíti és elmélyíti az általános iskolai tantárgyi követelményeket. A szakközépiskolában

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS 2015. 09. 06. Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés:

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

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

Fordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs Fordított és szkript nyelvek összehasonlító elemzése Sergyán Szabolcs IEEE: The 2016 Top Programming Languages IEEE: The 2016 Top Programming Language (Enterprise) Kutatás-fejlesztésben használt nyelvek

Részletesebben

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás

Részletesebben

Programozás II. 4. Dr. Iványi Péter

Programozás II. 4. Dr. Iványi Péter Programozás II. 4. Dr. Iványi Péter 1 inline függvények Bizonyos függvények annyira rövidek, hogy nem biztos hogy a fordító függvényhívást fordít, hanem inkább az adott sorba beilleszti a kódot. #include

Részletesebben

Stack Vezérlés szerkezet Adat 2.

Stack Vezérlés szerkezet Adat 2. Stack Vezérlés szerkezet Adat 2. Kód visszafejtés. Izsó Tamás 2013. november 14. Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 1 Változó típusú paraméterekátadása 1. #include < s t d i o. h> int64 myfunc

Részletesebben

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés

Bevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;

Részletesebben

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

Programozási nyelvek II. JAVA EA+GY 1. gyakolat Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév Tartalom 1 Amit tudni kell a félévről

Részletesebben

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

Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az

Részletesebben

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi C programozás Márton Gyöngyvér, 2009 Sapientia, Erdélyi Magyar Tudományegyetem http://www.ms.sapientia.ro/~mgyongyi 1 Könyvészet Kátai Z.: Programozás C nyelven Brian W. Kernighan, D.M. Ritchie: A C programozási

Részletesebben

Objektumorientált paradigma és programfejlesztés Bevezető

Objektumorientált paradigma és programfejlesztés Bevezető Objektumorientált paradigma és programfejlesztés Bevezető Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Ficsor Lajos (Miskolci Egyetem) prezentációja alapján

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 18. 2. El adás Komplex szám public class Complex { private float repart_; private float impart_; public Complex() { repart_ = 0; impart_ = 0; public Complex(float

Részletesebben

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

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben