Programtervezés II.

A tantárgy angol neve: Program Design II.

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

Villamosmérnöki Szak

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIET1017 2 0/0/2/v 2 1/1
3. A tantárgyfelelős személy és tanszék Dr. Szikora Béla László,
4. A tantárgy előadója

Név:

Beosztás:

Tanszék, Int.:

dr. Németh Pál

egyetemi adjunktus

Elektronikai Technológia Tsz

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

Programozás Pascal nyelven, Numerikus módszerek

6. Előtanulmányi rend
Kötelező:
TárgyEredmény( "BMEVIAU1015" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIET1015" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIEE1010" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIAU1010" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIET1010" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIFO1010" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIHI1010" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIMH1501" , "jegy" , _ ) >= 2 VAGY TárgyEredmény( "BMEVIMH1506" , "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:

Programtervezés I.

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

A hallgatóknak megfelelő jártasságot kell szerezniük egy második programozási nyelv, a C nyelv használatában, valamint az alapvető numerikus számítási módszerek használatában olyan szinten, hogy azt további tanulmányaik során képesek legyenek hatékonyan alkalmazni. A hallgatók megismerik a több modulból, illetve különböző forrásnyelvi modulokból álló programok készítését, jártasságot szereznek modulkönyvtárak használatában.

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

1. hét

Csoportbeosztások. Az első C program megírása. C program fordítása, linkelése. Az első program továbbfejlesztése, analógiák keresése a Pascal nyelvvel.

Előadás:

Bevezetés a C programozási nyelvbe (történelem, a nyelv helye). Egyszerű adattípusok, tárolási osztályok. A sizeof operátor alkalmazása típusokra. Értékadás, kifejezések, aritmetikai és egyéb fontosabb operátorok. Printf és 1 karakteres standard i/o röviden. Vezérlési szerkezetek (if, while, for).

2. hét

A változók alaptípusai. Modulok, blokkok. Kifejezések, operátorok. Utasítások. A feltételes utasítás. Ciklusok.

3. hét

Printf használata. Összetett adatszerkezetek. Tömbök, struktúrák.

Előadás:

További vezérlési szerkezetek (for még egyszer, do-while, case). Összetett típusok (tömb, enum, struct, union). Függvények. Egy C program szerkezete. Típusmódosító operátorok fogalma. Tömb-, pointer- és függvénytípusok, ezek kombináció. Az előfeldolgozó.

4. hét

Függvények deklarációja és definíciója. Tipusdefinició.

5. hét

Pointerek. Pointerek és tömbök, pointerek és függvények. Pointeraritmetika. A pointer mint függvényparaméter.

Előadás

A legfontosabb standard fejléc file-ok (stdio, stdlib, math), az ott deklarált függvények (stcpy, strcmp, stb). Dinamikus memóriakezelés (malloc, free, realloc). Pointer és címaritmetika.

6.hét

File kezelés. Saját copy program készítése.

7. hét

Házifeladatkiadás, konzultáció.

8. hét

Numerikus módszerek 1( Nemlineáris egyenletek numerikus megoldása, húr módszer, érintő módszer, Newton-Raphson iteráció).

9. hét

Numerikus módszerek 2 (lineáris egyenletrendszerek megoldása Gauss elimináció, Gauss-Jordan elimináció segítségével, részleges és teljes főelem kiválasztás).

10. hét

Numerikus módszerek 3( Numerikus integrálás téglalap módszer, trapéz illetve Simpson formula, pontossági kérdések).

11. hét

Numerikus módszerek 4 (Interpoláció, regresszió).

12. hét

Többmodulos programok írása. Object modul, forrás modul. Pascal és C programok összekapcsolása.

13. hét

Grafika

14. hét

Nagy házi feladatok beadása, bemutatása, értékelése, félév végi jegyek megadása.

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

A félév elején 3 alkalommal a 2. a 4. és a 6. héten fakultatív előadást tartunk az általános alapismeretek elsajátítása céljából. A géptermi gyakorlatok során egyes részletkérdések ismertetése, illetve konkrét feladatok megoldása történik. A hallgatók minden géptermi foglalkozás alkalmával a következő heti anyagra vonatkozó segédletet kapnak. A 8. héttől kezdve a hallgatók géptermi munkáját értékeljük.

10. Követelmények

A szorgalmi időszakban:

  • A tárgyból heti 1 alkalommal 2 órás géptermi gyakorlatokat tartunk részben a HSZK-ban, részben a V2 302-es terminálszobában. A terminálgyakorlatokon a megjelenés kötelező, a részvételt minden alkalommal ellenőrizzük. A félév során a 11. héten nagy zárthelyi dolgozatot iratunk. A zárthelyi dolgozat megírása kötelező. A zárthelyi dolgozat megírására a szorgalmi időszakban 1 pótlási lehetőséget biztosítunk.
  • A félév első harmadában, az előadások utáni gyakorlaton az előadások anyagához illeszkedően kis zárthelyi dolgozatokat iratunk. Minden kis zárthelyi dolgozatra 0, 1 vagy 2 pont adható. A kis zárthelyi dolgozatokra kapott pontszámokat összegezve vesszük figyelembe a félév végi jegy kialakításakor. Meg nem írt kis zárthelyi dolgozat eredményét 0 ponttal vesszük figyelembe. A kis zárthelyik pótlólagos megírására nincs lehetőség.
  • A 8. héttől a 13. hétig a terminálgyakorlatokon végzett munkát is pontozással értékeljük (minden gyakorlaton 1, 2, vagy 3 pont szerezhető). A terminálgyakorlatok jellegüknél fogva nem pótolhatók.
  • A félév során egy nagy házi feladatot adunk ki, amelynek megoldását max. 10 ponttal értékeljük.
  • A nagy zárthelyi dolgozat eredményét szintén 10 pont erejéig vesszük figyelembe.

A vizsgaidőszakban:

  • A nagyfeladat különeljárási díjjal történő pótlásának határideje a vizsgaidőszak második hetének utolsó munkanapja.
  • Amennyiben egy hallgató a nagyzárthelyi kivételével valamennyi félévközi követelményét teljesítette a szorgalmi időszakban, a TVSZ 14§ (6) pontja, ill. a KTVSZ 14§ 14§ (6) (6) és (7) pontja értelmében a vizsgaidőszak második hetének végéig ismételt vizsga jelleggel kísérletet tehet a félévközi jegy megszerzésére.

A félév során gyűjthető pontok:

Kis zárthelyik: max. 6 p. (3 * 2p.)

Terminálgyakorlatok: max. 18 p. (6 * max. 3p.)

Nagy házi feladat: max. 10 p. (jegy * 2p.)

Nagy zh: max. 10 p. (jegy * 2p.)

Összesen: max. 44 p.

Az aláírás megszerzésének feltétele:

  • legalább elégséges eredményű nagy zárthelyi dolgozat megírása,
  • a nagy házi feladat legalább elégséges szintű megoldása és előírásszerű beadása-bemutatása a szorgalmi időszak befejeztéig (az utolsó tanítási napig),
  • valamint minimum 20 pont elérése.

A nagy házi feladat akkor számít beadottnak, ha a programdokumentáció az előírásoknak megfelelően elkészült, mind adathordozón, mind kinyomtatva megvan, valamint a program forrásanyaga és futásképes változata adathordozón a gyakorlatvezető rendelkezésére áll, valamint a program a gyakorlatvezetőnek működés közben be lett mutatva. A félév végi jegy kialakítása a következők szerinti:

38 - 44 p. 5

32 - 37 p. 4

26 - 31 p. 3

20 - 25 p. 2

0 - 19p. nincs aláírás

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

Bármely numerikus módszerekkel, illetve a C programozási nyelvvel foglalkozó könyv vagy jegyzet használható.

Ajánlott irodalom:

[1] B.W. Kernighan - D.M. Ritchie: A C programozás nyelv. Műszaki Könyvkiadó, 1985.

[2] B.W. Kernighan - D.M. Ritchie: The C Programming Language.

Prentice Hall, 1988. 2nd edition

[3] B. Stroutstrup: The C++ Programming Language.

Addison/Wesley, 1986.

[4] Benkő - Poppe( Bevezetés a BORLAND C++ programozásba.

ComputerBooks, 1991.

[5] Kocsis - Poppe( C programozás feladtgyűjtemény és példatár.

BME Mérnöktovábbképző Intézet, 1992. (5328-as jegyzet)

[6] Benkőné-Benkő-Tóth: Programozzunk C nyelven.

Computerbooks 1994

[7] Programozási feladatok és algoritmusok TURBO C és C++ nyelven

Computerbooks 1997

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

Név:

Beosztás:

Tanszék, Int.:

dr Németh Pál

egyetemi adjunktus

Elektronikai Technológia Tsz.

dr.Poppe András

egyetemi docens

Elektronikus Eszközök Tanszék