OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 1

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 1"

Átírás

1 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 1 Számábrázolás Számok bináris alakja A számítógépek memóriájában a számokat bináris alakban (kettes számrendszerben) ábrázoljuk. A bináris alakban felírt szám egy számjegye 0 vagy 1 értékű lehet. Ezt hívjuk bitnek. A számjegy értéke a pozíciójától, a helyiértékétől függ. A kettes számrendszer helyiértékei a kettő hatványai. Egy természetes szám bináris alakjának számjegyeit helyiérték szerint növekvő sorrendben egy kettővel való osztogatásos módszerrel lehet előállítani. Az osztásoknál keletkezett maradék a soron következő számjegy, az osztás eredménye pedig a következő osztás osztandója. Az osztogatás addig tart, amíg az osztandó nem nulla. Példa: Adjuk meg a 183 (10) bináris alakját! 183 : 2 = 91 maradt: 1 91 : 2 = 45 maradt: 1 45 : 2 = 22 maradt: 1 22 : 2 = 11 maradt: 0 11 : 2 = 5 maradt: 1 5 : 2 = 2 maradt: 1 2 : 2 = 1 maradt: 0 1 : 2 = 0 maradt: 1 Tehát 183 (10) = (2) = 1* * * * * * * *2 0 Egy törtszám bináris alakjának számjegyeit helyiérték szerint csökkenő sorrendben egy kettővel való szorzásos módszerrel lehet előállítani. A szorzat egész része a soron következő számjegy, törtrésze a következő szorzás szorzandója. A módszer addig tart, amíg a szorzandó nem nulla, de előfordulhat, hogy ez nem következik be, mert a kettes számrendszerben felírt szám egy végtelen kettedes tört lesz. Példa: Adjuk meg a (10) bináris alakját! * 2 = egészrész: 1 törtrész: * 2 = egészrész: 1 törtrész: * 2 = 0.50 egészrész: 0 törtrész: * 2 = 1.0 egészrész: 1 törtrész: 0 Tehát 0.75 (10) = (2) = 1*1/2 + 1*1/4 + 0*1/8 + 1*1/16 Példa: Adjuk meg a 0.1 (10) bináris alakját! 0.1 * 2 = 0.2 egészrész: 0 törtrész: * 2 = 0.4 egészrész: 0 törtrész: * 2 = 0.8 egészrész: 0 törtrész: * 2 = 1.6 egészrész: 1 törtrész: * 2 = 1.2 egészrész: 1 törtrész: * 2 = 0.4 egészrész: 0 törtrész: * 2 = 0.8 egészrész: 0 törtrész: 0.8 Tehát 0.1 (10) = (2) (végtelen szakaszos tört)

2 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 2 Természetes számok ábrázolása A számítógépeken a 8 bit (1 bájt) többszörösein történik az ábrázolás, hiszen csak a bájt a memória legkisebb címezhető egysége. A természetes számok ábrázolásánál egyszerűen kettes számrendszerbe váltjuk át a számot. Egyetlen kérdés az, hogy rendelkezésre áll-e elegendő bit, a számjegyek ábrázolására. Ha nem, túlcsordulásról beszélünk. Ilyenkor az eredeti szám értéke hibásan rögzül. Egész számok ábrázolása Az egész számok ábrázolása abban tér el a természetes számokétól, hogy a szám abszolút értéke mellett az előjelét is ábrázolni kell. Az abszolút értéket bináris alakban ábrázoljuk, az előjelet pedig egyetlen biten. Történetileg többféle ábrázolás is kialakult. Egyenes kód: A számokat s biten ábrázoljuk úgy, hogy az első biten a szám előjelét (0 - pozitív, 1 - negatív), utána pedig a szám abszolút értékének bináris alakját. Az ábrázolható számok -2 s-1 +1 és 2 s-1 1 közé kell, hogy essenek, ellenkező esetben túlcsordulás lép fel. Az ábrázolás hátránya, hogy a nullát két különböző kód is jelzi ( illetve ), továbbá az, hogy két szám összegét a számok előjelétől függő módszerekkel lehet kiszámolni. Egyes komplemens kód vagy inverz kód: A számokat s biten ábrázoljuk úgy, hogy az abszolút értékének bináris alakja nullával kezdődjön. Az ábrázolható számok -2 s-1 +1 és 2 s-1 1 közé kell, hogy essenek, ellenkező esetben túlcsordulás lép fel. A pozitív egész számot ezzel a bináris alakkal kódoljuk, a negatív egész szám esetén az abszolút érték 0-val kezdődő bináris alakját komplementáljuk. (Ilyenkor az első bit 1-es lesz, amely jelzi, hogy a szám negatív.) Az ábrázolás hátránya, hogy a nullát két különböző kód is jelzi ( illetve ), továbbá az, hogy két szám összeadásakor keletkező túlcsordulás bitet (legmagasabb helyiértéken keletkező átvitel) hozzá kell adni az eredményhez, ha a helyes eredményt akarjuk megkapni (feltéve, hogy az eredmény is ábrázolható s biten). Kettes komplemens kód: Az egész számok általánosan elterjedt kódolása. A számokat s biten ábrázoljuk úgy, hogy az abszolút értékének bináris alakja nullával kezdődjön. Az ábrázolható számok -2 s-1 és 2 s-1 1 közé kell, hogy essenek, ellenkező esetben túlcsordulás lép fel. A pozitív egész számot ezzel a bináris alakkal kódoljuk, a negatív egész szám esetén a szám abszolút értékének bináris alakját komplementáljuk és hozzáadunk egyet. (Az első bit jelzi, hogy a szám pozitív-e vagy negatív: 0 - pozitív, 1 - negatív.) 1. Példa. Adjuk meg a +12 egész szám kettes komplemens kódját 4 bájton! i) 12 (10) = (2)

3 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 3 2. Példa. Adjuk meg a -12 egész szám kettes komplemens kódját! i) 12 (10) = (2) ii) Vegyük a bináris alak komplementerét! iii) Adjunk hozzá binárisan 1-et! Többletes kód: A számokhoz, mielőtt binárisan ábrázoljuk őket, hozzáadunk egy rögzített értéket (eltolás), és az így kapott számnak vesszük a bináris alakját. Az eltolás mértékét úgy állapítjuk meg, hogy az ábrázolni kívánt számok az eltolás után ne legyenek negatívak. Például ha s biten kívánjuk a számainkat ábrázolni, akkor az eltolás lehet a 2 s-1. Ekkor ennek bináris alakja (100 00) jelenti a nullát és az ábrázolható számok -2 s-1 és 2 s-1 1 közé esnek. (Az első bit most is a szám előjelét jelzi, de 1 pozitív és 0 - negatív.) Ha az eltolásnak a 2 s-1 1-et választjuk, akkor a nulla kódja lesz, az ábrázolható számok -2 s-1 +1 és 2 s-1 közé esnek. Elsősorban számok nagyság szerinti összehasonlításához, számok összegének és különbségének kiszámolásához alkalmas ábrázolás. Fixpontos számábrázolás Valós számok ábrázolása úgy, hogy rögzített számú biten lehet külön a szám egészrészét és külön a törtrészét ábrázolni. Az előjel ábrázolására alkalmazhatók az egész számok ábrázolásánál bemutatott módszerek BCD számábrázolás A binárisan kódolt decimális számokat tízes számrendszerben ábrázoljuk, de a számjegyeket binárisan kódoljuk, többnyire egy számjegyet félbájton. Külön félbájt szolgál az előjel jelzésére. Ez a forma kevésbé alkalmas a számok közötti műveletek elvégzésére. Lebegőpontos számábrázolás Valós számok IEEE 754 szabvány szerinti (4 illetve 8 bájtos) lebegőpontos ábrázolásánál a számokat ((-2)*b+1)*m*2 k alakban írjuk fel, ahol b az előjel (0 - pozitív, 1 - negatív), az m a mantissza (1 m<2), a k pedig a karakterisztika. Maga a kód a valós szám előjelbitjéből (1 bit), utána s biten (az s 8 illetve 11 bit) a karakterisztika 2 s-1 1 eltolású többletes kódjából (ekkor - 2 s-1 +1 k 2 s-1 ), végül a mantissza bináris alakjának törtrészéből (23 illetve 52 biten) áll. Példa: Adjuk meg a valós szám lebegőpontos kódját biten! i. Negatív szám, ezért az előjel bit 0 lesz: b = 0 ii. A szám abszolút értékének bináris alakja: (10) = (2) iii. Normalizáljuk az így kapott számot 1 és 2 közé: (2) = (2) *2 3 iv. Ábrázoljuk a karakterisztikát többletes kódban 11 biten: (10) = (2) v. Állítsuk össze a kódot:

4 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 4 Adatábrázolás Karakterek ábrázolása Egy adott karakterkészlet elemeit, karaktereit megsorszámozunk 0-val kezdődően, és ezeket a sorszámokat tároljuk binárisan kódolva a megfelelő karakter helyett. Az egyik legegyszerűbb az ASCII karakterkészket, amelyik 256 különböző karaktert tartalmaz. A 0 és 255 közötti sorszámok bináris kódja egy bájton ábrázolható. Az UTF-8 változó hosszú kódolással ábrázolja a karaktereket (magába foglalja és 1 bájton ábrázolja az ASCII karaktereket, de például az ékezetes betűk sorszámai 2 bájton kódolódnak) Logikai érték ábrázolása Habár a logikai érték tárolására egyetlen bit is elég lenne, de mivel a legkisebb címezhető egység a bájt, ezért egy bájtot foglal el. A nulla értékű (csupa nulla bit) bájt a hamis értéket, minden más az igaz értéket reprezentálja. Struktúra ábrázolása Egy struktúra mezői közvetlenül egymás után foglalnak helyet a memóriában. Az első elem címe egyben a struktúra címe is. Például egy -5 egész számot és egy hamis logikai értéket magába foglaló struktúra esetén a memória egymást követő 5 bájtján, először 4 bájton a -5 kettes komplemens kódja, majd egy csupa nulla bitből álló bájt jelenik meg. (struct valami int n; bool l) Tömb ábrázolása Egy tömb elemei közvetlenül egymás után, sorban helyezkednek el a memóriában. Az első elem címe egyben a tömb címe is. Például négy egész számot tartalmazó [0, 1, -5, 3] tömb esetében a memória egymás utáni 16 bájtján fog elhelyezkedni a négy egész szám kettes komplemens kódja. (int v[] = 0, 1, -5, 3) A több dimenziós tömb felfogható eggyel kevesebb dimenziós tömbök tömbjeként. Például a mátrix felfogható, mint sorainak tömbje (ez a sor-folytonos szemlélet), vagy oszlopainak tömbje (ez az oszlop-folytonos szemlélet). Sor-folytonos szemlélet esetén a mátrixok sorait közvetlenül egymás után tároljuk, a sorok tárolására pedig a korábban elmondottak érvényesek. Karakterlánc ábrázolása A karakterlánc egy változtatható hosszúságú karaktersorozat. A karakterek kódját sorban egymás után tároljuk el. A sorozat hosszát vagy egy külön számláló (ez többnyire a lánc előtt tárolt egész szám, ami a karakterlánc kezdetét jelző címen található) vagy a lánc végén utolsó utáni karakterként elhelyezett speciális karakter ( \0 ) jelzi.

5 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 5 Pointerváltozó és közvetett hivatkozás Változó int i = -2 Pointer int *p Közvetett hivatkozás int i; int *p = &i; *p = 3; Referencia változó int i = -2; int &r = i;

6 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 6 Tömbök és pointerek Automatikus helyfoglalású tömb int v[] = 0, 1, -5, 3 v == &v == &v[0] v[0] == *v Pointer és tömb int *p; p = v; *(p+2) = -3; p[2] = 12; *(v+2) = -5;

7 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 7 Dinamikus helyfoglalás int *p; p = new int; *p = -2; delete p; Dinamikus helyfoglalású tömb int* v; v = new int[4]; for(int i=0; i<4; ++i) v[i] = i; delete[] v;

8 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 8 Feladat Rendezzük növekvő sorrendbe egy mátrix sorait a sorösszegek alapján! Használjunk buborékrendezést! Megoldás A feladat megoldásához szükségünk lesz egy mátrixra, amelyet a szabványos bementről töltünk fel. A rendezéshez először kiszámoljuk a mátrix sorösszegeit, és azokat a sorok indexeivel együtt egy egydimenziós tömbben tároljuk el. A rendezést ugyanis nem közvetlenül a mátrixon hajtjuk végre (a sorok cseréje túl költséges lenne), hanem ezen a sorösszeg-sorindex párokat tartalmazó segédvektoron. A segédvektor elemeit az összegérétkek alapján sorba rendezzük. A rendezés után a segédvektor i-edik eleme azt mutatja majd meg, hogy a rendezett mátrix (amit fizikailag nem kell létrehoznunk) i-edik sora az eredeti mátrix hányadik sorának felel meg. Ez alapján tudjuk a szabványos kimeneten az átrendezett mátrixot megjeleníteni úgy, hogy közben a mátrix a kezdeti tartalmát őrzi. Specifikáció A = (t : Z n m, v : Pár n ) Pár = rec(ért: Z, ind: Z) Ef = ( t = t ) Uf = ( t = t v : Pár n i [1..n]: v [i] = ( j=1..m t[i,j], i) v = rendezett(v ) ) Absztrakt program Előkészítés: A v tömböt az utófeltételben szereplő v értékűre állítja be. i = 1.. n s := össz(i) v[i].ért := össz(i) s := 0 v[i].ért :=i j = 1.. m s := s + t[i,j] Buborékrendezés: A v tömb rendezése ért szerint. i = 2.. n menet(v, i, k) menet(v, i, k) i := k k := n j:=n.. i v[j].ért < v[j-1].ért csere(j,j-1) SKIP k := j

9 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 9 Megjelenítés: A t mátrix sorainak megjelenítése összegük szerinti növekedő sorrendben a v tömb segítségével. i = 1.. n i = 1.. n Ír(t[v[i].ind][j] Megoldás C++-ban Az implementációt három változatban készítjük el. A mátrixot és a segédvektort először statikusan lefoglalt tömbökkel másodszor dinamikusan lefoglalt tömbökkel, végül a vector< > sablon segítségével ábrázoljuk. Az első változathoz szükség van a max maximális méretre. A tömbjeinket (mátrixot és a rendezésnél használt segédvektort) ekkora méretűre deklaráljuk. A max max méretű mátrixnak természetesen csak egy n m-es részét, a max méretű segédvektornak pedig az első n elemét használjuk. Hátránya ennek a megoldásnak, hogy egyfelől memória pazarlás, másfelől ellenőrizni kell, hogy a tényleges méretek nem nagyobbak-e a max értéknél. A második változatban mind a mátrixot, mind a rendezéshez használt segédvektort dinamikusan foglaljuk le. Ez a megoldás a memória felhasználásában takarékos, de magunknak kell gondoskodni a memória terület lefoglalásáról és felszabadításáról, illetve annak a kivételnek a kezeléséről, amely akkor keletkezik, ha az általunk kért memória foglalás nem sikerül. A harmadik változat hátterében is dinamikus memória foglalás történik, de ezt elrejti előlünk a vector< > típus. További előny, hogy itt nem kell a tömbök paraméterátadásánál külön átadni a tömb aktuális méretét, az bármikor lekérdezhető tulajdonsága a tömbnek. Mindhárom változat main() függvénye tartalmazza az alábbi négy szakaszt, amely a dinamikusan lefoglalt tömbök használatánál kiegészül a tömb felszabadítását végző ötödik szakasszal (ez meghívja a free() függvényt) is: 1. Mátrix létrehozása és feltöltése (meghívja a read() függvényt) A mátrix deklarációja után a read()függvény végzi el a mátrix feltöltését. A második változatban a mátrix deklarációja még csak egy pointert jelez. 2. Segédvektor létrehozása és feltöltése (meghívja a sum() függvényt) A segédvektort a változatnak megfelelően deklaráljuk, majd az absztrakt programban megadott módon feltöltjük. A segédvektor egy elemének kitöltéséhez az absztrakt programban megadott s:=össz(i) függvényt a sum() függvény implementálja. 3. Segédvektor rendezése (meghívja a session() függvényt) Az absztrakt program alapján működik, az abban megadott k:=menet(i) függvényt implementálja a session() függvény. 4. Rendezett mátrix kiírása (meghívja a write() függvényt) A mátrix sorainak a rendezés utáni sorrendjében történő kiírása. Ehhez a segédvektort használjuk hiszen annak i-edik eleme mutatja meg, hogy a rendezett mátrix (amit fizikailag nem hoztunk létre) i-edik sora az eredeti mátrix hányadik sorának felel meg.

10 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) Változat #include <iostream> #include <iomanip> #define max 100 using namespace std; struct Pair int value; int ind; ; void read(int t[][max], int &n, int &m); int sum(const int x[], const int m); int session(pair v[], const int n, const int i); void write(const Pair v[], const int t[][max], const int n, const int m); int main() int t[max][max]; int n, m; // Mátrix beolvasása read(t, n, m); // Előkészítés Pair v[max]; for(int i=0; i<n; ++i) v[i].value = sum(t[i], m); v[i].ind = i; // Rendezés for(int i=1; i<n; ++i) i = session(v, n, i); // Rendezett mátrix megjelenítése write(t, n, m); char ch; cin >> ch; return 0;

11 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) Változat #include <iostream> #include <iomanip> using namespace std; struct Pair int value; int ind; ; void read(int** &t, int &n, int &m); int sum(const int x[], const int m); int session(pair v[], const int n, const int i); void write(const Pair v[], int** t, const int n, const int m); void free(int** &t, const int n); int main() int** t; int n, m; // Mátrix beolvasása read(t, n, m); // Előkészítés try Pair* v = new Pair[n]; catch(std::bad_alloc o) cout << "Memória foglalási hiba\n"; exit(1); for(int i=0; i<n; ++i) v[i].value = sum(t[i], m); v[i].ind = i; // Rendezés for(int i=1; i<n; ++i) i = session(v, n, i); // Rendezett mátrix megjelenítése write(t, n, m); free(t, n); delete[] v; char ch; cin >> ch; return 0;

12 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) Változat #include <iostream> #include <iomanip> #include <vector> using namespace std; struct Pair int value; int ind; ; void read(vector<vector<int> > &t); int sum(const vector<int> &x); int session(vector<pair> &v, const int i); void write(const vector<vector<int> > &t); int main() vector<vector<int> > t; // Mátrix beolvasása read(t); int n = (int)t.size(); // Előkészítés vector<pair> v; for(int i=0; i<n; ++i) v[i].value = sum(t[i]); v[i].ind = i; // Rendezés for(int i=1; i<n; ++i) i = session(v, i); // Rendezett mátrix megjelenítése write(t); char ch; cin >> ch; return 0;

13 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 13 Függvények A read() függvény megvalósításai természetesen eltérnek: az első változat csak feltölti a max max méretű mátrix n m-es részét, a második változat lefoglalja az n darab sor számára az m méretű helyeket, a harmadik változat elrejti ezt a memóriafoglalást, erre csak a resize() metódus hívása utal. void read(int t[][max], int &n, int &m) // 1.VÁLTOZAT cout << "n: "; cin >> n; cout << "m: "; cin >> m; if(n>max m>max) cout << Hibás méretek! ; char ch; cin >> ch; exit(2); for(int i=0; i<n; ++i) for(int j=0; j<m; ++j) cout << "t[" << i << "," << j << "]: "; cin >> t[i][j]; void read(int** &t, int &n, int &m) // 2. VÁLTOZAT try cout << "n: "; cin >> n; cout << "m: "; cin >> m; t = new int*[n]; for(int i=0; i<n; ++i) t[i] = new int[m]; for(int j=0; j<m; ++j) cout << "t[" << i << "," << j << "]: "; cin >> t[i][j]; catch(std::bad_alloc o) cout << "Memória foglalási hiba\n"; char ch; cin >> ch; exit(1); void read(vector<vector<int> > &t) // 3. VÁLTOZAT int n; cout << "n: "; cin >> n; t.resize(n); int m; cout << "m: "; cin >> m; for(int i=0; i<n; ++i) t[i].resize(m); for(int j=0; j<m; ++j) cout << "t[" << i << "," << j << "]: "; cin >> t[i][j];

14 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 14 A write() függvény a v segédvektor által megadott sorrendben írja ki a mátrix sorait a szabványos kimenetre. Az i-edikként kiírt sor sorszáma a v[i].ind-ben található, ezért az i-edik sor j-edik elemének kiírása a cout << t[v[i].ind][j] utasítással történik. A write() függvény ezért csak a szignatúrájában különbözi a három változatban, de a harmadik változatban a tömbök méretének megadása most is a size() metódussal történik. void write(const Pair v[], const int t[max][], const int n, const int m) for(int i=0; i<n; ++i) for(int j=0; j<m; ++j) cout << t[v[i].ind][j] << "\t"; cout << endl; // 1.VÁLTOZAT void write(const Pair v[], int** t, const int n, const int m) for(int i=0; i<n; ++i) for(int j=0; j<m; ++j) cout << t[v[i].ind][j] << "\t"; cout << endl; // 2.VÁLTOZAT void write(const vector<pair> &v, vector<vector<int> > &t) for(int i=0; i<(int)t.size(); ++i) for(int j=0; j<(int)t[v[i].ind].size(); ++j) cout << t[v[i].ind][j] << "\t"; cout << endl; // 3.VÁLTOZAT A második változat második paramétere nem const, ugyanis nem megengedett const int** változónak egy int** értékül adása, erre pedig a main() függvényből való meghívásnál sor kerül. A második változatban nekünk kell gondoskodni a lefoglalt terület felszabadításáról. void free(int** &t, const int n) for(int i=0; i<n; ++i) delete[] t[i]; delete[] t; // 2. VÁLTOZAT

15 OAF Gregorics Tibor : Memória használat C++ szemmel (munkafüzet) 15 A sum() és a session() az absztrakt program alapján készült, az első két változatban teljesen azonos. int sum(const int x[], const int m) int s = 0; for(int j=0; j<m; ++j) s += x[j]; return s; int session(pair v[], const int n, const int i) int k = n-1; for(int j=n-1; j>i-1; --j) if( v[j].value < v[j-1].value ) Pair c = v[j]; v[j] = v[j-1]; v[j-1] = c; k = j; return k; A harmadik változatban ezeknek a függvényeknek más lesz a szignatúrája. int sum(const vector<int> &x); int session(vector<pair> &v, const int i); A függvénytörzsben egyetlen eltérés van: a paraméterként megkapott tömbök méretét nem tartalmazza külön paraméterváltozó (m illetve n), mert azt lekérdezhetjük a size() metódussal ( (int)x.size() illetve (int)v.size()).

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

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

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

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

5. Gyakorlat. struct diak {

5. Gyakorlat. struct diak { Rövid elméleti összefoglaló 5. Gyakorlat Felhasználó által definiált adattípusok: A typedef egy speciális tárolási osztály, mellyel érvényes típusokhoz szinonim nevet rendelhetünk. typedef létező_típus

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

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

Á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

1. Alapok. Programozás II

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

Részletesebben

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

Számítógép és programozás 2

Számítógép és programozás 2 Számítógép és programozás 2 3. Előadás Típuskonstrukciók http://digitus.itk.ppke.hu/~flugi/ ISMÉTLÉS Programkonstrukciók Elágazás kell, ha más kódra van szükség egyes esetekben Ciklus kell, ha ismételni

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

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

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

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

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA 1 ELSŐ GYAKORLAT SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA A feladat elvégzése során a következőket fogjuk gyakorolni: Számrendszerek közti átváltás előjelesen és előjel nélkül. Bináris, decimális, hexadexcimális számrendszer.

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

1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket.

1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket. 1. Írjunk programot mely beolvas két egész számot és kinyomtatja az összegüket. // változó deklaráció int number1; // első szám int number2; // második szám int sum; // eredmény std::cout

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

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

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

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

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

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

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar PROGRAMOZÁS tantárgy Gregorics Tibor egyetemi docens ELTE Informatikai Kar Követelmények A,C,E szakirány B szakirány Előfeltétel Prog. alapismeret Prog. alapismeret Diszkrét matematika I. Óraszám 2 ea

Részletesebben

Számábrázolás, adatábrázolás

Számábrázolás, adatábrázolás Számábrázolás, adatábrázolás A számítógépek memóriájában a számokat binárisan (kettes számrendszerben) ábrázoljuk. A bináris alakban felírt szám egy számjegye 0 vagy 1 lehet. (Ezt hívjuk bit-nek.) Egy

Részletesebben

Bevezetés a programozásba I.

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

Részletesebben

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

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Szimuláljuk különféle élőlények túlélési versenyét. A lények egy pályán haladnak végig, ahol váltakozó viszonyok vannak. Egy lénynek

Részletesebben

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

Programozás II. 4. Dr. Iványi Péter Programozás II. 4. Dr. Iványi Péter 1 inline függvények Bizonyos függvények annyira rövidek, hogy nem biztos hogy a fordító függvényhívást fordít, hanem inkább az adott sorba beilleszti a kódot. #include

Részletesebben

Kedves Diákok! A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.

Kedves Diákok! A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük. Kedves Diákok! Szeretettel köszöntünk Benneteket abból az alkalomból, hogy a Ceglédi Közgazdasági és Informatikai Szakközépiskola informatika tehetséggondozásának első levelét olvassátok! A tehetséggondozással

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

Programozás II gyakorlat. 6. Polimorfizmus

Programozás II gyakorlat. 6. Polimorfizmus Programozás II gyakorlat 6. Polimorfizmus Típuskonverziók C-ben: void * ptr; int * ptr_i = (int*)ptr; Ez működik C++-ban is. Használjuk inkább ezt: int * ptr_i = static_cast(ptr); Csak egymással

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

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 9. gyakorlat Intelligens tömbök, mátrixok, függvények Surányi Márton PPKE-ITK 2010.11.09. C++-ban van lehetőség (statikus) tömbök használatára ezeknek a méretét fordítási időben

Részletesebben

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is

tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is A tétel (record) tétel: különböző típusú adatokat csoportosít, ezeket egyetlen adatként kezeli, de hozzáférhetünk az elemeihez is A tétel elemei mezők. Például tétel: személy elemei: név, lakcím, születési

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

Programozas 1. Strukturak, mutatok

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

Részletesebben

Programozás II gyakorlat. 8. Operátor túlterhelés

Programozás II gyakorlat. 8. Operátor túlterhelés Programozás II gyakorlat 8. Operátor túlterhelés Kezdő feladat Írjunk egy Vector osztályt, amely n db double értéket tárol. A konstruktor kapja meg az elemek számát. Írj egy set(int idx, double v) függvényt,

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

(jegyzet) Bérci Norbert szeptember 10-i óra anyaga. 1. Számrendszerek A számrendszer alapja és a számjegyek

(jegyzet) Bérci Norbert szeptember 10-i óra anyaga. 1. Számrendszerek A számrendszer alapja és a számjegyek Egész számok ábrázolása (jegyzet) Bérci Norbert 2015. szeptember 10-i óra anyaga Tartalomjegyzék 1. Számrendszerek 1 1.1. A számrendszer alapja és a számjegyek........................ 1 1.2. Alaki- és

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 C++ -ban

Programozás C++ -ban 8. Dinamikus objektumok Programozás C++ -ban Ahhoz hogy általános prolémákat is meg tudjunk oldani, szükség van arra, hogy dinamikusan hozhassunk létre vagy szüntethessünk meg objektumokat. A C programozási

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

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

Vektorok. Octave: alapok. A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István

Vektorok. Octave: alapok. A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István Vektorok A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István Octave: alapok Az octave mint számológép: octave:##> 2+2 ans = 4 Válasz elrejtése octave:##> 2+2; octave:##> + - / * () Hatványozás:

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

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

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

Részletesebben

Programozási alapismeretek 1. előadás

Programozási alapismeretek 1. előadás Programozási alapismeretek 1. előadás Tartalom A problémamegoldás lépései programkészítés folyamata A specifikáció Az algoritmus Algoritmikus nyelvek struktogram A kódolás a fejlesztői környezet 2/33 A

Részletesebben

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

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

Részletesebben

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

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

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

Részletesebben

A C++ Standard Template Library rövid összefoglalás

A C++ Standard Template Library rövid összefoglalás A C++ Standard Template Library rövid összefoglalás 2016-17. 1 Miről is van szó Alább összefoglaljuk, amely ismeretét feltesszük a félév során. Mivel mint megszokott az egyes verziók több-kevesebb mértékben

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

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

Részletesebben

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

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

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Készítette: Gipsz Jakab Neptun-azonosító: A1B2C3 E-mail: gipszjakab@vilaghalo.hu Kurzuskód: IP-08PAED Gyakorlatvezető

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

Programozási alapismeretek 2009/2010

Programozási alapismeretek 2009/2010 Szlávi-Zsakó: Programozási alapismeretek 7. előadás 1 Szlávi-Zsakó: Programozási alapismeretek 7. előadás 2 Szlávi-Zsakó: Programozási alapismeretek 7. előadás 3 Ennek a játék a betűkkel -szerű absztrakciónak

Részletesebben

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

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

Részletesebben

Í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

Bevezetés a C++ programozási nyelvbe

Bevezetés a C++ programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a C++ programozási nyelvbe Oktatási segédlet Összeállította: Ficsor Lajos 2001. 1. A C++ programozási nyelv története A C++ programozási nyelv

Részletesebben

Programozás alapjai II. (7. ea) C++

Programozás alapjai II. (7. ea) C++ Programozás alapjai II. (7. ea) C++ Kiegészítő anyag: speciális adatszerkezetek Szeberényi Imre BME IIT M Ű E G Y E T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2016.04.05. - 1

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

A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.

A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük. Szeretettel üdvözlünk Benneteket abból az alkalomból, hogy a Ceglédi Közgazdasági és Informatikai Szakközépiskola informatika tehetséggondozásának első levelét olvassátok! A tehetséggondozással az a célunk,

Részletesebben

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód:

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód: Szerző Név: Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: vp.05@hotmail.com Kurzuskód: IP-08PAEG/27 Gyakorlatvezető neve: Kőhegyi János Feladatsorszám: 20 1 Tartalom Szerző... 1 Felhasználói dokumentáció...

Részletesebben

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

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

Részletesebben

Programozás 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

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István Operátorok Műveletek Egy (vagy több) műveleti jellel írhatók le A műveletet operandusaikkal végzik Operátorok fajtái operandusok száma szerint: egyoperandusú operátorok (pl.:

Részletesebben

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

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

Részletesebben

500. AA Megoldó Alfréd AA 500.

500. AA Megoldó Alfréd AA 500. Programozás alapjai 2. NZH 2010.05.13. gyakorlat: / Hiány:0 ZH:0 MEGOLD IB.027/51. Hftest: 0 Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden

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

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

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

Részletesebben

Programozás I. - 11. gyakorlat

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

Részletesebben

Programozás C++ -ban

Programozás C++ -ban Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több

Részletesebben

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet

Részletesebben

Bevezetés a programozásba. 11. Előadás: Esettanulmány

Bevezetés a programozásba. 11. Előadás: Esettanulmány Bevezetés a programozásba 11. Előadás: Esettanulmány ISMÉTLÉS Függvényhívás #include #include #include #include using using namespace namespace std; std; double double

Részletesebben

10. gyakorlat. Pointerek Tárolási osztályok

10. gyakorlat. Pointerek Tárolási osztályok 10. gyakorlat Pointerek Tárolási osztályok Pointer A pointer egy mutató egy memóriacellára, egyfajta "parancsikon", csak nem fájlokra, hanem változókra. Létrehozás: tipus * név;, ahol a típus a hivatkozott

Részletesebben

C++ programozási nyelv Konstruktorok-destruktorok

C++ programozási nyelv Konstruktorok-destruktorok C++ programozási nyelv Konstruktorok-destruktorok Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

Elemi alkalmazások fejlesztése I. Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely

Elemi alkalmazások fejlesztése I. Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely 1.feladat (max02a) Olvassunk be egy fájlból egész számokat egy tömbbe. Keressük meg a tömb valamely maximális elemét. A tömb hosszát a fájl els ı eleme tartalmazza.a fájl nevét a szabványos bemeneten kérjük

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

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

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 2. 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

(jegyzet) Bérci Norbert szeptember i óra anyaga A számrendszer alapja és a számjegyek Alaki- és helyiérték...

(jegyzet) Bérci Norbert szeptember i óra anyaga A számrendszer alapja és a számjegyek Alaki- és helyiérték... Számábrázolás és karakterkódolás (jegyzet) Bérci Norbert 2014. szeptember 15-16-i óra anyaga Tartalomjegyzék 1. Számrendszerek 1 1.1. A számrendszer alapja és a számjegyek........................ 2 1.2.

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

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

Körkörös listák. fej. utolsó. utolsó. fej

Körkörös listák. fej. utolsó. utolsó. fej Körkörös listák fej utolsó fej utolsó Példa. Kiszámolós játék. Körben áll n gyermek. k-asával kiszámoljuk őket. Minden k-adik kilép a körből. Az nyer, aki utolsónak marad. #include using namespace

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ási alapismeretek 3. előadás

Programozási alapismeretek 3. előadás Programozási alapismeretek 3. előadás Tartalom Ciklusok specifikáció+ algoritmika +kódolás Egy bevezető példa a tömbhöz A tömb Elágazás helyett tömb Konstans tömbök 2/42 Ciklusok Feladat: Határozzuk meg

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába Az összeadás, kivonás, szorzás algoritmusai. Prefixumok az informatikában Előjel nélküli egész számok ábrázolása a digitális számítógépeknél. Szorzás, összeadás, kivonás. Előjeles

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. forduló. 1.1. Az adat, az információ és a hír jelentése és tartalma. A kommunikáció

1. forduló. 1.1. Az adat, az információ és a hír jelentése és tartalma. A kommunikáció 1. Az információ 1.1. Az adat, az információ és a hír jelentése és tartalma. A kommunikáció A tárgyaknak mérhető és nem mérhető, számunkra fontos tulajdonságait adatnak nevezzük. Egy tárgynak sok tulajdonsága

Részletesebben

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

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

Részletesebben

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE motiabt@inf.elte.

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE motiabt@inf.elte. Programozási alapismeretek :: beadandó feladat Készítő adatai Név: Molnár Tamás EHA: MOTIABT.ELTE E-mail cím: motiabt@inf.elte.hu Gyakorlatvezető: Horváth László Feladat sorszáma: 23. Felhasználói dokumentáció

Részletesebben

Alkalmazott modul: Programozás 8. előadás. Strukturált programozás: dinamikus memóriakezelés. Dinamikus memóriakezelés. Dinamikus memóriakezelés

Alkalmazott modul: Programozás 8. előadás. Strukturált programozás: dinamikus memóriakezelés. Dinamikus memóriakezelés. Dinamikus memóriakezelés Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 8. előadás Strukturált programozás: dinamikus memóriakezelés Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Negatív alapú számrendszerek

Negatív alapú számrendszerek 2015. március 4. Negatív számok Legyen b > 1 egy adott egész szám. Ekkor bármely N 0 egész szám egyértelműen felírható N = m a k b k k=1 alakban, ahol 0 a k < b egész szám. Negatív számok Legyen b > 1

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

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