Programozás alapjai C nyelv 1. gyakorlat

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

Download "Programozás alapjai C nyelv 1. gyakorlat"

Átírás

1 Programozás alapjai C nyelv 1. gyakorlat Szeberényi Imre BME IIT <szebi@iit.bme.hu> Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Történeti áttekintés Blaise Pascal ( ), mechanikus 6 digites összeadó/kivonó gép Charles Babbage ( ) Analitical Engine - a mai digitális számítógépek előfutára, Bár a tervek jók voltak, a kor technológiai színvonalán elkészítésükre nem volt esély. Ada Byron ( ) Az első példaprogramok az Analitical Engine-re Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Történeti áttekintés Hermann Hollerith ( ) Elektromos, lyukkártya alapú gép népszámlálási adatok feldolgozására (1896-ban megalapítja a Tabulating Machine Company-t, melyet 1924-től IBM-ként ismerünk) Howard Aiken (IBM 1943) MARK I. telefonreléken alapuló gép 18m hosszú, 2.5m magas gép, kb 300 ms egész összeadási sebesség Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

2 Történeti áttekintés Neumann János (1946) "Előzetes gondolatok egy számító berendezés logikai tervéről" című tanulmány EDVAC (1951) ezen alapuló gyakorlati megvalósítás 1951 Mikroprogramozás elve 1971 Intel Intel iapx Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Neumann modell jellemzői Utasítás és adat azonos közegben és formában van tárolva (tárolt program). Az utasításszámláló által címzett adat lesz a következő utasítás. Adat vagy utasítás? Csak annak értelmezésétől függ. Szekvenciális utasítás végrehajtás. Egydimenziós, lineáris címzésű memória. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Neumann modell Operatív tár BE ALU KI Vezérlő egység Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

3 Processzor ALU Belső busz Busz interfész cím adat vezérlő jelek Regiszterek Vezérlő és utasítás dekódoló Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Mai számítógép Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Jellegzetes gépi utasítások Egyszerű műveletek, de gyors végrehajtás: adatok mozgatása (ld, st, in, out) aritmetikai műveletek (add, sub, mul, div) logikai műveletek (and, or, shift) vezérlésátadó műveletek (jp, jz, call, ret) veremkezelő műveletek (push, pop) Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

4 Gépek programozása/használata Gépi kódban mindent a legutolsó műveletig Könyvtárak a közös feladatokra Monitorok - kötegelt feldolgozás Kezdeti op. rendszerek B/K, fájl Mai operációs rendszerek több felhasználó, több taszk, védelem, hálózat, valós idő,... Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Szoftver komponensek 1. felhasználó számítógép 3. felhasználó 2. felhasználó operációs rendszer 4. felhasználó alkalmazói porgramok Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Operációs rendszer feladatai Operációs rendszer feladatai file fájlkezelés tárgazdálkodás felhasználói felület hálózatkezelés ütemezés védelem perifériakezelés Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

5 Programozás kódolás Fő lépései: specifikáció tervezés algoritmus választás adatszerkezet választás nyelv választása kódolás tesztelés dokumentálás Nagyon fontos a lépések folyamatos ellenőrzése, dokumentálása! Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Programozási paradigmák Imperatív Deklaratív Objektum-orientált, Aspektus-orientált Üzenet-orientált, Függvény-orientált Adatfolyam-orientált, Esemény-orientált Szimbolikus... Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Program, algoritmus Algoritmus + Adatstruktúra = program Algoritmus Tevékenységek és döntések egy sorozata Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

6 Algoritmus megadása Szóban: Olvass be egy számot és írd ki hogy páros-e! Folyamatábrával Struktogrammal Mondatszerű leírással (pszeudokód) Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Folyamatábra Start A n A páros? i páratlan páros Stop Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Stuktogram be: A nem A páros? igen ki: páratlan ki: páros Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

7 Pszeudokód Olvassd be A-t Ha A páros akkor írd ki: páros különben írd ki: páratlan vége be: A Ha A páros akkor ki: páros különben ki: páratlan vége Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I C programozási nyelv Egy kis történelem B, BCPL (1970) - típus nélküli nyelvek FORTRAN, ALGOL UNIX (1969) 1973-ban újraírják C nyelven (~8000 C sor sor assembly nyelven) A C nyelvet a legkülönbözőbb gépeken implementálták (mikro -> mainframe). Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I C nyelv jellemzői Magas szintű nyelvekre jellemző adatszerkezetek és vezérlési struktúrák. Hatékony gépközeli megfogalmazás. Rendszerprogramozási nyelv. Függvényorientált, egyszintű. Rekurzív fv. hívási lehetőség. Kevésbé szigorú típusellenőrzés. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

8 C nyelv jellemzői (2) Standard függvénykészlet, ami nem része a nyelvnek de elengedhetetlen. Nyelvi szinten közvetlenül nem támogatja a dinamikus adatszerkezeteket. Nyelvi szinten nem támogatja a konkurens programozást és az ahhoz tartozó szinkronizációs mechanizmusokat. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I C nyelv jellemzői (3) Magas szintű nyelvek C nyelv Olvasható assembly Gépi nyelvek (assembly) Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Hagyományos C fordító C forrás (.c) PP Előfeld. forrás C0 Közb. kód Szerk. gépi kód (.obj) Ass Gépi nyelv (assembly) C1 Más obj. Könyvtár (.lib) Link Futtatható kód (.exe) Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

9 Hagyományos C fordító (2) Közbülső kód minden olyan információt hordoz, ami a kódgeneráláshoz szükséges. C1 átírása egy új architektúrához 2-3 mérnökhónapba telik. Ezen kívül implementálni kell a könyvtári függvényeket, melyek többnyire C nyelven vannak megírva. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I preprocesszor dolgozza fel Első program #include <stdio.h> main() azonosító { printf( Hello Cicus!\n ); } c:> cc elso.c c:> elso.exe c:> Hello Cicus! c:> könvtári függvény Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Nyelvek szabályainak megadása Erőteljes magyarázat Leíró vagy metanyelv (pl. BNF) szabványokban, könyvekben (pl. K&R) Szintaxis diagram referencia kártyákon Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

10 Szintaxis diagram irányított gráf nem terminális szimbólum tovább bontható Terminális szimbólum nem bontható tovább Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Szintaxis diagram példák előjeles dec. szám: + dec. szám - dec. szám: dec. számjegy dec. számjegy: Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I BNF (Backus-Naur Form) <nem terminális> tovább bontható fogalom v. szimb. ::= definíció vagy kapcsolat Példa: <előjeles dec. szám> ::= + <dec. szám> <dec. szám> -<dec. szám> Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

11 EBNF (Extended BNF) <nem terminális> tovább bontható fogalom v. szimb. ::= definíció vagy kapcsolat < > + ismétlődés egyszer v. többször < > * ismétlődés nullaszor v. többször { } u.a. mint a * (gyakran használják) [ ] ismétlődés nullaszor v. egyszer ( ) csoportosítás, de a {}-t is használják a csillag használatakor Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I EBNF példák <előjeles dec. szám> ::= [ + - ] <dec. szám> <dec. szám> ::= <dec. számjegy> + <dec. számjegy> ::= <dec. szám> ::= <dec. számjegy> [ <dec. szám> ] <azonosító> ::= <betű> { <betű> <számjegy> } <azonosító> ::= <betű> { <betű> <számjegy> } * <azonosító> ::= <betű> <betű> <számjegy> Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I C nyelv szintaktikája EBNF-hez hasonló, de más jelölésekkel: fordítási_egység: külső_deklaráció fordítási_egység külső_deklaráció külső_deklaráció: függvénydefiníció deklaráció függvénydefiníció: deklaráció_sp. opc deklarátor dekl_lista. opc összetett_ut. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

12 összetett utasítás standard függvény hívása Első program újból #include <stdio.h> main() { printf( Hello Cicus!\n ); } fv. argumentum standard I/O-ra vonatkozó definiciók külső deklaráció Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Két szám összege Start a, b c:= a + b program = algoritmus + adatstruktúra Az adatokat változókban tároljuk c Stop Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Változó, azonosító, típus Változókban tároljuk az adatokat. A változókat azonosítóval nevezzük el. A változó típusa meghatározza: az értékkészletet, a konstansokat, a művelethalmazt, néha belső tárolási formát is, bár ezt többnyire az implementáció határozza meg. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

13 C nyelv típusai Egyszerű típusok karakter, egész, valós, felsorolás Összetett vagy származtatott típusok tömb, struktúra, unió, függvény, mutató, bitmező Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Változók deklarálása A C nyelvben minden változót deklarálni kell. int AlMa; char ch; float x; Memóriában keletkezik egy egész típusú változó tárolására alkalmas hely Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Két egész szám összege #include <stdio.h> main() { int a, b, c; formátum lista (string) változó scanf( %d %d, &a, &b); c = a + b; printf( c = %d\n, c); } formátum megadás következik Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

14 Egész típus (int) értékkészlet: egészek tárolására alkalmas [ INT_MIN, INT_MAX ] <limits.h>-ban definiált konstansok: decimális (12), oktális (012), hexa (0x12), előjeletlen (12u), hosszú (12L) művelethalmaz (operátorok): értékadó aritmetikai, logikai, bitenkénti, relációs belső ábrázolás: legtöbb implementációban kettes komplemens. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Egész típus (példák) register int a, b; long int hosszu; unsigned int ui; short int rovid; a = 123; ui = 123; b = 0123; hosszu = 0x23AL; rovid = 34; Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Adatok ábrázolása bit -> kétállapotú (igaz, hamis), (1, 0) (piros, zöld), (hideg, meleg) stb. n db bit -> 2 n különböző információ A jelentés (értelmezés) tőlünk függ. Előjeletlen egészekre kézenfekvő. Hogyan érdemes előjeles számokat ábrázolni? Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

15 Előjeles egészek ábrázolása előjeles abszolútértékes eltolt nullpontú (egyes) komplemens kettes komplemens A továbbiakban 4 biten vizsgáljuk meg ezen módszerek lényegét. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I előjel Előjeles abszolútértékes abszolút érték Néhány példa: 0001 = = = = = = = -0 Összeadás egyszerű összeadóval: 0001 = = = -2 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Eltolt nullpontú Legyen pl. a nulla az 1000 érték! Néhány példa: 0000 = = = = = = = +7 Összeadás egyszerű összeadóval: 0111 = = = -8 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

16 Komplemens v. egyes kompl. Ha X negatív, akkor abszolút értékét komplementáljuk (bitenként negáljuk), egyébként binárisan ábrázoljuk. Néhány példa: 0001 = = = 0 ~ = -1 ~ = -5 Összeadás egyszerű összeadóval: 1110 = = = -0 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Kettes komplemens Ha X negatív, akkor abszolút értékét komplementáljuk majd hozzáadunk egyet, egyébként binárisan ábrázoljuk. Néhány példa: 0001 = = = 0 ~ = -1 ~ = -5 Összeadás egyszerű összeadóval: 1111 = = = 0 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Kettes komplemens (2) A legmagasabb helyiértékű bit előjel bitként viselkedik. A szám abszolút értékének kiszámításához az előző szabályt kell követni (komplemens +1) Példa: 1110 =? 0001 Def. szabály: = -2 X, ha X nem negatív X 2 n - X, ha X negatív Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

17 Eredmény hihetősége 0101 = = =?-6 ~ = 6 Két pozitív szám összege negatív lett! Miért? Kiléptünk a számábrázolási tartományból! (A +10 már nem ábrázolható 4 biten!) A legtöbb magas szintű nyelv nem jelzi az egész aritmetika túlcsordulását! Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Feladat: Hány bites az int? Ötlet: Egy int értéket állítsunk 1-re! Szorozzuk addig kettővel, amíg az eredmény pozitív! Számoljuk meg, hogy hányszor tudtuk szorozni! Szorzás kettővel: Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Valós típus (float, double) értékkészlet: valós értékek tárolására [ FLT_MIN, FLT_MAX ], [DBL_MIN, DBL_MAX] <float.h>-ban definiált konstansok: 3., 3.14, 5e-2, -4.12f, 3.2L művelethalmaz: értékadó, aritmetikai, relációs belső ábrázolás: lebegőpontos Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

18 Valós típus (példák) float f1, f2; double d1, d2; long double ld1, ld2; f1 = 3.; /* törtrész elmaradt */ f2 =.312; /* egészrész elmaradt */ d1 = 45.34; ld1 = 1e-23; /* tizedespont elmaradt */ Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Valós számok ábrázolása Fixpontos ábrázolás Lebegőpontos ábrázolás Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Fixpontos ábrázolás Fixpontos ábrázolás (8 biten a példa kedvéért): előjel egészrész. kettedespont Néhány példa: = = = = törtrész Legkisebb absz: Legnagyobb absz: Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

19 Lebegőpontos ábrázolás Lebegőpontos ábrázolás (8 biten a példa kedvéért): előjel (s) karakterisztika (k) eltolt nullp. kettedespont. mantissza (m) X = (-1) s * 2 k * m ahol: 1 <= m < * 1.5 = * 1.125= * 1.75 = * 1.00 = Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Lebegőpontos ábrázolás(2) Lebegőpontos ábrázolás (8 biten a példa kedvéért): X = (-1) s *2 k * m ahol: 1 <= m < 2, ezért m 1.xxx alakú (+1 bit) min(k) = -4, min(m) = = min( X ) = 2-4 * (1+2-4 ) max(k) = 3, max(m) = max( X ) = 2 3 * ε = 2-4 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Valós számok halmaza A ábrázolás miatt nem csak egy alsó és felső határ keletkezik, hanem a folytonos számegyenes egymástól nem megkülönböztethető számokat tartalmazó darabokra esik szét. x-ε x x+ε -max -min 0 min max Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

20 IEEE szabvány Egyszeres pontosság 32 biten: s = 1 bit, k = 8 bit (eltolt nullpontú +127), m = 23 bit s k m' m = m-1 Speciális értékek: k = 255 m 0 --> Nem érvényes szám k = 255 m = 0 --> ± k = 0 m = 0 --> 0 0 < k < 255 m 0 --> X = (-1) s *2 k-126 * m k = 0 m 0 --> X = (-1) s *2-126 * m Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I IEEE szabvány (2) min(k) = -126, min(m) = 2-23 min( X ) = * 2-23 = e-45 max(k) = 127, max(m) 2 max( X ) * 2 = = 3.4e+38 ε = e-7 Nem egyezik az FLT_MIN értékkel! (1.175e-38) Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Adatok beolvasása/kiírása Elvégzi adatok konvertálását a belső és külső ábrázolásnak megfelelően. A külső ábrázolás szöveges, a belső gépi. printf(formátum, adat1, adat2, adat3,...) scanf(formátum, cím1, cím2, cím3,...) printf("a=%d b=4.2%f", a, 9.84); formátum adat scanf("%d %f", &a &b); cím Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

21 Print függvény (printf) A formátumlistából tudja, hogy milyen formában kell kiírnia a belső ábrázolású adatot. Nem nyelvi elem! Nincs lehetőség annak ellenőrzésére, hogy a formátumlista és a paraméterek száma/típusa összhangban van-e. Az inkonzisztencia veszélyes hibaforrás is lehet. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I printf formátuma %[flags][size][.prec][lengt]type type: diouxxpfeeggcsn% d, i, u decimális egész (u - előjeletlen) o oktális egész x, X hexadecimális egész p pointer f lebegőpontos (±dd.pp) e, E tudományos lebegőpontos (±dd.ppe±xx) g, G e vagy f, amelyik a rövidebb c karakter s string n kiírt karakterek számát az arg-ba teszi (int *) Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I printf formátuma (2) %[flags][size][.prec][length]type length: hll h short, vagy unsigned short típushoz l long vagy unsigned long típushoz L long double típushoz Lebegőpontos formátumban a float és double értékek egyaránt kiírathatók. Integer formátumban bármely skalár típus kiíratható. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

22 printf formátuma (3) %[flags][size][.prec]type flags: -+#0 - balra igazítás + előjel a pozitív értékre is szóköz: pozitiv érték előjele szóköz lesz (alap); e és f formátumoknál mindig van tizedespont # oktális számok 0-val hexa számok 0x-szel 0 bevezető nullák kiírása Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I printf formátuma (4) %[flags][size][.prec]type size: Egész szám vagy * * Esetén a méretet az argumentumlista következő eleme adja, ami int típusú kell hogy legyen. Értelmezés: minimális mezőszélesség (ha nem fér bele, akkor nem csonkol!); Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I printf formátuma (5) %[flags][size][.prec]type prec: Egész szám vagy * * Esetén a méretet az argumentumlista következő eleme adja, ami int típusú kell hogy legyen. Értelmezés formátumfüggő: int formátum: a számjegek minimális száma e és f formátum: a tizedesjegyek száma; g formátum: lényeges számjegyek száma s formátum: karakterek maximális száma Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

23 printf példák printf("a=%d b=%03x c=%3.1f", 1, 18, 9.86); printf("a=%d b=%03x", 1, 18, 9.84); printf("a=%d b=%03x c=3.1%f", 1, 18); int i = 2005; printf("%f", i); printf("%c", i); a=1 b=012 c=9.9 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Scan függvény (scanf) A formátumlistából tudja, hogy milyen belső formába kell konvertálnia a beolvasott adatot. A formátumlista nem speciális karaktereit megkövetelt inputként kezeli (illeszt). Az illeszkedést a visszatérési értékben jelzi. Nem nyelvi elem! Nincs lehetőség annak ellenőrzésére, hogy a formátumlista és a paraméterek száma/típusa összhangban van-e. Az inkonzisztencia nagyon veszélyes hibaforrás is lehet. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I scanf formátuma %[*][size][lengt]type type: diouxxpfeeggcsn% d, u decimális egész (u - előjeletlen) i decimális egész (oktális, hexa) o oktális x, X hexadecimális p pointer f,e,e,g,g lebegőpontos szám c karakter s string Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

24 scanf formátuma (2) [...] Karaktersorozat illesztés. A zárójelekben levő szereplő karakterek (illesztési halmaz) sorozatát beolvassa és a char * argumentumba teszi lezáró nullával. [A-Z] Karakter sorozat illesztés az intervallumba eső karakterekre (pl. nagybetűk). [^...] Karakter sorozat illesztés. A halmazra nem illeszkedő karaktersorozatot olvas be. []...-] ] és - jelek is a halmazban vannak. A ] jel csak elöl lehet, - csak a végén. n beolvasott karakterek számát az arg-ba teszi Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I scanf formátuma (3) %[*][size][length]type length: hll h short, vagy unsigned short típushoz l long, unsigned long, vagy double típushoz L long double típushoz Nagyon fontos a helyes méret megadása. Rossz megadás végzetes hibához vezethet. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I scanf formátuma (4) %[*][size][lengt]type *: A beolvasott érték nem tárolódik, azaz a címlistán nem tartozik hozzá cím. size: egész szám, ami a mező maximális méretét adja meg. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

25 scanf működése A scanf megpróbálja az inputot illeszteni a formátumra, mint mintára. A nem %-kal kezdődő karaktereket mintának tekinti, aminek pontosan illeszkedni kell. Kivéve a whitespace karakterek, melyek tetszőleges számú whitespace karakterből álló sorozatot jelentenek az inputon. Visszatérési értékben jelzi, hogy hány beolvasást végzett el sikeresen. Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I scanf példák scanf("%d%d", &a, &b); // két decimális szám scanf("%d-%d", &a, &b); // dec.szám kötőjellel scanf("a=%d", &a); // a=decimális szám scanf("%*[a-z]=%d", &a); // AZON=dec.szám char c; scanf("%s", &c); double x; scanf("%f", &x); karakterbe olvas stringet double-be float-ot Megjegyzés: printf-fel lehet %f-fel double-t kírni. Miért? Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

Programozás alapjai C nyelv 1. gyakorlat

Programozás alapjai C nyelv 1. gyakorlat Programozás alapjai C nyelv 1. gyakorlat Szeberényi Imre BME IIT Történeti áttekintés Blaise Pascal (1623-1662), mechanikus 6 digites összeadó/kivonó gép Charles Babbage (1792-1871)

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

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

Információs Technológia

Információs Technológia Információs Technológia Programozási nyelvek kialakulása, a C nyelv Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2009 szeptember

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

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.

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. 212. február 28. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? Programtervezési stratégiák Top-down Bottom-up Függvények Szintaxis

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

Aritmetikai utasítások I.

Aritmetikai utasítások I. Aritmetikai utasítások I. Az értékadó és aritmetikai utasítások során a címzési módok különböző típusaira látunk példákat. A 8086/8088-as mikroprocesszor memóriája és regiszterei a little endian tárolást

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

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

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

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

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév Az informatika története (ebből a fejezetből csak a félkövér betűstílussal szedett részek kellenek) 1. Számítástechnika

Részletesebben

5. Fejezet : Lebegőpontos számok

5. Fejezet : Lebegőpontos számok 5. Fejezet : Lebegőpontos The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley College Linda

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

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}

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} 3. gyakorlat Számrendszerek: 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} Alaki érték: 0, 1, 2,..., 9,... Helyi

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

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

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 programozás. 1 óra Bevezetés

C programozás. 1 óra Bevezetés C programozás 1 óra Bevezetés A C nyelv eredete, fő tulajdonságai 1. Bevezető C nyelv alapelemei többsége a BCPL (Basic Combined Programming Language {1963}) Martin Richards B nyelv Ken Thompson {1970}

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

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

Dr. Oniga István DIGITÁLIS TECHNIKA 2

Dr. Oniga István DIGITÁLIS TECHNIKA 2 Dr. Oniga István DIGITÁLIS TECHNIKA 2 Számrendszerek A leggyakrabban használt számrendszerek: alapszám számjegyek Tízes (decimális) B = 10 0, 1, 8, 9 Kettes (bináris) B = 2 0, 1 Nyolcas (oktális) B = 8

Részletesebben

Informatikai Rendszerek Alapjai

Informatikai Rendszerek Alapjai Informatikai Rendszerek Alapjai Egész és törtszámok bináris ábrázolása http://uni-obuda.hu/users/kutor/ IRA 5/1 A mintavételezett (egész) számok bináris ábrázolása 2 n-1 2 0 1 1 0 1 0 n Most Significant

Részletesebben

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva: Tartalom 1. Számrendszerek közti átváltás... 2 1.1. Megoldások... 4 2. Műveletek (+, -, bitműveletek)... 7 2.1. Megoldások... 8 3. Számítógépes adatábrázolás... 10 3.1. Megoldások... 12 A gyakorlósor lektorálatlan,

Részletesebben

5. Fejezet : Lebegőpontos számok. Lebegőpontos számok

5. Fejezet : Lebegőpontos számok. Lebegőpontos számok 5. Fejezet : Lebegőpontos The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley College Linda

Részletesebben

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 . Fejezet : Számrendszerek The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach. kiadás, Irv Englander John Wiley and Sons Wilson Wong, Bentley College Linda Senne,

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

Harmadik gyakorlat. Számrendszerek

Harmadik gyakorlat. Számrendszerek Harmadik gyakorlat Számrendszerek Ismétlés Tízes (decimális) számrendszer: 2 372 =3 2 +7 +2 alakiérték valódi érték = aé hé helyiérték helyiértékek a tízes szám hatványai, a számjegyek így,,2,,8,9 Kettes

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

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez Sándor Tamás, sandor.tamas@kvk.bmf.hu Takács Gergely, takacs.gergo@kvk.bmf.hu Lektorálta: dr. Schuster György PhD, hal@k2.jozsef.kando.hu

Részletesebben

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva: Tartalom 1. Számrendszerek közti átváltás... 2 1.1. Megoldások... 4 2. Műveletek (+, -, bitműveletek)... 7 2.1. Megoldások... 8 3. Számítógépes adatábrázolás... 12 3.1. Megoldások... 14 A gyakorlósor lektorálatlan,

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

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

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

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat Formális nyelvek a gyakorlatban Formális nyelvek, 1 gyakorlat Segédanyagok Célja: A programozási nyelvek szintaxisának leírására használatos eszközök, módszerek bemutatása Fogalmak: BNF, szabály, levezethető,

Részletesebben

4. Fejezet : Az egész számok (integer) ábrázolása

4. Fejezet : Az egész számok (integer) ábrázolása 4. Fejezet : Az egész számok (integer) ábrázolása The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson

Részletesebben

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

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix 2. Adattípusonként különböző regisztertér Célja: az adatfeldolgozás gyorsítása - különös tekintettel a lebegőpontos adatábrázolásra. Szorzás esetén karakterisztika összeadódik, mantissza összeszorzódik.

Részletesebben

2. Fejezet : Számrendszerek

2. Fejezet : Számrendszerek 2. Fejezet : Számrendszerek The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley College

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

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

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

Előző óra összefoglalása. Programozás alapjai C nyelv 3. gyakorlat. Karakter típus (char) Karakter konstansok. Karaktersorozatot lezáró nulla

Előző óra összefoglalása. Programozás alapjai C nyelv 3. gyakorlat. Karakter típus (char) Karakter konstansok. Karaktersorozatot lezáró nulla Programozás alapja C yelv 3. gyakorlat Szeberéy Imre BME IIT Programozás alapja I. (C yelv, gyakorlat) BME-IIT Sz.I. 25..3.. -- Előző óra összefoglalása Algortmus leírása Sztaxs leírása

Részletesebben

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

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 Alapfogalmak Dr. Kallós Gábor 2007-2008. A számítógép felépítése A Neumann-elv A számítógéppel szemben támasztott követelmények (Neumann János,. Goldstine, 1945) Az elv: a szekvenciális és automatikus

Részletesebben

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

B I T M A N B I v: T M A N Műszaki informatika Tesztek+Megoldások B I v: T 2015.04.19 M A N 1/42 Tesztek + Megoldások Alapfogalmi kitérő kérdéssor IPA kérdéssor CPA kérdéssor 2/42 Ellenőrző kérdések 1. 1. Melyik Neumann elv következménye

Részletesebben

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

Máté: Számítógép architektúrák Fixpontos számok Pl.: előjeles kétjegyű decimális számok : Ábrázolási tartomány: [-99, +99]. Pontosság (két szomszédos szám különbsége): 1. Maximális hiba: (az ábrázolási tartományba eső) tetszőleges valós

Részletesebben

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union

Programozás alapjai C nyelv 10. gyakorlat. Standard függvények. Union Programozás alapjai C nyelv 10. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.21. -1- Standard függvények Standard függvények amelyeket

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

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

Kifejezések. Kozsik Tamás. December 11, 2016 Kifejezések Kozsik Tamás December 11, 2016 Kifejezés versus utasítás C/C++: kifejezés plusz pontosvessző: utasítás kiértékeli a kifejezést jellemzően: mellékhatása is van például: értékadás Ada: n = 5;

Részletesebben

Fixpontos és lebegőpontos DSP Számrendszerek

Fixpontos és lebegőpontos DSP Számrendszerek Fixpontos és lebegőpontos DSP Számrendszerek Ha megnézünk egy DSP kinálatot, akkor észrevehetjük, hogy két nagy család van az ajánlatban, az ismert adattipus függvényében. Van fixpontos és lebegőpontos

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

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék Gyakorló feladatok Számrendszerek: Feladat: Ábrázold kettes számrendszerbe a 639 10, 16-os számrendszerbe a 311 10, 8-as számrendszerbe a 483 10 számot! /2 Maradék /16 Maradék /8 Maradék 639 1 311 7 483

Részletesebben

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

Programozás alapjai 2.Gy: A C nyelv alapjai P R O Programozás alapjai 2.Gy: A C nyelv alapjai. P R O A L A G 1/32 B ITv: MAN 2018.10.02 Code::Blocks Indítsa el mindenki! 2/32 1 Code::Blocks Új projekt 2 3 4 5 3/32 Code::Blocks Forráskód Kód fordítása:

Részletesebben

Digitális technika VIMIAA hét

Digitális technika VIMIAA hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK VIMIAA02 14. hét Fehér Béla BME MIT Rövid visszatekintés, összefoglaló

Részletesebben

Digitális technika VIMIAA hét

Digitális technika VIMIAA hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA02 14. hét Fehér Béla BME MIT Digitális technika

Részletesebben

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi C programozás Márton Gyöngyvér, 2009 Sapientia, Erdélyi Magyar Tudományegyetem http://www.ms.sapientia.ro/~mgyongyi 1 Könyvészet Kátai Z.: Programozás C nyelven Brian W. Kernighan, D.M. Ritchie: A C programozási

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

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

Máté: Számítógép architektúrák Bit: egy bináris számjegy, vagy olyan áramkör, amely egy bináris számjegy ábrázolására alkalmas. Bájt (Byte): 8 bites egység, 8 bites szám. Előjeles fixpontok számok: 2 8 = 256 különböző 8 bites szám lehetséges.

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

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez Pásztor Attila Algoritmizálás és programozás tankönyv az emeltszintű érettségihez 3. ADATTÍPUSOK...26 3.1. AZ ADATOK LEGFONTOSABB JELLEMZŐI:...26 3.2. ELEMI ADATTÍPUSOK...27 3.3. ÖSSZETETT ADATTÍPUSOK...28

Részletesebben

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt! Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt! valós adatokat növekvő sorrendbe rendezi és egy sorba kiírja

Részletesebben

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba Hibaforrások Hiba A feladatok megoldása során különféle hibaforrásokkal találkozunk: Modellhiba, amikor a valóságnak egy közelítését használjuk a feladat matematikai alakjának felírásához. (Pl. egy fizikai

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

Matematikai alapok. Dr. Iványi Péter

Matematikai alapok. Dr. Iványi Péter Matematikai alapok Dr. Iványi Péter Számok A leggyakrabban használt adat típus Egész számok Valós számok Bináris számábrázolás Kettes számrendszer Bitek: és Byte: 8 bit 28 64 32 6 8 4 2 bináris decimális

Részletesebben

A C++ nyelvben a függvény nevek túlterhelésével biztonságosabbá tehetnénk az adatok kiírását és beolvasását.

A C++ nyelvben a függvény nevek túlterhelésével biztonságosabbá tehetnénk az adatok kiírását és beolvasását. 1. Motiváció C nyelvben a printf és a scanf függvények használata a programozótól nagy körültekintést igényel. A változó számú argumentum miatt a fordító nem tudja ellenőrizni, hogy a formátum mezőben

Részletesebben

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

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

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

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407) Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407) 1 Előadás Bevezetés az informatikába Adatszerkezetek Algoritmusok, programozási technológiák Számítástudomány alapjai

Részletesebben

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

S z á m í t ó g é p e s a l a p i s m e r e t e k S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami

Részletesebben

7. gyakorlat Sorozatok, Fájlkezelés

7. gyakorlat Sorozatok, Fájlkezelés 7. gyakorlat Sorozatok, Fájlkezelés Házi ellenőrzés - f0124 Írj programot, amelyben a felhasználónak egy, a program által meghatározott számot kell kitalálnia! A felhasználó tippjét a program vagy elfogadja,

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

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

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

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 Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Adattípusok Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Az adatmanipulációs fa z adatmanipulációs fa

Részletesebben

A C nyelv aritmetikai típusai. Struktúrák.

A C nyelv aritmetikai típusai. Struktúrák. Aritmetikai típusok Struktúrák Typedef A C nyelv aritmetikai típusai. Struktúrák. 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

Részletesebben

Összeadás BCD számokkal

Összeadás BCD számokkal Összeadás BCD számokkal Ugyanúgy adjuk össze a BCD számokat is, mint a binárisakat, csak - fel kell ismernünk az érvénytelen tetrádokat és - ezeknél korrekciót kell végrehajtani. A, Az érvénytelen tetrádok

Részletesebben

Adatszerkezetek 1. Dr. Iványi Péter

Adatszerkezetek 1. Dr. Iványi Péter Adatszerkezetek 1. Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot kódoltan tároljuk

Részletesebben

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök Dr. Bécsi Tamás 4. Előadás A?: operátor Nézzük meg a következő kifejezést: if (a>b) z=a; else z=b; Ez felírható

Részletesebben

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

Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az

Részletesebben

Adatbázis rendszerek Gy: Algoritmusok C-ben

Adatbázis rendszerek Gy: Algoritmusok C-ben Adatbázis rendszerek 1. 1. Gy: Algoritmusok C-ben 53/1 B ITv: MAN 2015.09.08 Alapalgoritmusok Összegzés Megszámlálás Kiválasztás Kiválasztásos rendezés Összefésülés Szétválogatás Gyorsrendezés 53/2 Összegzés

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

LEBEGŐPONTOS SZÁMÁBRÁZOLÁS

LEBEGŐPONTOS SZÁMÁBRÁZOLÁS LEBEGŐPONTOS SZÁMÁBRÁZOLÁS A fixpontos operandusoknak azt a hátrányát, hogy az ábrázolás adott hossza miatt csak korlátozott nagyságú és csak egész számok ábrázolhatók, a lebegőpontos számábrázolás küszöböli

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

Struktúrák (struct) A struktúra szerkezetét meghatározó deklaráció általános formája:

Struktúrák (struct) A struktúra szerkezetét meghatározó deklaráció általános formája: Struktúrák (struct) A struktúra egy olyan összetett adatszerkezet, amely nemcsak azonos típusú elemeket rendelhet össze. A struktúra definíciójában leírjuk, hogy a struktúra hogyan épül fel. A struktúra

Részletesebben

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás? Bevezetés Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések Forráskód Hibajegyzék p2p.wrox.com xiii xiii xiv xiv xvi xvii xviii

Részletesebben

Digitális technika VIMIAA01

Digitális technika VIMIAA01 BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 Fehér Béla BME MIT Digitális Rendszerek Számítógépek

Részletesebben

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

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 Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1 Ajánlott irodalom A programozás fogalma Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu 2012. február 7. A tárgy címe: A tárgy adminisztratív

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

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

sallang avagy Fordítótervezés dióhéjban Sallai Gyula sallang avagy Fordítótervezés dióhéjban Sallai Gyula Az előadás egy kis példaprogramon keresztül mutatja be fordítók belső lelki világát De mit is jelent, az hogy fordítóprogram? Mit csinál egy fordító?

Részletesebben

Programozott soros szinkron adatátvitel

Programozott soros szinkron adatátvitel Programozott soros szinkron adatátvitel 1. Feladat Név:... Irjon programot, mely a P1.0 kimenet egy lefutó élének időpontjában a P1.1 kimeneten egy adatbitet ad ki. A bájt legalacsonyabb helyiértéke 1.

Részletesebben

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő

Részletesebben

Óbudai Egyetem. C programozási nyelv

Óbudai Egyetem. C programozási nyelv Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C programozási nyelv Struktúrák és Unionok Dr. Schuster György 2016. október 6. Óbudai Egyetem Kandó Kálmán Villamosmérnöki Kar C programozási 2016. októbernyelv

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

C programozási nyelv

C programozási nyelv C programozási nyelv Struktúrák Dr Schuster György 2011 június 16 Dr Schuster György () C programozási nyelv Struktúrák 2011 június 16 1 / 11 Struktúrák Struktúrák A struktúra egy olyan összetett adatszerkezet,

Részletesebben

Programozás C++ -ban 2007/1

Programozás C++ -ban 2007/1 Programozás C++ -ban 2007/1 1. Különbségek a C nyelvhez képest Több alapvető különbség van a C és a C++ programozási nyelvek szintaxisában. A programozó szempontjából ezek a különbségek könnyítik a programozó

Részletesebben

Műveletek lebegőpontos adatokkal

Műveletek lebegőpontos adatokkal Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Műveletek lebegőpontos adatokkal Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Műveletek az IEEE 754

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 3. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

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

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik

Részletesebben

Adatok ábrázolása, adattípusok

Adatok ábrázolása, adattípusok Adatok ábrázolása, adattípusok Összefoglalás Adatok ábrázolása, adattípusok Számítógépes rendszerek működés: információfeldolgozás IPO: input-process-output modell információ tárolása adatok formájában

Részletesebben