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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

Átírás

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

2 ISMÉTLÉS Függvényhívás #include #include <iostream> <iostream> #include #include <cmath> <cmath> using using namespace namespace std; std; double double terulet(double terulet(double a, a, double double b, b, double double c) c) double double s = (a+b+c)/2.0; (a+b+c)/2.0; return return sqrt((s-a)*(s-b)*(s-c)*s); sqrt((s-a)*(s-b)*(s-c)*s); int int main() main() double double ha,hb,hc; ha,hb,hc; cin cin >> >> ha ha >> >> hb hb >> >> hc; hc; double double t = terulet(ha,hb,hc); terulet(ha,hb,hc); cout cout "terulet: "terulet: " t endl; endl; return return 0; 0;

3 ISMÉTLÉS Függvények double double terulet(double terulet(double a, a, double double b, b, double double c) c) Szignatúra: Visszatérési típus (a függvény típusának is nevezik) Függvény neve Zárójelben Paraméter 1, ha van Paraméter 2, ha van.. A szignatúrából minden kiderül arról, hogyan kell használni a függvényt

4 ISMÉTLÉS Strukturált programozás Programtervezési elv: a feladatot osszuk részfeladatokra, és függvényekben csoportosítsuk azokat dekompozíció, redukció int nagyonnehézfeladat(p1 P2 P3..) egyikkicsitkönnyebb(p2 P4..); másikkicsitkönnyebb(p1 P2..);... Top-down vagy Bottom-up felépítés 80-as évekig nagy szoftvereknél egyeduralkodó

5 ISMÉTLÉS PLanG: STL vector C++ [semmi] VÁLTOZÓK : t:egész[10] t[0] := 1 [ilyet PLanG-ban nem lehet csinálni] #include <vector> vector<int> t(10); vagy vector<int> t(10,0); t[0]=1 int osszeg(vector<int> t) int sum=0; for (int i=0;i<t.size() ;i++) sum+=t[i]; return sum; osszeg(t)

6 ISMÉTLÉS Érték szerinti paraméterátadás #include #include <iostream> <iostream> using using namespace namespace std; std; Másolat készül void void fv(double fv(double a) a) a=0; a=0; int int main() main() double double d; d; d=1; d=1; fv(d); fv(d); cout cout "eredmeny: "eredmeny: " d endl; endl; return return 0; 0; Az eredmény: 1

7 Referencia szerinti paraméterátadás ISMÉTLÉS #include #include <iostream> <iostream> using using namespace namespace std; std; Másolat készül void void fv(double fv(double & a) a) a=0; a=0; int int main() main() double double d; d; d=1; d=1; fv(d); fv(d); cout cout "eredmeny: "eredmeny: " d endl; endl; return return 0; 0; Az eredmény: 0

8 ISMÉTLÉS struct #include <iostream> using using namespace std; std; struct koord koord double x,y; x,y; ; ; int int main() koord koord k; k; k.x=1.0; k.y=1.0; cout cout "[" "[" k.x k.x "," "," k.y k.y "]" "]" endl; endl; return 0; 0;

9 ISMÉTLÉS struct structban struct ember string nev; string lakcim; int szuletesi_ev; ; ; struct diak ember e; e; vector<int> jegyek; ; ;

10 ISMÉTLÉS struct és függvények struct struct pont pont double double x,y; x,y; string string nev; nev; ; ; void void kiir(pont p) p) cout cout "[" "[" p.x p.x "," "," p.y p.y "," "," p.nev p.nev "]" "]" endl; endl; int int main() main() pont pont p; p; kiir(p); kiir(p); return return 0; 0;

11 ISMÉTLÉS Operátorok struct struct pont pont double double x,y; x,y; ; ; bool bool operator==(pont a, a, pont pont b) b) return return a.x==b.x a.x==b.x && && a.y a.y == == b.y; b.y; int int main() main() pont pont a=1.0,1.0, b=0.0,0.0; cout cout (a==b); (a==b); return return 0; 0;

12 ISMÉTLÉS Operátorok Megvalósítható alakú: + - * &! ~ alakú: int).. alakú : + - * / % ^ & < > ==!= <= >= >> &&, Az operátorok szerepét illik a nevükhöz és a szokásos jelentésükhöz igazodva használni. Alaptípusokra nem bírálhatjuk felül az operátort

13 ISMÉTLÉS Tervezési kérdések struct struct pont pont double double x,y; x,y; ; ; double double tav(pont tav(pont a, a, pont pont b) b) return return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); pont pont legtavolabbi(pont legtavolabbi(pont a, a, vector<pont> vector<pont> v) v) pont pont b=v[0]; b=v[0]; double double max=tav(a,b); max=tav(a,b); for for (int (int i=1;i<v.size();i++) i=1;i<v.size();i++) if if (tav(a,v[i])>max) (tav(a,v[i])>max) b=v[i]; b=v[i]; max=tav(a,b); max=tav(a,b); return return b; b;

14 ISMÉTLÉS Tervezési kérdések struct struct pont pont double double x,y,z; x,y,z; ; ; double double tav(pont tav(pont a, a, pont pont b) b) return return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+ sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)+ (a.z-b.z)*(a.z-b.z)); (a.z-b.z)*(a.z-b.z)); pont pont legtavolabbi(pont legtavolabbi(pont a, a, vector<pont> vector<pont> v) v) pont pont b=v[0]; b=v[0]; double double max=tav(a,b); max=tav(a,b); for for (int (int i=1;i<v.size();i++) i=1;i<v.size();i++) if if (tav(a,v[i])>max) (tav(a,v[i])>max) b=v[i]; b=v[i]; max=tav(a,b); max=tav(a,b); return return b; b;

15 ISMÉTLÉS Tagfüggvény struct struct koord koord double double x,y; x,y; void void olvas(istream &be) &be) be be >> >> x >> >> y; y; ; ; int int main() main() koord koord a; a; a.olvas(cin); cout cout a.x a.x "," "," a.y a.y endl; endl; return return 0; 0;

16 Gyakorlatban Nézzünk meg egy példát Feladat: szöveges labirintusos játék A játékban helyszínek vannak, amikről a felhasználó rövid leírást kap Minden helyszín összeköttetésben állhat más helyszínekkel, amerre tovább lehet menni A felhasználó minden helyszínen megadhatja, hogy merre megy tovább Ha megérkezik a célba, nyer

17 Ahogy azt régen csináltuk volna #include <iostream> #include <iostream> using namespace std; using namespace std; int main() int main() int h=1; int h=1; while (h!=4) while (h!=4) if (h==1) if (h==1) cout "Otthon vagy. Mehetsz a parkba, vagy a bolthoz." endl; cout "Otthon vagy. Mehetsz a parkba, vagy a bolthoz." endl; if (h==2) if (h==2) cout "A parkban vagy. Mehetsz a suliba, vagy haza." endl; cout "A parkban vagy. Mehetsz a suliba, vagy haza." endl; if (h==3) if (h==3) cout "A boltnál vagy. Mehetsz a suliba, vagy haza." endl; cout "A boltnál vagy. Mehetsz a suliba, vagy haza." endl; cout "Hova mész? (1:haza, 2:park, 3:bolt, 4:suli) : "; cout "Hova mész? (1:haza, 2:park, 3:bolt, 4:suli) : "; cin >> h; cin >> h; cout "Megérkeztél a suliba, éljen." endl; cout "Megérkeztél a suliba, éljen." endl;

18 Ahogy azt régen csináltuk volna #include <iostream> #include <iostream> using namespace std; using namespace std; Gyanúsan repetitív kód int main() int main() int h=1; int h=1; while (h!=4) while (h!=4) if (h==1) if (h==1) cout "Otthon vagy. Mehetsz a parkba, vagy a bolthoz." endl; cout "Otthon vagy. Mehetsz a parkba, vagy a bolthoz." endl; if (h==2) if (h==2) cout "A parkban vagy. Mehetsz a suliba, vagy haza." endl; cout "A parkban vagy. Mehetsz a suliba, vagy haza." endl; if (h==3) if (h==3) cout "A boltnál vagy. Mehetsz a suliba, vagy haza." endl; cout "A boltnál vagy. Mehetsz a suliba, vagy haza." endl; cout "Hova mész? (1:haza, 2:park, 3:bolt, 4:suli) : "; cout "Hova mész? (1:haza, 2:park, 3:bolt, 4:suli) : "; cin >> h; cin >> h; cout "Megérkeztél a suliba, éljen." endl; cout "Megérkeztél a suliba, éljen." endl; Lehet csalni

19 1.1 #include <iostream> #include <iostream> using namespace std; using namespace std; int main() int main() int h=1; int h=1; while (h!=4) while (h!=4) if (h==1) if (h==1) cout "Otthon vagy. Mehetsz a parkba, vagy a bolthoz." endl; cout "Otthon vagy. Mehetsz a parkba, vagy a bolthoz." endl; if (h==2) if (h==2) cout "A parkban vagy. Mehetsz a suliba, vagy haza." endl; cout "A parkban vagy. Mehetsz a suliba, vagy haza." endl; if (h==3) if (h==3) cout "A boltnál vagy. Mehetsz a suliba, vagy haza." endl; cout "A boltnál vagy. Mehetsz a suliba, vagy haza." endl; cout "Hova mész? (1:haza, 2:park, 3:bolt, 4:suli) : "; cout "Hova mész? (1:haza, 2:park, 3:bolt, 4:suli) : "; int hova; int hova; cin >> hova; cin >> hova; if (h==1 && (hova==2 hova==3) if (h==1 && (hova==2 hova==3) h==2 && (hova==1 hova==4) h==2 && (hova==1 hova==4) h==3 && (hova==1 hova==4)) h==3 && (hova==1 hova==4)) h=hova; h=hova; else else cout "Arra nem lehet menni innen." endl; cout "Arra nem lehet menni innen." endl; cout "Megérkeztél a suliba, éljen." endl; cout "Megérkeztél a suliba, éljen." endl;

20 1.1 #include <iostream> #include <iostream> using namespace std; using namespace std; Ez még mindig int main() int main() int h=1; repetitív int h=1; while (h!=4) while (h!=4) if (h==1) if (h==1) cout "Otthon vagy. Mehetsz a parkba, vagy a bolthoz." endl; cout "Otthon vagy. Mehetsz a parkba, vagy a bolthoz." endl; if (h==2) if (h==2) cout "A parkban vagy. Mehetsz a suliba, vagy haza." endl; cout "A parkban vagy. Mehetsz a suliba, vagy haza." endl; if (h==3) if (h==3) cout "A boltnál vagy. Mehetsz a suliba, vagy haza." endl; cout "A boltnál vagy. Mehetsz a suliba, vagy haza." endl; cout "Hova mész? (1:haza, 2:park, 3:bolt, 4:suli) : "; cout "Hova mész? (1:haza, 2:park, 3:bolt, 4:suli) : "; int hova; int hova; cin >> hova; cin >> hova; if (h==1 && (hova==2 hova==3) if (h==1 && (hova==2 hova==3) Nehéz változtatni h==2 && (hova==1 hova==4) h==2 && (hova==1 hova==4) h==3 && (hova==1 hova==4)) a térképet, ez túl h==3 && (hova==1 hova==4)) h=hova; bonyolult h=hova; else else cout "Arra nem lehet menni innen." endl; cout "Arra nem lehet menni innen." endl; cout "Megérkeztél a suliba, éljen." endl; cout "Megérkeztél a suliba, éljen." endl;

21 1.2 #include <iostream> #include <iostream> #include <vector> #include <vector> using namespace std; using namespace std; int main() int main() vector<string> terkep(4); vector<string> terkep(4); terkep[0]="otthon vagy. Mehetsz a parkba, vagy a bolthoz."; terkep[0]="otthon vagy. Mehetsz a parkba, vagy a bolthoz."; terkep[1]="a parkban vagy. Mehetsz a suliba, vagy haza."; terkep[1]="a parkban vagy. Mehetsz a suliba, vagy haza."; terkep[2]="a boltnál vagy. Mehetsz a suliba, vagy haza."; terkep[2]="a boltnál vagy. Mehetsz a suliba, vagy haza."; terkep[3]="megérkeztél a suliba, éljen."; terkep[3]="megérkeztél a suliba, éljen."; int h=0; int h=0; cout terkep[h] endl; cout terkep[h] endl; while (h!=3) while (h!=3) cout "Hova mész? (0:haza, 1:park, 2:bolt, 3:suli) : "; cout "Hova mész? (0:haza, 1:park, 2:bolt, 3:suli) : "; int hova; int hova; cin >> hova; cin >> hova; if ( if ( h==0 && (hova==1 hova==2) h==0 && (hova==1 hova==2) h==1 && (hova==0 hova==3) h==1 && (hova==0 hova==3) h==2 && (hova==0 hova==3) h==2 && (hova==0 hova==3) ) ) h=hova; h=hova; else else cout "Arra nem lehet menni innen." endl; cout "Arra nem lehet menni innen." endl; cout terkep[h] endl; cout terkep[h] endl;

22 #include <iostream> #include <iostream> #include <vector> #include <vector> using namespace std; using namespace std; 1.2 int main() int main() vector<string> terkep(4); vector<string> terkep(4); terkep[0]="otthon vagy. Mehetsz a parkba, vagy a bolthoz."; terkep[0]="otthon vagy. Mehetsz a parkba, vagy a bolthoz."; terkep[1]="a parkban vagy. Mehetsz a suliba, vagy haza."; terkep[1]="a parkban vagy. Mehetsz a suliba, vagy haza."; terkep[2]="a boltnál vagy. Mehetsz a suliba, vagy haza."; terkep[2]="a boltnál vagy. Mehetsz a suliba, vagy haza."; terkep[3]="megérkeztél a suliba, éljen."; terkep[3]="megérkeztél a suliba, éljen."; int h=0; int h=0; cout terkep[h] endl; cout terkep[h] endl; while (h!=3) while (h!=3) cout "Hova mész? (0:haza, 1:park, 2:bolt, 3:suli) : "; cout "Hova mész? (0:haza, 1:park, 2:bolt, 3:suli) : "; int hova; int hova; cin >> hova; cin >> hova; if ( if ( h==0 && (hova==1 hova==2) h==0 && (hova==1 hova==2) h==1 && (hova==0 hova==3) h==1 && (hova==0 hova==3) h==2 && (hova==0 hova==3) h==2 && (hova==0 hova==3) ) ) h=hova; h=hova; else else cout "Arra nem lehet menni innen." endl; cout "Arra nem lehet menni innen." endl; cout terkep[h] endl; cout terkep[h] endl; Ez még mindig túl merev szerkezet

23 Bedrótozott adat Azt nevezzük bedrótozott -nak, ami a programkódban fixen le van írva, pedig jobb lenne, ha nem így lenne Adott esetben egy olyan program, ami a térképet fájlból olvasná be Általában cél, hogy a végleges programban már ne legyen olyan bedrótozott adat, ami a feladatban megváltozhat Ez viszont sokszor nem túl egyszerű, kicsit gondolkodni kell hozzá

24 Jön a struct Azt láttuk, hogy ha szeretnénk kiemelni a bedrótozott adatot, akkor kezelni kell a következőket tájékoztató szöveg kiírása az egyes helyszíneken az összeköttetések a helyszínek között esetleg a helyszínek neve Ezek közül az összeköttetések kezelése a legnehezebb

25 std::vector Azon túl, hogy a primitív tömbnél jobb paraméterátadásnál kezdeti értékben méretnek változót is kaphat, nem csak konstanst Néhány további hasznos szolgáltatás push_back(elem) : a tömb végére új elemet tehetünk resize(újméret) : átméretezhető bármikor

26 A helyszín reprezentációja struct hely hely string nev; nev; string leiras; vector<int> hova; ; ; A név és a leírás szöveges változóval megoldható Az összeköttetéseket tömbben reprezentáljuk, aminek az elemei az innen elérhető helyszínek kódjai

27 2.0 #include <iostream> #include <iostream> #include <vector> #include <vector> using namespace std; using namespace std; struct hely struct hely string nev; string nev; string leiras; string leiras; vector<int> hova; vector<int> hova; ; ; int main() int main() vector<hely> terkep(4); vector<hely> terkep(4); terkep[0].nev="otthon"; terkep[0].nev="otthon"; terkep[0].leiras="otthon vagy. Mehetsz a parkba, vagy a bolthoz."; terkep[0].leiras="otthon vagy. Mehetsz a parkba, vagy a bolthoz."; terkep[0].hova.push_back(1); terkep[0].hova.push_back(1); terkep[0].hova.push_back(2); terkep[0].hova.push_back(2); terkep[1].nev="park"; terkep[1].nev="park"; terkep[1].leiras="a parkban vagy. Mehetsz a suliba, vagy haza."; terkep[1].leiras="a parkban vagy. Mehetsz a suliba, vagy haza."; terkep[1].hova.push_back(0); terkep[1].hova.push_back(0); terkep[1].hova.push_back(3); terkep[1].hova.push_back(3); terkep[2].nev="bolt"; terkep[2].nev="bolt"; terkep[2].leiras="a boltnál vagy. Mehetsz a suliba, vagy haza."; terkep[2].leiras="a boltnál vagy. Mehetsz a suliba, vagy haza."; terkep[2].hova.push_back(0); terkep[2].hova.push_back(0); terkep[2].hova.push_back(3); terkep[2].hova.push_back(3); terkep[3].nev="suli"; terkep[3].nev="suli"; terkep[3].leiras="megérkeztél a suliba, éljen."; terkep[3].leiras="megérkeztél a suliba, éljen.";

28 2.0 terkep[3].nev="suli"; terkep[3].nev="suli"; terkep[3].leiras="megérkeztél a suliba, éljen."; terkep[3].leiras="megérkeztél a suliba, éljen."; int h=0; int h=0; cout terkep[h].leiras endl; cout terkep[h].leiras endl; while (h!=3) while (h!=3) cout "Hova mész?" endl; cout "Hova mész?" endl; for (int i=0;i<terkep[h].hova.size();i++) for (int i=0;i<terkep[h].hova.size();i++) cout i+1 ":" terkep[terkep[h].hova[i]].nev endl; cout i+1 ":" terkep[terkep[h].hova[i]].nev endl; int melyik; int melyik; cin >> melyik; cin >> melyik; if (melyik > 0 && melyik <= terkep[h].hova.size()) if (melyik > 0 && melyik <= terkep[h].hova.size()) h=terkep[h].hova[melyik-1]; h=terkep[h].hova[melyik-1]; else else cout "Hibás válasz." endl; cout "Hibás válasz." endl; cout terkep[h].leiras endl; cout terkep[h].leiras endl;

29 2.0 terkep[3].nev="suli"; terkep[3].nev="suli"; terkep[3].leiras="megérkeztél a suliba, éljen."; terkep[3].leiras="megérkeztél a suliba, éljen."; int h=0; int h=0; cout terkep[h].leiras endl; cout terkep[h].leiras endl; while (h!=3) while (h!=3) cout "Hova mész?" endl; cout "Hova mész?" endl; for (int i=0;i<terkep[h].hova.size();i++) for (int i=0;i<terkep[h].hova.size();i++) cout i+1 ":" terkep[terkep[h].hova[i]].nev endl; cout i+1 ":" terkep[terkep[h].hova[i]].nev endl; int melyik; int melyik; menü cin >> melyik; cin >> melyik; if (melyik > 0 && melyik <= terkep[h].hova.size()) if (melyik > 0 && melyik <= terkep[h].hova.size()) h=terkep[h].hova[melyik-1]; h=terkep[h].hova[melyik-1]; else else cout "Hibás válasz." endl; cout "Hibás válasz." endl; cout terkep[h].leiras endl; cout terkep[h].leiras endl;

30 2.0 értékelés Sikeresen szeparáltuk a konkrét adatokat az általános működéstől Felkészültünk arra, hogy fájlból töltsük be a konkrét adatokat Ezt azzal értük el, hogy azonosítható helyszíneket használtunk a helyszínek tulajdonságainak összetartozását is kifejeztük Így végül a főprogram lényegi része független lett az aktuális térképtől

31 2.1 adatok.txt otthon otthon Otthon Otthon vagy. vagy. Mehetsz Mehetsz a parkba, parkba, vagy vagy a bolthoz. bolthoz park park A parkban parkban vagy. vagy. Mehetsz program Mehetsz a suliba, suliba, vagy vagy haza. haza bolt bolt void void betolt(ifstream betolt(ifstream &be, &be, hely hely & mit) mit) A boltnál boltnál vagy. vagy. Mehetsz Mehetsz be be >> a >> suliba, ws; suliba, ws; vagy vagy haza. haza getline(be, getline(be, mit.nev); mit.nev); suli suli getline(be, getline(be, mit.leiras); mit.leiras); Megérkeztél Megérkeztél a suliba, suliba, int int éljen. éljen. lsz,h; lsz,h; 0 be be >> >> lsz; lsz; for for (int (int i=0;i<lsz;i++) i=0;i<lsz;i++) be be >> >> h; h; mit.hova.push_back(h); mit.hova.push_back(h);

32 2.1 adatok.txt otthon otthon Otthon Otthon vagy. vagy. Mehetsz Mehetsz a parkba, parkba, vagy vagy a bolthoz. bolthoz park park A parkban parkban vagy. vagy. Mehetsz program Mehetsz a suliba, suliba, vagy vagy haza. haza bolt bolt Ha esetleg void void betolt(ifstream betolt(ifstream &be, &be, hely hely & mit) mit) A boltnál még boltnál vagy. az előző vagy. Mehetsz Mehetsz be be >> a >> suliba, ws; suliba, ws; vagy vagy haza. haza sor végén getline(be, getline(be, mit.nev); állunk mit.nev); suli suli getline(be, getline(be, mit.leiras); mit.leiras); Megérkeztél Megérkeztél a suliba, suliba, int int éljen. éljen. lsz,h; lsz,h; 0 be be >> >> lsz; lsz; for for (int (int i=0;i<lsz;i++) i=0;i<lsz;i++) be be >> >> h; h; mit.hova.push_back(h); mit.hova.push_back(h);

33 2.1 int int main() main() ifstream ifstream f("adatok.txt"); f("adatok.txt"); int int hsz, hsz, cel; cel; f f >> >> hsz hsz >> >> cel; cel; vector<hely> vector<hely> terkep(hsz); terkep(hsz); for for (int (int i=0;i<hsz;i++) i=0;i<hsz;i++) betolt(f,terkep[i]); betolt(f,terkep[i]); int int h=0; h=0; cout cout terkep[h].leiras terkep[h].leiras endl; endl; while while (h!=cel) (h!=cel) cout cout "Hova "Hova mész?" mész?" endl; endl; for for (int (int i=0;i<terkep[h].hova.size();i++) i=0;i<terkep[h].hova.size();i++) cout cout i+1 i+1 ":" ":" terkep[terkep[h].hova[i]].nev terkep[terkep[h].hova[i]].nev endl; endl; int int melyik; melyik; cin cin >> >> melyik; melyik; if if (melyik (melyik > > 0 0 && && melyik melyik <= <= terkep[h].hova.size()) terkep[h].hova.size()) h=terkep[h].hova[melyik-1]; h=terkep[h].hova[melyik-1]; else else cout cout "Hibás "Hibás válasz." válasz." endl; endl; cout cout terkep[h].leiras terkep[h].leiras endl; endl;

34 További lehetőségek A Térkép fogalmának bevezetése fájlnévből teljes térkép betöltés összeköttetések kezelése Néhány lehetséges változás a feladatban tárgyak kezelése, pl. csak akkor lehet egy összeköttetést használni, ha van nálunk kulcs Tárgy és Összeköttetés típusok bevezetésével, a főprogram ciklusának érintése nélkül megoldható grafikus megjelenítés A Hely mezőinek kibővítésével megoldható egyes helyszínek eltérő képe

35 Áttekintés Egy átlagos játékprogramon kevés programozó dolgozik, és nagyon sok designer Nem lehet bedrótozni semmit Szét kell választani a konkrét adatokat az általános működéstől Az általános működés megfogalmazásához jó, ha magasabb szintű fogalmakat használhatunk Megoldástér Problématér Ebben segít a struct és a függvények......vagyis a saját típusaink, és azok műveletei

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

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

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

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

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

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

Bevezetés a programozásba Előadás: A const

Bevezetés a programozásba Előadás: A const Bevezetés a programozásba 2 6. Előadás: A const ISMÉTLÉS Interface - Implementation struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; }; void Particle::rajzol() { gout

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

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

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

Bevezetés a programozásba 2

Bevezetés a programozásba 2 Bevezetés a programozásba 2 7. Előadás: STL konténerek, sablonok http://digitus.itk.ppke.hu/~flugi/ Vector int int main() { vector v(10); int int sum=0; for for (int i=0;i

Részletesebben

Bevezetés a programozásba. 6. Előadás: C++ bevezető

Bevezetés a programozásba. 6. Előadás: C++ bevezető Bevezetés a programozásba 6. Előadás: C++ bevezető ISMÉTLÉS PLanG features Utasítások Értékadás, KI:, BE: Programkonstrukciók Elágazás Ciklus Típusok Egész, valós, logikai, szöveg, karakter, fájl Típuskonstrukciók

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 5. gyakorlat Surányi Márton PPKE-ITK 2010.10.05. C++ A C++ egy magas szint programozási nyelv. A legels változatot Bjarne Stroutstrup dolgozta ki 1973 és 1985 között, a C nyelvb

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

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

Programozás II. 6.Öröklés Dr. Iványi Péter

Programozás II. 6.Öröklés Dr. Iványi Péter Programozás II. 6.Öröklés Dr. Iványi Péter 1 Öröklés Programozók lusta emberek, nem szeretnék valamit kétszer leírni Miért veszélyes? Nem hatékony Újra kell tárolni a kódot, újra le kell fordítani Karbantartás

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

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 10. Előadás Öröklődés http://digitus.itk.ppke.hu/~flugi/ Tagfüggvény struct Particle { int x,y; unsigned char r,g,b; void rajzol() { gout

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 8. gyakorlat Fájlkezelés Surányi Márton PPKE-ITK 2010.11.02. Fájlkezelés C++-ban C++-ban van lehet ségünk fájlok kezelésére. Itt már tényleges fájlokkal dolgozunk, nem pedig

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

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

Bevezetés a C++ programozásba

Bevezetés a C++ programozásba Bevezetés a C++ programozásba A program fogalma: A program nem más, mint számítógép által végrehajtható utasítások sorozata. A számítógépes programokat különféle programnyelveken írhatjuk. Ilyen nyelvek

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

Programozás C++ -ban 2007/7

Programozás C++ -ban 2007/7 Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum

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

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

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

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

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

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

Programozás C és C++ -ban

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

Részletesebben

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

Programozás C++ -ban 2007/1

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

Részletesebben

STL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók

STL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók STL Elsődleges komponensek: Tárolók Algoritmusok Bejárók Másodlagos komponensek: Függvény objektumok Adapterek Allokátorok (helyfoglalók) Tulajdonságok Tárolók: Vektor (vector) Lista (list) Halmaz (set)

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

Programozás C++ -ban 2007/4

Programozás C++ -ban 2007/4 Programozás C++ -ban 2007/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 szempontból is hasznos

Részletesebben

Programozás C++ -ban

Programozás C++ -ban Programozás C++ -ban 6. Konstansok A C nyelvben konstansokat makróval is deklarálhatunk. Ebben az esetben mindenhol ahol a makró előfordul a fordító a definiált értéket behelyettesíti a makró helyére.

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

Bevezetés a programozásba előadás: Öröklődés

Bevezetés a programozásba előadás: Öröklődés Bevezetés a programozásba 2 5. előadás: Öröklődés emlékeztető Tagfüggvény struct koord { double x,y,r; void set(double ux, double uy) { x=ux; y=uy; r=sqrt(x*x+y*y); } Használat: koord k; k.set(4,5); Egységbezárás

Részletesebben

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

Programozás alapjai II. (2. ea) C++ Programozás alapjai II. (2. ea) C++ C++ kialakulása, nem OOP újdonságok: 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.02.15. -1- C++ kialakulása

Részletesebben

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 33 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 7. ELŐADÁS - ABSZTRAKT ADATTÍPUS 2014 Bánsághi Anna 1 of 33 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

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

Bevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása

Bevezetés a programozásba II 1. gyakorlat. A grafikus könyvtár használata, alakzatok rajzolása Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba II 1. gyakorlat A grafikus könyvtár használata, alakzatok rajzolása 2014.02.10. Giachetta Roberto groberto@inf.elte.hu

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

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése FEJLETT PROGRAMOZÁSI NYELVEK, 2009 2. GYAKORLAT - Linux alatti C/C++ programozás Cél: Dinamikus csatolású függvénykönyvtár készítése és használata Plugin-szerű betöltés Egyszeű C++ osztályok készítése

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

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok A szemantikus elemzés helye Forrásprogram Forrás-kezelő (source handler) Lexikális elemző (scanner) A szemantikus elemzés feladatai Fordítóprogramok előadás (A, C, T szakirány) Szintaktikus elemző (parser)

Részletesebben

Géptermi zh-írás forgatókönyve

Géptermi zh-írás forgatókönyve Géptermi zh-írás forgatókönyve 1. A feladat és a tesztelés körülményeinek a megértése A feladat több részbıl áll. A megoldó program kötött szerkezető fájlból kapja az adatokat, ezért azt komolyan kell

Részletesebben

Fejlett programozási nyelvek C++ Iterátorok

Fejlett programozási nyelvek C++ Iterátorok Fejlett programozási nyelvek C++ Iterátorok 10. előadás Antal Margit 2009 slide 1 Témakörök I. Bevezetés II. Iterátor definíció III. Iterátorok jellemzői IV. Iterátorkategóriák V. Iterátor adapterek slide

Részletesebben

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Függvények C program egymás mellé rendelt függvényekből áll. A függvény (alprogram) jó absztrakciós eszköz a programok

Részletesebben

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ás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2) Programozás alapjai C nyelv 7. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.11.05. -1- Függvények C program egymás mellé rendelt függvényekből

Részletesebben

Programozás I. Grafika Eseménykezelés. Programozás I. 2. gyakorlat Interakció a grafikus felületen, tagfüggvények. Surányi Márton PPKE-ITK

Programozás I. Grafika Eseménykezelés. Programozás I. 2. gyakorlat Interakció a grafikus felületen, tagfüggvények. Surányi Márton PPKE-ITK Programozás I. 2. gyakorlat Interakció a grafikus felületen, tagfüggvények Surányi Márton PPKE-ITK 2013.02.25. 1 / 1 Nem csak rajzolni tudunk, hanem lehet interaktív alkalmazásokat készíteni interakció:

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

Programozás I. 5. Előadás: Függvények

Programozás I. 5. Előadás: Függvények Programozás I 5. Előadás: Függvények Függvény Egy alprogram Egy C program általában több kisméretű, könnyen értelmezhető függvényből áll Egy függvény megtalálható minden C programban: ez a main függvény

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

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int

Részletesebben

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

Programozás alapjai II. (1. ea) C++ Programozás alapjai II. (1. ea) C++ C++ kialakulása, nem OO újdonságok: Szeberényi Imre BME IIT Veszélyforrások csökkentése C + javítások C++ kialakulása C++ Objektum orientált szemlélet

Részletesebben

Programozás C és C++ -ban

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

Részletesebben

3. Gyakorlat Ismerkedés a Java nyelvvel

3. Gyakorlat Ismerkedés a Java nyelvvel 3. Gyakorlat Ismerkedés a Java nyelvvel Parancssori argumentumok Minden Java programnak adhatunk indításkor paraméterek, ezeket a program egy tömbben tárolja. public static void main( String[] args ) Az

Részletesebben

9.fejezet: Függvények és külső eljárások

9.fejezet: Függvények és külső eljárások 9.fejezet: Függvények és külső eljárások Úgy érzem, éppen itt az ideje, hogy összeszedjünk mindent, amit az eljárásokról, illetve a függvényekről tudni kell és rendszerezzük!nos, az alapvető eljárás ugye

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

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

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

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

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

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

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

Programozás alapjai II. (1. ea) C++ Programozás alapjai II. (1. ea) C++ C++ kialakulása, nem OO újdonságok: 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.02.15. - 1 - C++ kialakulása

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

- 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

C programozási nyelv

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

Részletesebben

Programozás I. gyakorlat

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

Részletesebben

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

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

0.1. Mi az a standard be- és kimenet?... 1. 0.2. A két mintafeladat leírása

0.1. Mi az a standard be- és kimenet?... 1. 0.2. A két mintafeladat leírása KöMaL Technikai tanácsok az I- és S-jelű pontversenyhez A standard be- és kimenet kezelése Tartalomjegyzék 0.1. Mi az a standard be- és kimenet?............................. 1 0.2. A két mintafeladat leírása.................................

Részletesebben

Alkalmazott modul: Programozás 2. előadás. Procedurális programozás: adatfolyamok, adatsorok kezelése

Alkalmazott modul: Programozás 2. előadás. Procedurális programozás: adatfolyamok, adatsorok kezelése Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 2. előadás Procedurális programozás: adatfolyamok, adatsorok kezelése 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto

Részletesebben

INFORMATIKAI ALAPISMERETEK

INFORMATIKAI ALAPISMERETEK Informatikai alapismeretek emelt szint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK EMELT SZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM

Részletesebben

Java programozási nyelv

Java programozási nyelv Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék

Részletesebben

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. Az osztály egy olyan típus leíró struktúra, amely tartalmaz adattagokat

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

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek.

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek. Tartalom 1. előadás programozás során használt nyelvek A specifikáció Algoritmikus nyelvek A problémamegoldás lépései 3/41 (miből?, mit?) specifikáció (mivel?, hogyan?) adat- + algoritmus-leírás 3. (a

Részletesebben

C++ Gyakorlat jegyzet 10. óra.

C++ Gyakorlat jegyzet 10. óra. C++ Gyakorlat jegyzet 10. óra. A jegyzetet Umann Kristóf készítette Brunner Tibor és Horváth Gábor gyakorlatán. (2017. január 6.) 1. Iterátor kategóriák Korábban már elhangzott, hogy az általunk implementált

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

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

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

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

Programozás II gyakorlat. 4. Öröklődés Programozás II gyakorlat 4. Öröklődés Feladat Egy játékfejlesztő cég olyan programot fejleszt, amely nyilvántartja az alkalmazottai adatait. Tároljuk minden személy: Nevét (legfeljebb 50 karakter) Születési

Részletesebben

Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE

Programozás C nyelven 5. ELŐADÁS. Sapientia EMTE Programozás C nyelven. ELŐADÁS Sapientia EMTE 201-16 1 while vs. for int szam, s; cin >> szam; s = 0; while ( szam > 0 ){ s += szam%10; szam /= 10; cout szam;

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

Alkalmazott modul: Programozás 2. fejezet. C++ alapismeretek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Alkalmazott modul: Programozás 2. fejezet. C++ alapismeretek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 2. fejezet C++ alapismeretek Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2015. évi Jegyzetpályázatának támogatásával

Részletesebben

Információs Technológia

Információs Technológia Információs Technológia Rekurzió, Fa adatszerkezet Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 18. Rekurzió Rekurzió

Részletesebben

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

Programozás alapjai. 7. előadás 7. előadás Wagner György Általános Informatikai Tanszék Jótanács (1) Tipikus hiba a feladat elkészítésekor: Jótanács (2) Szintén tipikus hiba: a file-ból való törléskor, illetve a file-nak új elemmel való

Részletesebben

Sejtautomaták. Szőke Kálmán Benjamin - SZKRADT.ELTE május 17.

Sejtautomaták. Szőke Kálmán Benjamin - SZKRADT.ELTE május 17. Sejtautomaták Szőke Kálmán Benjamin - SZKRADT.ELTE 2012. május 17. 1. Bevezetés A legismertebb sejtautomaták egyike a John Conway által kifejlesztett életjáték. Ennek a sejtmozaik háttere olyan, mint a

Részletesebben

Vezérlési szerkezetek

Vezérlési szerkezetek Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását

Részletesebben

Objektum elvű alkalmazások fejlesztése. Öröklődés. Készítette: Sike Sándor Gregorics Tibor

Objektum elvű alkalmazások fejlesztése. Öröklődés. Készítette: Sike Sándor Gregorics Tibor Objektum elvű alkalmazások fejlesztése Öröklődés Készítette: Sike Sándor Gregorics Tibor Készítsünk programot, amellyel testek térfogatát számolhatjuk ki, illetve megadhatjuk azt is, hogy az egyes testfajtákból

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

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

Web-technológia PHP-vel

Web-technológia PHP-vel Web-technológia PHP-vel A PHP programnyelv 2, futtatókörnyezet beálĺıtások Erős Bence February 26, 2013 Erős Bence () Web-technológia PHP-vel February 26, 2013 1 / 19 Szuperglobális változók $ GET : request

Részletesebben

PROGRAMOZÁSI NYELVEK - CPP. ELŐADÁS JEGYZET

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

Részletesebben