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.
Műszaki Informatika Szak
Név:
Beosztás:
Tanszék, Int.:
dr. Szirmay-Kalos László
docens
Irányítástechnika és Informatika
programozás, digitális technika
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ó.
Programozás alapjai II kredit
Programozás technológiája kredit
A tárgy célja, hogy bevezessen az objektum-orientált és gépi szintű programozásba DOS és MS-WINDOWS környezetekben.
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
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.
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.
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
4. Lippmann: C++ Primer
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