Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Hasonló dokumentumok
Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

A C# programozási nyelv alapjai

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Szoftvertervezés és -fejlesztés I.

A C programozási nyelv I. Bevezetés

Webprogramozás szakkör

Bevezetés a programozásba I.

Java programozási nyelv

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

A C programozási nyelv I. Bevezetés

S z á m í t ó g é p e s a l a p i s m e r e t e k

6. fejezet: Ciklusok

Java II. I A Java programozási nyelv alapelemei

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

Java II. I A Java programozási nyelv alapelemei

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

A C# PROGRAMOZÁSI NYELV

Internet programozása. 3. előadás

A C programozási nyelv II. Utasítások. A függvény.

Bevezetés a programozásba I.

Informatika terméktervezőknek

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Maximum kiválasztás tömbben

Vezérlési szerkezetek

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Stack Vezérlés szerkezet Adat 2.

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

1. Jelölje meg az összes igaz állítást a következők közül!

Szoftvertechnológia alapjai Java előadások

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 15. Széchenyi István Egyetem, Gy r

C programozás. 1 óra Bevezetés

Komputeralgebra Rendszerek

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r

Adminisztrációs feladatok Strukturált programok A C programnyelv elemei

Bevezetés a programozásba I.

Algoritmizálás + kódolás C++ nyelven és Pascalban

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Pénzügyi algoritmusok

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Szelekció. Döntéshozatal

Kifejezések. A programozás alapjai előadás. Operátorok. Kifejezések. Operátorok precedenciája. Operátorok precedenciája

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r

Bevezetés a programozásba I.

infix kifejezés a+b ab+ +ab postfix kifejezés prefix kifejezés a+b ab+ +ab a+b ab+ +ab Készítette: Szabóné Nacsa Rozália

Szkriptnyelvek. 1. UNIX shell

Kifejezések. Kozsik Tamás. December 11, 2016

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Operációs rendszerek gyak.

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Objektumorientált Programozás III.

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)

C# gyorstalpaló. Készítette: Major Péter

Vezérlési szerkezetek. Szelekció Ciklusok

Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 3. előadás

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Algoritmizálás és adatmodellezés tanítása 1. előadás

Programozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Programozás alapjai. 5. előadás

BASH script programozás II. Vezérlési szerkezetek

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Programozás I gyakorlat

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

Programozási alapismeretek 1. előadás

3 A C programozási nyelv szintaktikai egységei

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

Bevezetés az informatikába

C programozási nyelv

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Intézményi felhasználók karbantartása, jogosultság beállítása. Felhasználói dokumentáció. 1 / 9 oldal

AWK programozás, minták, vezérlési szerkezetek

Programozási alapismeretek 3. előadás

Imperatív és procedurális programozás a Javában

Programozás II. 2. Dr. Iványi Péter

Készítette: Nagy Tibor István

Bevezetés a programozásba I.

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. Széchenyi István Egyetem, Gy r

és az instanceof operátor

Átírás:

Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. február 18.

Minimum és maximumkeresés u s i n g n a m e s p a c e s t d ; i n t main ( ) { c o u t << " Adjon meg nem n e g a t i v e g e s z szamokat, \ n" << " m e g k e r e s s u k k o z o t t u k a m i n i m a l i s a t e s a m a x i m a l i s a t. \ n" << " K i l e p e s n e g a t i v szam m e g a d a s a v a l. \ n" ; i n t db=0, a k t =1; // i n i c i a l i z a c i o i n t min, max ; w h i l e ( a k t >= 0) { c o u t << " Kovetkezo szam : " ; c i n >> a k t ; i f ( a k t >= 0) { i f ( db == 0) min = max = a k t ; // t o b b s z o r o s h o z z a r e n d e l e s e l s e i f ( a k t > max ) max = a k t ; e l s e i f ( a k t < min ) min = a k t ; db++; // n o v e l e s e g g y e l i f ( db > 0) cout << "A minimum : " << min << "\na maximum : " << max << ' \n ' ; e l s e cout << "Nem adott meg adatokat. \ n" ; r e t u r n 0 ;

Minimum és maximumkeresés Változó deklaráció típus és azonosító megadása, helye: felhasználáskor vagy el tte deníció deklaráció + memóriaterület foglalása inicializáció deníciókor kezd érték megadása, pl. int db=0; = operátor (hozzárendelés op.) asszociativitás: jobbról balra min = max = akt; max = akt; min = max; Többirányú elágazás: if(...)... else if(...)... else if(...)... else...

Minimum és maximumkeresés Növel és csökkent operátorok ++ növelés eggyel csökkentés eggyel Létezik el - és utótag (prex/postx) alak is m veleti sorrend! Az el tag/utótag operátorok hatása az eredményre int a, b; // a és b értéke definiálatlan b = 6; // b értéke mostantól 6 a = ++b; // 1) b értéke n 7-re, // 2) ezt hozzárendeli a-hoz a = b++; // 1) hozzárendeli b értékét a-hoz, // 2) növeli b értékét 8-ra

Minimum és maximumkeresés u s i n g n a m e s p a c e s t d ; i n t main ( ) { c o u t << " Adjon meg nem n e g a t i v e g e s z szamokat, \ n" << " m e g k e r e s s u k k o z o t t u k a m i n i m a l i s a t e s a m a x i m a l i s a t. \ n" << " K i l e p e s n e g a t i v szam m e g a d a s a v a l. \ n" ; i n t db=0, a k t ; // akt nak nem k e l l k e z d o e r t e k i n t min, max ; c o u t << " Kovetkezo szam : " ; // kod e l s o e l o f o r d u l a s a c i n >> a k t ; w h i l e ( a k t >= 0) { i f ( db == 0) min = max = a k t ; // i n n e n v i s z o n t e l t u n t egy f e l t e t e l e l s e i f ( a k t > max ) max = a k t ; e l s e i f ( a k t < min ) min = a k t ; db++; c o u t << " Kovetkezo szam : " ; // kod masodik e l o f o r d u l a s a c i n >> a k t ; i f ( db > 0) cout << "A minimum : " << min << "\na maximum : " << max << ' \n ' ; e l s e cout << "Nem adott meg adatokat. \ n" ; r e t u r n 0 ;

Pozitív szám beolvasása u s i n g namespace s t d ; i n t main ( ) { i n t szam ; c o u t << " Adjon meg egy p o z i t i v szamot! " ; // u z e n e t c i n >> szam ; // b e o l v a s a s w h i l e ( szam <= 0) { // i s m e t l e s, ha h i b a s v o l t az i n p u t c o u t << " Adjon meg egy p o z i t i v szamot! " ; c i n >> szam ; c o u t << " B e o l v a s o t t e r t e k : " << szam << e n d l ; r e t u r n 0 ;

Pozitív szám beolvasása u s i n g namespace s t d ; i n t main ( ) { i n t szam = 1; // az i n i c i a l i z a c i o k i k e n y s z e r i t i w h i l e ( szam <= 0) { // a c i k l u s m a g f u t a s a t c o u t << " Adjon meg egy p o z i t i v szamot! " ; c i n >> szam ; c o u t << " B e o l v a s o t t e r t e k : " << szam << e n d l ; r e t u r n 0 ;

Pozitív szám beolvasása u s i n g namespace s t d ; i n t main ( ) { i n t szam ; // n i n c s s z u k s e g i n i c i a l i z a c i o r a do { // a c i k l u s m a g 1+ f u t t a t a s a h o z c o u t << " Adjon meg egy p o z i t i v szamot! " ; c i n >> szam ; w h i l e ( szam <= 0 ) ; c o u t << " B e o l v a s o t t e r t e k : " << szam << e n d l ; r e t u r n 0 ;

Háromszög szerkeszthet ségének ellen rzése Hátultesztel ciklus a ciklusmag egyszer biztosan lefut i tevékenységek feltétel do { tevékenységek while(feltétel kifejezése); n Ciklusmag futásának kikényszerítése elöltesztel ciklussal tevékenységek n feltétel i tevékenységek while(feltétel kifejezése) { tevékenységek tevékenységek

Háromszög szerkeszthet ségének ellen rzése u s i n g n a m e s p a c e s t d ; i n t main ( ) { i n t a, b, c ; b o o l m e g s z e r k e s z t h e t o = f a l s e ; c o u t << " Adja meg egy haromszog o l d a l h o s s z a i t! \ n" ; do { do { // h a t u l t e s z t e l o c i k l u s e l e j e... c o u t << "A o l d a l h o s s z a : " ; c i n >> a ; w h i l e ( a <= 0 ) ; //... e s v ege do { c o u t << "B o l d a l h o s s z a : " ; c i n >> b ; w h i l e ( b <= 0 ) ; do { c o u t << "C o l d a l h o s s z a : " ; c i n >> c ; w h i l e ( c <= 0 ) ; i f ( a+b<=c o r b+c<=a o r c+a<=b ) // a l t e r n a t i v s z i n t a k s z i s c o u t << "Ez nem s z e r k e s z t h e t o meg! \ n" ; e l s e { m e g s z e r k e s z t h e t o = t r u e ; cout << " Megszerkesztheto. \ n" ; w h i l e ( n o t m e g s z e r k e s z t h e t o ) ; r e t u r n 0 ;

Háromszög szerkeszthet ségének ellen rzése Logikai operátorok!, not: logikai nem, tagadás, or: logikai (megenged ) vagy &&, and: logikai és Igazságtáblázat a b not a a or b a and b false false true false false false true true true false true false false true false true true false true true (Rész)kifejezések kiértékelésének optimalizálása (short-circuit evaluation)

Háromszög szerkeszthet ségének ellen rzése u s i n g n a m e s p a c e s t d ; i n t main ( ) { i n t a, b, c ; c o u t << " Adja meg egy haromszog o l d a l h o s s z a i t novekvo s o r r e n d b e n! \ n" ; do { c o u t << "A o l d a l h o s s z a : " ; c i n >> a ; w h i l e ( a <= 0 ) ; do { c o u t << "B o l d a l h o s s z a : " ; c i n >> b ; w h i l e ( b < a ) ; do { c o u t << "C o l d a l h o s s z a : " ; c i n >> c ; w h i l e ( c<b o r a+b<=c ) ; r e t u r n 0 ;

Körlemez rajzolása u s i n g namespace s t d ; i n t main ( ) { i n t s o r = 5; // A k o r s u g a r a 5 w h i l e ( s o r <= 5) { i n t o s z l o p = 5; w h i l e ( o s z l o p <= 5) { i f (5 5 >= s o r s o r + o s z l o p o s z l o p ) c o u t << ' ' ; e l s e c o u t << ' ' ; o s z l o p ++; s o r ++; c o u t << ' \n ' ; r e t u r n 0 ;

Körlemez rajzolása Problémák: a kurzor pozicionálása korlátozott rengeteg helyen szerepel ugyanaz a konstans: nehézkes módosítás, hibalehet ségek a karakterek kb. 2x magasabbak, mint amilyen szélesek Kimenet * ******* ********* ********* ********* *********** ********* ********* ********* ******* *

Körlemez rajzolása #d e f i n e R 10 // A k o r s u g a r a u s i n g namespace s t d ; i n t main ( ) { i n t s o r = R ; w h i l e ( s o r <= R) { i n t o s z l o p = R ; w h i l e ( o s z l o p <= R) { i f (R R >= s o r s o r + o s z l o p o s z l o p ) c o u t << ' ' ; e l s e c o u t << ' ' ; o s z l o p ++; s o r += 2 ; // N o v e l e s k e t t o v e l c o u t << ' \n ' ; r e t u r n 0 ;

Körlemez rajzolása #define szimbolikus állandók, egyszer makrók el feldolgozó egyszer szöveghelyettesítést végez Nincs pontosvessz a végén! Összevont operátorok sor += 2; sor = sor+2; +=, =, *=, /=, %= Egyoperandusos + és operátorok Kimenet * ************* ***************** ******************* ******************* ********************* ******************* ******************* ***************** ************* *

Bet k, szavak, sorok számlálása #i n c l u d e <c s t d i o > u s i n g n a m e s p a c e s t d ; i n t main ( v o i d ) { i n t k, sordb, szodb, kardb ; b o o l s z o b a n = f a l s e ; c o u t << "A bemenet k a r a k t e r e i n e k, s o r a i n a k é s \n" << " s z a v a i n a k l e s z á ml á l á s a \n" << "A bemenet v é ge : C t r l+d vagy EOF. \ n\n" ; sordb = szodb = kardb = 0 ; w h i l e ( ( k=c i n. g e t ( ) )!= EOF){ ++kardb ; i f ( k == ' \n ' ) ++sordb ; i f ( k==' ' o r k==' \n ' o r k==' \ t ' ) s z o b a n = f a l s e ; e l s e i f ( n o t s z o b a n ){ s z o b a n = t r u e ; ++szodb ; cout << " s o r = " << sordb << ", szo = " << szodb << ", k a r a k t e r = " << kardb << e n d l ; r e t u r n 0 ;

Bet k, szavak, sorok számlálása Egy karakter beolvasása: int get() Karakter ábrázolása int típusban Bemenet vége: EOF <cstdio> M veleti sorrend! while((k=cin.get())!= EOF){ A szoban szerepe

Operátorok precedenciája és asszociativitása Operátor a++ a ++a a +a a! sizeof a*b a/b a%b a+b a b < <= > >= ==!= && Asszociativitás balról jobbra jobbról balra balról jobbra = += = *= /= %= jobbról balra, balról jobbra

Angol sorszámnevek u s i n g namespace s t d ; i n t main ( ) { c o u t << "Szam : " ; i n t szam ; c i n >> szam ; i f ( szam == 0) c o u t << ' 0 ' ; e l s e { c o u t << szam ; i f ( szam>10 and szam <21) cout << " th " ; e l s e i f ( szam%10 == 1) c o u t << " s t " ; e l s e i f ( szam%10 == 2) c o u t << " nd " ; e l s e i f ( szam%10 == 3) c o u t << " r d " ; e l s e c o u t << " t h " ; Problémák: nagyon sok irányú elágazás, felesleges osztások

Angol sorszámnevek u s i n g namespace s t d ; i n t main ( ) { c o u t << "Szam : " ; i n t szam ; c i n >> szam ; i f ( szam == 0) c o u t << ' 0 ' ; e l s e { c o u t << szam ; i f ( szam>10 and szam <21) cout << " th " ; e l s e s w i t c h ( szam%10) { case 1 : c o u t << " s t " ; break ; case 2 : cout << " nd " ; break ; case 3 : cout << " rd " ; break ; d e f a u l t : c o u t << " t h " ;

Angol sorszámnevek switch(kifejezés) utasítás kifejezés egész típusú utasítás tartalmazhat több case konstans-kifejezés: utasítás-t, nulla vagy egy default: utasítás-t végrehajtás leáll: switch blokkjának végén az els break utasításnál konstans-kifejezés egész típusú kifejezés és konstans-kifejezés értékeinek összehasonlítása több case címke is címkézheti ugyanazt az utasítást, de minden címkének egyedinek kell lennie switch utasítások egymásba ágyazhatóak

Minimum és maximumkeresés (Emlékeztet ) u s i n g n a m e s p a c e s t d ; i n t main ( ) { c o u t << " Adjon meg nem n e g a t i v e g e s z szamokat, \ n" << " m e g k e r e s s u k k o z o t t u k a m i n i m a l i s a t e s a m a x i m a l i s a t. \ n" << " K i l e p e s n e g a t i v szam m e g a d a s a v a l. \ n" ; i n t db=0, a k t ; // akt nak nem k e l l k e z d o e r t e k i n t min, max ; c o u t << " Kovetkezo szam : " ; // kod e l s o e l o f o r d u l a s a c i n >> a k t ; w h i l e ( a k t >= 0) { i f ( db == 0) min = max = a k t ; // i n n e n v i s z o n t e l t u n t egy f e l t e t e l e l s e i f ( a k t > max ) max = a k t ; e l s e i f ( a k t < min ) min = a k t ; db++; c o u t << " Kovetkezo szam : " ; // kod masodik e l o f o r d u l a s a c i n >> a k t ; i f ( db > 0) cout << "A minimum : " << min << "\na maximum : " << max << ' \n ' ; e l s e cout << "Nem adott meg adatokat. \ n" ; r e t u r n 0 ;

Minimum és maximumkeresés u s i n g n a m e s p a c e s t d ; i n t main ( ) { c o u t << " Adjon meg nem n e g a t i v e g e s z szamokat, \ n" << " m e g k e r e s s u k k o z o t t u k a m i n i m a l i s a t e s a m a x i m a l i s a t. \ n" << " K i l e p e s n e g a t i v szam m e g a d a s a v a l. \ n" ; i n t db=0, a k t ; i n t min, max ; w h i l e ( cout<<" Kovetkezo szam : ", c i n >>akt, akt >=0) { //, o p e r a t o r i f (! db ) min = max = a k t ; //! o p e r a t o r e l s e i f ( a k t > max ) max = a k t ; e l s e i f ( a k t < min ) min = a k t ; db++; i f ( db ) c o u t << "A minimum : " << min // l o g i k a i k i f e j e z e s << "\na maximum : " << max << ' \n ' ; e l s e cout << "Nem adott meg adatokat. \ n" ; r e t u r n 0 ;

Minimum és maximumkeresés Ki: "Kovetkezo szam: " Be: akt akt >= 0 //min, max keresés... i n Vessz operátor összetett, külön-külön is értelmes kifejezésekb l álló kifejezés szerepeltethet ott, ahol csak egy kifejezés állhat kifejezés értéke = az utolsó részkifejezés értéke

Minimum és maximumkeresés Logikai kifejezések bool típus false 0 true 1 nulla érték egész hamis nem nulla érték egész igaz if(db)... if(db!= 0)... if(!db)... if(db == 0)...