Stack Vezérlés szerkezet Adat 2.

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

Download "Stack Vezérlés szerkezet Adat 2."

Átírás

1 Stack Vezérlés szerkezet Adat 2. Kód visszafejtés. Izsó Tamás november 14. Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 1

2 Változó típusú paraméterekátadása 1. #include < s t d i o. h> int64 myfunc ( short int, int64, int, unsigned char ) ; void main ( ) { short i n t f f = 1024; int64 i i = 1000; i n t j j = 200; unsigned char bb = H ; int64 l l = myfunc ( f f, i i, j j, bb ) ; p r i n t f ( "%l l d \ n ", l l ) ; } ; int64 myfunc ( short s, int64 i, i n t j, unsigned char b ) { int64 l l ; l l = s + i + j + b ; return l l ; } ; Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 2

3 Paraméterek átadása 2a. (IDA output) _main proc near var_20 = word ptr 20h var_1c = dword ptr 1Ch var_18 = dword ptr 18h var_14 = dword ptr 14h var_10 = dword ptr 10h var_c = dword ptr 0Ch var_1 = byte ptr push ebp B EC mov ebp, esp EC 20 sub esp, 20h C B mov eax, 400h E0 mov [ ebp+var_20 ], ax C7 45 F0 E mov [ ebp+var_10 ], 3E8h C C7 45 F mov [ ebp+var_c ], C7 45 E4 C mov [ ebp+var_1c ], 0C8h A C6 45 FF 48 mov [ ebp+var_1 ], 48h ; H Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 3

4 Paraméterek átadása 2a. (IDA output) _main proc near var_20 = word ptr 20h var_1c = dword ptr 1Ch lokális adatokhoz var_18 = dword ptr 18h konstans var_14 = dword ptr 14h definiciók var_10 = dword ptr 10h var_c = dword ptr 0Ch var_1 = byte ptr push ebp B EC mov ebp, esp EC 20 sub esp, 20h C B mov eax, 400h E0 mov [ ebp+var_20 ], ax C7 45 F0 E mov [ ebp+var_10 ], 3E8h C C7 45 F mov [ ebp+var_c ], C7 45 E4 C mov [ ebp+var_1c ], 0C8h A C6 45 FF 48 mov [ ebp+var_1 ], 48h ; H Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 3

5 Paraméterek átadása 2a. (IDA output) _main proc near var_20 = word ptr 20h var_1c = dword ptr 1Ch var_18 = dword ptr 18h var_14 = dword ptr 14h var_10 = dword ptr 10h var_c = dword ptr 0Ch var_1 = byte ptr push ebp B EC mov ebp, esp EC 20 sub esp, 20h C B mov eax, 400h E0 mov [ ebp+var_20 ], ax C7 45 F0 E8 03adat 00 méretét 00 mov mó- [ ebp+var_10 ], 3E8h 00 prefixmov C C7 45 F dosító [ ebp+var_c ], C7 45 E4 C mov [ ebp+var_1c ], 0C8h A C6 45 FF 48 mov [ ebp+var_1 ], 48h ; H Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 3

6 Paraméterek átadása 2a. (IDA output) _main proc near var_20 = word ptr 20h var_1c = dword ptr 1Ch var_18 = dword ptr 18h var_14 = dword ptr 14h var_10 = dword ptr 10h var_c = dword ptr 0Ch var_1 = byte ptr push ebp lokális adatok inicializálása B EC mov ebp, esp EC 20 sub esp, 20h C B mov eax, 400h E0 mov [ ebp+var_20 ], ax C7 45 F0 E mov [ ebp+var_10 ], 3E8h C C7 45 F mov [ ebp+var_c ], C7 45 E4 C mov [ ebp+var_1c ], 0C8h A C6 45 FF 48 mov [ ebp+var_1 ], 48h ; H Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 3

7 Lokális adatok címhatárra igazítása EBP-20 EBP-1C EBP-18 EBP-14 EBP-10 EBP-C short int ff int jj } visszatérési érték ll } int64 ii EBP-8 EBP-4 unsigned char bb EBP Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 4

8 Változó típusú paraméterek átadása 2b E 0F B6 4D FF movzx ecx, [ ebp+var_1 ] push ecx B 55 E4 mov edx, [ ebp+var_1c ] push edx B 45 F4 mov eax, [ ebp+var_c ] A 50 push eax B 8B 4D F0 mov ecx, [ ebp+var_10 ] E 51 push ecx F 0F B7 55 E0 movzx edx, [ ebp+var_20 ] push edx E8 2D c a l l _myfunc C4 14 add esp, 14h C E8 mov [ ebp+var_18 ], eax F EC mov [ ebp+var_14 ], edx B 45 EC mov eax, [ ebp+var_14 ] push eax B 4D E8 mov ecx, [ ebp+var_18 ] push ecx A push o ffset $SG F E8 4C c a l l _ p r i n t f C4 0C add esp, 0Ch C0 xor eax, eax B E5 mov esp, ebp B 5D pop ebp C C3 r e t n C _main endp Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 5

9 Változó típusú paraméterek átadása 2b E 0F B6 4D FF movzx ecx, [ ebp+var_1 ] push ecx B 55 E4 mov edx, [ ebp+var_1c ] push edx B 45 F4 mov eax, [ ebp+var_c ] A 50 push eax B 8B 4D F0 mov ecx, [ ebp+var_10 ] E 51 push ecx F 0F B7 55 E0 movzx edx, [ ebp+var_20 ] push edx E8 2D c a l l _myfunc C4 14 add esp, 14h C E8 mov [ ebp+var_18 ], eax F EC mov [ ebp+var_14 ], edx B 45 EC mov eax, [ ebp+var_14 ] push eax B 4D E8 mov ecx, [ ebp+var_18 ] push ecx A push o ffset $SG F E8 4C c a l l _ p r i n t f C4 0C add esp, 0Ch C0 xor eax, eax B E5 mov esp, ebp B 5D pop ebp C C3 r e t n C _main endp paraméterek átadása Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 5

10 Változó típusú paraméterek átadása 2b E 0F B6 4D FF movzx ecx, [ ebp+var_1 ] push ecx B 55 E4 mov edx, [ ebp+var_1c ] push edx B 45 F4 mov eax, [ ebp+var_c ] A 50 push eax B 8B 4D F0 mov ecx, [ ebp+var_10 1 byte-os ] paraméter a E 51 push ecx stacken 4 byte-ot foglal F 0F B7 55 E0 movzx edx, [ ebp+var_20 Felső byte-okat ] a movzx push edx nullával tölti fel E8 2D c a l l _myfunc C4 14 add esp, 14h C E8 mov [ ebp+var_18 ], eax F EC mov [ ebp+var_14 ], edx B 45 EC mov eax, [ ebp+var_14 ] push eax B 4D E8 mov ecx, [ ebp+var_18 ] push ecx A push o ffset $SG F E8 4C c a l l _ p r i n t f C4 0C add esp, 0Ch C0 xor eax, eax B E5 mov esp, ebp B 5D pop ebp C C3 r e t n C _main endp Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 5

11 Változó típusú paraméterek átadása 2b E 0F B6 4D FF movzx ecx, [ ebp+var_1 ] push ecx B 55 E4 mov edx, [ ebp+var_1c ] push edx B 45 F4 mov eax, [ ebp+var_c ] A 50 push eax B 8B 4D F0 mov ecx, [ ebp+var_10 ] E 51 push ecx F 0F B7 55 E0 movzx edx, [ ebp+var_20 ] push edx E8 2D c a l l _myfunc C4 14 add esp, 14h C E8 mov [ ebp+var_18 ], eax F EC mov [ ebp+var_14 ], edx B 45 EC mov eax, [ ebp+var_14 ] push eax B 4D E8 mov ecx, [ ebp+var_18 ] push ecx A push o ffset $SG F E8 4C c a l l _ p r i n t f Visszatérési érték elmentése C4 0C add esp, 0Ch C0 xor eax, eax B E5 mov esp, ebp B 5D pop ebp C C3 r e t n C _main endp Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 5

12 Változó típusú paraméterek átadása 2b E 0F B6 4D FF movzx ecx, [ ebp+var_1 ] push ecx B 55 E4 mov edx, [ ebp+var_1c ] push edx B 45 F4 mov eax, [ ebp+var_c ] A 50 push eax B 8B 4D F0 mov ecx, [ ebp+var_10 ] E 51 push ecx F 0F B7 55 E0 movzx edx, [ ebp+var_20 ] Eredmény push kiíratása. edx E8 2D c a l l _myfunc C4 14 add esp, 14h C E8 mov [ ebp+var_18 ], eax F EC mov [ ebp+var_14 ], edx B 45 EC mov eax, [ ebp+var_14 ] push eax B 4D E8 mov ecx, [ ebp+var_18 ] push ecx A push o ffset $SG F E8 4C c a l l _ p r i n t f C4 0C add esp, 0Ch C0 xor eax, eax B E5 mov esp, ebp B 5D pop ebp C C3 r e t n C _main endp Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 5

13 Változó típusú paraméterek átadása 2b E 0F B6 4D FF movzx ecx, [ ebp+var_1 ] push ecx B 55 E4 mov edx, [ ebp+var_1c ] push edx B 45 F4 mov eax, [ ebp+var_c ] A 50 push eax B 8B 4D F0 mov ecx, [ ebp+var_10 ] E 51 push ecx F 0F B7 55 E0 movzx edx, [ ebp+var_20 ] push edx E8 2D c a l l _myfunc C4 14 add esp, 14h C E8 mov [ ebp+var_18 ], eax F EC mov [ ebp+var_14 Egy vagy ], két edx paraméter? B 45 EC mov eax, [ ebp+var_14 ] push eax B 4D E8 mov ecx, [ ebp+var_18 ] push ecx A push o ffset $SG F E8 4C c a l l _ p r i n t f C4 0C add esp, 0Ch C0 xor eax, eax B E5 mov esp, ebp B 5D pop ebp C C3 r e t n C _main endp Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 5

14 Változó számú paraméterátadás C nyelven #include <stdio. h> void k i i r ( const char stype,... ) { char pargs = ( char )& stype ; pargs += sizeof ( stype ) ; for ( ; stype ; stype++ ) { switch ( stype ) { case c : } } } p r i n t f ( "%c \ n ", ( ( pargs +=4) 4) ) ; break ; case i : p r i n t f ( "%d \ n ", ( i n t ) ( ( pargs +=4) 4) ) ; break ; case f : p r i n t f ( "%f \ n ", ( double ) ( ( pargs +=8) 8) ) ; break ; i n t main ( ) { f l o a t f =3.14; double l f =2.71; k i i r ( " c i f c f ", A, 125, f, X, l f ) ; return 0; } Karakter esetén is 4 byte kerül a stackre! Nekünk kell gondoskodni, hogy float paraméterátadásnál is double kerül a stackre! Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 6

15 Változó számú paraméterátadás C nyelven #include <stdio. h> #include <stdarg. h> void k i i r ( const char stype,... ) { v a _ l i s t ap ; v a _ s t a r t ( ap, stype ) ; for ( ; stype ; stype++ ) { switch ( stype ) { case c : } } } p r i n t f ( "%c \ n ", va_arg ( ap, char ) ) ; break ; case i : p r i n t f ( "%d \ n ", va_arg ( ap, i n t ) ) ; break ; case f : p r i n t f ( "%f \ n ", va_arg ( ap, double ) ) ; break ; i n t main ( ) { f l o a t f =3.14; double l f =2.71; k i i r ( " c i f c f ", A, 125, f, X, l f ) ; return 0; } A makró szóhatárra igazítást végez! Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 7

16 Section 1 Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 8

17 Maximum kiválasztás C nyelven #include < s t d i o. h> i n t main ( ) { i n t a, b, c, max ; scanf ( "%d %d %d ", &a, &b, &c ) ; i f ( a > b ) i f ( a > c ) max = a ; else max = c ; else i f ( b > c ) max = b ; else max = c ; p r i n t f ( "%d ", max ) ; } return 0; Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 9

18 Maximum kiválasztás nem optimalizálva (beolvasás) _main : push ebp B EC mov ebp, esp EC 10 sub esp, 10 h D 45 F4 lea eax, [ ebp 0Ch] push eax A 8D 4D F8 lea ecx, [ ebp 8] D 51 push ecx E 8D 55 FC lea edx, [ ebp 4] push edx push o f f s e t $SG E c a l l _scanf C 83 C4 10 add esp, 10 h Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 10

19 Maximum kiválasztás nem optimalizálva (döntés) F 8B 45 FC mov eax, dword ptr [ ebp 4] B 45 F8 cmp eax, dword ptr [ ebp 8] E 18 j l e F B 4D FC mov ecx, dword ptr [ ebp 4] A 3B 4D F4 cmp ecx, dword ptr [ ebp 0Ch] D 7E 08 j l e F 8B 55 FC mov edx, dword ptr [ ebp 4] F0 mov dword ptr [ ebp 10h ], edx EB 06 jmp D B 45 F4 mov eax, dword ptr [ ebp 0Ch] A F0 mov dword ptr [ ebp 10h ], eax D EB 16 jmp F 8B 4D F8 mov ecx, dword ptr [ ebp 8] B 4D F4 cmp ecx, dword ptr [ ebp 0Ch] E 08 j l e F B 55 F8 mov edx, dword ptr [ ebp 8] A F0 mov dword ptr [ ebp 10h ], edx D EB 06 jmp F 8B 45 F4 mov eax, dword ptr [ ebp 0Ch] F0 mov dword ptr [ ebp 10h ], eax Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 11

20 Maximum kiválasztás nem optimalizálva (kiírás) B 4D F0 mov ecx, dword ptr [ ebp 10h ] push ecx push o f f s e t $SG E E c a l l _ p r i n t f C4 08 add esp, C0 xor eax, eax B E5 mov esp, ebp A 5D pop ebp B C3 r e t Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 12

21 Maximum kiválasztás nem optimalizálva (BB) var_c= dword ptr 0Ch var_8= dword ptr 8 var_4= dword ptr 4 false sub esp, 0Ch lea eax, [ esp+0ch+var_c ] push eax lea ecx, [ esp+10h+var_4 ] push ecx lea edx, [ esp+14h+var_8 ] push edx push o f f s e t fmtrd ; "%d %d %d " c a l l _scanf mov ecx, [ esp+1ch+var_8 ] mov eax, [ esp+1ch+var_4 ] add esp, 10h cmp ecx, eax j l e short loc_42 true mov eax, [ esp+0ch+var_c ] cmp ecx, eax jg short loc_49 loc_42 : mov ecx, [ esp+0ch+var_c ] cmp eax, ecx jg h o r t loc_4b false push eax push o ffset fmtwr ; string c a l l _ p r i n t f xor eax, eax add esp, 14h r e t n true loc_49 : mov eax, ecx false true loc_4b : push eax push o ffset fmtwr ; string c a l l _ p r i n t f xor eax, eax add esp, 14h r e t n _main endp Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 13

22 Maximum kiválasztás optimalizálva (beolvasás) _main : EC 0C sub esp, 0Ch D lea eax, [ esp ] push eax D 4C 24 0C lea ecx, [ esp+0ch] B 51 push ecx C 8D C lea edx, [ esp+0ch] push edx push o f f s e t $SG E c a l l _scanf B 8B 4C mov ecx, dword ptr [ esp+14h ] F 8B mov eax, dword ptr [ esp+18h ] C4 10 add esp,10 h Figyelem! Vegyük észre, hogy a kód nem haszálja az EBP bázisregisztert. Magyarázzuk meg a lea ecx,[esp+0ch] utasításokat. Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 14

23 Maximum kiválasztás optimalizálva (-ek) B C8 cmp ecx, eax E 18 j l e A 8B mov eax, dword ptr [ esp ] D 3B C8 cmp ecx, eax F 7F 18 jg push eax push o f f s e t $SG E c a l l _ p r i n t f C 33 C0 xor eax, eax E 83 C4 14 add esp,14h C3 r e t B 0C 24 mov ecx, dword ptr [ esp ] B C1 cmp eax, ecx F 02 jg B B C1 mov eax, ecx B 50 push eax C push o f f set $SG E c a l l _ p r i n t f C0 xor eax, eax C4 14 add esp,14h B C3 r e t Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 15

24 Maximum kiválasztás összetett logikai kejezéssel #include < s t d i o. h> i n t main ( ) { i n t a, b, c, max ; scanf ( "%d %d %d ", &a, &b, &c ) ; i f ( a >= b && a >= c ) max = a ; else i f ( b >= a && b >= c ) max = b ; else max = c ; } p r i n t f ( "%d ", max ) ; return 0; Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 16

25 Maximum kiválasztás össztett logikai kejezéssel optimalizálva _main : C 8B mov eax, dword ptr [ esp+10h ] B 4C mov ecx, dword ptr [ esp+14h ] B mov edx, dword ptr [ esp+18h ] C4 10 add esp,10h B 3B C1 cmp eax, ecx D 7E 04 j l F 3B C2 cmp eax, edx F 0C jge F B C8 cmp ecx, eax E 06 j l D B CA cmp ecx, edx B C1 mov eax, ecx B 7F 02 jge F D 8B C2 mov eax, edx Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 17

26 If feltétel ugrás nélkül A jump lassítja a futást, ezért a Microsoft C, ha lehet kerüli az ugró utasítás használatát. #include < s t d i o. h> i n t main ( ) { i n t a, c ; scanf ( "%d ", &a ) ; i f ( a > 0 ) c = 1000; else c = 10; } p r i n t f ( "%d ", c ) ; return 0; Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 18

27 If feltétel ugrás nélkül _main : push ecx D lea eax, [ esp ] push eax push o f f s e t $SG A E c a l l _scanf F 33 C0 xor eax, eax cmp dword ptr [ esp +8], eax F 9E C0 setle al ; Set byte i f less or equal ( al = 0 or 1) dec eax ; eax ~0 or DE and eax,3deh ; eax 990 or E 83 C0 0A add eax,0ah ; eax 1000 or push eax push o f f s e t $SG E c a l l _ p r i n t f C 33 C0 xor eax, eax E 83 C4 14 add esp,14h C3 r e t Vegyük észre, hogy a letett paramétereket a program a scanf függvényhívás után nem rögtön szabadítja fel, hanem csak a főprogram végén add esp,14h. Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 19

PE/COFF fájl formátum

PE/COFF fájl formátum PE/COFF fájl formátum Kód visszafejtés. Izsó Tamás 2013. december 5. Izsó Tamás PE/COFF fájl formátum/ 1 Szimbólumtábla A programozási nyelvekben az típusokra, adatokra, függvényekre, ugrási címekre szimbólikus

Részletesebben

Intel x86 utasításkészlet + disassembler működése

Intel x86 utasításkészlet + disassembler működése Intel x86 utasításkészlet + disassembler működése Kód visszafejtés. Izsó Tamás 2016. november 10. Izsó Tamás Intel x86 utasításkészlet + disassembler működése / 1 Section 1 Intel X86 utasításkészlet Izsó

Részletesebben

Intel x86 utasításkészlet

Intel x86 utasításkészlet Intel x86 utasításkészlet Kód visszafejtés. Izsó Tamás 2013. október 31. Izsó Tamás Intel x86 utasításkészlet/ 1 Section 1 Intel mikroprocesszor Izsó Tamás Intel x86 utasításkészlet/ 2 Intel mikroprocesszor

Részletesebben

Bevezetés Alapfogalmak Jog

Bevezetés Alapfogalmak Jog Bevezetés Alapfogalmak Jog Kód visszafejtés. Izsó Tamás 2015. szeptember 18. Izsó Tamás Bevezetés Alapfogalmak / 1 Tartalom 1 Bevezetés 2 Alapfogalmak 3 Motivációs példák 4 Jog Izsó Tamás Bevezetés Alapfogalmak

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

Biztonságos programozás Puffer túlcsordulásos támadások

Biztonságos programozás Puffer túlcsordulásos támadások Biztonságos programozás Puffer túlcsordulásos támadások Intel x68 Izsó Tamás 2015. október 5. Izsó Tamás Biztonságos programozás Puffer túlcsordulásos támadások/ 1 Section 1 Puffer túlcsordulás sebezhetőség

Részletesebben

Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása

Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása Mi az assembly Gyakorlatias assembly bevezető Fordítóprogramok előadás (A, C, T szakirány) programozási nyelvek egy csoportja gépközeli: az adott processzor utasításai használhatóak általában nincsenek

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

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

A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni.

A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni. Példák számok kiírására A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni. Decimális számok kiírása Az alábbi

Részletesebben

Paraméter átadás regisztereken keresztül

Paraméter átadás regisztereken keresztül Eljárások paramétereinek átadási módjai Az eljárások deklarációjánál nincs mód arra, hogy paramétereket adjunk meg, ezért más, közvetett módon tudunk átadni paramétereket az eljárásoknak. Emlékeztetőül:

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?

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

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

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 Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1 C++ I/O Bevezetés Izsó Tamás 2014. február 20. Izsó Tamás C++ I/O / 1 Section 1 Bevezetés Izsó Tamás C++ I/O / 2 Irodalom Izsó Tamás C++ I/O / 3 Paraméter illesztés függvénynév túlterhelés esetén 1 Pontos

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

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

C programozás. 6 óra Függvények, függvényszerű makrók, globális és C programozás 6 óra Függvények, függvényszerű makrók, globális és lokális változók 1.Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet,

Részletesebben

Irvine eljárások. ClrScr - Törli a képernyő tartalmát és a kurzort a képernyő bal felső sarkába helyezi (Clear Screen).

Irvine eljárások. ClrScr - Törli a képernyő tartalmát és a kurzort a képernyő bal felső sarkába helyezi (Clear Screen). Irvine eljárások Ahogy azt már év elején is említettük, a 32 bites környezet lehetővé tette számunkra, hogy több, már előre létrehozott eljárást használhassunk. Ehhez csupán telepítenünk kellett az Irvine

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

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

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

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1

Fordító részei. Fordító részei. Kód visszafejtés. Izsó Tamás szeptember 29. Izsó Tamás Fordító részei / 1 Fordító részei Kód visszafejtés. Izsó Tamás 2016. szeptember 29. Izsó Tamás Fordító részei / 1 Section 1 Fordító részei Izsó Tamás Fordító részei / 2 Irodalom Izsó Tamás Fordító részei / 3 Irodalom Izsó

Részletesebben

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

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével

Részletesebben

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

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

A C programozási nyelv II. Utasítások. A függvény. A C programozási nyelv II. Utasítások. A függvény. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv II (Utasítások, fuggvények) CBEV2 / 1 Kifejezés utasítás Kifejezés utasítás, blokk

Részletesebben

1. Alapok. Programozás II

1. Alapok. Programozás II 1. Alapok Programozás II Elérhetőség Név: Smidla József Elérhetőség: smidla dcs.uni-pannon.hu Szoba: I916 2 Irodalom Bjarne Stroustrup: A C++ programozási nyelv 3 Irodalom Erich Gamma, Richard Helm, Ralph

Részletesebben

Programok működése dióhéjban

Programok működése dióhéjban Programok működése dióhéjban Intel x68 Izsó Tamás 2015. október 30. Izsó Tamás Programok működése dióhéjban/ 1 Section 1 Fordítás Izsó Tamás Programok működése dióhéjban/ 2 authenticate.c 1 // cl /GS-

Részletesebben

3. Gyakorlat Ismerkedés a Java nyelvvel

3. Gyakorlat Ismerkedés a Java nyelvvel 3. Gyakorlat Ismerkedés a Java nyelvvel Parancssori argumentumok Minden Java programnak adhatunk indításkor paraméterek, ezeket a program egy tömbben tárolja. public static void main( String[] args ) Az

Részletesebben

Számítógép Architektúrák

Számítógép Architektúrák Számítógép Architektúrák Utasításkészlet architektúrák 2015. április 11. Budapest Horváth Gábor docens BME Hálózati Rendszerek és Szolgáltatások Tsz. ghorvath@hit.bme.hu Számítógép Architektúrák Horváth

Részletesebben

HARDVERKÖZELI PROGRAMOZÁS1

HARDVERKÖZELI PROGRAMOZÁS1 HARDVERKÖZELI PROGRAMOZÁS1 Dr. Varga Imre Debreceni Egyetem Informatikai Rendszerek és Hálózatok Tanszék 2015.05.11 Követelmények Gyakorlat (aláírás) Óralátogatás (maximum hiányzás: 3) C programozási beugró

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

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

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

n-pr H 5 C 6 CHCl 2 Pascal és assembler

n-pr H 5 C 6 CHCl 2 Pascal és assembler súlyosan károsította a magzatot, (a gyerekek csökevényes végtagokkal születtek). A teratogén hatást az S-(-) enatiomér hordozza, míg az R-(+) hatástalan. Az 1-metil-5-fenil-5-propilbarbitursav egyik enatiomere

Részletesebben

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

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE 2015-16 Classic Empire - A turn Based Wargame Classic Empire is a real time, multiplayer, Internet-based game, featuring military, diplomatic, and economic

Részletesebben

Digitális rendszerek. Utasításarchitektúra szintje

Digitális rendszerek. Utasításarchitektúra szintje Digitális rendszerek Utasításarchitektúra szintje Utasításarchitektúra Jellemzők Mikroarchitektúra és az operációs rendszer közötti réteg Eredetileg ez jelent meg először Sokszor az assembly nyelvvel keverik

Részletesebben

Assembly. Iványi Péter

Assembly. Iványi Péter Assembly Iványi Péter További Op. rsz. funkcionalitások PSP címének lekérdezése mov ah, 62h int 21h Eredmény: BX = PSP szegmens címe További Op. rsz. funkcionalitások Paraméterek kimásolása mov di, parameter

Részletesebben

Biztonságos programozás Puffer túlcsordulásos támadások

Biztonságos programozás Puffer túlcsordulásos támadások Biztonságos programozás Puffer túlcsordulásos támadások Izsó Tamás 2015 október 12 Izsó Tamás Biztonságos programozás Puffer túlcsordulásos támadások/ 1 Section 1 DEP támadás Izsó Tamás Biztonságos programozás

Részletesebben

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX

Részletesebben

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

Programozás 3. Dr. Iványi Péter Programozás 3. Dr. Iványi Péter 1 Egy operandus művelet operandus operandus művelet Operátorok Két operandus operandus1 művelet operandus2 2 Aritmetikai műveletek + : összeadás -: kivonás * : szorzás /

Részletesebben

A 32 bites x86-os architektúra regiszterei

A 32 bites x86-os architektúra regiszterei Memória címzési módok Jelen nayagrészben az Intel x86-os architektúrára alapuló 32 bites processzorok programozását tekintjük. Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről)

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

A kódgenerálás helye a fordítási folyamatban. Kódgenerálás I. (kifejezések és vezérlési szerkezetek) A kódgenerálás feladata. Ebben az előadásban...

A kódgenerálás helye a fordítási folyamatban. Kódgenerálás I. (kifejezések és vezérlési szerkezetek) A kódgenerálás feladata. Ebben az előadásban... A kódgenerálás helye a fordítási folyamatban Forrásprogram Forrás-kezelő (source handler) Kódgenerálás I. (kifejezések és vezérlési szerkezetek) Fordítóprogramok előadás (A,C,T szakirány) 2008. őszi félév

Részletesebben

assume CS:Code, DS:Data, SS:Stack Start mov dl, 100 mov dh, 100 push dx Rajz

assume CS:Code, DS:Data, SS:Stack Start mov dl, 100 mov dh, 100 push dx Rajz Feladat5: rajzolo.asm Feladat meghatározása A feladat célja bemutatni egy egyszerű grafikai program segítségével a közvetlen címzést (grafikus VGA 320*200). A program a kurzor mozgató gombok segítségével

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

Felhasználó által definiált adattípus

Felhasználó által definiált adattípus Felhasználó által definiált adattípus C++ Izsó Tamás 2017. február 24. Izsó Tamás Felhasználó által definiált adattípus/ 1 Irodalom Izsó Tamás Felhasználó által definiált adattípus/ 2 Programtervezési

Részletesebben

Adatelérés és memóriakezelés

Adatelérés és memóriakezelés Adatelérés és memóriakezelés Jelen nayagrészben az Intel x86-os architektúrára alapuló 32 bites processzorok programozását tekintjük. Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről)

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

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 1. Előadás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu Programozás

Részletesebben

Assembly utasítások listája

Assembly utasítások listája Assembly utasítások listája Bevezetés: Ebben a segédanyagban a fontosabb assembly utasításokat szedtem össze. Az utasítások csoportosítva vannak. A fontos kategóriába azok az utasítások tartoznak, amiknek

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

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi. 11. gyakorlat Sturktúrák használata I. Új típus új műveletekkel 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi. typedef struct datum { int ev; int ho; int nap;

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

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter Assembly Rekurzív függvények, EXE, C programok Iványi Péter Algoritmusok előadás Rekurzív függvény FÜGGVÉNY nyomtat(n) print n HA n!= 0 nyomtat(n-1) ELÁGAZÁS VÉGE FÜGGVÉNY VÉGE Rekurzív függvény org 100h

Részletesebben

Assembly Utasítások, programok. Iványi Péter

Assembly Utasítások, programok. Iványi Péter Assembly Utasítások, programok Iványi Péter Assembly programozás Egyszerű logikán alapul Egy utasítás CSAK egy dolgot csinál Magas szintű nyelven: x = 5 * z + y; /* 3 darab művelet */ Assembly: Szorozzuk

Részletesebben

Információs Technológia

Információs Technológia Információs Technológia A C programozási nyelv (Típusok és operátorok) Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 szeptember

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

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

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

A programozás alapjai

A programozás alapjai A programozás alapjai Változók A számítógép az adatokat változókban tárolja A változókat alfanumerikus karakterlánc jelöli. A változóhoz tartozó adat tipikusan a számítógép memóriájában tárolódik, szekvenciálisan,

Részletesebben

Alprogramok, paraméterátadás

Alprogramok, paraméterátadás ELTE Informatikai Kar, Programozási Nyelvek és Fordítóprogramok Tanszék October 24, 2016 Programozási nyelvek Alprogramok Függvények, eljárások Metódusok Korutinok stb. Alprogramok Alprogram: olyan nyelvi

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Az Integrált Fejlesztői Környezet C++ alapok Az Integrált Fejlesztői Környezet Visual Studio 2013 Community Edition Kitekintés: fordítás Preprocesszor Fordító

Részletesebben

Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál?

Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál? Típus definiálás Ennek általános alakja: typedef típus név Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál? typedef double vector[3];

Részletesebben

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

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási

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

Programozás I. 5. Előadás: Függvények

Programozás I. 5. Előadás: Függvények Programozás I 5. Előadás: Függvények Függvény Egy alprogram Egy C program általában több kisméretű, könnyen értelmezhető függvényből áll Egy függvény megtalálható minden C programban: ez a main függvény

Részletesebben

C változók. Feladat: Deklaralj egy valos, egy karakter es ket egesz tipusu valtozot! int main() {

C változók. Feladat: Deklaralj egy valos, egy karakter es ket egesz tipusu valtozot! int main() { C változók Feladat: Deklaralj egy valos, egy karakter es ket egesz tipusu valtozot! float valos; char karakter; int egesz1, egesz2; /* Tobb valtozo ugyan olyan tipusu lehet, ezek deklaraciojat csoportosthatjuk.

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

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

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ás C nyelven (9. ELŐADÁS) Sapientia EMTE

Programozás C nyelven (9. ELŐADÁS) Sapientia EMTE Programozás C nyelven (9. ELŐADÁS) Sapientia EMTE 2015-16 1 POINTEREK ismétlés double x = 3.14, *px = &x; unsigned char *p, *p1, *p2; p1 = (unsigned char*)px; p2 = p1 + sizeof(double); for ( p = p2-1 ;

Részletesebben

117. AA Megoldó Alfréd AA 117.

117. AA Megoldó Alfréd AA 117. Programozás alapjai 2. (inf.) pót-pótzárthelyi 2011.05.26. gyak. hiányzás: kzhpont: MEG123 IB.028/117. NZH:0 PZH:n Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

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

Vezérlési szerkezetek

Vezérlési szerkezetek Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását

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

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

Vezérlési szerkezetek. Szelekció Ciklusok

Vezérlési szerkezetek. Szelekció Ciklusok Vezérlési szerkezetek Szelekció Ciklusok Szelekciós vezérlés A program egy feltétel teljesülése alapján választja ki, hogy mely műveleteket hajtsa végre. Alakja: if ( feltétel ) { műveletek, ha feltétel

Részletesebben

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

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás 4.11. A C előfeldolgozó rendszer A fordítás első lépése a C esetében a különböző nyelvi kiterjesztések feldolgozása: másik állomány tartalmának

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

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 5. Dr. Iványi Péter

Programozás 5. Dr. Iványi Péter Programozás 5. Dr. Iványi Péter 1 Struktúra Véges számú különböző típusú, logikailag összetartozó változó együttese, amelyeket az egyszerű kezelhetőség érdekében gyűjtünk össze. Rekord-nak felel meg struct

Részletesebben

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

Programozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása Programozás alapjai 5. gyakorlat Vezérlési szerkezetek egymásba ágyazása 1. feladat: Eldönteni egy számról, hogy pozitív, negatív vagy 0. Próbálja megoldani a feladatot switch szerkezettel is. Mikor használható

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

Jelszavak helyes megválasztása, szótáras törés. Pánczél Zoltán

Jelszavak helyes megválasztása, szótáras törés. Pánczél Zoltán Jelszavak helyes megválasztása, szótáras törés Pánczél Zoltán 1 Miért fontos a megfelelő jelszó? Nagyban növeli a rendszer biztonságát. Könnyű jelszó = Nincs jelszó A teljes rendszer biztonsága tőlünk

Részletesebben

Introduction to 8086 Assembly

Introduction to 8086 Assembly Introduction to 886 Assembly Lecture 7 D and N-D Arrays D Arrays 4 5 tabular data rows and columns 4 6 8 6 9 5 4 8 6 D Arrays 4 5 4 6 8 6 9 5 https://advancedmathclubsk.weebly.com/matrices.html 4 8 6 5

Részletesebben

Bevezetés a számítástechnikába

Bevezetés a számítástechnikába Bevezetés a számítástechnikába, Címzési módok, Assembly Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 2/9. ú utasítás

Részletesebben

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

Imperatív és procedurális programozás a Javában Imperatív és procedurális programozás a Javában Kozsik Tamás kto@elte.hu http://kto.web.elte.hu/ Eötvös Loránd Tudományegyetem Programozási Nyelvek és Fordítóprogramok Tanszék 2008. Kozsik Tamás (ELTE)

Részletesebben

Programok értelmezése

Programok értelmezése Programok értelmezése Kód visszafejtés. Izsó Tamás 2016. szeptember 22. Izsó Tamás Programok értelmezése/ 1 Section 1 Programok értelmezése Izsó Tamás Programok értelmezése/ 2 programok szemantika értelmezése

Részletesebben

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel

Részletesebben

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

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 2. előadás Szintaktikai alapok Alapvető típusok, ismétlés C# típus.net típus Méret (byte) Leírás byte System.Byte 1Előjel nélküli 8 bites egész szám (0..255) char

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök

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

Biztonságos programozás Puffer túlcsordulásos támadások

Biztonságos programozás Puffer túlcsordulásos támadások Biztonságos programozás Puffer túlcsordulásos támadások Intel x68 Izsó Tamás 2015. október 13. Izsó Tamás Biztonságos programozás Puffer túlcsordulásos támadások/ 1 Section 1 Támadások Izsó Tamás Biztonságos

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

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok

6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok 6. gyakorlat Egydimenziós numerikus tömbök kezelése, tömbi algoritmusok 1. feladat: Az EURO árfolyamát egy negyedéven keresztül hetente nyilvántartjuk (HUF / EUR). Írjon C programokat az alábbi kérdések

Részletesebben

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK Sapientia EMTE 2015-16 1 Felülnézet 1 Feltételes fordítás #if, #else, #elif, #endif, #ifdef, #ifndef stb. Felülnézet 2 #include: hatására a preprocesszor

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