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

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

Bevezetés a C programozásba

Programzás I gyakorlat

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

C programozás. 1 óra Bevezetés

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

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

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

Programozás I. gyakorlat

C programnyelv 1. Kedves Kollegina, Kolléga!

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

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

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

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

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Informatikai Rendszerek Alapjai

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

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

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

Programozás I gyakorlat

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

Programozás I gyakorlat

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

1. Fejezet: Számítógép rendszerek. Tipikus számítógép hirdetés

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

Bevezetés a programozásba I.

1. Fejezet: Számítógép rendszerek

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

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

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Programtervezési stratégiák. Top-down tervezés. Top-down tervezés. Bottom-up tervezés. 4.

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

Informatika érettségi vizsga

Készítette: Nagy Tibor István

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

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Assembly programozás: 2. gyakorlat

Labor gyakorlat Mikrovezérlők

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

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

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

Bevezetés az informatikába

Labor gyakorlat Mikrovezérlők

Bináris egység: bit (binary unit) bit ~ b; byte ~ B (Gb Gigabit;GB Gigabyte) Gb;GB;Gib;GiB mind más. Elnevezés Jele Értéke Elnevezés Jele Értéke

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

Java II. I A Java programozási nyelv alapelemei

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

Számítógép architektúra

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

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

Számítógépek felépítése, alapfogalmak

Java II. I A Java programozási nyelv alapelemei

Széchenyi István Szakképző Iskola

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

Programozás. Programozás villamosmérnököknek

Adatbázis rendszerek Gy: Algoritmusok C-ben

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

A mikroprocesszor felépítése és működése

INFO1 Számok és karakterek

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

1. Digitális írástudás: a kőtáblától a számítógépig 2. Szedjük szét a számítógépet 1. örök 3. Szedjük szét a számítógépet 2.

TANMENET 2018/2019. tanév

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Bemutatkozás. Bemutatkozás. Bemutatkozás. Bemutatkozás. 1. előadás. A tárgy címe: A programozás alapjai 1

Miért van szükség fordítóprogramokra? Fordítóprogramok célja és szerkezete. Miért van szükség fordítóprogramokra?

Programozás alapjai. Wagner György Általános Informatikai Tanszék

Adattípusok. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

C vagy C++? Programozási Nyelvek és Fordítóprogramok Tanszék. Pataki Norbert. Programozási Nyelvek I.

Labor 2 Mikrovezérlők

Bevezetés a C++ programozási nyelvbe

Számítógépek felépítése, alapfogalmak

Típusok és konstansok

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai

Programozás alapjai 2.Gy: A C nyelv alapjai P R O

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

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

C programozási nyelv Pointerek, tömbök, pointer aritmetika

Adatok ábrázolása, adattípusok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

INFO1 Számok és karakterek

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

B I T M A N B I v: T M A N

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

Flex tutorial. Dévai Gergely

Alapfogalmak. Dr. Kallós Gábor A Neumann-elv. Számolóeszközök és számítógépek. A számítógép felépítése

Labor gyakorlat Mikrovezérlők

Bevezetés a programozásba I.

Matematikai alapok. Dr. Iványi Péter

SZÁMÍTÓGÉP FELÉPÍTÉSE (TK 61-TŐL)

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

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

Dr. Oniga István DIGITÁLIS TECHNIKA 2

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

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)

Bevezetés az informatikába

Szakmai program 2015

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

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

Átírás:

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

Számítógép lehet ségei Tisztázandó kérdések: Mit tud a számítógép? (programnyelvek, programok,... ) A feladat melyik részét célszer számítógéppel megoldani? Egyedi feladat általános megoldás Számítógép: információfeldolgozó eszköz Beviteli (input) egységek Számítógép (háttértárakkal) Kimeneti (output) egységek

A Neumanni alapelvek Lényege: Részei: Soros utasítás végrehajtás Bináris (kettes) számrendszer használata Operatív tárban találhatóak az adatok és a program is (ld. még Harvard-architektúra) Elektronikus m ködés Általános felhasználhatóság Központi vezérl egység (automatikus m ködés) Központi egység (Central Processing Unit, CPU) Memória Aritmetikai/logikai egység (Arithmetic/Logic Unit, ALU) Vezérl egység (Control Unit, CU) I/O egységek Ld. Neumann-elvek

Sínrendszer számítógép funkcionális modellje Processzor ALU ROM Memória RAM CU Regisztertömb Sínvezérlő és meghajtó Órajelgenerátor és meghajtó Periféria vezérlő DMA vezérlő I/O Megszakítás vezérlő Prioritás vezérlő Perifériák

Számítógép lehet ségei Információ: adat program Adat Egy feladat adatai mindazok az információk, amelyekb l kiindulva, ezekkel m veleteket végezve, átalakítva a megoldásig eljuthatunk; és adat minden olyan információ, a megoldást megadó is, amely a kiinduló adatokból a m veletvégzés, az átalakítás során keletkezik. Program Program az az információ, amely leírja a számítógépnek, hogy hogyan m ködjön ahhoz, hogy a kiindulási adatokból a keresett megoldás el álljon. A program: utasításokból (információközlés, alaptevékenységek kérése) áll sorrend meghatározása

Adatok Adatok kezelése: konstansként (literálként, a megfelel helyre írva) változókkal Tárolt adat mennyisége szerint a változó: egyszer (egyszerre egy adat) összetett (adatcsoport)

Adatok Egyszer változók tulajdonságai név (azonosító) felhasználható karakterek, funkció, beszédes elnevezés típus hogyan tárolják a memóriában milyen m velet végezhet vele az adat jellege (numerikus, szöveges adatábrázolás) memóriaterület értéket tárolja típusnak megfelel en legtöbbször kezdetben deniálatlan

Fixpontos számábrázolás El jel nélküli eset 2018 10 = 2 10 3 + 0 10 2 + 1 10 1 + 8 10 0 2018 10 = 0000 0111 1110 0010 2 = 1 2 10 + 1 2 9 + 1 2 8 + 1 2 7 + 1 2 6 + 1 2 5 + 1 2 1 2018 10 = 3742 8 = 3 8 3 + 7 8 2 + 4 8 1 + 2 8 0 2018 10 = 7E2 16 = 7 16 2 + 14 16 1 + 2 16 0 2018 8 201 1 20 0 2 2 0 2018 2 126 E 7 7 0

Fixpontos számábrázolás Jellemz hosszok: 8, 16, 32, 64 bit (1, 2, 4, 8 bájt; jellemz en a bájt a legkisebb címezhet egység prexumok) V unsigned integer = N 1 i=0 b i 2 i Intervallum: [0; 2 N 1] Bitek száma Értékek száma 8 256 16 65 536 32 4, 29 10 9 64 1, 84 10 19

Fixpontos számábrázolás El jelek használata Kettes komplemens ábrázolás Egyes komplemens képzés, majd +1 Érték 1-szerese: kivonás 2 N -b l El jelbit el jelet jelz bit V two's complement = b N 1 2 N 1 + N 2 i=0 b i 2 i Intervallum: [ 2 N 1 ; 2 N 1 1] 1 0000 0000 0100 1100 1011 0100 256 76 180 Bitminta Érték 0111 1111 127 0111 1110 126.. 0000 0001 1 0000 0000 0 1111 1111 1 1111 1110 2.. 1000 0000 128

Lebeg pontos számábrázolás Valós számok ábrázolására számok normálalakja m 2 k, ahol m a mantissza, k a karakterisztika 1/2 m < 1 0, 1111110001 2 10 = 2018 10 Minta 128 többletes karakterisztikával adott adatra: 01111110 00100000 00000000 10001010 2 = 2018 10 IEEE754

Karakterek kódolása Karakterek bet k, számjegyek, írásjelek,... PC-világ: ASCII (American Standard Code for Information Interchange) 7 bites kód: az alsó 128 karakter mindig ua., a fels k kódlapfügg k (pl. 852) az els 32 érték vezérl jel bet k: ABC-sorrend, számjegyek érték szerint növekv en új karakterkódolási módok (ld. Unicode) Szöveg kódolása karakterlánc (sztring, karaktersorozat, karakterfüzér,... ) C nyelv: lánczáró 0 karakter méret: karakterek száma + 1 Pascal: els bájt a karakterlánc hossza (lánchossz limitált) 'J' 'a' 'n' 'i' '\0' 74 97 110 105 0 0100 1010 0110 0001 0110 1110 0110 1001 0000 0000 4A 61 6E 69 00

Összetett változók Adatcsoportot ír le. Típusai, pl.: tömb struktúra (Pascal: rekord) Tömb 4. tulajdonsága a dimenziója, az adatok elrendezése: egydimenziós (vektor, sor) kétdimenziós (mátrix, táblázat) Indexelés: elemek megszámozása 0 x < méret, x N T[0], T[1],..., T[10] T 0 1 2 3 4 5 6 7 8 9 10

Összetett változók Tömb minden típusból képezhet. Tömbelem mindenhol használható, ahol egyszer változó is. A karakterlánc egydimenziós tömb. s 'J' 'a' 'n' 'i' '\0' 0 1 2 3 4 Vegyük észre, hogy a bet k száma 4, és s[4] a lánczáró '\0'. Jelek tekinthet k: karakternek egész számértéknek

Programozási nyelvek Gépi kód Assembly pelda02.asm (Forrás: Agárdi Gábor: Gyakorlati Assembly) P e l d a 0 2 Segment ; S z e g m e n s d e f i n i c i o. assume c s : Pelda02, d s : P e l d a 0 2 ; Cs e s ds r e g i s z t e r e k b e a l l i ; t a s a a szegmens e l e j e r e. S t a r t : mov ax, P e l d a 0 2 ; A ds r e g i s z t e r b e a l l i t a s a. mov ds, a x mov ax, 0 b800h ; A kepernyomemoria szegmens mov es, a x ; c i m e t e s r e g i s z t e r b e t o l t i. mov d i, 1 1 4 6 ; A d i i n d e x r e g i s z t e r b e ; b e a l l i t j a az o f f s e t c i m e t. mov a l, " A " ; Al r e g i s z t e r b e az "A" b e t u ; a s c i i k o d j a t t o l t i. mov ah, 7 ; A b e t u s z i n e t f e k e t e a l a p o n ; f e h e r s z i n u r e a l l i t j a. mov e s : [ d i ], a x ; Az e s : d i a l t a l m u t a t o t t ; c i m r e i r j a ax t a r t a l m a t a z a z ; a f e k e t e a l a p o n f e h e r "A" ; b e t u t. mov ax, 4 c00h ; K i l e p e s a DOS b a. i n t 21 h P e l d a 0 2 Ends ; A szegmens v e g e. End S t a r t ; A program v e ge

Programozási nyelvek C C++ Dennis Ritchie, Bell Laboratories (1969-1973): C programnyelv UNIX operációs rendszer Szabványok: K&R (1978), ANSI (vagy C89, 1989), C99, C11. Tulajdonságok: általános célú, imperatív (parancsoló, a programnak hogyan kell m ködnie a megfelel állapotváltozások eléréséhez), strukturált (forrásfájlok, blokkok, ciklusok, stb. áttekinthet ség) Bjarne Stroustroup (1979): C with Classes Szabványok: C++ (1983), The C++ Programming Language (1985),..., ISO/IEC 14882:2017 Tulajdonságok, általános célú, procedurális, funkcionális, objektum-orientált, nagyrészt C kompatibilis

Programozási nyelvek Irodalom Brian W. Kernighan, Dennis M. Rithcie: A C programozási nyelv - Az ANSI szerint szabványosított változat Benk László, Benk Tiborné, Tóth Bertalan: Programozzunk C nyelven! - Kezd knek - középhaladóknak Bauer Péter: C programozás Bauer Péter, Hatwágner F. Miklós: Programozás I-II Bjarne Stroustrup: A C++ programozási nyelv I-II. kötet Szoftverek Microsoft Visual Studio QT Creator IDE GNU Compiler Collection Code::Blocks Geany

Programozási nyelvek Tiobe programozási nyelv népszer ségi index, 2018. szeptember

Programozási nyelvek #i n c l u d e <s t d i o. h> i n t main ( v o i d ) { i n t i ; f o r ( i =1; i <=10; i ++) p r i n t f ( "%d ", i ) ; p r i n t f ( "\n" ) ; r e t u r n 0 ; } c l a s s Szamok { p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { f o r ( i n t i =1; i <=10; i ++) System. out. p r i n t ( i + " " ) ; System. out. p r i n t l n ( ) ; } } <?php f o r ( $ i =1; $ i <=10; $ i ++) e c h o $ i. ' ' ;?> v a r u z e n e t = "" ; f o r ( v a r i =1; i <=10; i ++) u z e n e t += i + " " ; a l e r t ( u z e n e t ) ;

Forrásfájltól a futtatásig 1 Forrásszöveg megszerkesztése (többnyire.c kiterjesztés, ASCII szövegfájl) / Ez a s o r egy m e g j e g y z e s / #i n c l u d e <s t d i o. h> i n t main ( v o i d ) { p r i n t f ( " Ez az e l s o C programunk! \ n" ) ; r e t u r n 0 ; }

Forrásfájltól a futtatásig 2 Összeállítás (build) gcc -Wall -o elso elso.c 3 Futtatás Linux terminál wajzy@wajzy-notebook:~/dokumentumok/gklb_intm023/ea01$./elso Ez az elso C programunk! wajzy@wajzy-notebook:~/dokumentumok/gklb_intm023/ea01$

Forrásfájltól a futtatásig Az összeállítási folyamat résztevékenységei 1 Fordítás (compiler) elso.c fordító elso.o Fordítás (compile) GCC-vel gcc -Wall -c elso.c Üzenetek típusai: hibaüzenetek (error) szintaktikai hiba, nem jön létre tárgymodul gyelmeztet üzenetek (warning) gyelmeztetés gyanús megoldásra, javaslattétel, létrejön a tárgymodul (object le)

Forrásfájltól a futtatásig Az összeállítási folyamat résztevékenységei 2 Kapcsoló-szerkesztés (link) gcc -o elso elso.o fv.-ek tárgykódja: statikus könyvtárakban (.lib, run-time library vagy standard library) elso.o indító program (.o) könyvtárak (.lib) kapcsolószerkesztő elso A kapcsoló-szerkeszt hibaüzenetei

Forrásfájltól a futtatásig Összeállítás gcc -Wall -o elso elso.c { elso.c Fordítás gcc -Wall -c elso.c } elso.o indító program könyvtárak } elso Kapcsoló-szerkesztés gcc -o elso elso.o

Forrásfájltól a futtatásig / Ez a s o r egy m e g j e g y z e s / #i n c l u d e <s t d i o. h> i n t main ( v o i d ) { p r i n t f ( " Ez az e l s o C programunk! \ n" ) ; r e t u r n 0 ; }

Forrásfájltól a futtatásig Megjegyzések: // után a sor végéig (csak C99 vagy újabb fordítókkal) /* és */ között akár több soron át Az el feldolgozó törli ket Direktívák: # kezdet sorok #include<... > beszerkeszti a fejfájl (header) tartalmát pl. konstansok, könyvtári függvények használatához (pl. /usr/include/stdio.h) Direktíva, megjegyzés: el feldolgozó (preprocessor) dolgozza fel elso.c előfeldolgozó fordító elso.o

Forrásfájltól a futtatásig A main függvény Függvény: adatok és végrehajtható utasítások csoportja. M ködésük paraméterekkel hangolható, értéket adhatnak vissza. Függvény deníció: teljes információt szolgáltat a függvényr l típus függvénynév(formális-paraméterlista) { függvény-test } A main speciális: a program belépési pontja (entry point) Állapotkódot ad vissza az OS-nek (0: minden OK) Visszatérési érték: return után ; utasítás (statement) végének jelzése

Forrásfájltól a futtatásig Szabványos folyamok Kimenet (stdout, képerny ), használata pl. printf-fel Bemenet (stdin, billenty zet), használata pl. scanf-fel Hiba (stderr, képerny ), használata pl. fprintf-fel (nem puerelt) A printf függvény hívása Célja: üzenetek megjelenítése Az idéz jelek közötti karakterláncot nyomtatja a szabvány kimenetre A \n ún. escape-szekvencia, nem nyomtatható karakterek megadására

Forrásfájltól a programfuttatásig Esc. szekv. Jelentés \a gyelmeztet jelzés (bell, cseng ) \b visszalépés (backspace) \f lapdobás (form feed) \n új sor (new line) \r kocsi vissza (carriage return) \t vízszintes tabulátor (horizontal tab, HTAB) \v függ leges tabulátor (vertical tab, VTAB) \\ fordított törtvonal (backslash) \? kérd jel \' aposztróf \" idéz jel \ooo oktális szám \xhh hexadecimális szám \0 zérus ASCII kódú karakter