1 / 27

A számítógép programozása

A számítógép programozása. Hernyák Zoltán Web: http://dragon.ektf.hu/aroan , E-Mail: aroan@aries.ektf.hu Magasszintű Programozási Nyelvek I. Eszterházy Károly Főiskola Számítástudományi tsz http://aries.ektf.hu. 1. Programvezérlési szerkezetek. Programvezérlési szerkezetek.

adin
Download Presentation

A számítógép programozása

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A számítógép programozása Hernyák Zoltán Web: http://dragon.ektf.hu/aroan, E-Mail: aroan@aries.ektf.hu Magasszintű Programozási Nyelvek I. Eszterházy Károly Főiskola Számítástudományi tsz http://aries.ektf.hu 1

  2. Programvezérlési szerkezetek Programvezérlési szerkezetek • Az utasítások végrehajtási sorrendjét szabályozzák. • Szekvencia: ugyanabban a sorrendben kell végrehajtani az utasításokat, amilyen sorrendben az a forráskódban szerepel • Szelekció (elágazás): utasítások csoportját vagy végre kell hajtani, vagy nem • Iteráció (ciklus): utasítások csoportját ismételten, többször is végre kell hajtani 2

  3. A "szelekció" vezérlési szerkezet if ( logikai-feltétel ) utasítás; • A logikai feltétel (kifejezés): • Legfontosabb jellemzője, hogy kiszámítva vagy „igaz”, vagy „hamis” eredményt ad (és nincs harmadik lehetőség) • Ezt kétállapotú (bináris) logikának hívják 3

  4. A "szelekció" vezérlési szerkezet • A logikai kifejezés: Olyan kifejezés konstruálása, amely kiértékelve (kiszámítva) „igaz”, vagy „hamis” értéket ad … • … összehasonlító operátorokkal • … logikai operátorokkal lehetséges. 4

  5. A "szelekció" vezérlési szerkezet Összehasonlító operátorok: == egyenlő ? != nem egyenlő ? < kisebb, mint ? > nagyobb mint ? <= kisebb, vagy egyenlő? >= nagyobb, vagy egyenlő? 5

  6. A "szelekció" vezérlési szerkezet Pl: static void Main() { int a = int.Parse( Console.ReadLine() ); if ( a<0) … } … csak ha az ‘a’ változóban lévő érték kisebb, mint nulla (vagyis ha ‘a’ negatív) … 6

  7. A "szelekció" vezérlési szerkezet Logikai operátorok: && ÉS (logikai konjunkció) || VAGY (logikai diszjunkció) ! NEM (logikai tagadás) Ezek segítségével komplex (több tagú) logikai kifejezés építhető fel: if ( a<0 &&b!=100 ) … 7

  8. A "szelekció" vezérlési szerkezet • Logikai ÉS && • Kétoperandusú infix: ___ ÉS ___ • Akkor lesz a végeredmény IGAZ, ha mindkét rész külön-külön is IGAZ • Egyéb esetben a végeredmény HAMIS IGAZ && IGAZ » IGAZ IGAZ && HAMIS » HAMIS HAMIS && IGAZ » HAMIS HAMIS && HAMIS » HAMIS 8

  9. A "szelekció" vezérlési szerkezet int a = -1; int b = 10; if ( a<0 && b!=100 ) … if ( a>0 && b!=100 ) … IGAZ IGAZ IGAZ HAMIS IGAZ HAMIS 9

  10. A "szelekció" vezérlési szerkezet • Logikai ÉS && • Végeredménye sokszor megjósolható • Ha az első tag értéke HAMIS, a második tag értékét már ki sem kell számolni („shortcut” = rövidzár) • if ( a>0 && b!=100 ) … HAMIS ??? HAMIS 10

  11. A "szelekció" vezérlési szerkezet • Logikai VAGY || • Kétoperandusú: ___ VAGY ___ • Akkor lesz a végeredmény IGAZ, ha bármely rész IGAZ • Egyéb esetben a végeredmény HAMIS IGAZ || IGAZ » IGAZ IGAZ || HAMIS » IGAZ HAMIS || IGAZ » IGAZ HAMIS || HAMIS » HAMIS 11

  12. A "szelekció" vezérlési szerkezet int a = -1; int b = 10; if ( a<0 || b!=100 ) … if ( a>0 || b==100 ) … IGAZ IGAZ IGAZ HAMIS HAMIS HAMIS 12

  13. A "szelekció" vezérlési szerkezet • Logikai VAGY || • Végeredménye sokszor megjósolható • Ha az első tag értéke IGAZ, a második tag értékét már ki sem kell számolni („shortcut” = rövidzár) • if ( a<0 || b!=100 ) … IGAZ ??? IGAZ 13

  14. A "szelekció" vezérlési szerkezet • Logikai TAGADÁS ! • Egyoperandusú: NOT ___ • Akkor lesz a végeredmény IGAZ, ha a tag egyébként HAMIS • Ha a tag IGAZ, a végeredmény HAMIS ! IGAZ » HAMIS ! HAMIS » IGAZ 14

  15. A "szelekció" vezérlési szerkezet Egyszerű elágazás: if if ( logikai-feltétel ) utasítás; IGAZ logikai feltétel utasítás HAMIS 15

  16. A "szelekció" vezérlési szerkezet int a = int.Parse( Console.ReadLine() ); if ( a<0 ) a=0; bool jo = false; if ( 0<a && a<10 ) b = true; if ( 0<diszkr ) { int x1 = (-b + Math.Sqrt(diszkr))/(2*a); int x2 = (-b - Math.Sqrt(diszkr))/(2*a); Console.WriteLine(”X1={0}, X2={1}”,X1,X2); } 16

  17. A "szelekció" vezérlési szerkezet if ( logikai-feltétel ) utasítás1; elseutasítás2; Ha a feltétel igaz, akkor az utasitas1-t kell végrehajtani. Ha a feltétel hamis, akkor pedig az utasitas2-t. Mindkét esetben lehet blokk-jelek között több utasítást is elhelyezni… 17

  18. A "szelekció" vezérlési szerkezet if ( logikai-feltétel ) utasítás1; elseutasítás2; IGAZ logikai feltétel HAMIS utasítás utasítás 18

  19. A "szelekció" vezérlési szerkezet double diszkr = b*b-4*a*c; if ( 0<diszkr ) { int x1 = (-b + Math.Sqrt(diszkr))/(2*a); int x2 = (-b - Math.Sqrt(diszkr))/(2*a); Console.WriteLine(”X1={0}, X2={1}”,X1,X2); } else Console.WriteLine(”0 vagy 1 megoldás”); Console.WriteLine(”Készen vagyunk…”); IGAZ? HAMIS? IGAZ! 19

  20. A "szelekció" vezérlési szerkezet double diszkr = b*b-4*a*c; if ( 0<diszkr ) { int x1 = (-b + Math.Sqrt(diszkr))/(2*a); int x2 = (-b - Math.Sqrt(diszkr))/(2*a); Console.WriteLine(”X1={0}, X2={1}”,X1,X2); } else Console.WriteLine(”0 vagy 1 megoldás”); Console.WriteLine(”Készen vagyunk…”); IGAZ? HAMIS? HAMIS! 20

  21. A "szelekció" vezérlési szerkezet switch ( szelektor-kifejezés ) { caseeset1: ut1; …; break; caseeset2: ut2; …; break; … } string vagy ‘int’ típusú megfelelő típusú konstans utasítás-blokk kötelező elem! break return goto eset 21

  22. A "szelekció" vezérlési szerkezet int a=2, b=3; switch ( a+b ) { case4: Console.WriteLine(”4-es eset.”); break; case5: Console.WriteLine(”4-es eset.”); x=b*a; break; case6: Console.WriteLine(”6-os eset.”); break; } a=b-3; a+b = 5 NEM! IGEN! 22

  23. A "szelekció" vezérlési szerkezet int a=5, b=4; switch ( a+b ) { case4: Console.WriteLine(”4-es eset.”); break; case5: Console.WriteLine(”4-es eset.”); x=b*a; break; case6: Console.WriteLine(”6-os eset.”); break; } a=b-3; a+b = 9 NEM! NEM! NEM! 23

  24. A "szelekció" vezérlési szerkezet int a=5, b=4; switch ( a+b ) { case4: Console.WriteLine(”4-es eset.”); break; case5: Console.WriteLine(”4-es eset.”); x=b*a; break; default: Console.WriteLine(”Egyéb esetekben”); break; } a=b-3; a+b = 9 NEM! NEM! Akkor ez legyen! 24

  25. A "szelekció" vezérlési szerkezet • switch • Többirányú elágazás • Az eseteket konstansok vagy literálok jelölik • Ha van DEFAULT ág, akkor az ágak közül pontosan egy hajtódik végre • Ha nincs DEFAULT, akkor az ágak közül maximum egy hajtódik végre 25

  26. A "szelekció" vezérlési szerkezet • switch • Gyorsabb, mintha N darab IF-el végeznénk • Nem lehet olyan, hogy egy időben több ág is kiválasztódna, mivel minden ágat egy konstans ‘őríz’, és két konstans nem lehet ugyanazon értékű, különben szintaktikai hiba! 26

  27. A "szelekció" vezérlési szerkezet int a=1, b=3; switch ( a+b ) { case4: goto case 5; case5: Console.WriteLine(”4 vagy 5.”); break; default: Console.WriteLine(”Egyéb”); break; } 27

More Related