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

Méret: px
Mutatás kezdődik a ... oldaltól:

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

Átírás

1 Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r szeptember 27.

2 Háromszög szerkeszthet ségének ellen rzése ANSI C (C89) megvalósítás #i n c l u d e <s t d i o. h> i n t main ( v o i d ) { i n t a, b, c ; i n t m e g s z e r k e s z t h e t o = 0 ; // l o g i k a i nem/ hamis p r i n t f ( " 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... p r i n t f ( "A o l d a l h o s s z a : " ) ; s c a n f ( "%d", &a ) ; w h i l e ( a <= 0 ) ; //... e s v ege do { p r i n t f ( "B o l d a l h o s s z a : " ) ; s c a n f ( "%d", &b ) ; w h i l e ( b <= 0 ) ; do { p r i n t f ( "C o l d a l h o s s z a : " ) ; s c a n f ( "%d", &c ) ; w h i l e ( c <= 0 ) ; i f ( a+b<=c b+c<=a c+a<=b ) // vagy > p r i n t f ( "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 = 1 ; // l o g i k a i i g e n / i g a z p r i n t f ( " M e g s z e r k e s z t h e t o. \ n" ) ; w h i l e (! m e g s z e r k e s z t h e t o ) ; // t a g a d a s >! r e t u r n 0 ;

3 Háromszög szerkeszthet ségének ellen rzése C99 megvalósítás; az oldalhossz beolvasása 3x ismétl dik! #i n c l u d e <s t d i o. h> #i n c l u d e <i s o h> // and, or, not #i n c l u d e <s t d b o o l. h> // b o o l i n t main ( v o i d ) { 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 ; // k i f e j e z o b b t i p u s / e r t e k p r i n t f ( " 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... p r i n t f ( "A o l d a l h o s s z a : " ) ; s c a n f ( "%d", &a ) ; w h i l e ( a <= 0 ) ; //... e s v ege do { p r i n t f ( "B o l d a l h o s s z a : " ) ; s c a n f ( "%d", &b ) ; w h i l e ( b <= 0 ) ; do { p r i n t f ( "C o l d a l h o s s z a : " ) ; s c a n f ( "%d", &c ) ; w h i l e ( c <= 0 ) ; i f ( a+b<=c or b+c<=a or c+a<=b ) // vagy > or p r i n t f ( "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 ; // k i f e j e z o b b l o g i k a i e r t e k p r i n t f ( " M e g s z e r k e s z t h e t o. \ n" ) ; w h i l e ( not m e g s z e r k e s z t h e t o ) ; // t a g a d a s > not r e t u r n 0 ;

4 Háromszög szerkeszthet ségének ellen rzése #i n c l u d e <s t d i o. h> #i n c l u d e <i s o h> // and, or, not #i n c l u d e <s t d b o o l. h> // b o o l #d e f i n e OLDALSZAM 3 i n t main ( v o i d ) { i n t o t [OLDALSZAM ] ; // 3 elemu tomb az o l d a l h o s s z a k n a k i n t i ; // a k t u a l i s o l d a l i n d e x e 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 ; p r i n t f ( " Adja meg egy haromszog o l d a l h o s s z a i t! \ n" ) ; do { i = 0 ; w h i l e ( i < OLDALSZAM) { // Csak 1 x i r j u k meg a b e o l v a s a s t! do { p r i n t f ( "A k o v e t k e z o o l d a l h o s s z a : " ) ; s c a n f ( "%d", &o t [ i ] ) ; // tomb i n d e x e l e s w h i l e ( o t [ i ] <= 0 ) ; i ++; i f ( o t [0]+ o t [1]<= o t [ 2 ] o r o t [1]+ o t [2]<= o t [ 0 ] o r o t [2]+ o t [0]<= o t [ 1 ] ) p r i n t f ( "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 ; p r i n t f ( " M e g s z e r k e s z t h e t o. \ n" ) ; w h i l e ( not m e g s z e r k e s z t h e t o ) ; r e t u r n 0 ;

5 Háromszög szerkeszthet ségének ellen rzése Tömb deníció típus tömbazonosító[méret]; pl. int ot[3]; méret pozitív, egész érték állandó kifejezés állandó kifejezés értéke fordítási id ben kiszámítható Tömb tárigénye sizeof(tömbazonosító) méret*sizeof(típus) Tömbelemek (indexes változó) elérése tömbazonosító[index] 0 index méret 1 ot 0 1 2

6 Háromszög szerkeszthet ségének ellen rzése #i n c l u d e <s t d i o. h> #i n c l u d e <i s o h> // and, or, not #i n c l u d e <s t d b o o l. h> // b o o l #d e f i n e OLDALSZAM 3 i n t main ( v o i d ) { i n t o t [OLDALSZAM ] ; i n t i ; 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 ; p r i n t f ( " Adja meg egy haromszog o l d a l h o s s z a i t! \ n" ) ; do { i = 0 ; w h i l e ( i < OLDALSZAM) { do { p r i n t f ( "%c o l d a l h o s s z a : ", i+ 'A ' ) ; // o l d a l megnevezese s c a n f ( "%d", &o t [ i ] ) ; w h i l e ( o t [ i ] <= 0 ) ; i ++; // k o v e t k e z o o l d a l neve i f ( o t [0]+ o t [1]<= o t [ 2 ] o r o t [1]+ o t [2]<= o t [ 0 ] o r o t [2]+ o t [0]<= o t [ 1 ] ) p r i n t f ( "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 ; p r i n t f ( " M e g s z e r k e s z t h e t o. \ n" ) ; w h i l e ( not m e g s z e r k e s z t h e t o ) ; r e t u r n 0 ;

7 Háromszög szerkeszthet ségének ellen rzése Oldal nevének el állítása Kihasználjuk, hogy az ASCII kódok a bet k abc-beli sorrendjének megfelel en növekednek ('A' == 65, 'B' == 66,..., 'Z' == 90) Hasonló a helyzet a számjegyekkel is ('0' == 48, '1' == 49,..., '9' == 57) Számjegy ASCII kód: '0'+szamjegy ASCII kód Számjegy: karakter-'0' Bet k is hasonlóan kezelhet k 14 p r i n t f ( "%c o l d a l h o s s z a : ", i+ 'A ' ) ; // o l d a l megnevezese Formátumspecikátor: %c (egyetlen karakter, nincs lánczáró nulla!) Karakter konstans aposztrófok között!

8 Számjegy karakterek számlálása 1/2 1 #i n c l u d e <s t d i o. h> 2 i n t main ( v o i d ) { 3 p r i n t f ( " Szamjegyek, u r e s e s egyeb k a r a k t e r e k l e s z a m l a l a s a \n" 4 " a bemeneten EOF i g vagy C t r l+d i g. \ n\n" ) ; 5 i n t k, f e h e r =0, egyeb =0; 6 i n t n u l l a =0, egy =0, k e t t o =0, harom =0, negy =0, // : ( 7 o t =0, h a t =0, h e t =0, n y o l c =0, k i l e n c =0; 8 w h i l e ( ( k=g e t c h a r ( ) )!= EOF){ 9 s w i t c h ( k ) { // Ronda, mint egy l o h a r a p a s! 10 c a s e ' 0 ' : n u l l a ++; b r e a k ; 11 case ' 1 ' : egy++; break ; 12 case ' 2 ' : k e t t o++; break ; 13 case ' 3 ' : harom++; break ; 14 case ' 4 ' : negy++; break ; 15 case ' 5 ' : ot++; break ; 16 case ' 6 ' : hat++; break ; 17 case ' 7 ' : het++; break ; 18 case ' 8 ' : n y o l c++; break ; 19 c a s e ' 9 ' : k i l e n c ++; b r e a k ; 20 c a s e ' ' : c a s e ' \n ' : c a s e ' \ t ' : f e h e r ++; b r e a k ; 21 d e f a u l t : egyeb++; b r e a k ; 22 23

9 Számjegy karakterek számlálása 2/2 24 p r i n t f ( " Szamjegyek : \ n" ) ; 25 p r i n t f ( " N u l l a : \ t%d db\n", n u l l a ) ; // Uram i r g a l m a z z! 26 p r i n t f ( " Egy : \ t%d db\n", egy ) ; 27 p r i n t f ( " Ketto : \ t%d db\n", k e t t o ) ; 28 p r i n t f ( "Harom : \ t%d db\n", harom ) ; 29 p r i n t f ( "Negy : \ t%d db\n", negy ) ; 30 p r i n t f ( "Ot : \ t%d db\n", o t ) ; 31 p r i n t f ( " Hat : \ t%d db\n", h a t ) ; 32 p r i n t f ( " Het : \ t%d db\n", h e t ) ; 33 p r i n t f ( " Nyolc : \ t%d db\n", n y o l c ) ; 34 p r i n t f ( " K i l e n c : \ t%d db\n", k i l e n c ) ; 35 p r i n t f ( " U r es k a r a k t e r e k : %d, egyeb : %d\n", f e h e r, egyeb ) ; 36 r e t u r n 0 ; 37 Nyilvánvalóan szükségünk van egy tömbre!

10 Számjegy karakterek számlálása 1/2 1 #i n c l u d e <s t d i o. h> 2 #i n c l u d e <i s o h> 3 #d e f i n e DB 10 4 i n t main ( v o i d ) { 5 p r i n t f ( " Szamjegyek, u r e s e s egyeb k a r a k t e r e k " 6 " l e s z a m l a l a s a \ na bemeneten EOF i g " 7 " vagy C t r l+d i g. \ n\n" ) ; 8 i n t i, k, f e h e r =0, egyeb =0; 9 i n t szamjegy [DB ] ; // 10 elemu tomb a t i z szamjegynek 10 i = 0 ; 11 w h i l e ( i < DB) { 12 s z a m j e g y [ i ] = 0 ; // S z a m l a l o k n u l l a z a s a 13 i ++; 14

11 Számjegy karakterek számlálása 2/2 15 w h i l e ( ( k=g e t c h a r ( ) )!= EOF){ 16 i f ( k>=' 0 ' and k<=' 9 ' ) { 17 i = k ' 0 ' ; // K a r a k t e r a t a l a k i t a s a szamma, 18 s z a m j e g y [ i ]++; // amit i n d e x k e n t h a s z n a l u n k 19 e l s e i f ( k==' ' o r k==' \n ' o r k==' \ t ' ) f e h e r ++; 20 e l s e egyeb++; p r i n t f ( " Szamjegyek : \ n" ) ; 23 i = 0 ; // Eredmenyek k i j e l z e s e 24 w h i l e ( i < DB) { 25 p r i n t f ( "%d\ t%d db\n", i, s z a m j e g y [ i ] ) ; 26 i ++; p r i n t f ( " U r es k a r a k t e r e k : %d, egyeb : %d\n", f e h e r, egyeb ) ; 29 r e t u r n 0 ; 30

12 Számjegy karakterek számlálása Tömbelemek, mint számlálók Az i számjegy darabszámát szamjegy[i] tárolja! (Azaz pl. 0-ból szamjegy[0], 1-b l szamjegy[1], sít. érkezett.) Tömbök inicializálása típus tömbazonosító[<méret>]<=inicializátorlista>; Ha inicializátorlista elemszáma < méret további elemek nullázódnak Ha inicializátorlista elemszáma > méret hiba! Ha <méret>-et nem specikálták, a fordító megállapítja inicializátorlista elemszámából De a <méret> és az inicializátorlista közül legalább az egyiknek léteznie kell!

13 Számjegy karakterek számlálása #i n c l u d e <s t d i o. h> #i n c l u d e <i s o h> #d e f i n e DB 10 i n t main ( v o i d ) { p r i n t f ( " Szamjegyek, u r e s e s egyeb k a r a k t e r e k l e s z a m l a l a s a \n" " a bemeneten EOF i g vagy C t r l+d i g. \ n\n" ) ; i n t k, i, f e h e r =0, egyeb =0; i n t s z a m j e g y [DB] = { 0 ; // s z a m l a l o k n u l l a z a s a i n i c i a l i z a l a s s a l w h i l e ( ( k=g e t c h a r ( ) )!= EOF){ i f ( k>=' 0 ' and k<=' 9 ' ) ++s z a m j e g y [ k ' 0 ' ] ; // s z a m l a l o k l e p t e t e s e e l s e i f ( k==' ' o r k==' \n ' o r k==' \ t ' ) ++f e h e r ; e l s e ++egyeb ; p r i n t f ( " Szamjegyek : \ n" ) ; i = 0 ; w h i l e ( i < DB) { p r i n t f ( "%d\ t%d db\n", i, s z a m j e g y [ i ] ) ; i ++; p r i n t f ( " U r es k a r a k t e r e k : %d, egyeb : %d\n", f e h e r, egyeb ) ; r e t u r n 0 ;

14 Számok kiírása fordított sorrendben #i n c l u d e <s t d i o. h> #d e f i n e N 5 i n t main ( v o i d ) { p r i n t f ( " Adjon meg %d szamot, k i i r j u k o k e t " " f o r d i t o t t s o r r e n d b e n! \ n\n", N ) ; i n t szamok [N], db =0; w h i l e ( db < N) { p r i n t f ( "%d. szam : ", db +1); s c a n f ( "%d", &szamok [ db ] ) ; db++; p r i n t f ( "\ n F o r d i t o t t s o r r e n d b e n : \ n" ) ; db = N 1; w h i l e ( db >= 0) { p r i n t f ( "%d\ t ", szamok [ db ] ) ; db ; p r i n t f ( "\n" ) ; r e t u r n 0 ;

15 Számok kiírása fordított sorrendben #i n c l u d e <s t d i o. h> #d e f i n e N 5 i n t main ( v o i d ) { p r i n t f ( " Adjon meg %d szamot, k i i r j u k o k e t " " f o r d i t o t t s o r r e n d b e n! \ n\n", N ) ; i n t szamok [N], db =0; w h i l e ( db < N) { p r i n t f ( "%d. szam : ", db +1); s c a n f ( "%d", &szamok [ db ++]); // o s s z e v o n a s p r i n t f ( "\ n F o r d i t o t t s o r r e n d b e n : \ n" ) ; w h i l e ( db ) p r i n t f ( "%d\ t ", szamok [ db ] ) ; // o s s z e v o n a s p r i n t f ( "\n" ) ; r e t u r n 0 ;

16 Soros keresés #i n c l u d e <s t d i o. h> #i n c l u d e <i s o h> #d e f i n e N 10 i n t main ( v o i d ) { i n t szamok [N] = {13, 11, 0, 1, 42, 7, 14, 17, 23, 2 1 ; p r i n t f ( " Mit k e r e s u n k " ) ; i n t i =0, k e r e s ; s c a n f ( "%d", &k e r e s ) ; w h i l e ( i <N and szamok [ i ]!= k e r e s ) i ++; i f ( i == N) p r i n t f ( "Nem t a l a l t u k meg\n" ) ; e l s e p r i n t f ( " M e g t a l a l t u k a %d i n d e x u h e l y e n! \ n", i ) ; r e t u r n 0 ;

17 Bináris keresés Csak rendezett tömbön használható! Start Be: szamok, N, keres also = 0 felso = N-1 Stop szamok keres 1 also <= felso kozep = padló((also+felso) / 2) szamok[kozep] < keres i i h Ki: "nincs találat" h Ki: kozep szamok[kozep] > keres also = kozep + 1 felso = kozep - 1 h i also kozep felso

18 Bináris keresés #i n c l u d e <s t d i o. h> #d e f i n e N 10 i n t main ( v o i d ) { i n t szamok [N] = { 23, 11, 0, 1, 7, 13, 14, 17, 21, 4 2 ; p r i n t f ( " Mit k e r e s u n k " ) ; i n t k e r e s ; s c a n f ( "%d", &k e r e s ) ; i n t a l s o =0, f e l s o=n 1, kozep ; w h i l e ( a l s o <= f e l s o ) { kozep = ( a l s o+f e l s o ) / 2 ; i f ( k e r e s < szamok [ kozep ] ) f e l s o = kozep 1; e l s e i f ( k e r e s > szamok [ kozep ] ) a l s o = kozep +1; e l s e { p r i n t f ( " M e g t a l a l t u k a ( z ) %d i n d e x u h e l y e n. \ n", kozep ) ; r e t u r n 0 ; p r i n t f ( "Nem t a l a l t u k meg, de a ( z ) %d i n d e x u elemben " " l e n n e a h e l y e. \ n", a l s o ) ; r e t u r n 0 ;

19 Buborék rendezés e e e e v v v v e e v v e v e v

20 Buborék rendezés e e e v v v e 7 54 v 3 56 e v e v e v

21 Buborék rendezés e v e v e v e v e v e v

22 Buborék rendezés e v e v e v e v e v

23 Buborék rendezés e v e v e v ev

24 Buborék rendezés e v e v ev

25 Buborék rendezés e v ev

26 Buborék rendezés v

27 Buborék rendezés Start Be: szamok, n v = n-1 Ki: "Rendezés után:" i = 0 Stop h v >= 1 i e = 0 h i < n i Ki: szamok[i] i = i+1 e < v szamok[e] > szamok[e+1] i h v = v-1 h i csere = szamok[e] szamok[e] = szamok[e+1] szamok[e+1] = csere e = e+1

28 Buborék rendezés #i n c l u d e <s t d i o. h> i n t main ( v o i d ) { i n t szamok [ ] = {12, 3, 54, 4, 56, 4, 7, 3 ; i n t n = s i z e o f ( szamok )/ s i z e o f ( szamok [ 0 ] ) ; // Tomb elemszam s z a m o l a s a i n t v=n 1, e ; w h i l e ( v>=1) { e = 0 ; w h i l e ( e<v ) { i f ( szamok [ e]>szamok [ e +1]) { i n t c s e r e = szamok [ e ] ; szamok [ e ] = szamok [ e + 1 ] ; szamok [ e +1] = c s e r e ; e++; v ; i n t i = 0 ; p r i n t f ( " Rendezes utan : \ n" ) ; w h i l e ( i < n ) { p r i n t f ( "%d\ t ", szamok [ i ] ) ; i ++; p r i n t f ( "\n" ) ; r e t u r n 0 ;

29 Karakterlánc-kezelés alapjai C-ben nincs karakterlánc (string) típus! karakteres tömbök, lánczáró karakterrel ('\0') s M o z i '\0' Karakterláncok manipulálása: függvényekkel, pl. strcat Az els höz f zi a második karakterlánc tartalmát strcpy Az els be másolja a második karakterlánc tartalmát strlen Megállapítja a karakterlánc hosszát ('\0' nélkül) strcmp Összehasonlítja a karakterláncokat (ASCII-kód alapján) Szükséges fejfájl: string.h

30 Karakterlánc-kezelés alapjai 1 #i n c l u d e <s t d i o. h> 2 #i n c l u d e < s t r i n g. h> 3 4 i n t main ( v o i d ) { 5 c h a r s1 [ ] = " L o l k a " ; // L a n c z a r o ' \ 0 ' a u t o m a t i k u s a n 6 c h a r s2 [ ] = " Bolka " ; // b e k e r u l a k a r a k t e r l a n c v e g e r e 7 8 s t r c a t ( s1, " e s " ) ; // K a r a k t e r l a n c o k o s s z e f u z e s e 9 s t r c a t ( s1, s2 ) ; // Van e l e g h e l y s1 ben 10 // F o r m a t u m s p e c i f i k a t o r : %s 11 p r i n t f ( "A mese cime : %s \n", s1 ) ; // Hossz ; z > s i z e _ t, u > u n s i g n e d 14 p r i n t f ( "A cim h o s s z a : %zu \n", s t r l e n ( s1 ) ) ; 15 // l > long, u > u n s i g n e d 16 p r i n t f ( " K a r a k t e r l a n c t a r i g e n y e : %l u b y t e. \ n", s i z e o f ( s1 ) ) ; s t r c p y ( s1, " Kockas f u l u n y u l " ) ; // Masolas 19 p r i n t f ( " Masik mese : %s \n", s1 ) ;

31 Karakterlánc-kezelés alapjai 21 s1 [ 6 ] = ' \0 ' ; s2 [ 3 ] = ' h ' ; // M o d o s i t h a t o k a r a k t e r e n k e n t 22 p r i n t f ( "Nem i s v i c c e s : %s %s \n", s1, s2 ) ; 23 // O s s z e h a s o n l i t a s t a r t a l o m r a 24 i n t h a s o n l i t = strcmp ( s1, s2 ) ; 25 i f ( h a s o n l i t < 0) { 26 p r i n t f ( "%s m e g e l o z i %s t. \ n", s1, s2 ) ; 27 e l s e i f ( h a s o n l i t > 0) { 28 p r i n t f ( "%s k o v e t i %s t. \ n", s1, s2 ) ; 29 e l s e { 30 p r i n t f ( "%s é s %s egyformak. \ n", s1, s2 ) ; r e t u r n 0 ; 33

32 Karakterlánc-kezelés alapjai Kimenet A mese cime: Lolka es Bolka A cim hossza: 14 Karakterlanc tarigenye: 128 byte. Masik mese: Kockas fulu nyul Nem is vicces: Kockas Bolha Kockas koveti Bolha-t.

33 Konvertálás kettesb l tízes számrendszerbe #i n c l u d e <s t d i o. h> i n t main ( v o i d ) { c h a r b [ 6 4 ] ; u n s i g n e d d, i ; p r i n t f ( " Adjon meg egy k e t t e s s z a m r e n d s z e r b e l i szamot! \ n" ) ; s c a n f ( "%s ", b ) ; // F o r m a t u m s t r i n g : %s, n i n c s c i m k e p z e s!!! d = i = 0 ; w h i l e ( b [ i ]!= ' \0 ' ) { // C s a b i t o l e n n e az s t r l e n ( ), de ne! d = d 2 + b [ i ] ' 0 ' ; // A l t a l a b a n NAGYON l a s s u l e n n e i ++; p r i n t f ( " T i z e s s z a m r e n d s z e r b e n : %d\n", d ) ; r e t u r n 0 ;

34 Konvertálás tízesb l kettes számrendszerbe #i n c l u d e <s t d i o. h> i n t main ( v o i d ) { c h a r b [ ] ; i n t d, i ; p r i n t f ( " Adjon meg egy t i z e s s z a m r e n d s z e r b e l i szamot! \ n" ) ; s c a n f ( "%d", &d ) ; i = 0 ; w h i l e ( d > 0) { b [ i ] = d%2+ ' 0 ' ; d /= 2 ; i ++; p r i n t f ( " K e t t e s s z a m r e n d s z e r b e n : " ) ; i ; w h i l e ( i >= 0) { p r i n t f ( "%c ", b [ i ] ) ; // Egy k a r a k t e r nyomtatasa i ; p r i n t f ( "\n" ) ; r e t u r n 0 ;

35 Neptun kód ellen rzés #i n c l u d e <s t d i o. h> #i n c l u d e <s t d b o o l. h> #i n c l u d e <i s o h> #i n c l u d e < s t r i n g. h> i n t main ( v o i d ) { b o o l h e l y t e l e n ; c h a r neptun [ 6 4 ] ; // Hogy meg a t u l h o s s z u i s e l f e r j e n do { h e l y t e l e n = f a l s e ; p r i n t f ( " Adja meg a Neptun k o d j a t : " ) ; s c a n f ( "%s ", neptun ) ; i f ( s t r l e n ( neptun )!= 6) { // k a r a k t e r l a n c h o s s z a n a k l e k e r d e z e s e p r i n t f ( " Hat k a r a k t e r b o l k e l l a l l n i a! \ n" ) ; h e l y t e l e n = t r u e ; e l s e { u n s i g n e d i =0; w h i l e ( not h e l y t e l e n and neptun [ i ]!= ' \0 ' ) { c h a r k = neptun [ i ] ; bool szamjegy = k>=' 0 ' and k<=' 9 ' ; bool nagybetu = k>='a ' and k<='z ' ; b o o l k i s b e t u = k>=' a ' and k<=' z ' ; i f ( not s z a m j e g y and not n a g y b e t u and not k i s b e t u ) { p r i n t f ( " Csak s z a m j e g y e k e t e s b e t u k e t t a r t a l m a z h a t! \ n" ) ; h e l y t e l e n = t r u e ; i ++; w h i l e ( h e l y t e l e n ) ; p r i n t f ( " Rendben. \ n" ) ; r e t u r n 0 ;

36 Neptun kód ellen rzés #i n c l u d e <s t d i o. h> #i n c l u d e <c t y p e. h> // t o u p p e r ( ) m i a t t #i n c l u d e <s t d b o o l. h> #i n c l u d e <i s o h> #i n c l u d e < s t r i n g. h> i n t main ( v o i d ) { b o o l h e l y t e l e n ; c h a r neptun [ 6 4 ] ; do { h e l y t e l e n = f a l s e ; p r i n t f ( " Adja meg a Neptun k o d j a t : " ) ; s c a n f ( "%s ", neptun ) ; i f ( s t r l e n ( neptun )!= 6) { p r i n t f ( " Hat k a r a k t e r b o l k e l l a l l n i a! \ n" ) ; h e l y t e l e n = t r u e ; e l s e { u n s i g n e d i =0; // ASCII kod > egesz szam ; 0 > hamis, minden mas > i g a z w h i l e ( not h e l y t e l e n and neptun [ i ] ) { c h a r k = t o u p p e r ( neptun [ i ] ) ; // n a g y b e t u r e a l a k i t a s i f ( ( k< ' 0 ' o r k> ' 9 ' ) and ( k< 'A ' o r k> 'Z ' ) ) { p r i n t f ( " Csak s z a m j e g y e k e t e s b e t u k e t t a r t a l m a z h a t! \ n" ) ; h e l y t e l e n = t r u e ; i ++; w h i l e ( h e l y t e l e n ) ; p r i n t f ( " Rendben. \ n" ) ; r e t u r n 0 ;

37 Neptun kód ellen rzés Karakterek osztályozása, átalakítása ctype.h beszerkesztése szükséges Függvények vagy makrók (el feldolgozó) Paraméter típusa int, de az értéknek unsigned char-ral ábrázolhatónak, vagy EOF-nak kell lennie Visszatérési érték int, karakterosztályozó rutinoknál logikai értékként kezelend Fv./makró név islower(c) isupper(c) isalpha(c) isdigit(c) isalnum(c) isxdigit(c) isspace(c) isprint(c) tolower(c) toupper(c) Funkció c kisbet c nagybet c bet c számjegy c alfanumerikus c hexadecimális számjegy c fehér karakter c nyomtatható c kisbet s alakja, ha c nagybet c nagybet s alakja, ha c kisbet

38 Neptun kód ellen rzés #i n c l u d e <s t d i o. h> #i n c l u d e <c t y p e. h> // i s a l n u m ( ) m i a t t #i n c l u d e <s t d b o o l. h> #i n c l u d e <i s o h> #i n c l u d e < s t r i n g. h> i n t main ( v o i d ) { b o o l h e l y t e l e n ; c h a r neptun [ 6 4 ] ; do { h e l y t e l e n = f a l s e ; p r i n t f ( " Adja meg a Neptun k o d j a t : " ) ; s c a n f ( "%s ", neptun ) ; i f ( s t r l e n ( neptun )!= 6) { p r i n t f ( " Hat k a r a k t e r b o l k e l l a l l n i a! \ n" ) ; h e l y t e l e n = t r u e ; e l s e { u n s i g n e d i =0; w h i l e ( not h e l y t e l e n and neptun [ i ] ) { i f ( not i s a l n u m ( neptun [ i ] ) ) { // a l f a n u m e r i k u s k a r a k t e r p r i n t f ( " Csak s z a m j e g y e k e t e s b e t u k e t t a r t a l m a z h a t! \ n" ) ; h e l y t e l e n = t r u e ; i ++; w h i l e ( h e l y t e l e n ) ; p r i n t f ( " Rendben. \ n" ) ; r e t u r n 0 ;

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

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r 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

Részletesebben

El feldolgozó. Programozás I. Hatwágner F. Miklós október 16. Széchenyi István Egyetem, Gy r

El feldolgozó. Programozás I. Hatwágner F. Miklós október 16. Széchenyi István Egyetem, Gy r Programozás I. Széchenyi István Egyetem, Gy r 2013. október 16. feladatai Emlékeztet : forrásfájl (el feldolgozó fordító) kapcsoló-szerkeszt futtatható állomány tevékenységei: kifejti a makrókat (dene)

Részletesebben

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

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós április 4. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. április 4. Számok rendezése Feladat: Fejlesszük tovább úgy a buborék rendez algoritmust bemutató példát, hogy a felhasználó adhassa meg a

Részletesebben

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. 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 Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2019. augusztus 29. Feladat: írjuk ki az els 10 természetes szám négyzetét! #i n c l u d e i n t main ( v o i d ) { p r

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3 Darvay Zsolt Típusok és nevek a forráskódban Állandók és változók Hatókörök és az előfeldolgozó Bevitel és kivitel Kifejezések Utasítások Mutatók Függvények Struktúrák és típusok Állománykezelés C programozás

Részletesebben

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

Programozás alapjai. 5. előadás 5. előadás Wagner György Általános Informatikai Tanszék Cserélve kiválasztásos rendezés (1) A minimum-maximum keresés elvére épül. Ismétlés: minimum keresés A halmazból egy tetszőleges elemet kinevezünk

Részletesebben

7/8. gyakorlat Karaktertömbök és sztringkezelés

7/8. gyakorlat Karaktertömbök és sztringkezelés 7/8. gyakorlat Karaktertömbök és sztringkezelés 1. feladat: Karaktertömb kezelése Egy beolvasott karaktert lineáris kereső eljárással keressen meg az angol ábécében (az ábécé betűit tárolja inicializált

Részletesebben

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

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 8. gyakorlat Fájlkezelés Surányi Márton PPKE-ITK 2010.11.02. Fájlkezelés C++-ban C++-ban van lehet ségünk fájlok kezelésére. Itt már tényleges fájlokkal dolgozunk, nem pedig

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 6. gyakorlat C++ alapok, szövegkezelés Surányi Márton PPKE-ITK 2010.10.12. Forrásfájlok: *.cpp fájlok Fordítás: a folyamat, amikor a forrásfájlból futtatható állományt állítunk

Részletesebben

Programozás I gyakorlat. 10. Stringek, mutatók

Programozás I gyakorlat. 10. Stringek, mutatók Programozás I gyakorlat 10. Stringek, mutatók Karakter típus A char típusú változókat karakerként is kiírhatjuk: #include char c = 'A'; printf("%c\n", c); c = 80; printf("%c\n", c); printf("%c\n",

Részletesebben

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I. Keresés Rendezés Feladat Keresés Rendezés Feladat Tartalom Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Részletesebben

C string műveletek (string.h alkalmazása)

C string műveletek (string.h alkalmazása) C string műveletek (string.h alkalmazása) A 3. előadás ZH során a string.h-ban található függvények alkalmazásával kell különböző, string kezeléssel kapcsolatos feladatokat megoldani. Ehhez szükséges ezen

Részletesebben

5. gyakorlat. Konstansok Tömbök Stringek

5. gyakorlat. Konstansok Tömbök Stringek 5. gyakorlat Konstansok Tömbök Stringek Konstansok A C nyelvben a konstansok preprocesszor makrókkal vannak megvalósítva. Konstansdefiniálás alakja: #define NÉV érték Az érték bármi lehet, később a fordítás

Részletesebben

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán Keresés Rendezés Feladat Keresés és rendezés A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán 2016. november 7. Farkas B., Fiala

Részletesebben

Programozás alapjai 9.Gy: Struktúra 2.

Programozás alapjai 9.Gy: Struktúra 2. Programozás alapjai 9.Gy: Struktúra 2. Ördögi részletek P R O A L A G 35/1 B ITv: MAN 2018.11.10 Euró árfolyam statisztika Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR).

Részletesebben

Programozás I gyakorlat

Programozás I gyakorlat Programozás I. - 2. gyakorlat Változók, típusok, bekérés Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer - És Számítástudományi Tanszék Utolsó frissítés: September 21, 2009 1 tar@dcs.vein.hu

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

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

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 3. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja Miért

Részletesebben

Karakter- és sztringkezelő függvények, matematikai függvények

Karakter- és sztringkezelő függvények, matematikai függvények Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.dudás László 30/0. Karakter- és sztringkezelő függvények, matematikai függvények Karakterkezelő könyvtári függvények Mintaprogram a karakterosztályozásra

Részletesebben

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015 Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 2. ELİADÁS Visual Basic bevezetı Visual Basic.NET nyelvi elemek 2 Visual Basic.NET programozási nyelv Nyelvi elemek: Általában

Részletesebben

10. gyakorlat Tömb, mint függvény argumentum

10. gyakorlat Tömb, mint függvény argumentum 10. gyakorlat Tömb, mint függvény argumentum 1. feladat: A 6. gyakorlat 1. feladatát oldja meg a strukturált programtervezési alapelv betartásával, azaz minden végrehajtandó funkciót külön függvényben

Részletesebben

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós május 6. 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 Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. május 6. Parancssori paraméterek Parancssorban történ programindításkor a program nevét követ en szóközökkel elválasztva paraméterek (command

Részletesebben

Programozás I gyakorlat

Programozás I gyakorlat Programozás I. - 2. gyakorlat Változók, kiiratás, bekérés Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 24, 2007 1 tar@dcs.vein.hu

Részletesebben

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

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 15. Széchenyi István Egyetem, Gy r Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. október 15. Leghosszabb 3D vektorok kikeresése 1 #i n c l u d e 2 #i n c l u d e 3 #d e f i n e MAX 1000

Részletesebben

Informatika terméktervezőknek

Informatika terméktervezőknek Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások

Részletesebben

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

Programozás C nyelven (10a. ELŐADÁS) Sapientia EMTE Programozás C nyelven (10a. ELŐADÁS) Sapientia EMTE 2015-16 1 Karakterláncok A karakterláncokat char-tömbökben tároljuk. Egy karakterlánc végét a karakterlánc-végjel jelzi: \0 char s[10] = sapi ;... s

Részletesebben

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

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) I. A nyelv története C++ C (ős: B???) 1972 Ritchie AT&T Bell laboratórium UNIX 1978 Kernighan & Ritchie az első tankönyv,

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke

Részletesebben

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 68 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 3. ELŐADÁS - PROGRAMOZÁSI TÉTELEK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

Mintavételes szabályozás mikrovezérlő segítségével

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 3. gyakorlat Tömbök, programozási tételek Surányi Márton PPKE-ITK 2010.09.21. ZH! PlanG-ból papír alapú zárthelyit írunk el reláthatólag október 5-én! Tömbök Tömbök Eddig egy-egy

Részletesebben

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók. Dr. Bécsi Tamás 7. Előadás Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Mutatók Dr. Bécsi Tamás 7. Előadás 5.3. Mutatók,tömbök A mutató vagy pointer olyan változó, amely egy másik változó címét tartalmazza.

Részletesebben

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

Programozás C nyelven (10. ELŐADÁS) Sapientia EMTE Programozás C nyelven (10. ELŐADÁS) Sapientia EMTE 2015-16 1 const ódosító jelző int x = 1914; // I. világháború ++x; // HELYES, mert x változó Vedd észre, hogy bár: x *p ++x helyes és ++(*p) helytelen

Részletesebben

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

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás A tárgy órái Előadás hetente (St101) csüt. 8:15 Bécsi Tamás C elmélet Ajánlott irodalom Dennis Ritchie: A C programozási nyelv Gyakorlat hetente

Részletesebben

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

Alkalmazott modul: Programozás. Programozási tételek, rendezések. Programozási tételek Algoritmusok és programozási tételek Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás, rendezések 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok és programozási tételek

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve

Részletesebben

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

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3) Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,

Részletesebben

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

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. október 11. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja

Részletesebben

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

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,

Részletesebben

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből

Részletesebben

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Algoritmizálás. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar Algoritmizálás Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 0.1. Az algoritmikus tudás szintjei Ismeri (a megoldó algoritmust) Érti Le tudja pontosan

Részletesebben

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

Programozás II. 2. Dr. Iványi Péter Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c

Részletesebben

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok

Részletesebben

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

1. Egyszerű (primitív) típusok. 2. Referencia típusok II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget

Részletesebben

Programozás 6. Dr. Iványi Péter

Programozás 6. Dr. Iványi Péter Programozás 6. Dr. Iványi Péter 1 Előfeldolgozás része Makrók A forrás kódban elvégzi a helyettesítéseket a fordító Csak egyszer végez helyettesítést Nem olyan makrók, mint a LISP vagy Scheme esetén Csak

Részletesebben

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

Alkalmazott modul: Programozás. Programozási tételek, rendezések Giachetta Roberto Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás Programozási tételek, rendezések 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Algoritmusok

Részletesebben

Programozás I gyakorlat

Programozás I gyakorlat Programozás I. - 9. gyakorlat Sztringkezelés, mutatók Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 2, 2009 1 tar@dcs.vein.hu Tar

Részletesebben

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb 1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb #include main() { int a, b; printf( "a=" ); scanf( "%d", &a ); printf( "b=" ); scanf( "%d", &b ); if( a< b ) { inttmp = a; a =

Részletesebben

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

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 3. előadás Vezérlési szerkezetek Elágazás Gyakran előfordul, hogy meg kell vizsgálnunk egy állítást, és attól függően, hogy igaz vagy hamis, a programnak más-más

Részletesebben

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

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a C programozási nyelvbe Az Általános Informatikai Tanszék C nyelvi kódolási szabványa Oktatási segédletek a levelező műszaki informatikus hallgatók

Részletesebben

BME MOGI Gépészeti informatika 5.

BME MOGI Gépészeti informatika 5. BME MOGI Gépészeti informatika 5. 1. feladat Készítsen alkalmazást, mely feltölt egy egydimenziós tömböt adott tartományba eső, véletlenszerűen generált egész értékekkel! Határozza meg a legkisebb és a

Részletesebben

Példák tematikus csoportosításban

Példák tematikus csoportosításban 1. fejezet Példák tematikus csoportosításban 1.1. A legegyszerűbb feladatok 1.1. feladat. Írjon programot, amely billentyűzetről látható karaktereket olvas mindaddig, amíg a @ karaktert meg nem kapja.

Részletesebben

A C programozási nyelv III. Pointerek és tömbök.

A C programozási nyelv III. Pointerek és tömbök. A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Sztringek Osztályok alapjai Sztringek Szöveges adatok kezelése Sztring Karakterlánc (string): Szöveges adat Karaktertömbként tárolva A szöveg végét a speciális

Részletesebben

A C programozási nyelv III. Pointerek és tömbök.

A C programozási nyelv III. Pointerek és tömbök. A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Elágazás Bevezetés a programozásba I. 2. gyakorlat, tömbök Surányi Márton PPKE-ITK 2010.09.14. Elágazás Elágazás Eddigi programjaink egyszer ek voltak, egy beolvasás (BE: a), esetleg valami m velet (a

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

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

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

Részletesebben

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

Algoritmizálás + kódolás C++ nyelven és Pascalban Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban

Részletesebben

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

C# gyorstalpaló. Készítette: Major Péter C# gyorstalpaló Készítette: Major Péter Adattípusok Logikai változó Egész szám (*: előjel nélküli) Lebegőponto s szám Típus Típusnév másképpen (egyenértékű) Helyigény (bit) Példa bool Boolean 8 (!) true,

Részletesebben

Programozási segédlet

Programozási segédlet Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen

Részletesebben

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

Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r Programozás I. Széchenyi István Egyetem, Gy r 2014. november 16. Áttekintés kel kapcsolatos fogalmak deklaráció Több, kompatibilis változat is elképzelhet. Meg kell el znie a fv. hívását. Mindenképp rögzíti

Részletesebben

Típusok és konstansok

Típusok és konstansok Programozás I. Széchenyi István Egyetem, Gy r 2013. október 3. Szimbólumok Forráskód részei: szimbólumok (szintaktikai egységek, tokenek) fehér karakterek (összevonás, gyelmen kívül hagyás) Szimbólumok:

Részletesebben

Stack Vezérlés szerkezet Adat 2.

Stack Vezérlés szerkezet Adat 2. Stack Vezérlés szerkezet Adat 2. Kód visszafejtés. Izsó Tamás 2013. november 14. Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 1 Változó típusú paraméterekátadása 1. #include < s t d i o. h> int64 myfunc

Részletesebben

Programozás 1. Dr. Iványi Péter

Programozás 1. Dr. Iványi Péter Programozás 1. Dr. Iványi Péter 1 C nyelv B.W. Kernighan és D.M. Ritchie, 1978 The C Programming language 2 C nyelv Amerikai Szabványügy Hivatal (ANSI), 1983 X3J11 bizottság a C nyelv szabványosítására

Részletesebben

BASH SCRIPT SHELL JEGYZETEK

BASH SCRIPT SHELL JEGYZETEK BASH SCRIPT SHELL JEGYZETEK 1 TARTALOM Paraméterek... 4 Változók... 4 Környezeti változók... 4 Szűrők... 4 grep... 4 sed... 5 cut... 5 head, tail... 5 Reguláris kifejezések... 6 *... 6 +... 6?... 6 {m,n}...

Részletesebben

Példatár a Programozás 1 tárgyhoz

Példatár a Programozás 1 tárgyhoz Kósa Márk Pánovics János Példatár a Programozás 1 tárgyhoz Juhász István feladatsoraiból mobidiák könyvtár Kósa Márk Pánovics János Példatár a Programozás 1 tárgyhoz Juhász István feladatsoraiból mobidiák

Részletesebben

Programozási tételek. Dr. Iványi Péter

Programozási tételek. Dr. Iványi Péter Programozási tételek Dr. Iványi Péter 1 Programozási tételek A programozási tételek olyan általános algoritmusok, melyekkel programozás során gyakran találkozunk. Az algoritmusok általában számsorozatokkal,

Részletesebben

Bizonyítási módszerek - megoldások. 1. Igazoljuk, hogy menden természetes szám esetén ha. Megoldás: 9 n n = 9k = 3 3k 3 n.

Bizonyítási módszerek - megoldások. 1. Igazoljuk, hogy menden természetes szám esetén ha. Megoldás: 9 n n = 9k = 3 3k 3 n. Bizonyítási módszerek - megoldások 1. Igazoljuk, hogy menden természetes szám esetén ha (a) 9 n 3 n (b) 4 n 2 n (c) 21 n 3 n (d) 21 n 7 n (e) 5 n 25 n (f) 4 n 16 n (g) 15 n (3 n 5 n) 9 n n = 9k = 3 3k

Részletesebben

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Bevezetés a programozásba II 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Emlékeztető struct Vektor { int meret, *mut; Vektor(int meret); int szamlal(int mit); }; int Vektor::szamlal(int mit)

Részletesebben

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

Programozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3) Programozás alapjai C nyelv 5. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.17. -1- Tömbök Azonos típusú adatok tárolására. Index

Részletesebben

Megoldott programozási feladatok standard C-ben

Megoldott programozási feladatok standard C-ben Megoldott programozási feladatok standard C-ben MÁRTON Gyöngyvér Sapientia Erdélyi Magyar Tudományegyetem, Matematika-Informatika Tanszék Marosvásárhely, Románia mgyongyi@ms.sapientia.ro Tartalomjegyzék

Részletesebben

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. 7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II. A gyakorlat célja: 1. A shell vezérlő szerkezetei használatának gyakorlása. A használt vezérlő szerkezetek: if/else/fi, for, while while, select, case,

Részletesebben

Programozás I. - 11. gyakorlat

Programozás I. - 11. gyakorlat Programozás I. - 11. gyakorlat Struktúrák, gyakorlás Tar Péter 1 Pannon Egyetem M szaki Informatikai Kar Rendszer- és Számítástudományi Tanszék Utolsó frissítés: November 16, 2009 1 tar@dcs.vein.hu Tar

Részletesebben

BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli. A versenyzők figyelmébe:

BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli. A versenyzők figyelmébe: BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli A versenyzők figyelmébe: 1. A tömböket 1-től kezdődően indexeljük. 2. A rácstesztekre

Részletesebben

Algoritmuselmélet 2. előadás

Algoritmuselmélet 2. előadás Algoritmuselmélet 2. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b kiskat@cs.bme.hu 2002 Február 12. ALGORITMUSELMÉLET 2. ELŐADÁS 1 Buborék-rendezés

Részletesebben

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

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 4. gyakorlat PLanG: 2011.10.04. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Fájlok

Részletesebben

A C# PROGRAMOZÁSI NYELV

A C# PROGRAMOZÁSI NYELV A C# PROGRAMOZÁSI NYELV 2010.02.23. Bevezetés C# nyelv jellemzői 2 Kis és NAGY betű érzékeny Minden utasítást pontos vessző zár. Utasítás zárójel a:,. .NET Framework keretrendszerek 3 Microsoft.NET Framework

Részletesebben

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

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real

Részletesebben

Gyakorló feladatok Gyakorló feladatok

Gyakorló feladatok Gyakorló feladatok Gyakorló feladatok előző foglalkozás összefoglalása, gyakorlató feladatok a feltételes elágazásra, a while ciklusra, és sokminden másra amit eddig tanultunk Változók elnevezése a változók nevét a programozó

Részletesebben

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism) Programozás alapjai C nyelv 8. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény

Részletesebben

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában Programozás alapjai C nyelv 8. gyakorlat Szeberényi mre BME T Programozás alapjai. (C nyelv, gyakorlat) BME-T Sz.. 2005.11.07. -1- Mutatók és címek (ism.) Minden változó és függvény

Részletesebben

1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >;

1. Gyakorlat. Rövid elméleti összefoglaló. <tárolási osztály>típus <típus > változónév <= kezdőérték><, >; Rövid elméleti összefoglaló 1. Gyakorlat A C++ nyelv hatékony, általános célú programozási nyelv, amely hagyományos fejlesztőeszközként és objektum-orientált programozási nyelvként egyaránt használható.

Részletesebben

BME MOGI Gépészeti informatika 1.

BME MOGI Gépészeti informatika 1. BME MOGI Gépészeti informatika 1. 1. feladat Végezze el a következő feladatokat! Olvassa be a nevét és írjon üdvözlő szöveget a képernyőre! Generáljon két 1-100 közötti egész számot, és írassa ki a hányadosukat

Részletesebben

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

1. Jelölje meg az összes igaz állítást a következők közül! 1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.

Részletesebben

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon 1. Template (sablon) 1.1. Függvénysablon Maximum függvény megvalósítása függvénynév túlterheléssel. i n l i n e f l o a t Max ( f l o a t a, f l o a t b ) { return a>b? a : b ; i n l i n e double Max (

Részletesebben

Maximum kiválasztás tömbben

Maximum kiválasztás tömbben ELEMI ALKALMAZÁSOK FEJLESZTÉSE I. Maximum kiválasztás tömbben Készítette: Szabóné Nacsa Rozália Gregorics Tibor tömb létrehozási módozatok maximum kiválasztás kódolása for ciklus adatellenőrzés do-while

Részletesebben

Programozás I. Első ZH segédlet

Programozás I. Első ZH segédlet Programozás I. Első ZH segédlet Ezen az oldalon: kiírás az alapértelmezett (hiba) kimenetre, sztring konkatenáció, primitív típusok, osztály létrehozás, példányosítás, adattagok, metódusok Kiíratás alapértelmezett

Részletesebben

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása A programozás alapjai 1 A C nyelv típusai 4. előadás Híradástechnikai Tanszék C típusok -void - skalár: - aritmetikai: - egész: - eger - karakter - felsorolás - lebegőpontos - mutató - függvény - union

Részletesebben

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

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva! A PL/SQL alapelemei Karakterkészlet Az angol ABC kis- és nagybetűi: a-z, A-Z Számjegyek: 0-9 Egyéb karakterek: ( ) + - * / < > =! ~ ^ ; :. ' @ %, " # $ & _ { }? [ ] Szóköz, tabulátor, kocsivissza A kis-

Részletesebben

Érdekes informatika feladatok

Érdekes informatika feladatok A keres,kkel és adatbázissal ellátott lengyel honlap számos díjat kapott: Spirit of Delphi '98, Delphi Community Award, Poland on the Internet, Golden Bagel Award stb. Az itt megtalálható komponenseket

Részletesebben

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7. Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Dinamikus memóriakezelés Dinamikus tömbök Dinamikus stringek Program kapcsolata a

Részletesebben

Programozas 1. Strukturak, mutatok

Programozas 1. Strukturak, mutatok Programozas 1 Strukturak, mutatok Strukturak Tömb: több egyforma típusú változó együttese Struktúra: több különböző típusú de logikailag egybetartozó változó együttese, amelyet az egyszerű kezelhetőség

Részletesebben

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos OOP I. Egyszerő algoritmusok és leírásuk Készítette: Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát képezik. Ismeretük

Részletesebben

Assembly programozás: 2. gyakorlat

Assembly programozás: 2. gyakorlat Assembly programozás: 2. gyakorlat Számrendszerek: Kettes (bináris) számrendszer: {0, 1} Nyolcas (oktális) számrendszer: {0,..., 7} Tízes (decimális) számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális

Részletesebben

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor.

Függvény pointer. Feladat: Egy tömbben soroljunk fel függvényeket, és hívjuk meg valahányszor. Függvény pointer Több feladat közül futási időben döntöm el, hogy melyiket hajtom végre. A függvényre mutató pointer a függvény kódjának a címére mutat, azon keresztül meghívhatom a függvényt. A pointernek

Részletesebben

Adatszerkezetek és algoritmusok

Adatszerkezetek és algoritmusok 2012. október 18. Ismétlés El z órai anyagok áttekintése Ismétlés Specikáció Típusok, kifejezések, m veletek Adatok ábrázolása a memóriában Vezérlési szerkezetek Függvények Osztályok, objektumok Paraméterátadás

Részletesebben