Feladat: Nagy számok típusa: Típusérték-halmaz: Típusműveletek: Értékadás operátor: Bitshift << operátor: Összeadás operátor:

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

Download "Feladat: Nagy számok típusa: Típusérték-halmaz: Típusműveletek: Értékadás operátor: Bitshift << operátor: Összeadás operátor:"

Átírás

1 Feladat: 3. Valósítsa meg a nagyon nagy számok típusát! Ábrázoljuk a számokat számjegyeik sorozatával, amelyet egy dinamikus helyfoglalású tömbben helyezzünk el, és implementáljuk a hatékony összeadás és a szorzás műveleteit! Alkalmazzon operátor túlterhelést és kivételkezelést! Tegye lehetővé két nagy szám típusú változó közötti értékadást! Nagy számok típusa: A feladat a nagy számok ábrázolását, azok összeadását és szorzását tűzi ki célul. Típusérték-halmaz: A számokat számjegyeikből alkotott dinamikus helyfoglalású tömbben tároljuk, balról jobbra és külön a hosszát. Így a tömb utolsó indexű értéke lesz az egyes helyi értékű, az első pedig a legnagyobb helyi érték. Formálisan: Típusműveletek: Értékadás operátor: Az értékadást teszi lehetővé (tényleg). Bitshift << operátor: A számjegyeket string-gé alakítja. Összeadás operátor: Két Szam típusú számot képes összeadni. c:= a + b

2 Szorzás egésszel operátor: Egy nagy szám és egy egész típusú szám szorzása. c:=a*d; Szorzás nagy számmal operátor: Két nagy szám összeszorzása. c:=a*b Implementáció: Az implementáció a specifikációknak megfelelően történik. A ciklusok indexelése mindenhol megváltozik 1-ről 0-ra, ezt külön nem jelzem minden függvénynél. További változások: Értékadás operátor: Mivel az adatok dinamikus helyfoglalású tömbben tárolódnak, amire egy pointer mutat, ezért a közvetlen másolás esetén mindkét objektum ugyanarra a memóriacímre mutatna. Ezért az (a=b') értékadásnál valójában törölni kell az aktuális pointert és újra lefoglalni a memóriát, majd feltölteni. Bitshift << operátor: A bitshift operátor implementálása a specifikációnak megfelelően történik, ahol az os String valójában egy ostream, így a is valójában << operátorral valósul meg. Összeadás operátor: Az implementáció a specifikációnak megfelelően történik. Megjegyzés: A tovabb egyetlen változó, ennek a ciklus folyamán történő változását jelzik az alsó indexek.

3 Szorzás egésszel operátor: Az implementáció ebben az esetben jelentősen eltér a specifikácitól. Ennek oka a maradékok egyenletes eloszlásában keresendő. Bár a végeredmény ugyanaz lesz. További magyarázat a kódnál található. Szorzás nagy számmal operátor: A megvalósítás elég egyszerű. Az előző két operátor segítségével oldjuk meg a feladatot. A c.length-ről nem esik szó, ezt az összeadás és az egész-szorzás operátorokok már kezelik, így nekünk azzal semmi dolgunk. C++ megvalósítás: A nagy szám osztálya a fentieknek megfelelően a Szam nevet kapja: class Szam { Az osztályban két privát változó van, a szám hossza és a számjegyek. A számjegyeket dinamikus helyfoglalású 2byte-os short integerként tároljuk, a hossz egyszerű integer. private: short* szjegyek; int length; A osztályban 5 konstruktor van, ezek a következők: Szam(std::string szam); Szam(); Szam(short* input, int len); Szam(long* input, int len); Szam(int input); A konstruktorok feladata, hogy a length és szjegyek értékét megadják. Ezen felül a konstruktorok felelnek azért, hogy a szám ne kezdődhessen 0-kal. Az egyes konstruktoroknak egyéb feladataik is vannak. A string-ből képző konstruktor megtisztítja a bemenetet a betűktől és egyéb karakterektől. Ide tartozik a - jel is, így a negatív szám ily módon pozitívvá válik. Ez a felhasználót remélhetőleg nem téveszti meg, hiszem a program egyértelműen elmondja, hogy csak pozitív számokkal dolgozik. A short és long tömbökből képző konstruktorok közel azonosak az = operátorral. Mivel a C++-ban a dinamikus helyfoglalású tömbök méretét nem lehet meghatározni, ezt a számot pórázon kell vinni a tömb mellett, ezt szolgálja a len változó. Az egész bemenet hasonló a stringhez, itt nincs szükség se kezdő nullák lecsapására, se egyéb karakterek eltávolítására. A osztályban egyetlen barát függvény található, ez a << operátor. Az osztály definíciója (szam.h): class Szam { public: Szam(std::string szam); Szam(); Szam(short* input, int len); Szam(long* input, int len); Szam(int input);

4 ~Szam(); enum Exceptions {NUMBER_ERROR; Szam operator+(const Szam& masik); Szam operator*(const int masik); Szam operator*(const Szam& masik); friend std::ostream& operator<<(std::ostream &os, const Szam& a); ; Szam& operator=(const Szam& mivel); private: short* szjegyek; int length; std::ostream& operator<<(std::ostream &os, const Szam& a); Metódusok: A metódusok definíciója a szam.cpp-ben található. Szükséges könyvtárak: iostream, sstream, string, cstdlib, math.h A definíciók elé írandó még a using namespace std; Szam::Szam() Feladat: Legalapabb konstruktor. Létrehoz egy 1 hosszú tömböt, melynek egyetlen, első eleme a 0. Az egy hosszt is elmenti az osztály privát változójába. Bemeneti változók: nincsenek Kimeneti változók: nincs (maga az osztály) Szam::Szam() { this->szjegyek = new short[1]; this->szjegyek[0] = 0; this->length = 1; Szam::Szam (string input) Feladat: Ez a konstruktor stringet kér paraméterként, amit első lépésben megtisztít a felesleges karakterektől és jelektől (betűk, előjelek, stb.). A tiszta stringről aztán levágja a kezdő nullákat, majd létrehozza a privát változókat és értéket ad nekik. Bemeneti változók: string számokkal, karakterekkel, mindennel Kimeneti változók: nincs (maga az osztály)

5 Szam::Szam (string input) { //1. lépés: String megtisztítása a felesleges betűktől, speciális hülyeségektől, amit a user odaszemetel string tiszta_string; for (unsigned int i = 0; i < input.length(); i++) { if (int(input[i]) >= 48 && int(input[i]) <= 57) { // 0 karakter ascii kódja 48, a 9-esé 57, a többi a közte lévő sorban tiszta_string += input[i]; //2. képés: A kezdő nullák lecsapása. this->length = tiszta_string.length(); { int i = 0; while (tiszta_string[i] == '0' && this->length > 1) { this->length--; i++; //3. képés: A tiszta string konvertálása számjegyekké if (this->length < 1) { //0 és 1 hossz miatti félreértések elkerülésére a 0 számmal kapcsolatban. this->szjegyek = new short[1]; this->szjegyek[0] = 0; this->length = 1; else { //A többi szám this->szjegyek = new short[this->length]; for (int i = 0; i < this->length; i++) { szjegyek[i] = short(tiszta_string[i])-48; //Ascii kód Szam::Szam (int input) Feladat: Negatív számra kivételt dob, a többi számra létrehozza az objektumot a megfelelő hosszon és számjegyekkel. Itt nincs szükség a kezdő nullák levágására. Bemeneti változók: az egész szám Kimeneti változók: nincs (maga az osztály) Szam::Szam (int input) {

6 if (input < 0) throw CONSTRUCT_NEGATIVE; //Negatív számnál dobjon kivételt if (input == 0) { //Nulla this->length = 1; this->szjegyek = new short[this->length]; this->szjegyek[0] = 0; else { //Többi this->length = int(log10(input))+1; this->szjegyek = new short[this->length]; for (int i = 1; i <= this->length; i++) { szjegyek[length-i] = input%10; input = input/10; Szam::Szam (short* input, int len) Feladat: Egy short int tömbre mutató pointer és annak hossza a bemenet. A tömböt átmásolja az objektum szjegyek tömbjébe a hosszot pedig eltárolja a length-ben. Bemeneti változók: short int tömbre mutató pointer és hossza (int). Kimeneti változók: nincs (maga az osztály) Szam::Szam (short* input, int len) { this->length = len; int i = 0; //1. lépés: kezdő nullák lecsapása while (input[i] == 0 && this->length > 1) { this->length--; i++; //2. lépés: szám eltárolása if (this->length < 1) { //0 this->szjegyek = new short[1]; this->szjegyek[0] = 0; this->length = 1; else { //többi this->szjegyek = new short[this->length]; for (int j = 0; j < this->length; j++, i++) { szjegyek[j] = input[i];

7 Szam::Szam (long* input, int len) Feladat: Egy long int tömbre mutató pointer és annak hossza a bemenet. A tömböt átmásolja az objektum szjegyek tömbjébe a hosszot pedig eltárolja a length-ben. Bemeneti változók: long int tömbre mutató pointer és hossza (int). Kimeneti változók: nincs (maga az osztály) Szam::Szam (long* input, int len) { this->length = len; int i = 0; //1. lépés: kezdő nullák lecsapása while (input[i] == 0 && this->length > 1) { this->length--; i++; //2. lépés: szám eltárolása if (this->length < 1) { this->szjegyek = new short[1]; this->szjegyek[0] = 0; this->length = 1; else { this->szjegyek = new short[this->length]; for (int j = 0; j < this->length; j++, i++) { Szam::~Szam () szjegyek[j] = input[i]; Feladat: Az osztály törlésére szolgáló destruktor. Felszabadítja a számra lefoglalt memóriát. Bemeneti változók: nincsenek. Kimeneti változók: nincs (destruktor) Szam::~Szam () { delete[] this->szjegyek; ostream& operator<<(ostream &os, const Szam& a) Feladat: A Szam barát függvénye, de az std-hez tartozik. Ostream-be írja ki a tárolt számot. Bemeneti változók: ostream referencia, szám objektuma. Kimeneti változók: az ostream-mel tér vissza, amit kapott. Megjegyzés: Mivel barát függvény, hozzáfér az a bemeneti Szam privát változóihoz. ostream& operator<<(ostream &os, const Szam& a) {

8 for (int i = 0; i < a.length; i++) { os << a.szjegyek[i]; return os; Szam& Szam::operator=(const Szam& a) Feladat: Értékadás operátor. Törli a szjegyek din. hely. tömböt, új értéket az a length-nek és beírja az új számjegyeket. Ha a két Szam azonos, akkor az elején visszadobja. Bemeneti változók: a Szam, amivel értéket adunk Kimeneti változók: a Szam, ami új értéket kapott Szam& Szam::operator=(const Szam& a) { if (this == &a) return *this; delete[] szjegyek; this->szjegyek = new short[a.length]; this->length = a.length; for (int i = 0; i < a.length; i++) { this->szjegyek[i] = a.szjegyek[i]; return *this; Szam Szam::operator+(const Szam& masik) Feladat: Két nagy szám összeadása. Első lépésként kiszámolja az új Szam maximális hosszát, ami a rosszabbik szám +1 lehet (biz. Trivi :) ). Létrehozza a tovabb változót, amiben az összeadás 10 feletti részét viszi majd tovább a következő ciklusra. Bemeneti változók: Az összeadás egyik tagja this, a másik a paraméterként megjelenő Szam; Kimeneti változók: az összeg Szam Szam Szam::operator+(const Szam& masik) { //Az új szám maximális lehetséges hosszának meghatározása: hosszabbik szám maximum 1 nagyságrenddel változhat (99+99 is csak 198 stb.) int uj_length; if (length >= masik.length) uj_length = length+1; else uj_length = masik.length+1; short* x; //Eredmény számjegyei x = new short[uj_length]; short tovabb = 0; //Az összeadás 10 feletti részét ebben visszük tovább for (int i = 1; i <= uj_length; i++) { //Amíg van egyik vagy másik számjegy, addig hozzáadjuk az előző körből hozott "maradékhoz". if (i <= length) tovabb += szjegyek[length-i];

9 if (i <= masik.length) tovabb += masik.szjegyek[masik.length-i]; //Egyesek az összeg aktuális helyiértékére, a többit továbbvisszük. x[uj_length-i] = tovabb%10; tovabb = tovabb/10; Szam ret(x, uj_length); delete[] x; return ret; Szam Szam::operator*(const int egesz) Feladat: Egy nagy szám egész számszorosát adja vissza. Negatív paraméter esetén kivételt dob. Az új szám maximális hossza a nagy szám hossza + az egész szám hossza. A maradékok feltorlódhatnak, ezért long tömböt használunk. A további biztonság kedvéért a maradékokat több lépésben, külön-külön visszük át a következő helyiértékre, ez jelentősen nem növeli meg a futásidőt sem. Bemeneti változók: A nagy szám a this, az egész paraméterként jelenik meg. Kimeneti változók: Az eredmény Szam Szam Szam::operator*(const int egesz) { //Az új szám maximális hossza: if (egesz < 0) throw MULTI_NEGATIVE; int uj_length = length + int(log10(egesz+0.5))+1; // pl ha 10 az int, akkor a logaritmus értéke 1, az szorzat is 1 nagyságrenddel változik stb long *x; //Nagy maradékok is lehetnek. x = new long[uj_length]; for (int i = 1; i <= length; i++) { x[uj_length-i] = szjegyek[length-i] * egesz; for (int i = length+1; i <= uj_length; i++) { x[uj_length-i] = 0; bool kesz = false; //Maradékok kezelése - bár többször végigmegy a tömbön, az x biztosan nem csúszik ki, míg ha egyben menne a végig, a maradék annyira feltorlódna egy nagy egész esetén, hogy a longból is kicsúszna while (!kesz) { kesz = true; for (int i = 1; i < uj_length; i++) { if (x[i] >= 10) { x[i-1] += x[i]/10; x[i] = x[i]%10; if (x[i-1] >= 10) kesz = false;

10 return Szam(x,uj_length); Szam Szam::operator*(const Szam& masik) Feladat: Két nagy szám szorzatát adja meg. A második szám számjegyeit egyesével szorozza be, majd a megfelelő helyiértékre szorozza 10-essével. Ezeket a nagy számokat hozzáadja az x-hez, ami majd a végeredmény lesz. Bemeneti változók: Az egyik nagy szám a this, a másik paraméterként jelenik meg. Kimeneti változók: Az eredmény Szam Szam Szam::operator*(const Szam& masik) { Szam x,temp; ostringstream os; for (int i = 1; i <= masik.length; i++) { temp = *this * int(masik.szjegyek[masik.length-i]); for (int j = 1; j < i; j++) { temp = temp * 10; x = x + temp; temp = Szam(); return x; Teszkörnyezet: Az alábbi tesztökörnyezetet használtama a teszteléshez: #include "szam.h" #include <iostream> #include <cstdlib> #include <sstream> #include <fstream> using namespace std; //Konstansok: const string MENU_WELCOME = "Ez a program majdnem tetszoleges nagy egesz szamok es vele kapcsolatos muveletekkel kepes dolgozni. Valassz az alabbi pontok kozul."; const string MENU_OPTIONS = "\n\n1. a+b (operator+)\n2. a*integer (operator*)\n3. a*b (operator*)\n4. a:=b (operator=)\n5. Kiiratas(operator<<)\n6. 'a' szam megadasa\n7. 'b' szam megadasa\n0. Kilepes"; const string MENU_QUESTION = "Valassz(0-7): ";

11 const string MENU_NEED_TWO_NUMS = "Es most kerek 2 szamot, a-t es b-t!"; const string MENU_FILE_OR_KEY = "Fajlbol szeretnel szamot beolvasni? (y/n) "; const string MENU_IN_FILE = "Ird be a fajl utvonalat, amiben a szam van (elso sorban kell lennie): "; const string MENU_IN_KEY = "Ird be ide a szamot: "; const string MENU_IN_INT = "Irj be egy pozitiv integert: "; const string MENU_FILE_ERR = "Fajlbeolvasasi hiba."; const string MENU_RES = "A muvelet eredmenye: "; /////////////////////////////////////////////// //Menü osztály deklarációja class Menu { public: //Konstruktor Menu(); int Run(); private: //A nagy szám osztályának egy példánya enum Exceptions {UNK_OPTION, FILE_ERROR; Szam a; //egyik szám Szam b; //másik szám Szam c; //eredmény int d; //integer int opt; //választott szám //A menü kiíratása void WriteMenu() const; //Válaszlehetőség bekérése int GetOption(); //Szám bekérése Szam GetSzam(); int GetInt(); //Beviteli lehetőségek bool FileInput(string filename, Szam &x); ; /////////////////////////////////////////////// int main() { Menu menu;

12 return menu.run(); /////////////////////////////////////////////// //A Menu osztály funkciói: Menu::Menu() { this->opt = 0; int Menu::Run() { cout << MENU_WELCOME << endl; cout << MENU_NEED_TWO_NUMS << endl; try { try { a = this->getszam(); b = this->getszam(); do { this->writemenu(); opt = this->getoption(); switch (opt) { case 6: a = GetSzam(); case 7: b = GetSzam(); case 1: c = a + b; cout << "a: " << a << endl << endl; cout << "b: " << b << endl << endl; cout << "Osszeg: " << c << endl << endl; case 3: c = a * b; cout << "a: " << a << endl << endl; cout << "b: " << b << endl << endl; cout << "Szorzat: " << c << endl << endl; case 2: d = this->getint();

13 endl; c = a * d; cout << "a: " << a << endl << endl; cout << "int: " << d << endl << endl; cout << "Szorzat: " << c << endl << endl; case 4: a = b; cout << "Az ertekadas megtortent!"; case 5: cout << "a: " << a << endl << endl; cout << "b: " << b << endl << endl; case 0: cout << "Viszlát!"; default: //switch throw UNK_OPTION; while (opt!= 0); //do return 0; catch(szam::exceptions ex) { //try if (ex == Szam::MULTI_NEGATIVE) cout << "Negativ szorzotag!" << if (ex == Szam::CONSTRUCT_NEGATIVE) cout << "Hiba! Negativ szamot kaptam!" << endl; catch(menu::exceptions ex) { //try return 1; if (ex == FILE_ERROR) cout << "Fajlhiba tortent!" << endl; if (ex == UNK_OPTION) cout << "Ismeretlen menupont!" << endl; void Menu::WriteMenu() const { cout << MENU_OPTIONS << endl; int Menu::GetOption() { string temp; do {

14 cout << MENU_QUESTION; getline(cin, temp); while (atoi(temp.c_str()) < 0 atoi(temp.c_str()) > 7); return atoi(temp.c_str()); int Menu::GetInt() { string temp; int x; cout << MENU_IN_INT << endl; getline(cin, temp); x = atoi(temp.c_str()); return x; Szam Menu::GetSzam() { int step = 0; string temp; Szam x; do { if (step == 0) cout << MENU_FILE_OR_KEY; if (step == 1) cout << MENU_IN_FILE; if (step == 2) cout << MENU_IN_KEY; getline(cin, temp); switch (step) { case 0: //Fájl vagy billentyűzet if (temp == "y" temp == "Y" temp == "1") step = 1; if (temp == "n" temp == "N" temp == "0") step = 2; case 1: //Fájl if (this->fileinput(temp, x)) step = 3; case 2: //Bill x = Szam(temp); step = 3; while (step < 3); return x;

15 bool Menu::FileInput(string temp, Szam &x) { ifstream befile; string sor, szamstr; befile.open(temp.c_str()); if (befile.fail()) { cout << MENU_FILE_ERR << endl; return false; while(!befile.eof()) { getline(befile, sor); szamstr += sor; x = Szam(szamstr); return true; /////////////////////////////////////////////// Fekete doboz tesztelés: A különböző menüpontok végrehajtása, próbája: Értékadás Összadás Szorzás egésszel Szorzás nagy számmal. Fehér doboz tesztelés: 0,1 és egészen nagy bemenetek tesztje. Kivételek előcsalása

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása.

A feladat lényege egy felhasználói típusnak a zsák típusnak a megvalósítása. Feladat Készítsen egy egész számokat tartalmazó zsák típust! A zsákot dinamikusan lefoglalt tömb segítségével ábrázolja! Implementálja a szokásos műveleteket (elem betevése, kivétele, üres-e a halmaz,

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

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

117. AA Megoldó Alfréd AA 117.

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

Részletesebben

Informatika terméktervezőknek

Informatika terméktervezőknek Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások

Részletesebben

Maximum kiválasztás tömbben

Maximum kiválasztás tömbben ELEMI ALKALMAZÁSOK FEJLESZTÉSE I. Maximum kiválasztás tömbben Készítette: Szabóné Nacsa Rozália Gregorics Tibor tömb létrehozási módozatok maximum kiválasztás kódolása for ciklus adatellenőrzés do-while

Részletesebben

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

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

Algoritmizálás + kódolás C++ nyelven és Pascalban

Algoritmizálás + kódolás C++ nyelven és Pascalban Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

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

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1 STL gyakorlat C++ Izsó Tamás 2016. május 9. Izsó Tamás STL gyakorlat/ 1 Komponensek kapcsolata Deklarálja az alábbi osztálydiagramon szereplő osztályok közül az A, AA és AB osztályokat! A konstruktorokat

Részletesebben

500. CC Megoldó Alfréd CC 500.

500. CC Megoldó Alfréd CC 500. Programozás alapjai 2. PótZH 2010.05.20. gyakorlat: G1/IB.146 Hiány:3 ZH:7,71 MEGOLD SCH/500. Hftest: 0 ZHp: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

Részletesebben

128. AA Megoldó Alfréd AA 128.

128. AA Megoldó Alfréd AA 128. Programozás alapjai 2. PótZH 2010.05.20. gyakorlat: Hiány:0 ZH: MEGOLD SEHOL/5. Hftest: 0 ZHp: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden

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

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

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése Készítette: Gregorics Tibor Szabóné Nacsa Rozália Alakítsunk át egy infix formájú aritmetikai kifejezést postfix

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

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

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Bevezetés a programozásba II 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Emlékeztető struct Vektor { int meret, *mut; Vektor(int meret); int szamlal(int mit); }; int Vektor::szamlal(int mit)

Részletesebben

Bevezetés a programozásba. 8. Előadás: Függvények 2.

Bevezetés a programozásba. 8. Előadás: Függvények 2. Bevezetés a programozásba 8. Előadás: Függvények 2. ISMÉTLÉS Helló #include using namespace std; int main() cout

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

Globális operátor overloading

Globális operátor overloading Programozás II. 9. gyakorlat Operátor overloading 2: Unáris operátorok, globálisan megvalósított operátorok, > operátorok Kivételkezelés, IO library Globális operátor overloading Előző alkalommal

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

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

Pénzügyi algoritmusok

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

Részletesebben

Bevezetés Kiíratás Beolvasás Formázás Fájlkezelés Gyakorló feladatok C++ I/O. Bevezetés. Izsó Tamás február 20. Izsó Tamás C++ I/O / 1

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

Részletesebben

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

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

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával) I. A nyelv története C++ C (ős: B???) 1972 Ritchie AT&T Bell laboratórium UNIX 1978 Kernighan & Ritchie az első tankönyv,

Részletesebben

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

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő

Részletesebben

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

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon 1. Template (sablon) 1.1. Függvénysablon Maximum függvény megvalósítása függvénynév túlterheléssel. i n l i n e f l o a t Max ( f l o a t a, f l o a t b ) { return a>b? a : b ; i n l i n e double Max (

Részletesebben

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

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

Részletesebben

500. DD Megoldó Alfréd DD 500.

500. DD Megoldó Alfréd DD 500. Programozás alapjai 2. (inf.) zárthelyi 2009.05.21. gyakorlat: / Érdemjegy: QBX734 () IB319/32. Hftest: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

Részletesebben

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

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

Részletesebben

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu

Részletesebben

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,

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

.AA Megoldó Alfréd AA.

.AA Megoldó Alfréd AA. Programozás alapjai 2. (inf.) pót zárthelyi 2013.05.23. gyak. hiányzás: kzh: ZH:0 ABCDEF MEG/200. Hftest: (p) Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

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

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Sztringek Osztályok alapjai Sztringek Szöveges adatok kezelése Sztring Karakterlánc (string): Szöveges adat Karaktertömbként tárolva A szöveg végét a speciális

Részletesebben

Szoftvertechnológia alapjai Java előadások

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

Részletesebben

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

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked

Részletesebben

4. Öröklődés. Programozás II

4. Öröklődés. Programozás II 4. Öröklődés Programozás II Mielőtt belevágunk Egy Tárgy típusú objektumokat tároló tömb i. elemében tároljunk el egy új tárgyat Rossz módszer: tomb[i].setnev( uj.getnev() ); tomb[i].setertek( uj.getertek()

Részletesebben

Algoritmizálás + kódolás C++ nyelven és Pascalban

Algoritmizálás + kódolás C++ nyelven és Pascalban Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, az Algoritmusok és adatszerkezetek c. tárgyban

Részletesebben

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real

Részletesebben

infix kifejezés a+b ab+ +ab postfix kifejezés prefix kifejezés a+b ab+ +ab a+b ab+ +ab Készítette: Szabóné Nacsa Rozália

infix kifejezés a+b ab+ +ab postfix kifejezés prefix kifejezés a+b ab+ +ab a+b ab+ +ab Készítette: Szabóné Nacsa Rozália infix kifejezés a+b ab+ +ab Készítette: Szabóné Nacsa Rozália nacsa@inf.elte.hu postfix kifejezés prefix kifejezés a+b ab+ +ab a+b ab+ +ab 4 Lengyelforma J. Lukasewitz lengyel matematikus használta el

Részletesebben

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa! Tartalomjegyzék Általános Információ! 2 Felhasználói dokumentáció! 3 Feladat! 3 Környezet! 3 Használat! 3 Bemenet! 3 Példa! 3 A program eredménye! 3 Példa! 3 Hibalehetőségek! 3 Példa! 3 Fejlesztői dokumentáció!

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

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

Programozási Nyelvek: C++

Programozási Nyelvek: C++ Programozási Nyelvek: C++ Gyakorló feladatkönyv Umann Kristóf #include "CppStudent.h" int main() { CppStudent *reader = new CppStudent(); reader->readbook(); while(!reader->doesunderstand()) { reader->exercise();

Részletesebben

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Öröklés ism. Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Szeberényi Imre BME IIT Egy osztályból olyan újabb osztályokat származtatunk, amelyek rendelkeznek

Részletesebben

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.

Részletesebben

A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába

A lista eleme. mutató rész. adat rész. Listaelem létrehozása. Node Deklarálás. Létrehozás. Az elemet nekünk kell bef zni a listába A lista eleme 0 adat rész mutató rész Listaelem létrehozása p: Node 0 0 3 0 Az elemet nekünk kell bef zni a listába Deklarálás struct Node { int int value; Node* next; next; adattagok Létrehozás Node*

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

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

Java gyakorlat feladatai e s megolda sai (2014.04.10)

Java gyakorlat feladatai e s megolda sai (2014.04.10) Java gyakorlat feladatai e s megolda sai (2014.04.10) 1. Feladat Számítsuk ki a Fibonacci sorozat első 20 tagját! / Fibonacci számsorozat tagjait kiszámoló, egyetlen osztályból álló program @author Bence

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

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

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

Programozás alapjai II. (4. ea) C++ Programozás alapjai II. (4. ea) C++ konstruktor és értékadás, dinamikus szerkezetek Szeberényi Imre BME IIT M Ű E G Y T E M 1 7 8 2 C++ programozási nyelv BME-IIT Sz.I. 2011.03.01. -1-

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

AA MEGOLDÓ ALADÁR AA

AA MEGOLDÓ ALADÁR AA Programozás alapjai 2. (inf.) 1. zárthelyi 2015.03.30. gyak./lab. hiányzás: 3/2 G3-QB309 ZEZFCE Minden beadandó megoldását a feladatlapra, a feladat után írja! Készíthet piszkozatot, de csak a feladatlapra

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

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

Objektumok inicializálása

Objektumok inicializálása Objektumok inicializálása Miskolci Egyetem Általános Informatikai Tanszék Objektumok inicializálása CPP4 / 1 Tartalom public adattagok inicializálása felsorolással konstruktor objektum tömbök osztály típusú

Részletesebben

Szoftvertervezés és -fejlesztés I.

Szoftvertervezés és -fejlesztés I. Szoftvertervezés és -fejlesztés I. Operátorok Vezérlési szerkezetek Gyakorlás 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik.

Részletesebben

0. Megoldó Manó 0. Programozás alapjai 2. (inf.) pót zárthelyi gyak. hiányzás: 2 n/kzhp: n/11,5. ABCDEF IB.028/2.

0. Megoldó Manó 0. Programozás alapjai 2. (inf.) pót zárthelyi gyak. hiányzás: 2 n/kzhp: n/11,5. ABCDEF IB.028/2. Programozás alapjai 2. (inf.) pót zárthelyi 2014.05.22. gyak. hiányzás: 2 n/kzhp: n/11,5 ABCDEF IB.028/2. Hftest: 4 (2,4p) Minden beadandó megoldását a feladatlapra, a feladat után írja! Készíthet piszkozatot,

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

- 1 - Konstansok használata. Döntsük el, van-e fordítási idejű hiba az alábbi programrészletekben! a) const char * str="zh"; str[0]++;

- 1 - Konstansok használata. Döntsük el, van-e fordítási idejű hiba az alábbi programrészletekben! a) const char * str=zh; str[0]++; Az alábbi feladatokat a AUT.BME.HU tanszéki weboldalon fellelhető AUT C++ Példatárból másoltam ki. A feladatokat a Programozás alapjai 2. ZH-ra való felkészülés jegyében válogattam, a példák nagy részét

Részletesebben

1. Egyszerű (primitív) típusok. 2. Referencia típusok

1. Egyszerű (primitív) típusok. 2. Referencia típusok II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget

Részletesebben

feladat pont min elért

feladat pont min elért NEPTUN kód: NÉV: Aláírás: Programozás 2. NZH, 2017. május 11. BME-TTK, fizika BSc Arcképes igazolvány hiányában nem kezdheted meg a ZH-t. A feladatok megoldására összesen 90 perc áll rendelkezésre. A feladatlapot

Részletesebben

osztályok kapcsolata Származtatatás C++ Izsó Tamás 2014. március 19. Izsó Tamás Származtatatás/ 1

osztályok kapcsolata Származtatatás C++ Izsó Tamás 2014. március 19. Izsó Tamás Származtatatás/ 1 Származtatatás C++ Izsó Tamás 2014. március 19. Izsó Tamás Származtatatás/ 1 Dinamikus tagváltozó az osztályban class RVektor { i n t n ; R a c i o n a l i s p ; p u b l i c : RVektor ( i n t n=10 ) :

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Folyamok kezelése Fájlok írása/olvasása Folyamok kezelése Szabvány folyamok Eddig Kiírás a szöveges konzolra:

Részletesebben

Programozás. C++ típusok, operátorok. Fodor Attila

Programozás. C++ típusok, operátorok. Fodor Attila Programozás C++ típusok, operátorok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. március 4. Deklaráció és definíció C++

Részletesebben

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

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. február 18. Minimum és maximumkeresés u s i n g n a m e s p a c e s t d ; i n t main ( ) { c o u t

Részletesebben

Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök

Bevezetés a programozásba I 8. gyakorlat. C++: szövegfolyamok, intelligens tömbök Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 8. gyakorlat C++: szövegfolyamok, intelligens tömbök 2011.11.08. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus

Részletesebben

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

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

Részletesebben

és az instanceof operátor

és az instanceof operátor Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

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

228. AA Default Konstruktor AA 228.

228. AA Default Konstruktor AA 228. Programozás alapjai 2. (inf.) zárthelyi 2012.05.17. gyak. hiányzás: kzhpont: ABCDEF Q-II/107. nzh: Hftest: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

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

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában

Részletesebben

mul : S T N 1 ha t S mul(s, t) := 0 egyébként Keresés Ezt az eljárást a publikus m veletek lenti megvalósításánál használjuk.

mul : S T N 1 ha t S mul(s, t) := 0 egyébként Keresés Ezt az eljárást a publikus m veletek lenti megvalósításánál használjuk. Érdi Gerg EF II. 2/2. Feladat Készítsen egy zsák típust! lkalmazzon osztályt! zsákokat rendezett láncolt listával ábrázolja! Implementálja a szokásos m veleteket, egészítse ki az osztályt a kényelmes és

Részletesebben

ISA szimulátor objektum-orientált modell (C++)

ISA szimulátor objektum-orientált modell (C++) Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált

Részletesebben

503.AA Megoldo Arisztid 503.A

503.AA Megoldo Arisztid 503.A Programozás alapjai 2. (inf.) 2. ZH 2017.04.27. gy./l. hiány: / ABCD123 Minden beadandó megoldását a feladatlapra, a feladat után írja! Készíthet piszkozatot, de csak a feladatlapra írt megoldásokat értékeljük!

Részletesebben

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai Kémiai elemek felfedezése A kémiai elemek kémiailag tovább már nem bontható, egyszerű anyagok. Jelenleg 118 különböző kémiai elemet ismerünk, közüliik a Földön 94 található meg a természetben, ezeket természetes

Részletesebben

10. gyakorlat Struktúrák, uniók, típusdefiníciók

10. gyakorlat Struktúrák, uniók, típusdefiníciók 10. gyakorlat Struktúrák, uniók, típusdefiníciók Házi - (f0218) Olvass be 5 darab maximum 99 karakter hosszú szót úgy, hogy mindegyiknek pontosan annyi helyet foglalsz, amennyi kell! A sztringeket írasd

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

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

Programozási nyelvek II.: JAVA, 4. gyakorlat

Programozási nyelvek II.: JAVA, 4. gyakorlat Programozási nyelvek II.: JAVA, 4. gyakorlat 2017. október 2-6. Programozási nyelvek II.: JAVA, 4. gyakorlat 1 / 32 A 4. gyakorlat tematikája Tömbök A java.util.arrays osztály A String osztály A StringBuffer

Részletesebben

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET

PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET PROGRAMOZÁSI NYELVEK - CPP. GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. április 12. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! -

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java 2. gyakorlat Függvények Általános prototípus Módosítószavak Láthatóság: public, protected, private. Ha nem definiált, akkor úgynevezett package-private láthatóság. Lehet abstract

Részletesebben

Programozás II. ATM példa Dr. Iványi Péter

Programozás II. ATM példa Dr. Iványi Péter Programozás II. ATM példa Dr. Iványi Péter 1 ATM gép ATM=Automated Teller Machine Pénzkiadó automata Kezelő szoftvert szeretnénk írni Objektum-orientált módon 2 Követelmények Egyszerre csak egy embert

Részletesebben

1000.AA Megoldo Alfréd 1000.A

1000.AA Megoldo Alfréd 1000.A Programozás alapjai 2. (inf.) 2. PZH 2018.05.22. hiányzás:0+3 L4-R4P ZH: 27,5+26 ABCDEF IB.028/100. Sum:0 e:19 Minden beadandó megoldását a feladatlapra, a feladat után írja! Készíthet piszkozatot, de

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

BASH SCRIPT SHELL JEGYZETEK

BASH SCRIPT SHELL JEGYZETEK BASH SCRIPT SHELL JEGYZETEK 1 TARTALOM Paraméterek... 4 Változók... 4 Környezeti változók... 4 Szűrők... 4 grep... 4 sed... 5 cut... 5 head, tail... 5 Reguláris kifejezések... 6 *... 6 +... 6?... 6 {m,n}...

Részletesebben