BUDAPESTI MÛSZAKI EGYETEM Méréstechnika és Információs Rendszerek Tanszék. SPIN Mérési útmutató. Készítette: Jávorszky Judit
|
|
- Norbert Péter
- 10 évvel ezelőtt
- Látták:
Átírás
1 BUDAPESTI MÛSZAKI EGYETEM Méréstechnika és Információs Rendszerek Tanszék SPIN Mérési útmutató Készítette: Jávorszky Judit
2 Tartalomjegyzék 1. Bevezetés Általános leírás Módszertan Felépítés PROMELA Általános jellemzõk Adattípusok Processzek és modellek Kijelentések Példa SPIN Szimuláció Verifikáció Standard elvárások Elvárások megfogalmazása Bevezetés 1.1. Á ltalános leírás A SPIN elosztott rendszerek formális verifikációjára alkalmas szoftver rendszer, melyet a Bell Labs fejlesztett. A célja, hogy egy hatékony verifikációs lehetõséget adjon szoftver rendszerek (nem hardver) számára. A program egy magas szintû nyelvet használ a verifikálandó rendszer specifikálására, a PROMELAt (PROcess MEta LAnguage). A SPIN fõ alkalmazási területe elosztott rendszerek logikai tervezési hibáinak detektálása, mint operációs rendszerek, adat kommunikációs protokollok, konkurens algoritmusok, vasúti jelzõ rendszerek, és így tovább. Ezen rendszereknél a SPIN lehetõséget ad a rendszer specifikációjának logikai konzisztenciájának A SPIN szoftver standard ANSI C nyelven íródott, és futtatható a különbözõ verziójú UNIX operációs rendszereken. Ugyanígy futtatható PC-n futó Linux, Windows95/98, vagy WindowsNT rendszereken is.
3 1.2. Módszertan használhatjuk: alkalmas arra, hogy a tervezett rendszer specifikáljuk, illetve, hogy ellenõrizzük a specifikációt. Részletesebben: 1. Specifikáció: a tervezés specifikációja, azaz egy olyan specifikáció melyben csak a lényeges tervezési választások szerepelnek, implementációs részletek nélkül. Ez a viselkedés modellje. 2. Specifikáció: az elvárások specifikációja, azaz azon kijelentések megfogalmazása, melyeket szeretnénk ha a tervezett rendszerünk teljesítene. 3. Verifikáció: a tervezés logikai konzisztenciájának (1) ellenõrzése, illetve hogy a tervezett rendszer specifikációja kielégíti-e az elvárásainkat, vagyis a specifikált elvárások teljesülnek-e (2). Így a SPIN-nel lehetõségünk van: 1. a viselkedés modelljének specifikálására, és ebbõl kiindulva a a rendszer viselkedésének szimulálására és a rendszer állapotainak megfigyelésére, az állapot jellemzõk verifikálására, ciklusok kimutatására, elérhetetlen kódok megtalálására, VAGY 2. a viselkedés modelljének illetve az elvárásoknak együttes specifikációjára, és annak ellenõrzésére, hogy a viselkedés modellje kielégíti-e az elvárásokat. A SPIN minden esetben amikor valamilyen ellentmondást, problémát talál, egy példán keresztül bemutatja, azaz ha egy verifikációt indítunk SPIN-nel, és az leáll, akkor például a SPIN a probléma okáig 1.3. Felépítés A SPIN általános felépítése: LTL feldolgozó, fordító Ellenõrzõ generátor Optimalizált ellenõrzõ Xspin felület PROMELA feldolgozó Interaktív szimulátor ellenpélda Szintaxis ellenõrzõ Megjegyzés: Az LTL a Lineáris Temporális Logika rövidítése, ennek segítségével fogalmazhatunk meg a logika szabályainak megfelelõen elvárásokat, melyeket szeretnénk, hogy ha a rendszerünk teljesítene.
4 2. PROMELA A PROMELA (PROcess MEta LAnguage) a SPIN bemeneti nyelve, egy verifikáció modellezõ nyelv. Lehetõséget ad arra, hogy megfogalmazzunk absztrakt módon egy protokollt (avagy általánosságban egy elosztott rendszert) csak a lényegre figyelve, vagyis a processz interakció szempontjából irreleváns részleteket kihagyva. Így egy adott processznek csak a lényegét modellezzük PROMELA-ban, és a SPIN-nel ezt sek sorozatából tevõdik össze, így konstruálva az egyre részletesebb PROMELA modelleket. Mindegyik modell verifikálható a SPIN-nel különbözõ megszorításokat téve a környezetre, pl.: üzenet elvesztés, üzenet duplikáció, stb. Amint egy modell helyessége a SPIN által bizonyítva van, ez a tény felhasználható a késõbbi modellek megalkotásához, illetve verifikálásához. A viselkedés modelljét fogalmazzuk meg egy PROMELA programmal, amely processzekbõl, üzenet csatornákból és változókból épül fel. A processzek globális objektumok, és ezek szolgálnak a modellezni kívánt rendszer viselkedésének specifikálására. A csatornák kommunikációra szolgálnak, és lehetnek globálisak, illetve processzen belül lokálisak is. Ugyanígy a változók is lehetnek globálisak, illetve processzen belül lokálisak. Míg a processzek specifikálják a viselkedést, a csatornák és globális változók definiálják azt a A PROMELA nyelvre, mint programozási nyelvre jellemzõ, hogy egy C-szerû nyelv, kibõvítve a kommunikáció lehetõségével, és nemdeterminizmussal Adattípusok Alap adattípusok : hossza (bit) bit 1 bool 1 byte 8 short 16 (elõjeles) int 32 (elõjeles) chan A felsorolásban az elsõ öt típus magától értetõdõ, esetleg megjegyezendõ, hogy a bit és bool típusok szinonimái egy biten tárolt információnak. int x, y, z; bit b; A chan típussal tudunk csatornát definiálni. chan c = [5] of {bit, int
5 Ebben az utolsó esetben egy 5 hosszú pufferelt csatornát definiáltunk, melyben 1 üzenet egy bit és egy int érték lehet. Ha szinkron csatornát szeretnénk létrehozni, vagyis olyat, ahol nincs puffer, akkor a következõképpen tehetjük meg: chan d = [0] of {bit, int, short Egy mtype változó használható arra az esetre, ha szimbolikus üzenet értékeket szeretnénk használni: mtype = {control, data, error Strukturált adattípusok Tömbök: int x[10]; chan c[3] = [6] of {bit, int, chan; A tömb elemeire x[0] x[9] -ként, illetve c[0] c[2] -ként hivatkozhatunk. typedef MSG { bit control[5]; int data MSG m; A struktúra elemeire m.bit[0] m.bit[4] -ként, illetve m.data -ként hivatkozhatunk. A PROMELA-ban felépített rendszer modellek alapja a processzek. Vagyis a modellezni kívánt rendszert kommunikáló processzekkel írjuk le, ahol a kommunikációt csatornákkal valósítjuk meg. Processz: Egy változó vagy csatorna állapotát csak egy processzen belül változtathatjuk illetve figyelhetjük meg. Process viselkedését proctype deklarációval definiálhatjuk a következõ módon: proctype procname (formal_parameters) {local_declarations; statements A pontosvesszõ a kijelentések közti szeparátor (nem kijelentés befejezésére utaló jel, mint például a C-ben, ezért nincs szükség pontosvesszõre az utolsó kijelentés után). A PROMELA kétféle kijelentés szeparátort ismer: a pontosvesszõt: ;, és a nyilat: ->. Ez a két szeparátor ekvivalens. A nyíl szeparátort gyakran használják arra, hogy informális módon jelöljék az okozati összefüggést két kijelentés között.
6 byte state = 2; proctype A( ) { (state == 1) -> state = 3 proctype B( ) { state = state - 1 Ebben a példában két processzt definiáltunk A-t és B-t. A state változó globális, és a 2 értékkel inicializáltuk. Az A B processz egy kijelentést tartalmaz, amely a state változó értékét csökkenti 1-vel, és mivel ez a kijelentés mindig B típusú processzek késleltetés nélkül teljesülnek. Az A típusú processzek végrehajtása viszont addig késleltetõdik, amíg a feltétel nem teljesül, vagyis a state változó értéke el nem éri a kívánt PROMELA modell: A proctype definíció csak a processz viselkedését deklarálja, végrehajtásra nem alkalmas. Kezdetben a PROMELA modellben csak egy processz hajtódik végre, ez az init processz, ezt explicit deklarálni kell minden PROMELA specifikációban. Ezek alapján a legkisebb PROMELA specifikáció: init { skip A skip utasítás az az utasítás ami nem csinál semmit. A kezdõ processz tud globális változókat inicializálni, és processzeket példányosítani. A processz példányosításra szolgál a run utasítás: init { run A() A run utasítás akkor nem hajtható végre, ha a processz nem példányosítható, például egy ilyen eset, ha már túl sok processz fut. A run utasítással alapadattípusú (csatorna is) paraméter értéket adhatunk át az új processzeknek, viszont adat tömbök, illetve processz típusok nem adhatok át. A run utasítás nem csak a kezdõ processzben, hanem bármelyik processzben alkalmazható. Egy processz eltûnik, amint befejezõdik, ez akkor történik meg, hogyha a kódja végére ér, viszont ha az adott processz indított más processzeket, elõbb A run utasítással egy processz típusból akárhány processzt létrehozhatunk. Ha több, mint egy konkurens processz olvashatja, illetve írhatja ugyanazt a globális változót, akkor a már jól ismert probléma halmazzal találkozunk, a kölcsönös kizárás problémájával, amely megoldására több, a szakirodalomban ismert lehetõség van, például kritikus szekció programban történõ megvalósítása. A PROMELA-ban még egy nyelvi lehetõség van a kölcsönös kizárás megvalósítására, ez az atomic kifejezés. Kijelentések sorozatát atomic kifejezéssel egybe zárva a felhasználó kijelentheti, hogy az egybe zárt kijelentéseket egy oszthatatlan egységként kell végrehajtani. Ilyenkor az egybe zárt utasítások közé nem ékelõdhet be más processz utasítása. A következõ példa az atomic használatát mutatja be, amikor két konkurens processz ugyanazt a globális state változót akarja használni:
7 byte state = 1; proctype A ( ) { atomic { (state==1) -> state = state + 1 proctype B ( ) { atomic { (state==1) -> state = state - 1 init { run A ( ); run B ( ) Így a state végre. A másik processz örökre blokkolódik. Végeredményben egy általános PROMELA specifikáció a következõképpen néz ki: global_declarations; proctype procname1 (formal_parameters1) {local_declarations1; statements1; proctype procnamen (formal_parametersn) {local_declarationsn; statementsn; init { run(procnamej) run(procnamek) never { A never kulcsszó után adhatjuk meg az igényeinket, hogy mik azok, amiket elvárunk, hogy a specifikált rendszer teljesítsen. Ugyanezt megtehetjük lineáris temporális logikában leírt formulával is. Ezekrõl 2.4. Kijelentések Egy kijelentés engedélyezett vagy blokkolt. Ha blokkolt, akkor a kijelentés végrehajtása azon a ponton ahol éppen tart, megragad, amíg a kijelentés nem lesz. Kijelentés formája: kijelentés ::= kijelentés vagy kijelentés; kijelentés vagy kijelentés -> kijelentés
8 Kijelentés a következõkbõl állhat: kijelentés ::= Az értékadás változóban eltárolt érték megváltozik. Formája: varname = kifejezés Az üres utasítás végrehajtása is mindig engedélyezett, hatása nincsen. Formája: skip Egy egyszerû kifejezés Hatása nincsen. Formája: ( pure ) Például: ( a == b) kifejezés ekvivalens ezzel: while ( a!= b ) do skip Választásengedélyezett, ha létezik egy opció (kijelentések) amely õre (elsõ kijelentés) engedélyezett. Hatására az engedélyezett végrehajtódik. Ha egyszerre több opció is engedélyezett, akkor ezek közül az egyik nemdeterminisztikus módon kiválasztódik, és végrehajtódik. Ha egyik opció se engedélyezett, akkor az else õr engedélyezõdik, ha van. Formája: if :: kijelentések :: kijelentések fi Ciklus engedélyezett, ha létezik egy opció (kijelentések) amely õre (elsõ kijelentés) engedélyezett. Hatására az engedélyezett végrehajtódik, majd az ciklus kiértékelése elölrõl kezdõdik. Ha egyszerre több opció is engedélyezett, akkor ezek közül az egyik nemdeterminisztikus módon kiválasztódik, és végrehajtódik. Ha egyik se engedélyezett, akkor az else õr engedélyezõdik, ha van. A ciklusból break vagy goto utasítással lehet kilépni. Formája: do :: kijelentések :: kijelentések od
9 Csatornába írás illetve olvasás mûveletének formája: Írás: q!változó1,konstans,változó2, Olvasás: q?változó1,konstans,változó2, Itt q a csatorna, és q-nak inicializáltnak kell lennie. Ha q pufferelt: q! (írás) engedélyezett, ha q nincs tele. A q! hatására a csatorna, konstans, változó2, ). q? (olvasás) engedélyezett, ha q nem üres, és a csatorna legfelsõ elemének: (v1, c, v2, ) c konstansa megegyezik az olvasni akart konstans v1, c, v2, ) kivesszük a csatornából, és változó1-nek megfeleltetjük v1-t, változó2-nek megfeleltetjük v2-t, stb Ha q nem pufferelt (szinkron csatorna): q! (q? ) engedélyezett, ha létezik egy evvel a mûvelettel összhangban levõ q? (q! ) mûvelet, és ezek szimultán végrehajthatóak, és a konstansok megegyeznek. A hatására a kimenõ értékek hozzárendelõdnek 2.5. Példa Mit csinál a következõ PROMELA program? chan RQ[2] = [1] of {bit; proctype C(byte j) { do :: RQ[j-1]! 1 od proctype S( ) { bit x; do :: RQ[0]? x; :: RQ[1]? x od init { atomic {run C(1); run S( ); run C(2)
10 3. SPIN A program grafikus felületét elindítva (Xspin) egy könnyen kezelhetõ PROMELA editort kapunk, szintaxis ellenõrzési lehetõséggel. Lehetõségünk van bármilyen szöveg file megnyitására is Szimuláció A szintaktikailag helyes PROMELA programot a SPIN segítségével lejátszhatjuk. Erre a szimulációra három különbözõ módot kínál a SPIN: Random, azaz véletlenszerû: a SPIN elkezdi végrehajtani a programot, ha nemdeterminisztikus Interaktív : a SPIN a program végrehajtása során minden nemdeterminisztikus választáskor a felhasználótól megkérdezi, hogy melyik úton menjen tovább. Guided, azaz vezetett: a végrehajtás egy ellenpélda, amely automatikusan generálódott egy A szimulációt nyomon lehet követni, erre is több lehetõség van: MSC, azaz Message Sequence Chart: a SPIN kirajzolja az idõben az egyes processzek közti üzenet küldéseket. Minden processznek (beleértve az init processzt is) egy szál felel meg, és a szálak között láthatóak az üzenetek értékeikkel, illetve, hogy melyik csatornán küldték õket. Változók is Verifikáció valamilyen módon meg kell adni, hogy mit tekintünk helyesnek, azaz meg kell fogalmaznunk az elvárásainkat. Vannak standard elvárások, amelyek külön megfogalmazásához nincs szükség, a SPIN automatikusan ellenõrzi ezeket. Ilyen például a deadlock (holtpont) hiányának ellenõrzése, az olyan PROMELA kód részletek ellenõrzése amelyeket a program sose használ, puffer túlcsordulása stb. Megjegyzés végeztével kapunk egy listát, melyben a felsorolt nem elért PROMELA kódrészletek között találjuk ezen processzek végét jelölõ kódot. Mivel célunk volt, hogy ezen processzek ezeket ne is érjék el, ez ebben az
11 Elvárások megfogalmazása Elvárások megfogalmazásának három módja van: Követeléseket fogalmazhatunk meg PROMELA-ban, amelyek mindig engedélyezettek, és a PROMELA modellben bárhol elhelyezhetõek. Formája: assert (feltétel) A feltétel-nek egy Boolean kifejezésnek kell lennie. Ha a igaz, akkor a követelésnek nincs hatása. Ha a a végrehajtás során egyszer is hamis lesz, amikor a követelés kiértékelésére kerül sor, a PROMELA modell végrehajtása megszakad. Például: bit X, Y; proctype C( ) { do :: X=0; Y=X; assert (X==Y) :: X=1; Y=X od init { run C( ) Ebben a példában azt a követelést fogalmaztuk meg, hogy elvárjuk, hogy az Y=X értékadás után a két változó értéke megegyezzen. Ha ez nem teljesülne a SPIN hibát jelezne. Címkéket adhatunk meg egyes PROMELA kódrészletekhez, hogy a SPIN számára jelezzük, hogy az adott kódrészletre valamilyen szempontból fordítson figyelmet. Többféle címke típus van: Egy véges állapotú rendszerben minden végrehajtás véges számú állapotátmenet után vagy befejezõdik egy végállapotban, vagy visszatér egy elõzõleg már meglátogatott állapotba. Nem minden befejezõ állapot érvényes, például a deadlock állapotok, illetve lehetnek a modellben különbözõ felvett hiba állapotok is, ezért a PROMELA-ban megkülönböztethetjük, hogy mely végállapotok érvényesek, és melyek érvénytelenek. Ugyanígy egy processz végrehajtása lehet ciklikus, amikor a végállapotát soha nem éri el, viszont a processz mûködése így helyes, és valamely belsõ állapota felel meg egy elvi végállapotnak. Ekkor képesnek kell lennünk rá, hogy ezt jelöljük, és erre szolgál az end state label. Formája: a kívánt kódrészlet elé az end: címkét kell helyezni. A SPIN-t utasítani lehet, hogy megtalálja az összes érvénytelen ciklikus utasítás sorozatot. A kérdés csak az, hogy mi tesz egy ciklust érvénytelenné vagy érvényessé. Az érvénytelen ciklust úgy definiálhatjuk, hogy egy olyan véges számú utasításból álló kódrészlet, ami végtelen gyakran ismétlõdik, anélkül, hogy a modellben haladás történne. A felhasználó a progress state label segítségével definiálhatja, hogy melyek azok az utasítások, melyeknek haladniuk kell. Formája: a kívánt kódrészlet elé az progress: címkét kell helyezni, illetve, ha több helyre is szeretnénk ilyen címkét tenni, bármilyen progress-sel kezdõdõ címke érvényes, például: progress15.
12 Megfogalmazhatjuk a haladás ellentétét is, vagyis azt, hogy valami nem történhet meg acceptance state label segítségével tehetjük meg. Egy ilyen címkével jelölhetjük azt a kódrészletet, amelynek nem kéne részének lennie egy végtelenül gyakran ismétlõdõ utasítás sorozatnak. Formája: a kívánt kódrészlet elé az accept: címkét kell helyezni, illetve, ha több helyre is szeretnénk ilyen címkét tenni, bármilyen accept-tel kezdõdõ címke érvényes. Az elvárásainkat megfogalmazhatjuk Lineá ris Temporá lis Logikasegítségével is. Erre a SPIN egy külön editort kínál, mely az LTL logikában megadott formulát PROMELA-ra fordítja, és ezt a init processz után kell helyeznünk, és a never kulcsszóval kezdõdik. Ez az úgynevezett never claim egy speciális processz, amely a PROMELA modell többi részével párhuzamosan fut, a benne levõ kijelentések feltételek, a modell futására nincs hatásuk. Az LTL formulák formája a következõ lehet: F ::= p true false!f F && F F F F -> F F < -- > F [] F <> F F U F ahol: p ::= bármilyen boolean kifejezés proctype [] F jelentése, hogy az F formula az idõ során mindig igaznak kell lennie. <>F jelentése, hogy az F formula az idõ során valamikor végül is igaz lesz F1 U F2 jelentése, hogy amíg F1 formula igaz, addig F1 formulának is igaznak kell lennie. Például azt szeretnénk megfogalmazni, hogy a p boolean kifejezés az idõ során végül is igaz legyen, és ez mindig, azaz többször is bekövetkezzen. Ez LTL formulával megfogalmazva: []<>p. Ezt a következõ véges automata írja le: true p T0 true accept Így a never claim never { T0 : if :: ( true ) -> goto T0 :: ( p ) -> goto accept fi accept: if :: ( true ) -> goto T0 fi
13 Megjegyzés: SPIN-nel mikor verifikációt készülünk futtatni, a verifikációs opciók beállításánál az advanced beállításoknál célszerû a fizikai memóriát a valós értékre beállítani.
Occam 1. Készítette: Szabó Éva
Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti
Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Az UPPAAL egyes modellezési lehetőségeinek összefoglalása Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Résztvevők együttműködése (1) Automaták interakciói üzenetküldéssel Szinkron
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
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
... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.
Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat
Szkriptnyelvek. 1. UNIX shell
Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek
Alapszintű formalizmusok
Alapszintű formalizmusok dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális tervek Informális követelmények Formális modell Formalizált követelmények
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
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,
A modell-ellenőrzés gyakorlata UPPAAL
A modell-ellenőrzés gyakorlata UPPAAL Uppsalai Egyetem + Aalborgi Egyetem közös fejlesztése; 1995. első verzió megjelenése; részei: - grafikus modellt leíró eszköz (System editor) - szimulátor (Simulator)
OOP. Alapelvek Elek Tibor
OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós
A SPIN használata, példák II
A SPIN használata, példák II Dr. Németh L. Zoltán (zlnemeth@inf.u-szeged.hu) SZTE, Informatikai Tanszékcsoport 2008/2009 I. félév 2008.10.18/2 MODELL 9 1 2. példa: Egy osztott algoritmus Pl. legyen ez
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,
Vezérlési szerkezetek
Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását
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
Programozás II. 2. Dr. Iványi Péter
Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c
Szoftver-modellellenőrzés absztrakciós módszerekkel
Szoftver-modellellenőrzés absztrakciós módszerekkel Hajdu Ákos Formális módszerek 2017.03.22. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék 1 BEVEZETŐ 2
BASH script programozás II. Vezérlési szerkezetek
06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van
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
Programok értelmezése
Programok értelmezése Kód visszafejtés. Izsó Tamás 2016. szeptember 22. Izsó Tamás Programok értelmezése/ 1 Section 1 Programok értelmezése Izsó Tamás Programok értelmezése/ 2 programok szemantika értelmezése
Kiterjesztések sek szemantikája
Kiterjesztések sek szemantikája Példa D Integer = {..., -1,0,1,... }; D Boolean = { true, false } D T1... T n T = D T 1... D Tn D T Az összes függvf ggvény halmaza, amelyek a D T1,..., D Tn halmazokból
Bevezetés a C++ programozási nyelvbe
Bevezetés a C++ programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék CPP0 / 1 Története A C++ programozási nyelv a C programozási nyelv objektum orientált kiterjesztése. Az ANSI-C nyelvet
1. Jelölje meg az összes igaz állítást a következők közül!
1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.
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
Gyakorló feladatok: Formális modellek, temporális logikák, modellellenőrzés. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Gyakorló feladatok: Formális modellek, temporális logikák, modellellenőrzés Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Formális modellek használata és értelmezése Formális modellek
Automatikus tesztgenerálás modell ellenőrző segítségével
Méréstechnika és Információs Rendszerek Tanszék Automatikus tesztgenerálás modell ellenőrző segítségével Micskei Zoltán műszaki informatika, V. Konzulens: Dr. Majzik István Tesztelés Célja: a rendszerben
Operációs rendszerek gyak.
Operációs rendszerek gyak. AWK programozás Hirling Dominik Szegedi Tudományegyetem AWK AWK: a pattern scanning and processing language mintaelemző-és feldolgozó nyelv bármilyen szövegből minták alapján
A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel
A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel Majzik István Micskei Zoltán BME Méréstechnika és Információs Rendszerek Tanszék 1 Modell alapú fejlesztési folyamat (részlet)
AWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás
Osztott rendszer. Osztott rendszer informális definíciója
Osztott rendszer Osztott rendszer informális definíciója Egymástól elkülönülten létező program-komponensek egy halmaza. A komponensek egymástól függetlenül dolgoznak saját erőforrásukkal. A komponensek
Webprogramozás szakkör
Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozá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)
AWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa
A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel
A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel Majzik István Micskei Zoltán BME Méréstechnika és Információs Rendszerek Tanszék 1 Modell alapú fejlesztési folyamat (részlet)
Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések
Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések 1. Az informatikai rendszereknél mit ellenőriznek validációnál és mit verifikációnál? 2. A szoftver verifikációs technikák
é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
Szoftverminőségbiztosítás
NGB_IN003_1 SZE 2014-15/2 (13) Szoftverminőségbiztosítás Szoftverminőség és formális módszerek Formális módszerek Formális módszer formalizált módszer(tan) Formális eljárások alkalmazása a fejlesztésben
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
Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán
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
Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések
Hardver és szoftver rendszerek verifikációja Röviden megválaszolható kérdések 1. Az informatikai rendszereknél mit ellenőriznek validációnál és mit verifikációnál? 2. A szoftver verifikációs technikák
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
1. Alapok. #!/bin/bash
1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk
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
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,
Programozási nyelvek (ADA)
Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 3. előadás Programozási nyelv felépítése szabályok megadása Lexika Milyen egységek építik fel? Szintaktikus szabályok
Óbudai Egyetem. C programozási nyelv
Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C programozási nyelv Struktúrák és Unionok Dr. Schuster György 2016. október 6. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C programozási 2016. októbernyelv
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
NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE. Szekvenciális programok kategóriái. Hoare-Dijkstra-Gries módszere
Szekvenciális programok kategóriái strukturálatlan strukturált NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE Hoare-Dijkstra-Gries módszere determinisztikus valódi korai nem-determinisztikus általános fejlett
Programozási nyelvek (ADA)
Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure)
Időzített rendszerek és az UPPAAL II
Időzített rendszerek és az UPPAAL II Dr. Németh L. Zoltán (zlnemeth@inf.u-szeged.hu) SZTE, Informatikai Tanszékcsoport 2008/2009 I. félév 2008.11.15 MODELL 11 1 Rendszerek leírása az UPPAAL-ban Modellelenőrzés
Valószínűségi modellellenőrzés Markov döntési folyamatokkal
Valószínűségi modellellenőrzés Markov döntési folyamatokkal Hajdu Ákos Szoftver verifikáció és validáció 2015.12.09. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek
Alapszintű formalizmusok
Alapszintű formalizmusok dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális tervek Informális követelmények Formális modell Formalizált követelmények
C programozási nyelv
C programozási nyelv Struktúrák Dr Schuster György 2011 június 16 Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 1 / 11 Struktúrák Struktúrák A struktúra egy olyan összetett adatszerkezet,
Komputeralgebra Rendszerek
Komputeralgebra Rendszerek Programozás Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék 2014. február 23. TARTALOMJEGYZÉK 1 of 28 TARTALOMJEGYZÉK I 1 TARTALOMJEGYZÉK 2 Értékadás MAPLE -ben SAGE -ben 3
1. Alapfogalmak Algoritmus Számítási probléma Specifikáció Algoritmusok futási ideje
1. Alapfogalmak 1.1. Algoritmus Az algoritmus olyan elemi műveletekből kompozíciós szabályok szerint felépített összetett művelet, amelyet megadott feltételt teljesítő bemeneti adatra végrehajtva, a megkívánt
Óbudai Egyetem. C programozási nyelv
Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C programozási nyelv II. Dr. Schuster György 2016. március 12. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C2016. programozási március 12. nyelv Utasításo
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
A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.
Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód
Részletes szoftver tervek ellenőrzése
Részletes szoftver tervek ellenőrzése Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.mit.bme.hu/~majzik/ Tartalomjegyzék A részletes
Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat
Megoldás Feladat 1. Statikus teszt Specifikáció felülvizsgálat A feladatban szereplő specifikáció eredeti, angol nyelvű változata egy létező eszköz leírása. Nem állítjuk, hogy az eredeti dokumentum jól
Modellező eszközök, kódgenerálás
Modellező eszközök, kódgenerálás Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban
OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és
PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar
PROGRAMOZÁS tantárgy Gregorics Tibor egyetemi docens ELTE Informatikai Kar Követelmények A,C,E szakirány B szakirány Előfeltétel Prog. alapismeret Prog. alapismeret Diszkrét matematika I. Óraszám 2 ea
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ő
Modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Modellellenőrzés dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék 1 Mit szeretnénk elérni? Informális vagy félformális tervek Informális követelmények Formális modell: KS, LTS, TA
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}
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 alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok
Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)
Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből
Rekurzió. Dr. Iványi Péter
Rekurzió Dr. Iványi Péter 1 Függvényhívás void f3(int a3) { printf( %d,a3); } void f2(int a2) { f3(a2); a2 = (a2+1); } void f1() { int a1 = 1; int b1; b1 = f2(a1); } 2 Függvényhívás void f3(int a3) { printf(
5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás
Elemi programok Definíció Az S A A program elemi, ha a A : S(a) { a, a, a, a,..., a, b b a}. A definíció alapján könnyen látható, hogy egy elemi program tényleg program. Speciális elemi programok a kövekezők:
Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok
Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok Program verifikálás Konkurens programozási megoldások terjedése -> verifikálás szükséges, (nehéz) logika Legszélesebb körben alkalmazott
OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos
OOP I. Egyszerő algoritmusok és leírásuk Készítette: Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát képezik. Ismeretük
SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS
SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS 2.ELŐADÁS A VB programozási nyelv Az Excel programozása 2 A VB programozási nyelv Adattípusok Adatok kezelése Vezérlőszerkezetek Adattípusok és műveletek Egész adattípusok
Készítette: Oláh István mestertanár
BME Automatizálási és Alkalmazott Informatikai Tanszék Villamos laboratórium 1. PLC-k programoza sa Mérési útmutató Készítette: Oláh István mestertanár (olah.istvan@aut.bme.hu) 2014. szeptember Bevezetés
Az előadás vázlata. A SPIN modellellenőrző rendszer. Motivációk. (,,Ha a Microsoft autókat gyártana )
Az előadás vázlata A SPIN modellellenőrző rendszer Németh L. Zoltán (zlnemeth@inf.u-szeged.hu) A modellellenőrzés jelentőssége, alapjai A SPIN használata A PROMELA nyelv szintaktikája, szemantikája (példák)
Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez
Pásztor Attila Algoritmizálás és programozás tankönyv az emeltszintű érettségihez 3. ADATTÍPUSOK...26 3.1. AZ ADATOK LEGFONTOSABB JELLEMZŐI:...26 3.2. ELEMI ADATTÍPUSOK...27 3.3. ÖSSZETETT ADATTÍPUSOK...28
Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 3. előadás Vezérlési szerkezetek Elágazás Gyakran előfordul, hogy meg kell vizsgálnunk egy állítást, és attól függően, hogy igaz vagy hamis, a programnak más-más
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ó?
A JavaScript főbb tulajdonságai
JavaScript alapok A JavaScript főbb tulajdonságai Script nyelv azaz futás közben értelmezett, interpretált nyelv Legfőbb alkalmazási területe: a HTML dokumentumok dinamikussá, interaktívvá tétele Gyengén
Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 2. előadás Szintaktikai alapok Alapvető típusok, ismétlés C# típus.net típus Méret (byte) Leírás byte System.Byte 1Előjel nélküli 8 bites egész szám (0..255) char
C programozási nyelv
C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György
A félév során előkerülő témakörök
A félév során előkerülő témakörök rekurzív algoritmusok rendező algoritmusok alapvető adattípusok, adatszerkezetek, és kapcsolódó algoritmusok dinamikus programozás mohó algoritmusok gráf algoritmusok
Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat
Formális nyelvek a gyakorlatban Formális nyelvek, 1 gyakorlat Segédanyagok Célja: A programozási nyelvek szintaxisának leírására használatos eszközök, módszerek bemutatása Fogalmak: BNF, szabály, levezethető,
Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1
Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Készítette: Gipsz Jakab Neptun-azonosító: A1B2C3 E-mail: gipszjakab@vilaghalo.hu Kurzuskód: IP-08PAED Gyakorlatvezető
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
Szkriptnyelvek II. Perl programok
Szkriptnyelvek II. Perl programok Perl Practical Extraction and Report Language Interpreteres nyelv alkalmas szövegfeldolgozó alklmazások készítésére strukturált programszerkezet Szubrutinok támogatása
Programozás C és C++ -ban
Programozás C és C++ -ban 2. További különbségek a C és C++ között 2.1 Igaz és hamis A C++ programozási nyelv a C-hez hasonlóan definiál néhány alap adattípust: char int float double Ugyanakkor egy új
Szövegek C++ -ban, a string osztály
Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string
Modell alapú tesztelés mobil környezetben
Modell alapú tesztelés mobil környezetben Micskei Zoltán Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék A terület behatárolása Testing is an activity performed
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
ködös határ (félreértés, hiba)
probléma formálisan specifikált: valós világ (domain) (hibás eredmény) ködös határ (félreértés, hiba) formális világ (megoldás) A szoftver fejlesztőnek meg kell értenie a felhasználó problémáját. A specifikáció
Temporális logikák és modell ellenırzés
Temporális logikák és modell ellenırzés Temporális logikák Modális logika: kijelentések különböző módjainak tanulmányozására vezették be (eredetileg filozófusok). Ilyen módok: esetleg, mindig, szükségszerűen,
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
Számítógépes szimulációk 1. Bevezetés BME Fizika Intézet 2015. szeptember 9. Bevezetés A félév menete C-ismétlés, 1. rész Oktatók: Nagyfalusi Balázs: nagyfalusi@phy.bme.hu, F3 211. : tcsaba@eik.bme.hu,
Felvételi vizsga mintatételsor Informatika írásbeli vizsga
BABEȘ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR A. tételsor (30 pont) Felvételi vizsga mintatételsor Informatika írásbeli vizsga 1. (5p) Egy x biten tárolt egész adattípus (x szigorúan pozitív
Iman 3.0 szoftverdokumentáció
Melléklet: Az iman3 program előzetes leírása. Iman 3.0 szoftverdokumentáció Tartalomjegyzék 1. Az Iman rendszer...2 1.1. Modulok...2 1.2. Modulok részletes leírása...2 1.2.1. Iman.exe...2 1.2.2. Interpreter.dll...3
Bevezetés a programozásba. 8. Előadás: Függvények 2.
Bevezetés a programozásba 8. Előadás: Függvények 2. ISMÉTLÉS Helló #include using namespace std; int main() cout
5. SOR. Üres: S Sorba: S E S Sorból: S S E Első: S E
5. SOR A sor adatszerkezet is ismerős a mindennapokból, például a várakozási sornak számos előfordulásával van dolgunk, akár emberekről akár tárgyakról (pl. munkadarabokról) legyen szó. A sor adattípus
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
HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport
10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)
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