Programozás alapjai C nyelv 1. gyakorlat

Save this PDF as:
 WORD  PNG  TXT  JPG

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 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 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 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 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. Neumann modell Operatív tár BE ALU KI Vezérlő egység Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

2 Processzor Mai számítógép 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 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) 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 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Szoftver komponensek Operációs rendszer feladatai 1. felhasználó számítógép 3. felhasználó file fájlkezelés Operációs rendszer feladatai felhasználói felület ütemezés 2. felhasználó operációs rendszer 4. felhasználó tárgazdálkodás hálózatkezelés védelem alkalmazói porgramok perifériakezelés Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

3 Programozás kódolás Programozási paradigmák 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! 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 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 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 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Folyamatábra Stuktogram Start A be: A n A páros? i nem A páros? igen páratlan páros ki: páratlan ki: páros Stop Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

4 Pszeudokód C programozási nyelv Egy kis történelem 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 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 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I C nyelv jellemzői C nyelv jellemzői (2) 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. 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 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I C nyelv jellemzői (3) Hagyományos C fordító Magas szintű nyelvek C forrás (.c) PP Előfeld. forrás C0 Közb. kód C nyelv Olvasható assembly Szerk. gépi kód (.obj) Ass Gépi nyelv (assembly) C1 Gépi nyelvek (assembly) Más obj. Könyvtár (.lib) Link Futtatható kód (.exe) Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

5 Hagyományos C fordító (2) preprocesszor dolgozza fel Első program 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. #include <stdio.h> main() azonosító { printf( Hello Cicus!\n ); } könvtári függvény c:> cc elso.c c:> elso.exe c:> Hello Cicus! c:> Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Nyelvek szabályainak megadása Erőteljes magyarázat Szintaxis diagram irányított gráf Leíró vagy metanyelv (pl. BNF) szabványokban, könyvekben (pl. K&R) Szintaxis diagram referencia kártyákon nem terminális szimbólum Terminális szimbólum tovább bontható nem bontható tovább Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Szintaxis diagram példák BNF (Backus-Naur Form) előjeles dec. szám: + dec. szám <nem terminális> tovább bontható fogalom v. szimb. ::= definíció vagy kapcsolat dec. szám: dec. számjegy dec. számjegy: 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 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

6 EBNF (Extended BNF) EBNF példák <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 <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 ö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 Változó, azonosító, típus Start a, b c:= a + b c Stop program = algoritmus + adatstruktúra Az adatokat változókban tároljuk 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 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

7 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ő 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 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 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; 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 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

8 Előjeles egészek ábrázolása Előjeles abszolútértékes 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. előjel 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 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Néhány példa: 0000 = = = = = = = +7 Eltolt nullpontú Legyen pl. a nulla az 1000 érték! Összeadás egyszerű összeadóval: 0111 = = = -8 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I 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 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 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

9 0101 = = =?-6 ~ = 6 Eredmény hihetősége 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 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 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Valós számok ábrázolása Fixpontos ábrázolás Fixpontos ábrázolás (8 biten a példa kedvéért): Fixpontos ábrázolás Lebegőpontos ábrázolás előjel egészrész. Néhány példa: = = = = törtrész kettedespont Legkisebb absz: Legnagyobb absz: Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

10 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 = 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 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 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) 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 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

11 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ó. 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 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

12 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 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 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. 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 Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I

13 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

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

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

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

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 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

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

Részletesebben

Programozás alapjai C nyelv 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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ö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

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

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

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

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

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

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

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

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

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

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

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

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem } C programozás Márton Gyöngyvér, 2009 Sapientia, Erdélyi Magyar Tudományegyetem http://www.ms.sapientia.ro/~mgyongyi 1 Ciklusok for (ismétlés) while do while 2 for utasítás szöveg 10-szeri kiíratása: int

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

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 alapjai (ANSI C)

Programozás alapjai (ANSI C) Programozás alapjai (ANSI C) 1. Előadás vázlat A számítógép és programozása Dr. Baksáné dr. Varga Erika adjunktus Miskolci Egyetem, Informatikai Intézet Általános Informatikai Intézeti Tanszék www.iit.uni-miskolc.hu

Részletesebben

Objektumorientált Programozás I.

Objektumorientált Programozás I. Objektumorientált Programozás I. Algoritmizálási alapismeretek Algoritmus végrehajtása a számítógépen Adattípusok Típuskonverziók ÓE-NIK, 2011 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok,

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

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT 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 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

Digitális technika VIMIAA01 9. hét

Digitális technika VIMIAA01 9. 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 VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

7. fejezet: Mutatók és tömbök

7. fejezet: Mutatók és tömbök 7. fejezet: Mutatók és tömbök Minden komolyabb programozási nyelvben vannak tömbök, amelyek gondos kezekben komoly fegyvert jelenthetnek. Először is tanuljunk meg tömböt deklarálni! //Tömbök használata

Részletesebben

3 A C programozási nyelv szintaktikai egységei

3 A C programozási nyelv szintaktikai egységei 3 A C programozási nyelv szintaktikai egységei 3.1 Azonosítók Betűk és számjegyek sorozata, betűvel vagy _ (aláhúzás) karakterrel kell kezdődnie. A nagy- és kisbetűk különbözőek. Az azonosítók tetszőleges

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

Felvételi tematika INFORMATIKA

Felvételi tematika INFORMATIKA Felvételi tematika INFORMATIKA 2016 FEJEZETEK 1. Természetes számok feldolgozása számjegyenként. 2. Számsorozatok feldolgozása elemenként. Egydimenziós tömbök. 3. Mátrixok feldolgozása elemenként/soronként/oszloponként.

Részletesebben

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

Programozás alapjai. 10. előadás 10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:

Részletesebben

C programozási nyelv

C programozási nyelv C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György

Részletesebben

A számítástechnika fejlődése

A számítástechnika fejlődése A számítástechnika fejlődése Az 1600-as évektől kezdődően az emberek igyekeztek olyan gépeket építeni, melyek megkönnyítik a számolást. A számítógépek fejlődését nagy lépésekben követjük. Az egymástól

Részletesebben

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból

Részletesebben

Adatbázis rendszerek. dr. Siki Zoltán

Adatbázis rendszerek. dr. Siki Zoltán Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti

Részletesebben

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás Algoritmusok Tervezése 4. Előadás Visual Basic 1. Dr. Bécsi Tamás Bevezetés A BASIC (Beginner s All-purpose Symbolic Instruction Code) programnyelvet oktatási célokra hozták létre 1964-ben. Az általános

Részletesebben

Programozás I. gyakorlat

Programozás I. gyakorlat Programozás I. gyakorlat 1. gyakorlat Alapok Eszközök Szövegszerkesztő: Szintaktikai kiemelés Egyszerre több fájl szerkesztése pl.: gedit, mcedit, joe, vi, Notepad++ stb. Fordító: Szöveges file-ban tárolt

Részletesebben

Szövegek C++ -ban, a string osztály

Szövegek C++ -ban, a string osztály Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string

Részletesebben

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

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

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

INFO1 Számok és karakterek

INFO1 Számok és karakterek INFO1 Számok és karakterek Wettl Ferenc 2015. szeptember 29. Wettl Ferenc INFO1 Számok és karakterek 2015. szeptember 29. 1 / 22 Tartalom 1 Bináris számok, kettes komplemens számábrázolás Kettes számrendszer

Részletesebben

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző

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

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

SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA

SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA BINÁRIS (kettes) ÉS HEXADECIMÁLIS (tizenhatos) SZÁMRENDSZEREK (HELYIÉRTÉK, ÁTVÁLTÁSOK, MŰVELETEK) A KETTES SZÁMRENDSZER A computerek világában a

Részletesebben

Operációs Rendszerek II. labor. 2. alkalom

Operációs Rendszerek II. labor. 2. alkalom Operációs Rendszerek II. labor 2. alkalom Mai témák (e)grep Shell programozás (részletesebben, példákon keresztül) grep Alapvető működés: mintákat keres a bemeneti csatorna (STDIN vagy fájl) soraiban,

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

Az Informatika Elméleti Alapjai

Az Informatika Elméleti Alapjai Az Informatika Elméleti Alapjai dr. Kutor László Törtszámok bináris ábrázolása, Az információ értelmezése és mérése http://mobil.nik.bmf.hu/tantargyak/iea.html Felhasználónév: iea Jelszó: IEA07 BMF NIK

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 Beadandó feladat, kódrendszerek Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 október 12.

Részletesebben

Programzás I. - 1. gyakorlat

Programzás I. - 1. gyakorlat Programzás I. - 1. gyakorlat Alapok Tar Péter 1 Pannon Egyetem Műszaki Informatikai Kar Számítástudomány Alkalmazása Tanszék Utolsó frissítés: September 15, 2007 1 tar@dcs.vein.hu Tar Péter (PE-MIK-DCS)

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

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

Rekurzió. Programozás alapjai C nyelv 9. gyakorlat. Rekurzív algoritmus. Rekurzív algoritmus fajtái. Példa: n! (2) Példa: n!

Rekurzió. Programozás alapjai C nyelv 9. gyakorlat. Rekurzív algoritmus. Rekurzív algoritmus fajtái. Példa: n! (2) Példa: n! Programozás alapjai C nyelv 9. gyakorlat Szeberényi Imre BME IIT Rekurzió A feladat algoritmusa eleve rekurzív formában adott (ld: n!). A valójában nem rekurzív de valami hasznot húzunk

Részletesebben

Programozás C és C++ -ban

Programozás C és C++ -ban Programozás C és C++ -ban 2. További különbségek a C és C++ között 2.1 Igaz és hamis A C++ programozási nyelv a C-hez hasonlóan definiál néhány alap adattípust: char int float double Ugyanakkor egy új

Részletesebben

Programozás alapjai C nyelv 9. gyakorlat. Rekurzió. Rekurzív algoritmus

Programozás alapjai C nyelv 9. gyakorlat. Rekurzió. Rekurzív algoritmus Programozás alapjai C nyelv 9. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.14. -1- Rekurzió A feladat algoritmusa eleve rekurzív

Részletesebben

Típusok és konstansok

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

Részletesebben

Programozás I. gyakorlat

Programozás I. gyakorlat Programozás I. gyakorlat 2. gyakorlat Kifejezések, vezérlési szerkezetek, struktúrák Kifejezések Mit ír ki az alábbi program? #include int main() { int a = 20, b = 40; printf("%d\n", a > b);

Részletesebben

Bevezetés a programozásba. 5. Előadás: Tömbök

Bevezetés a programozásba. 5. Előadás: Tömbök Bevezetés a programozásba 5. Előadás: Tömbök ISMÉTLÉS Specifikáció Előfeltétel: milyen körülmények között követelünk helyes működést Utófeltétel: mit várunk a kimenettől, mi az összefüggés a kimenet és

Részletesebben

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

Számítógép architektúra Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Számítógép architektúra Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Irodalmi források Cserny L.: Számítógépek

Részletesebben

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA 1. Tízes (decimális) számrendszerből: a. Kettes (bináris) számrendszerbe: Vegyük a 2634 10 -es számot, és váltsuk át bináris (kettes) számrendszerbe! A legegyszerűbb módszer: írjuk fel a számot, és húzzunk

Részletesebben

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } Funkcionális és logikai programozás { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi ` 1 Jelenlét: Követelmények, osztályozás Az első 4 előadáson

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 Számítógépek felépítése Digitális adatábrázolás Digitális logikai szint Mikroarchitektúra szint Gépi utasítás szint Operációs rendszer szint Assembly nyelvi szint Probléma orientált

Részletesebben

Elôszó a magyar kiadáshoz A Kiadó Elôszó

Elôszó a magyar kiadáshoz A Kiadó Elôszó Elôszó a magyar kiadáshoz A C programnyelvet eredetileg a Bell Laboratóriumban az UNIX operációs rendszerhez, az alatt fejlesztették ki PDP-11_ számítógépen. A kifejlesztése óta eltelt évek során bebizonyosodott,

Részletesebben