Új hozzászólás Aktív témák
-
modder
aktív tag
válasz Azazel999 #2000 üzenetére
Az király ha sikerült. Tegnap én sem értettem az algoritmusodat, aztán lejátszottam papíron úgy, hogy a keresett elem (a vágási pont) tetszőleges a fában, aztán rekonstruáltam az új fát, és jó lett.
Viszont nem jöttem rá, hogy beszúrásnál mi a teendő, mert ha ez egy szimpla bináris fa, és keresünk egy nem létező elemet, akkor elérünk az egyik levélbe. akkor melyik lesz a vágási pont? Kipróbáltam több verziót: a vágási pont a létező levél, vagy a vágási pont az új elem, vagy a vágási pont a levél előtti elem, de egyik esetben sem kaptam kiegyensúlyozott fát. Ezt a lépést leírnád?
Amúgy meg rekurzióval tényleg egyszerűbb. az ugye csak egy Depth First Search, ahol minden lépés után vagy B vagy J tömbbe teszed a részfákat, a végén pedig mikor visszatérsz a keresésből építesz egy új fát a B és J elemekből. De általában "hatékonyabb" a nem rekurzív megoldás: erőforráskímélőbb, hiszen nem kell állandóan függvényt hívni.
Amúgy meg erről eszembe jutott, az 1. féléves C nagyházim. Egy logikai kifejezés kiértékelő program tetszőleges logikai kifejezést megadva, épít belőle egy fát (amit ma Abstract Syntax Tree-nek mondanék, mert az jó hangzatos), majd bejárja és közben kiértékeli a kifejezést. Miután működött, három napomba tellett, mire kijavítottam a pointerezést, és a Valgrind végre nem mutatott memória szivárgást
szerk: azt akartam kihozni belőle, hogy jó, hogy meg tudtad oldani egyedül, mert mire kiszeneded magadból a megoldást, sokat megtanulsz
[ Szerkesztve ]
-
alratar
addikt
Üdv.
Szeretnék megtanulni ezen nyelven a programozást.
Mit ajánlotok? (könyv, program stb.)10 féle ember van: aki ismeri a bináris számrendszert, és aki nem
-
Azazel999
csendes tag
Köszönöm a gratulációkat, de még inkább a segítségeteket A beszúrás egy kicsit összetettebb, ahogy én értelmeztem az előadásfóliákról. Ebbe a bizonyos szájba vert önszervező bináris keresőfába nem lehet csak úgy beszúrni, mint egy sima bin.ker. fába. Ha új elemet akarunk, akkor keresést futtatunk az elemre, ami nyilván null-ba fut, mert az elem még nincs a fában. Ha mégis benne volt, akkor nem is kell csinálni semmit. Na most, ha ez megvan, akkor ugye keresés közben dobáltuk a részfákat a két vektorunkba (a kisebb/nagyobb csoportokba). Ezután úgy teszünk, mintha csak megvágtuk volna a fát a beszúrandó elemnél, tehát ő lesz a gyökér és rákapaszkodik a kisebb és a nagyobb fa balról, illetve jobbról. Ez volna a beszúrás. A törlést még nem sikerült kihámoznom, de erőlködök vele még holnapig, mert az a határidő.
-
Azazel999
csendes tag
válasz alratar #2003 üzenetére
"Tanuljuk meg a C++ 24 óra alatt"
Ez a könyv nekem is megvan, szerintem kezdésnek bőven megteszi, például a Prog II (nekünk ezen tanították a C++-t egyetemen) ennek egy részét fedi le. Ez persze ne azt jelenti, hogy holnapra már C++ programozó vagy, hanem hogy 24 leckét tartalmaz, amik kb 1-2 órát vesznek igénybe, ha tényleg tanulni akarod.
-
Azazel999
csendes tag
válasz alratar #2006 üzenetére
Várj csak! Rákerestem egy másikra, ami még hasznosabb, csak nem emlékeztem a címére, de képekre kerestem google-ben és úgy meglett (csak a borítótól ismerem fel, mindig elfelejtem a pontos címet ). Szóval a "Szoftverfejlesztés C++ nyelven" című könyvről van szó, a szerzők pedig Benedek Zoltán és Levendovszky Tihamér. Ez tényleg tök jó anyag és kezdőknek főleg hasznos, mert nagyon szájbarágós. Legalább is nekem annak tűnt, amikor olvastam.
-
Dave-11
tag
Szeretném majd elkezdeni megtanulni a C/C++ hoz a gtk+ könyvtár használatát. Már anyagot szereztem hozzá, de nem tudom, hogyan állítsam be a könyvtárat. Tudnátok adni valamiféle segítséget? És például csak akkor fog működni a grafikus dolog, ha GTK+ Projektet hozok létre, vagy akkor is, ha sima .c vagy .cpp fájlt csinálok? (CodeBlocks-ot használok)
:D Semmi :D
-
Karma
félisten
válasz Dave-11 #2012 üzenetére
Miért pont a GTK-t választottad? Egyrészt az egy C library, nem C++, másrészt ha nem kötelezően ez a parancs, miért nem Qt?
A kérdésre válaszolva a lib használatához két dologra van szükség: az include path helyes beállítására (hogy a C fordító megtalálja a headeröket, azaz fel kell venned a GTK megfelelő mappáját oda); másrészt a linkernek tudnia kell arról, hogy egybe kéne fordítani a cuccod a GTK library-val.
CB-t már nagyon régen nem használtam, úgyhogy nem mondom meg merre is találod ezeket. De valószínűleg a projekt tulajdonságainál.
“All nothings are not equal.”
-
Déta
tag
Sziasztok!
Egy óriási segítségre lenne szükségem, mert az idegösszeomlás szélén állok.
Disszertációs témáként egy szimulációt kell írnom C++-ban, és szeretném az adatokat megjeleníteni grafikusan. Nem kell nagy dolog legyen: téglalapok, körök, pontok. Ennyi.
3 napja nem találtam egy értelmes programot, amivel ezt a kettőt meglehetne csinálni.
Kérlek, adjatok valami tippeket.
Fáradozásaitokat előre is köszönöm.Írtam egy alkalmazást magyar nyelven: http://logout.hu/bejegyzes/deta/egy_hasznos_alkalmazas_tolem_nektek_sok_szeretette/hsz_1-50.html
-
Déta
tag
Én írom.
Én bármire nyitott vagyok, ami egyszerűen kirajzol egy téglalapot rajta körökkel.Írtam egy alkalmazást magyar nyelven: http://logout.hu/bejegyzes/deta/egy_hasznos_alkalmazas_tolem_nektek_sok_szeretette/hsz_1-50.html
-
modder
aktív tag
Hát itt alapvetően 3 lehetőséged van szerintem.
1) OpenGL/DirectX. Én csak az előbbihez értek. Kirajzolni egyszerű 2D objektumokat nem túl nehéz. Az ablakkezelőt GLUT-nak hívják, és setuppolni windows alatt egy freeglut környezetet nem olyan egyértelmű, de vannak tutorialok neten. Kirajzolni egyszerű alakzatokat viszont nem nehéz pl.: http://www.gamedev.net/page/resources/_/technical/opengl/basics-of-glut-r1680 . Ja, GLUT, OpenGL elvileg platformfüggetlen.2) GnuPlot library http://www.gnuplot.info/download.html . Ez csak egy gyors ötlet volt, elvileg ezt is fel tudod tenni windowsra, ha van egy MinGW környezeted. Linux alatt valószínűleg ez is csak egy yum install gnuplot-dev vagy aptitude install gnuplot-dev.
3) valamilyen grafikus könyvtárat használsz, mint Qt, GTK+ vagy wxWidgets. Sajnos nem tudok róla nyilatkozni, hogy melyiket milyen egyszerű használni, de elvileg mind a három multiplatform. Mindegyikben van canvas-szerű komponens, amivel 2D ábrákat gyárthatsz. Most így hirtelen az a megérzésem, hogy wxWidgets talán pont megfelelne.
4 (bónusz) Ha csak ábra kell, generálj képet pl. ezzel: http://cairographics.org/samples/.
vagy generálj HTML-ben egy SVG képet, majd nyisd meg böngészőben.Mivel én már használtam OpenGL-t, ezért én azt választanám. Ha kell valami extra, mondjuk külfönféle görbéket akarsz illeszteni a mintavételi pontokra, arra fog kelleni valamilyen másik library, de alapvetően megjelenítésre az OpenGL még mindig megfelelő.
[ Szerkesztve ]
-
Vasinger!
nagyúr
Van itt valaki akinek megvan a SZAK kiadótól a Szoftverfejlesztés C++ nyelven című könyvhöz tartozó CD melléklet?
Ha igen, megtenné hogy feltenné nekem valahova?
Megvettem a könyvet, sajna nem kaptam hozzá valamiért.Nagyon hálás lennék érte!
[ Szerkesztve ]
-
beast27
senior tag
Sziasztok tudom hogy nem ide tartozik de ez az a topic ami legközelebb áll a témához
Tudna valaki segíteni c# programozásban?
Meg tudná magyarázni valaki hogy mi az a for (pl: for (i=1; i<=10; i++)), és mire használják?Oneplus 7 pro // ain't it a shame that you can't say "Fuck" Fuck's just a word And it's all fucked up
-
dabadab
titán
válasz beast27 #2022 üzenetére
C# programozás [Olvasd el az #1 hozzászólást!]
Egyebkent a fort arra hasznaljak, hogy utasitasokat tobbszor futtassanak le. Amit te irtal, az tizszer fog lefutni: az elejen beallitja, hogy i erteket 1 legyen (i=1), aztan megnezi, hogy teljesul-e az a feltetel, hogy i ne legyen nagyobb tiznel (i<=10), aztan lefuttatja a ciklusmagot (azokat az utasitasokat, amiket tobbszor kell futtatni, ezt a reszt nem irtad oda) es a vegen megnoveli eggyel i-t (i++).
DRM is theft
-
Karma
félisten
válasz beast27 #2022 üzenetére
Nem, ez a topik áll legközelebb hozzá.
De a kérdésed sokkal alapvetőbb, szerintem üss fel valami szakirodalmat.
“All nothings are not equal.”
-
Petyyyyy
addikt
Üdv uraim!
Egy eléggé elborult kérdéssel fordulnék hozzátok. Szeretném megkérdezni, hogy véleményetek szerint egy közepes C++ tudással( a tanulás jelenleg is folyik és C++ ban guru segítsége is várható) kb. 6 hónap alatt elkészíthető-e egy olyan alkalmazás, amely megváltoztatja a Windows témát (akár már meglévő témafájlok alkalmazásával), lecseréli az ikonokat, a használt fontokat, wallt? Egy ilyesmit szeretnék összedobni, de nem tudom elég lenne-e rá az idő. A válaszokat/véleményeket előre is köszönöm.
[ Szerkesztve ]
Szemed az úton, pedál a padlón || Whatever, Im the star
-
gabs84
csendes tag
Sziasztok, üdv mindenkinek.
Teljesen új vagyok, és egy nagyon alap kérdéssel fordulok hozzátok hosszú próbálkozás és olvasgatás után.Lényeg hogy el szeretnék kezdeni programozást tanulni és a C++ nyelvet választottam. Eddig még nem is volt gond, full alap dolgot kéne megcsinálnom, kiíratni egy szöveget a programmal.
Legelején tartok, a Stephen G Kohan - Programfejlesztés C nyelven könyvet sikerült beszereznem.
Amivel megakadtam, hogy nem találtam olyan fordítót ami IDE felülettel lenne és egyszerűen le tudnám fordítani a parancssort. végigpróbáltam vagy 6-8-at, nem vicc. a legtöbb ami elérhető volt az paracssoros, de azon nem tudok elmenni, nekem ez a programozás ma kezdődött, és soha nem használtam parancssort.
ami tetszett volna az a DEV-C++ volt, de ha pl beütöttem a könyvben levő példát, egy pillanatra felvillant az ablak és semmit nem láttam belőle. pedig a lefutásnál sikeresnek írta. utánanéztem, másnak is előfordult ilyen ezzel a programmal. hogy ez miért van nem tudom, írták hogy be kell írni ezt azt és akkor jó lesz de pl rápróbáltam egy konkrét példára amit írtak, lefuttattam ok, aztán bejött az ablak hogy nyomjak egy billenty, aztán kilépett. lol. valszeg nem jól volt megírva... de ezt nem tudom.
szóval nekem egy olyan IDE felületű egyszerű program kellene amivel a 2004-es könyv szerint be tudom tolni a dolgokat és működik. most még tanulok... kombinálni később szeretnék, egyelőre próbálom megérteni a dolgokat ami eddig még jól is ment csak nem tudok így gyakorolni.
próbáltam mindenfélét, de vagy elbénáztam, vagy nem volt semmi indító része a programnak amivel elboldogultam volna.
Eclipse CDT, Borland 5.5, gcc -nél nem találtam felületet, microsoft visual vmiért nem ment fel, qt-t nem vágtam pedig kerestem benne össze vissza.
alapból nem szoktak gondjaim lenni a programok installálásával, meg ha valami elsőre nem megy utánaolvasok és meg szoktam tudni oldani de itt most elvéreztem.
segítsetek légyszíves, adjatok egy működő formát kérlek.
elnézést hogy ilyen hosszú lett, a segítséget pedig köszönöm
várom válaszotokat.Gábor
-
gabs84
csendes tag
válasz WonderCSabo #2030 üzenetére
megpróbálom köszi.
de akkor ezt gyakorlatilag az összes ilyen megjelenítős végére oda kell majd rakni ugye?
annyit még megkérdeznék hogy ez miért van? más a program? ez mindegyiknél így van már? azért csak eltelt 9 év, vagy ez csak ennél a proginál van így?
később már érteni fogom hogy mi ez amit mondtál de most még csak így elfogadom
már csak azért is kérdezem mert főleg ilyen régebben írt könyveket találtam, mire számítsak ezekkel?
amúgy meg köszönöm szépen, mindjárt rápróbálok aztán majd visszajelzek, mennie kell.
-
WonderCSabo
félisten
Alapvetően ez minden programnál így van. Ha minden feladatot elvégzett, akkor leáll. Épp ezért az IDEk a parancssorok progik esetén maguk akasztják meg a parancssor ablak bezárását, pl. a Code::Blocks is ezt teszi, alapból. Projectre jobbgomb -> Properties -> Build targets -> Pause when esecution ends.
[ Szerkesztve ]
-
gabs84
csendes tag
#include <stdio.h>
int main (void)
{
printf ("remelem sikerul...\n");
char ch;
cin >> ch;
return 0;
}ezt próbáltam, én így értettem de nem jó.
C:\Dev-Cpp\Gabs 1.0\1.cpp In function `int main()':
7 C:\Dev-Cpp\Gabs 1.0\1.cpp `cin' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)csak találgatásaim vannak hogy mit akarhat én még ezt így nem értem,
segíts, hogy kéne kinéznie.
köszönöm -
WonderCSabo
félisten
-
gabs84
csendes tag
kapisgálom...
ha jól értem akkor ezt a beállítás dolgot code blocksra írtad. teszek vele egy próbát mert dev c++-ban nincs ilyen lehetőség, végignéztem a súgóját is -
gabs84
csendes tag
felraktam a codeblocksot, lefut, jó, de full szürke háttér. mi a gond?
mármint bejön az ablak , meg is áll de szürke háttér és semmi szöveget nem látni
[ Szerkesztve ]
-
gabs84
csendes tag
na jó, megoldódott a probléma a következő módon.
kicsit még szétnéztem és megpróbáltam összerakni amiket itt is hallottam.
lényeg hogy amit pl megjelenítéssel megírok és futtatásnál egyből kilép, de ha dos alatt futtatom szépen kiírja amit megírtam.
na persze nektek ez lehet hogy alap csak én ezt nem tudtam, de mostmár legalább látom hogy mit csinálok.
köszönöm a segítséget
-
Spam123
tag
Sziasztok!
16 jegyű kettes komplemensű konvertert kéne írnom C++ -ban, a számokkal a 4 alapműveletet is kéne végezni. Egy kis segítséget kérnék az elindulásban, mert elakadtam.
Arra gondoltam, hogy egy fix 16 méretű bool tömbbe kéne betölteni a decimálisan kapott számokat, majd azokkal végezném a műveleteket.
Eddig arra jutottam, hogy 1 osztályom lesz amiben lesz 5 tagfüggvény:
4 darab a 4 alapművelethez
1 darab a konvertáláshoz 2-es komp.-ből decimálisba.Kb. eddig jutottam. Most az algoritmusokat kéne megtervezni, hogy hogyan kellene kettes komplemensű számokkal a 4 alapműveletet elvégezni. Nem tud valaki valamit erre?
Továbbá hogy lehetne könnyen kettes komplemensűvé varázsolni a a decimális számot ahogy bekérem az elején?
-
Vico87
tag
válasz Spam123 #2039 üzenetére
Szia!
Szükséged lesz további tagfüggvényekre is. Egyrészt decimálisból is kell konvertálnod kettes komplemensre, másrészt valahogy a hibákat is kell tudni jelezni (pl. overflow, underflow, nullával osztás, ...). Ami jó volna, ha implementálnád ezeket a műveleteket operátor túlterheléssel is, így tömörebb, olvashatóbb kódot is lehet majd írni a tesztelésre.
A kettes komplemenses számábrázolás egyik előnye, hogy az alapműveletek úgy mennek, mint "sima" bináris számoknál egy-két apróságtól eltekintve. Az angol wikipédián szépen le is vannak írva, példákkal ([link]). Az osztásra sokféle módszer van ([link]), ha nem teljesítménykritikus a feladat, akkor elég a legegyszerűbb, naiv módszer, azaz a sorozatos kivonás, ami kb 5 sor kód, felhasználva a korábban implementált kivonást. Persze, ha gyorsan kell az eredmény, akkor a linkelt oldalon le vannak írva sokkal trükkösebb és egyben gyorsabb algoritmusok is.
-
Spam123
tag
Köszönöm! Itt az erőforrásigény a legutolsó szempont, a lényeg, hogy működjön. Esetleg nem található valami minta program valahol?
dabadab:
És az miért lenne jobb mint a bool tömb? Minden platformon ugyanúgy futna? Azért válaszoztam a bool-t mert az linuxon se tud hülyeséget produkálni.
-
modder
aktív tag
válasz Spam123 #2042 üzenetére
ha unsigned shortban vagy intben tárolod a számokat, akkor a biteket nem tömbelemekként éred el, hanem bitszintű operátorokat kell használnod. maszkolnod, shiftelned kell &, >> és << operátorokkal.
Talán kicsit bonyolultabb, de szerintem szebb megoldás, ha már alacsony szintű működést kell szimulálni. Meg kevesebb helyet is foglalsz így, mert egy boolean változó a memóriában szintén lefoglal vagy 2 byteot, ami összesen 32 byte. -
WonderCSabo
félisten
Vagy akár lehetne std::bitset.
-
Vico87
tag
Szerintem a legegyszerűbb, ha bool[16]-ot használ, mivel úgy könnyen hozzá lehet férni az egyes "bitekhez," a kód szemléletesebb, és nem utolsó sorban ez egy tanulási célú házi feladat. Szerintem arra megy ki a játék, hogy implementáljon egy saját matematikai típust, operator overloadinggal.
Az már más kérdés, hogy mennyire értelmes vagy életszerű maga a feladat.
-
icons
addikt
Hello!
Szeretnék C++ul megtanulni.
Tudnátok ehhez valami jó könyvet /tutorialt ajánlani? (a neten persze sok megtalálható, a kérdés a minőség)Eddig C#ban programoztam, egy keveset Java-ban is. Elsősorban angol irodalom érdekelne. Az alapokat valamennyire értem, de sose baj, hogyha az is benne van! (de azt, hogy mi az a programozás, mi az osztály és mire használjuk, na ezeket a részeket jó eséllyel átugram majd
Köszi szépen!
-
Ton-ton
tag
Sziasztok!
Azt szeretném kérdezni, hogy tudtok-e fejlesztőkörnyezetet ajánlani. A tervezett program (úgy szoktam tanulni, hogy egy konkrét programot írok meg, lehet vitatni a módszert, nekem ez vált be) képmanipulálásról szól, több nyelvű, ablakos, és keresztplatformos.
A problémát az okozza hogy Linux alatt szeretném fejleszteni, viszont innen kellene (Windowsos) exe-be is fordítani. (Linuxra is, de feltételezem az nem gond) Nincs jelenleg lehetőségem win-t telepíteni (abból is csak XP licenszem lenne).
Maga a program ingyenes lenne zárt forráskóddal. Előnyben részesíteném lehetőleg a nem kereskedelmi programokat (pl. Qt fizetős a kereskedelmi programoknál, ami csupán zavaró).Előre is köszönöm a segítséget.
Ui:
Csak közepes mértékű php ismeretem van, és minimális TP.http://qtp.hu
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!