Új hozzászólás Aktív témák
-
Oppenheimer
nagyúr
válasz
kingabo #2507 üzenetére
Tudom mit csinál az a try-catch blokk, az előzményt is olvasd el.
Csak debugolas céljából volt ott. Végülis fölöslegesen, mert már emvy segítségével megoldódott a probléma.
Tehát az előzmény:
SO-n azt írták, hogy egy kezeletlen exception miatt meghívódik a terminate() ami meghívja az alkalmazás abort()-ját és ezért áll le.
Próbáltam, hogy try-catch blokkba elkapok mindent a függvényhívás körül, de ugyan úgy abortálódott a futás. Egyébként msdn-en semmit nem írnak arról, hogy ezek a függvények exceptiont dobnának. -
bandi0000
nagyúr
válasz
kingabo #2446 üzenetére
Az lényegtelen csak demonstrácio volt nem így néz ki a programom, azt akartam vele csinálni hogy van egy napok változóm aminek az értéke 7 elindítok egy while-t és amikor a napok aktuális értéke nem egyenlő a nap i-dik elemével akkor növelje az i-t de ha egyenlő akkor csökkentse a napok értékét 1 el és ha végigment az egész tömbön és nem találta meg a napok aktuális értékét akkor kellene kiirnia hogy melyiket nem találta meg vagyis a a napok aktuális értékét
-
cattus
addikt
válasz
kingabo #2215 üzenetére
Nekem igazából mindegy, miben programozok, nekem azt mondták, a C++-ban gyorsabb lehet a munka. Meg több minden van integrálva ebbe a nyelvbe, mint a Pascalba. Igaz, hogy az érettségit Pascalba nyomtam le, de legalább megtanulok még egy programozási nyelvet, ami később biztosan nem lesz hátrány.
-
WonderCSabo
félisten
válasz
kingabo #2127 üzenetére
A láncoláshoz még kell a dinamikus memóriakezelés, illetve a polimorfizmust is csak így tudjuk megvalósítani C++-ban. De ezek már bonyolultabb dolgok.
Az indoklás annyiban helyes az indoklás, hogy a fv-ben lokális pointeren keresztül létrehozott adat túléli a fv-t.
Mellesleg a stacken eleve nem szoktunk nagy objektumokat tárolni, mert betelik / gáz másolgatni. Ezt is lehet egy indoklás.
-
Azazel999
csendes tag
válasz
kingabo #1999 üzenetére
Sikerült!
Ez lett a vágás metódus:
Fa* Fa::vag(Fa* v_pont){
vector<Fa*> kicsik;
vector<Fa*> nagyok;
Fa *aktualis = this, *kovetkezo;
//fa szétdarabolása
int count = 0;
while (aktualis->kulcs != v_pont->kulcs){
if (aktualis->kulcs < v_pont->kulcs){
kicsik.push_back(aktualis);
kovetkezo = aktualis->jobb;
aktualis->jobb->apa = NULL;
aktualis->jobb = NULL;
cout << "jobbra" << endl;
} else if (aktualis->kulcs > v_pont->kulcs){
nagyok.push_back(aktualis);
kovetkezo = aktualis->bal;
aktualis->bal->apa = NULL;
aktualis->bal = NULL;
cout << "balra" << endl;
}
aktualis = kovetkezo;
}
cout << "kint vagyok a ciklusbol" << endl;
//vágási elem gyrekeinek levágása
if (aktualis->bal != NULL){
cout << "vagasi_pontnak bal fia van" << endl;
kicsik.push_back(aktualis->bal);
aktualis->bal->apa = NULL;
aktualis->bal = NULL;
}
if (aktualis->jobb != NULL){
cout << "vagasi_pontnak jobb fia van" << endl;
nagyok.push_back(aktualis->jobb);
aktualis->jobb->apa = NULL;
aktualis->jobb = NULL;
}
cout << "vagasi pont gyerekei levagva" << endl;
vector<Fa*>::const_iterator iter;
//a kisebb- és nagyobb fa felépítése
for(int i = 1; i < kicsik.size(); ++i){
cout << "kisfa" << endl;
kicsik.at(0)->beszur(kicsik.at(i));
//kicsik.at(i)->kiir();
}
for(int j = 1; j < nagyok.size(); ++j){
cout << "nagyfa" << endl;
nagyok.at(0)->beszur(nagyok.at(j));
//nagyok.at(j)->kiir();
}
//a vágási pont gyökérré tétele, a két fa ráakasztása
v_pont->bal = kicsik.at(0);
v_pont->jobb = nagyok.at(0);
v_pont->bal->apa = v_pont;
v_pont->jobb->apa = v_pont;
//v_pont->kiir();
return v_pont;
}Bocs, ha nem volt egyértelmű a megfogalmazás, igyekeztem részletesen körülírni. Németh Tamás (SZTE-n tanít) honlapján az alga II. előadásfóliák között ott ez az önszervező bináris keresőfa (nem tudom, hogy szabad-e linkelni ide, ezért nem teszem). Ott folyamatábrával szemlélteti is, az sokkal érthetőbb, mint az én makogásom. Egyébként igazad lehet a rekurzióval, valószínűleg sokkal egyszerűbb lenne vele, de én már ennek is örülök. Ezt a metódust meg kell hívni a fa gyökerére, és a visszaadott érték lesz az új fa.
-
Azazel999
csendes tag
válasz
kingabo #1995 üzenetére
Szóval amit én tudok róla, az ez:
- Van egy egyszerű bináris keresőfának kinéző fánk
- Az elemei között fennálló relációk ennek megfelelőek (jobb gyerek kisebb, bal nagyobb)
- Legfeljebb két gyereke van egy elemnek
- Ezt a fát meg lehet vágni bármelyik pontjánál (értelemszerűen, ha gyökérbél vágjuk, önmagát adja majd vissza)
- A vágás így zajlik:
+ A keresés algoritmus szerint elindulunk a gyökértől a vágási pont (v_pont) felé
+ Ha v_pontnál kisebb elemet találunk, az "a" részfa lesz a neve (1 az első és i mindig nő eggyel)
+ Ha nagyobbat, akkor "b[j]" részfa lesz belőle (1 az első és j is mindig nő eggyel)
+ Minden lépésnél levágjuk az adott elemről azt a gyerekét, amelyik felé lépünk (nem lesz apja)
+ Ha elértük a v_pontot, akkor az előző két lépést végrehajtjuk a két gyerekére is (ha van neki)
+ Az a(i) fákat beszúrjuk a[1]-be egymás után sorrendben (i > 1)
+ b[j] fákat a b[1]-be (j > 1)
+a[1] és b[1] apja is v_pont lesz (ezért ők pedig a gyerekei)
+ véget érte az algoritmusHa rosszul tudnám, akkor valaki javítson ki, mert erre később is nagy szükségem lesz, ezért gáz, ha nem jól tudom.
Azért önszervező, mert ezt csinálja, ha "megvágod" és ugyanígy lehet beszúrni bele új elemet, csak ott luftot üt a keresés, és ott ér véget az algoritmus.
-
Azazel999
csendes tag
válasz
kingabo #1992 üzenetére
Köszi, de ez nem AVL fa akar lenni, hanem konkrétan önszervező bináris keresőfa. Egyébként lehet, hogy a beszúrás, törlés metódusaim sem passzolnak hozzá :S Szóval tudom, minek kell történnie, ezt le is írtam. Nem ezzel van a baj, de nem tudom lekódolni. Tényleg sok próbálkozáson túl vagyok, de egyszerűen képtelen vagyok megoldani. Nem tudom, hogyan kódoljam le azt, hogy induljunk el a gyökértől kereséssel és nyisszantsunk le minden lépésnél a fából, majd a levágottakból gyúrjunk két fát, az egyikben a vágási pontnál kisebb, a másikban nagyobb elemekből és a két gyökér apja legyen a vágási pont.
-
Gyuri16
senior tag
válasz
kingabo #1404 üzenetére
delphit meg fejlesztik, csak mar nem a borland. amugy szerintem egy nagyon jo nyelv kezdonek. orokolte a pascal jo tulajdonsagait es gyorsan ossze lehet benne kattingatni mutatos guit. nalunk egyetemen delphi (most mar lazarus) az elso prog. nyelv.
Jhonny06: c++ es java kozt azert eleg nagy a kulonbseg. utobbi joval szigorubb es ezert jobb egy kezdonek. szerintem ha komolyan gondolja valaki siman lehet kezdonyelv. egyetlen gond, hogy konnyen elkenyelmesedik a garbage collector mellett, es nehezebb lesz az esetleges valtas c++ra pl.
-
doc
nagyúr
válasz
kingabo #1402 üzenetére
A pascal-ra "épül" az ada amit katonáéknál elég sok helyen használnak ma is
nekem mondod? (katonai repulesszimulacios szoftverek fejlesztese a munkam)
de az ADA-nak max. torteneti es szintaktikai koze van a pascalhoz, ami inkabb erdekes hasonlosag, mint valodi segitseg a gyakorlatban... (raadasul a fejlesztok legalabb 99%-a sosem talalkozik 'elesben' ADA koddal a palyafutasa soran)
akkor mar inkabb a Delphit emlegesd, mivel az kezd a kihalas fele kozeledni, a Delphi-fejlesztok erteke novekedoben van
ez olyan mint nalunk az ADA meg a Fortran, egy-egy tenyleg jo ADA vagy Fortran fejleszto ma mar aranyat er -
WonderCSabo
félisten
válasz
kingabo #1190 üzenetére
Miután láthatóvá tettem a privát adattagokat, a BSTNode(T data) konstruktorra dobott undefined referencet. Méghozzá azért, mert ezt a könyvtár írója ugyan deklarálta, de sehol sem implementálta. Ha az osztálydefinícióban a BSTNode(T data); sort átírod erre: BSTNode(T data_) : data(data_){} akkor fordul. LOL ez a könyvtár egyébként.
-
Sk8erPeter
nagyúr
válasz
kingabo #1161 üzenetére
"system ("pause"); szintén nem szabványos"
Komolyan mondom, az összes olyan tanárt, aki ezt a system-es rendszerhívásos bohóckodást tanítja, sorba kéne állítani, és mindegyiket tarkónb@szni egy ordas nagy péklapáttal, hátha attól megjegyzik, hogy ezt soha többé ne használják, és ne is erőltessék rá másokra...vagy egyáltalán ne akarjanak programozást tanítani (vagy takarodjanak Alaszkába havat lapátolni).
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Hivatalos a OnePlus 13 startdátuma
- Spórolós topik
- Motorola Moto Tag - nyomom, követ
- Milyen notebookot vegyek?
- Samsung Galaxy Watch7 - kötelező kör
- Formula-1
- Luck Dragon: Asszociációs játék. :)
- Honor 200 Pro - mobilportré
- Kerékpárosok, bringások ide!
- Milyen okostelefont vegyek?
- További aktív témák...
- BESZÁMÍTÁS! MSI B460M i5 10400F 16GB DDR4 512GB SSD RX 6650XT 8GB Cooler Master MB600L Chieftec 600W
- 122 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 (48 hónap garancia!)
- KATONAI ÜTÉSÁLLÓ!!! Getac S410 i5-6300u, G3: i5-8365u, G4: i5-1145G7
- Lenovo ThinkPad X13 G2 multitouch
- Felújított laptopok Számlával, garanciával! Ingyen Foxpost!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest