1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

Definíciók: Algoritmus: bármely véges sok lépéssel leírható tevékenység. Olyan pontos előírás, amely megmondja, hogy egy adott típushoz tartozó feladat.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Jt Java Feltételek, logikai kifejezések. jt 2 Logikai operátorok Logikai kifejezésekre alkalmazhatók a következő műveletek: 1. nem! 2. és&ill.&& 3. kizáró.
A C nyelv utasításai. Kifejezés+ ; Utasítás printf("Hello")printf("Hello"); a=b+ca=b+c; fuggveny(a,b)fuggveny(a,b); Blokkok: több utasítás egymás után,
3. előadás (2005. március 1.) Utasítások, tömbök
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Boole- féle algebra Készítette: Halász Rita I. István Szakképző Iskola szeptember 19.
Programozás I. Horváth Ernő.
Java programozási nyelv 2. rész – Vezérlő szerkezetek
PHP Webprogramozás alapjai
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Programozás I. Ciklusok
Programozás I. Egymásba ágyazott szelekciók, többágú szelekció
Vizuális és web programozás II.
Egy egyszerű gép vázlata
Függvények III Logikai függvények. Hamis A HAMIS logikai értéket adja eredményül. HAMIS( ) A függvény alkalmazása helyett egyszerűen beírhatjuk a HAMIS.
C nyelv utasításai.
Kifejezések. Algoritmus számol; Adott összeg; összeg:=0; Minden i:=1-től 5-ig végezd el Ha 2 | i akkor összeg:=összeg+2*i Ha vége Minden vége Algoritmus.
Algoritmusok.
ALGORITMUS.
ALGORITMUSOK.
PHP nyelv. PHP Interpreteres nyelv → parancsértelmező szükséges hozzá Rasmus Lerdorf 1995 → személyes felhasználás (internetes önéletrajzának megtekintésének.
Programozási nyelvek.
Készítette: Csíki Gyula
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Algoritmus szerkezetek
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Operátorok Vezérlési szerkezetek Gyakorlás
Török Katalin és Marosi Nóra 11/c. Pascal: Az es években megjelent magas szintű programozási nyelv, közel áll az emberi gondolkodáshoz. Nevét.
Iteráció, rekurzió, indukció. Iteráció iterációs módszer –egy adott műveletsort egymás után, többször végrehajtani megvalósítás –ciklusokkal pl. –hatványozás.
C++2. Ciklusok elöltesztelő (for, while) A ciklusmag feldolgozása előtt történik a vizsgálat  lehet, hogy egyszer sem fut le. A soronkövetkező iteráció.
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
Programozási alapok.
Kifejezések C#-ban.
Gépészeti informatika (BMEGEMIBXGI)
Hernyák Zoltán Programozási Nyelvek II.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Bevezetés a programozásba Algoritmikus gondolkodás
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Hernyák Zoltán Programozási Nyelvek II.
Algoritmusok szerkezete
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Informatikai gyakorlatok 11. évfolyam
Algoritmus készítés.
Előadás másolata:

1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy Károly Főiskola Számítástudományi tsz

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

3 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 if ( logikai-feltétel ) utasítás;

4 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.

5 Összehasonlító operátorok: ==egyenlő ? !=nem egyenlő ? <kisebb, mint ? >nagyobb mint ? <=kisebb, vagy egyenlő? >=nagyobb, vagy egyenlő?

6 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) …

7 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 ) …

8 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

9 int a = -1; int b = 10; if ( a<0 && b!=100 ) … if ( a>0 && b!=100 ) … IGAZ HAMIS IGAZ HAMIS

10 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

11 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

12 int a = -1; int b = 10; if ( a<0 || b!=100 ) … if ( a>0 || b==100 ) … IGAZ HAMIS

13 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

14 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

15 Egyszerű elágazás: if if ( logikai-feltétel ) utasítás; logikai feltétel utasítás IGAZ HAMIS

16 int a = int.Parse( Console.ReadLine() ); if ( a<0 ) a=0; int a = int.Parse( Console.ReadLine() ); if ( a<0 ) a=0; bool jo = false; if ( 0<a && a<10 ) b = true; 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); } 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); }

17 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… if ( logikai-feltétel ) utasítás1; else utasítás2; if ( logikai-feltétel ) utasítás1; else utasítás2;

18 logikai feltétel utasítás IGAZ utasítás if ( logikai-feltétel ) utasítás1; else utasítás2; if ( logikai-feltétel ) utasítás1; else utasítás2; HAMIS

19 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…”); 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!

20 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…”); 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!

21 switch ( szelektor-kifejezés ) { case eset1: ut1; …; break; case eset2: ut2; …; break; … } switch ( szelektor-kifejezés ) { case eset1: ut1; …; break; case eset2: ut2; …; break; … } string vagy ‘int’ típusú megfelelő típusú konstans utasítás-blokk kötelező elem! break return goto eset

22 int a=2, b=3; switch ( a+b ) { case 4: Console.WriteLine(”4-es eset.”); break; case 5: Console.WriteLine(”4-es eset.”); x=b*a; break; case 6: Console.WriteLine(”6-os eset.”); break; } a=b-3; int a=2, b=3; switch ( a+b ) { case 4: Console.WriteLine(”4-es eset.”); break; case 5: Console.WriteLine(”4-es eset.”); x=b*a; break; case 6: Console.WriteLine(”6-os eset.”); break; } a=b-3; a+b = 5 NEM! IGEN!

23 int a=5, b=4; switch ( a+b ) { case 4: Console.WriteLine(”4-es eset.”); break; case 5: Console.WriteLine(”4-es eset.”); x=b*a; break; case 6: Console.WriteLine(”6-os eset.”); break; } a=b-3; int a=5, b=4; switch ( a+b ) { case 4: Console.WriteLine(”4-es eset.”); break; case 5: Console.WriteLine(”4-es eset.”); x=b*a; break; case 6: Console.WriteLine(”6-os eset.”); break; } a=b-3; a+b = 9 NEM!

24 int a=5, b=4; switch ( a+b ) { case 4: Console.WriteLine(”4-es eset.”); break; case 5: Console.WriteLine(”4-es eset.”); x=b*a; break; default: Console.WriteLine(”Egyéb esetekben”); break; } a=b-3; int a=5, b=4; switch ( a+b ) { case 4: Console.WriteLine(”4-es eset.”); break; case 5: Console.WriteLine(”4-es eset.”); x=b*a; break; default: Console.WriteLine(”Egyéb esetekben”); break; } a=b-3; a+b = 9 NEM! Akkor ez legyen!

25 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

26 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!

27 int a=1, b=3; switch ( a+b ) { case 4: goto case 5; case 5: Console.WriteLine(”4 vagy 5.”); break; default: Console.WriteLine(”Egyéb”); break; } int a=1, b=3; switch ( a+b ) { case 4: goto case 5; case 5: Console.WriteLine(”4 vagy 5.”); break; default: Console.WriteLine(”Egyéb”); break; }