Számítógép-laboratórium III.

A tantárgy angol neve: Computers Laboratory III.

Adatlap utolsó módosítása: 2006. július 1.

Tantárgy lejárati dátuma: 2015. január 31.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar

Műszaki Informatika Szak

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIFO2235 3 0/0/2/f 3 6/1
3. A tantárgyfelelős személy és tanszék Dr. Szirmay-Kalos László,
4. A tantárgy előadója

Név:

Beosztás:

Tanszék, Int.:

dr. Szirmay-Kalos László

docens

Irányítástechnika és Informatika

5. A tantárgy az alábbi témakörök ismeretére épít

programozás, digitális technika

6. Előtanulmányi rend
Kötelező:
TárgyEredmény( "BMEVIEE1227" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIAU1227" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIMH1502" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIMH1507" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIEE1240" , "jegy" , _ ) >= 2

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Ajánlott:

Programozás alapjai II kredit

Programozás technológiája kredit

7. A tantárgy célkitűzése

A tárgy célja, hogy bevezessen az objektum-orientált és gépi szintű programozásba DOS és MS-WINDOWS környezetekben.

8. A tantárgy részletes tematikája

I. C++ nyelv származtatása a C-ből

- Makró (inline), konstans megvalósitás,

- tipusértékű struct, enum

- Megjegyzések

- Prototipusok, Default argumentumok és overload,

- memória allokáció, new, delete, new_handler

- Referencia tipus, függvény paraméterek és visszatérési érték

- cin, cout, cerr objektumok

- Adat deklaráció és definicó mint utasitás

- Adatok láthatóság és érvényessége

- Forditás, szerkesztés, debug BORLAND C++ IDE alatt

II.Objektumok létrehozása

- Objektum orientált programozás és funkcionális programozás

- Class fogalma, egységbe zárás, védelem és információ takarás

- tagfüggvények tipusai

- Védelem enyhitése, friend mechanizmus

- Construktor, Destruktor

- Adatok (objektumok) inicializálása

- this pointer használata

III. Operátor overload

- Operátor overload fogalma

- Dinamikusan allokált mezővel rendelkező objektumok értékadása és inicializásása, Copy constructor

- Op. Overload megvalósitása member függvénnyel és friend mechanizmussal

- Referencia tipussal visszatérő fv. mint balérték (index operátor)

IV. Öröklés

- Az öröklés szerepe az objektumorientált programozásban

- Öröklés, származtatott osztály, alaposztály

- Védelem öröklés alatt

- virtuális függvények, forditási és késői összerendelés,

- Inicializálás

- Többszörös öröklés

- Virtuális alap osztály

- Objektumok mint más objektumok attributumai

- Objektum tömbök

V. Generikus osztályok

- Generikus adatszerkezetek jelentősége

- Dinamikus adatstruktúrák, generikus osztályok

- Név konkatenáló macro

- Declare és implement macro

- Friend class fogalma és szerepe pl. a listaszerkezet kialakitásánál

- C++ könyvtárak felépitése

VI. MS-WINDOWS futtató környezet

- MS-WINDOWS felhasználói felület (ablak, menü, ikon, cursor)

- A program manager

- Alkalmazói programok felépitése (modul def. és erőforrás file )

- WndProc és WndMain függvények szerepe

- WNDCLASS struktúra, CreatWindow és UpdateWindow függvények

- Üzenetciklus működése

- Forditás, szerkesztés, futtatás

VII. MS-WINDOWS programozás API könyvtár felhasználásával

- Erőforrás file felépitése és használata, Menü séma definiálása

- menü, cursor, icon

- Windows események

- Windows hivások

VIII. Objektumszeméletű programozás MS-WINDOWS környezetben:

- Windows felépités és az OOP szemlélet kapcsolata

- Event hierarchia, Window, AppWindow.. MyWindow class hierarchia

- Virtuális Függvények mint átdefiniálható üzenet handler-ek

- Menu class

- Geometriát definiáló olsztályok, Point, RectAngle

- Appl, applikációs programot definiáló osztály

IX. i8086 assembly nyelv

- i8086 programozási modellje, szegmentált memóriakép

- utasitáskészlet, cimzési módok, regiszterek

- assembler

- konstansok, operandusok

- műveletek: PTR, SHORT, SEG, OFFSET,

- direktivák: SEGMENT, ENDS, PROC, ENDP, MACRO, ENDM, END, ASSUME

- deklarációk: adatok (DB, DW ...), cimek,

- feltételes forditás

- moduláris programozás (INLUDE, PUBLIC, EXTRN)

- forditás és szerkesztés

- makró-assembly nyelvű programok felépitése

- operációs rendszer hivások

- ROM BIOS hivások (klaviatúra-INT16h, képernyő-int10h)

- DOS hivások (program befejezése, klaviatúra, képernyő)

- Forditás és szerkesztés ( masm ), program belövés (afd, codeview)

X. Hardware közeli programozás

- Alfanumerikus képernyőmemória elérése, tipus felismerése (HERC, EGA...)

- Hangszóró kezelése

- Klaviatúra programmal ellenőrzött vizsgálata

- Nyomtató programmal ellenőrzött vizsgálata

XI. Hardware közeli programozás IT rutinokkal

- i8086 IT rendszere, IT tábla

- i8259 vázlatos ismertetése, EOI szerepe

- IT rutinok általános felépitése (mentés, visszaállitás, adatszegmens, it engedélyezés, EOI...)

- IT tábla kitöltés (it átvétel és felfűzés)

- SET_IT, SAVE_IT, RESTORE_IT macrók elkészitése

- óra IT átvétele (felfűzés)

XII. Illesztés magas szintű nyelvekhez

- C stack frame kialakitása (PASCAL-t csak megemliteni), ENTER/LEAVE

- Függvény paraméter és visszatérési érték átadása, lokális adatok

- Függvény név konvenciók

- Moduláris programozás PUBLIC, EXTRN

- Globális adatok szervezése (DGROUP)

- String kezelő 8086 utasitások áttekintése, REP előtag

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

A tárgy óráit a számítógép laboratóriumban tartjuk, ahol részint a szükséges elméleti alapokat tekintjük át, részint a hallgatók rögtön a gyakorlatban is kipróbálhatják a tanultakat.

10. Követelmények

Két házifeladat (C++ és WINDOWS, assembly) és egy nagy ZH. Házifeladat kiadás a 4. héten, beadás a 11. illetve a 15. héten. A gyakorlati jegy szükséges feltételei a 2 házifeladat dokumentációval együtt történő beadása, működőképességének személyes demonstrálása, a ZH min. elégséges megirása és az órákon a tanulm. szabályzat által meghatározott részvétel. Aláírást és félévközi jegyet az kaphat, aki a ZH-t legalább elégségesre megírta és a házi feladatokat is beadta. A félévközi jegyet alapvetően a ZH jegy határozza meg, a házifeladatok és órai szereplés egy jegy eltérést eredményezhetnek. A ZH-n mindenféle segédanyag használható. A szorgalmi időszakban egy pót ZH időpontot biztosítunk. A követelmények a vizsgaidőszakban nem pótolhatók.

13. Jegyzet, tankönyv, felhasználható irodalom

1. Kondorosi, László, Szirmay-Kalos: Objektum orientált szoftver fejlesztés, COMPUTERBOOKS

2. B. Stroustrup: The C++ programming language

Addison-Wesley, 1986

3. B. Stroustrup: The Annotated C++ reference manual

Addison-Wesley, 1986

4. Lippmann: C++ Primer

Addison-Wesley, 1986

5. C. Petzold : Programming WINDOWS

Microsoft

6. Benkő-Tóth-Kiss: Igy könnyű WINDOWS-t programozni.

Computerbooks

7. Pethő: A ROM BIOS és ami mögötte van

8.Úry: IBM PC DOS II-III

15. A tantárgy tematikáját kidolgozta

Név:

Beosztás:

Tanszék, Int.:

dr. Szirmay-Kalos László

docens

Irányítástechnika és Informatika