C++ Szimulációs TDK Segítségkérés (az alapoktól)

C++ Szimulációs TDK Segítségkérés (az alapoktól)
2003-05-07T17:14:55+02:00
2003-09-02T14:21:39+02:00
2022-11-02T01:00:39+01:00
  • hello nodimuk!

    hogy allsz vele? esetleg tudnal egy ket linket adni az elmeleti hatterevel kapcsolatban?

    nagyon erdekel ez a tema

    udv, fiola
    Mutasd a teljes hozzászólást!
  • Kösz, megoldota a problémát.
    További kérdéseim:
    Milyen keyboard olvasó fügyvényt ajánlotok? Olyan kell ami alkalmas a billentyűzet érzékelésére (ESC->#27 kilépés) és normálisan lehet vele számot és string-et beolvasni.
    (pillanatnyilag két külön megoldás van, amit nem tudok egyesíteni: getch(), a másikra nem emlékszem)

    Előre is kösz
    Mutasd a teljes hozzászólást!
  • Ami neked kell az un. elodeklaracio, es termeszetesen letezik.

    class CRoad; class CCar { public: CRoad* road1; } class CRoad { public: CCar* car1; }

    remelem ez segit...
    Mutasd a teljes hozzászólást!
  • Hali,

    Szóval kéne egy kis segítség c++-ba. A következő kérdések merültek fel:

    Van a Class-oknak is prototipusuk? Hogy lehet egy class-ban egy még nem deklarált Class tipusú változót-t csinálni?
    Ha void-al lehet csak, akkor hogy lehet utána a void-ot normálisan kezelni?
    pl:
    van egy
    class CCar
    és utána van egy
    class CRoad
    A CRoad-ban létre tudok hozni egy változót ami CCar tipusú, de fordítva nem. Megpróbáltam void-al, de egy egyszerű értékátadásnál már hibát jelzet.

    class CCar public: void *road1 class CRoad public: CCar *car1 main..... CRoad *road11 car = new CCar(); road11=car->car1

    Remélem értitek annak ellenére hogy érthetetlenül fogalmaztam.
    Kösz a segítséget.
    Mutasd a teljes hozzászólást!
  • Megvalami. Az eletjatek mint kiindulasi alap sajnos durva felbontasa csak a valodi auto traffic helyzeteiknek, hiszen az eletjatek csak diszkret helyzetekre, diszkret sebessegekkel tudsz operalni, mig a valosag ennel sokkal arnyaltabb. 21 eves korodra mar hallanod kellett a differencial egyenletekrol, ha fizikai szimulaciot akarsz, nem fogod tudni elkerulni a diffegyenletes megkozelitest, ugyhogy a diffegyeneletek elmeletevel sem art ismerkedni... :)

    Tudom, tapasztalat. Ha kihagyod, rengeteget fogsz szivni az ido helyes felbontasanak megallapitasaval peldaul. Mig diffegyenletekkel ez joval atlathatobb. Szoval ez tipikusan az az eset, amikor sok elmeleti tanulas a gyakorlatban nagyban megkonnyiti a munkadat.
    Mutasd a teljes hozzászólást!
  • Na ezt is erdemes megkukkantani :)

    Egyebkent tenyleg erdekes a tema, de a matematikai alapjai eleg kemeny dio. Ennek ellenere ajanlom az elmeleti vonalat is, enelkul az egesz kicsit sotetben tapogatozas. A TDK-hoz mindenkeppen szukseges lesz amugy is, kezd el minnel hamarabb. Viszont nem sokan ertenek hozza, es ha komolyabban beleasod magad, akkor sok 'meno' teruleten hasznat tudod venni. Peldaul ilyen jellegu problema a mobiltelefonok forgalomkezelese is, novekvo tarsadalmunkban egyre gyakrabban talalkozunk ezzel a kerdeskorrel az IT-ben is.
    Mutasd a teljes hozzászólást!
  • Más szimulációs lehetőségek?

    (egyébkétn ha a többi majdnem-kivitelezhetetlen, akkor az útszakaszok nagyfokú felbonátsával lehet a deficitet csökenteni...)

    Frenky
    Mutasd a teljes hozzászólást!
  • Hali!

    Igaz, ebben az esetben - hogy minél valószerűbb legyen a szimuláció - nem megfelelő a diszkrét-modell.
    Mutasd a teljes hozzászólást!
  • Akkor egy kis elméleti kérdés:

    Van egy dugó, állnak az autók egymás mögött, pontosabban a probléma bemutatására elég 2-3 autó. Tegyük fel hogy indul a kör (azaz a ciklus).

    ___________________________ |kocsi_1 |kocsi_2 | | |________|________|________|

    Ha ebben a sorrendben határozzuk meg az előrelépést akkor az eredmény a következő lesz a következő ciklus elejéig:
    ___________________________ |kocsi_1 | |kocsi_2 | |________|________|________|
    Mert megnézük az első kocsinál hogy léphet-e; nem, után a másodiknál hogy léphet-e; igen.

    Ha a sorrend más:
    ___________________________ |kocsi_2 |kocsi_1 | | |________|________|________|
    Egy lépéssal tovább:
    ___________________________ | |kocsi_2 |kocsi_1 | |________|________|________|

    Akkor most mi legyen? Ez a logikai folyamatosság-deficit mindig fenn fog állni?

    A diszkrét szimuláció jegyzet amit olvastam írt valami olyat hogy az első esetben visszafelé meg kell vizsgálni hogy ha az első kocsi nem mozoghat, és a második mozog, akkor a második mozgása mennyiben befolyásolja az eseményeket:
    ___________________________ |kocsi_1 |kocsi_2 | | |________|________|________| ___________________________ |kocsi_1 | |kocsi_2 | |________|________|________|
    Után megnézve hogy ez mennyire van hatással a kocsi_1-re:
    ____________________________ | |kocsi_1 |kocsi_2 | |________|________|________|
    helyzet alakúl ki még az adott körben.

    Ez így talán ok, de ez úgy 'nagy' szimulációnál nem hiszem hogy járható út.

    Ötletek?

    Frenky
    Mutasd a teljes hozzászólást!
  • amugy jol megirva ezt a progit sztem egesz komoly dolog is kisulhetne belole ;) azert nem ekkora reszleteseggel mit ahogy pepe mondta de megis valamit ki lehetne belole hozni ;))))
    Mutasd a teljes hozzászólást!
  • Lampak is lesznek ? (Nem, nem csak pirosak... ) Esetleg gyalogosok akkor már ? Speciális útvonalak ? (Metró, vasút, stb. ) Adott valamivel, adott távra (időre?) x fabatka ? Esetleg lehet majd elemezni, hogy a Taxi, mint 3 személyes igen drága eszköz, ami mehet busz sávban is, és nem áll meg és fixen kb 5 perc alatt jön, és elvisz a munka-negyedemben, megéri-e, mert esetleg a BKV-val x%-ka előbb kell indulno és még késhetek is, így több időm marad lakó negyedelni.

    P.

    Ui.: Több taxitársaság ? Repülők ? SimCitydothu ?
    Mutasd a teljes hozzászólást!
  • valahogy ugy, hogy mindenuthoz rendelek gey ido-leterheltseg-et es hogy mekkora leterheltsegnel mennyi ido alatt lehet atjutni az uton. es aztan ez alapjan kerese a rovidebb utat (iletve nem rovidebbet hanem gyorsabbat)
    vagy ugy hogy vannak csomopontok ahonnan x idoben egy z iranyba indul el n ember, es ezektol a tenyezoktol fugg hogy mennyi ido alatt lehet eljutni valahova.(most ezt eleg nagy vonalakban mondtam el.)
    Mutasd a teljes hozzászólást!
  • Mc Kinnon: kb hogyan?
    Mutasd a teljes hozzászólást!
  • mondjuk az is igaz hogy en nem igy kzelitettem volna meg a problemat, de ez is jo
    Mutasd a teljes hozzászólást!
  • ezt nezd meg
    Mutasd a teljes hozzászólást!
  • Eddigi rövid gondolkodás a Szimulációrol:
    Alapegyedek az utazni kívánó emberek.
    A szimulációs tér utakból álnak, és azok csomópontjaiból. Utak az élek, és a csomopontok pedig a sarkok.
    A szimuláció szereplői:
    -Utazó személy
    -Busz (a észbontóan lassú BKV-t fogja reprezentálni, és általában a tömegközlekedést) A buszoknak kijelölt útvonalaik és megállóik vannak. (megálló=csomópont)
    -Autó

    Az utazó személy választhat (random, legrövidebb idő, preferált céljármű) hogy sajátkocsival vagy BKV-val közlekedik a városban A és B pont között (ezek is csomópontok).

    Még később be lehet tenni különboző városrészeket; Utazóközönség termelő városrész (lakó-negyed), illetve vonzó városrész (munka-negyed), illetve csúcsidőszakot, és este-hétvége időpontokat. Ezek a szimuláció szerkezetét nem változtatják, csak 'az egyedek születését'.

    Ennél természetesen jobban átgondolat, kidolgozottan fogok hozzáállni, amikor már ott tartok.

    Frenky
    Mutasd a teljes hozzászólást!
  • Sok stabil alakzat van, sőt vannak ún. oszcillátor alakzatok is (bizonyos számú lépésenként ismétlődnek). Szerintem, igen érdekes téma.

    Azt akarod mondani hogy legyen egy mostani és egy leendő állapot, a mostaniból olvasva és a következőbe írva?


    Igen, tökéletesen erre gondoltam.

    Ez csak ilyen 'kis és egyszerű' szimulációnál működik vagy nagyszimulációnál is?


    Ez a szimuláció jellegétől függ leginkább. Azonban a te problémádra visszatérve (mármint a közlekedési szimuláció) - úgy gondolom - lehet ilyen diszkrét szimuláció. Persze, fontos dolog, hogy még az elején rögzítsünk dolgokat: pontosan mit akarunk szimulálni (folyamat), kik vagy mik a szimuláció szereplői (egyedek, lehetnek akár különbözőek is), miként viselkedjenek (függvények), milyen "térben" ténykedhetnek (állapot-tér), stb.
    C-vel régen foglalkoztam már (talán, el is felejtettem ), de magában a szimuláció kidolgozásában (ötletek, stb.) szívesen segítek.
    Mutasd a teljes hozzászólást!
  • Netangel: pontosan erre gondoltam, kösz a szabályokat. Egyébként már százszor láttam működni sok programban, csak már nagyon régen. (a stabíl alakzatok: 2x2, azthiszem a plusz jel is, száranként 1 cella plusz egy a közepén. Több nem jut eszembe)

    Gondoltam hamár szimulációról van szó, akkor ez a legegyszerűbb kezdésnek.

    Azt akarod mondani hogy legyen egy mostani és egy leendő állapot, a mostaniból olvasva és a következőbe írva? Ez csak ilyen 'kis és egyszerű' szimulációnál működik vagy nagyszimulációnál is?
    Megpróbálom megcsinálni. Csak kell szereznem egy c++-t

    Köszi. Csá

    Frenky
    Mutasd a teljes hozzászólást!
  • Hali!

    Az Élet szimuláció. Az a gond hogy nem tudom a pontos szabályokat.


    Hát, az Élet szimulációjához elég összetett szabályok vannak, nagyon sok ismeretlennel, nagyon összetett függvényekkel. Egy "kicsit" gázos lekódolni.

    De félre a tréfával, te - gondolom - a John Conway-féle Életjátékra gondoltál (ha nem, vedd úgy hogy semmit nem mondtam). Szal, ez tipikus sejt-automata. Sok szabálya van, az egyik - az eredeti Conway-féle - a következő megállapításokon alapszik:

    Adott egy ún. élettér. Ebben az élettérben cellák vannak. A szimuláció során ezen cellák állapota, ill. állapot-változása lesz a lényeg. Minden cellának 8 szomszédja van (hasonlóan a négyzetrácsos füzet lapjain lévő "cellákhoz"). A játék során a cellákban születhetnek sejtek, halhatnak meg sejtek, ill. egy adott cella állapota nem változik (minden cellában természetesen egy sejt lehet). Ezek a változások a következő szabályokkal írhatók le:
    1. Ha egy cellának két szomszédjában van élő sejt, akkor a cella állapota változatlan marad.
    2. Ha egy cellának három szomszédjában van élő sejt, akkor az adott cellában "születik" egy új.
    3. Minden más esetben az adott cellában "meghal" a sejt (ha volt ott).

    A megvalósítás során ügyelni kell a diszkrét szimulációra, azaz minden cellában egyazon időben történjenek a változások (célszerű két állapot-teret használni, mintegy "double-buffered" módon).

    Elég érdekes alakzatok alakulhatnak ki. Sőt, ha a szabályt változtatod, még érdekesebb dolgok jönnek elő (pl. van olyan szabály aminél egy adott sejt-halmaz kitölt egy zárt teret, de nem "terjed" tovább, stb.).

    Remélem érthető volt, ha nem, nyugodtan kérdezzél.
    Mutasd a teljes hozzászólást!
  • Nemteljesen netchan;
    az az igazság hogy 2 év php-mysql után bármilyen adatról van szó rögtön az jut eszembe hogy majd csinálok szép adattáblákat meg lekérdezéseket sql-hez és majd úgy fognak menni a kis kocsik. Gondolom nem ez az optimális (most majdnem azt mondtam legoptimálisabb ). Két programfutás között nincs szükség tárolásra, max a szimuláció közben rögzített mutatókat; eredményes élőlények, stb....

    Mc_Kinnon: Nincs, de még van 1 évem, meg azért is jöttem ide hogy tanuljak, meg fogok még olvasni is után....

    Ötlet: kezdjük a legegyszerűbb szimulációval...
    Az Élet szimuláció. Az a gond hogy nem tudom a pontos szabályokat. Valaki kisegít?
    És akkor már azt is hogy kb hogyan...

    Van a prog.hu-n szimulációs cikk?

    Frenky
    Mutasd a teljes hozzászólást!
  • amugy mar van valami elkepzelesed arrol hogy hogyan akarod megvalositani?
    Mutasd a teljes hozzászólást!
  • Amig fut a programod, addig objektumok (ha indokolt), ket programfutas kozott pedig tarolod oket valahogy, ezt hivjak perzisztencianak. A Te esetedben nem biztos, hogy (vagy inkabb biztos nem) SQL-t kellene hasznalnod. Ha csak annyi a cel, hogy el tudd menteni az adott allapotot, hogy aztan kesobb ugyanonnan visszatoltve folytasd, akkor azt sokkal egyszerubb eszkozokkel erdemes megvalositani: binaris dump, szovegfile, xml.

    netchan
    Mutasd a teljes hozzászólást!
  • Hali,

    Felmerült bennem mégegykét kérdés, remélem maradt még valaki aki válaszol.

    1. Kb tudom mi az az objektum orientált programozás, igaz nem gyakorlati szempontból, inkább elméleti oldalról. Ha írok egy kis sim programot, akkor ott a kis 'élő' egységek legyenek külön objektumok? Vagy inkább legyenek egy recordok SQL adattáblákban? melyik a gyorsabb, jobb?

    2. Van valakinek valamilyen sim tapasztalata? írt valaki hasonlót? Tud valaki ajánlani egy jó sim könyvet? (egy egyetemi jegyzetet olvastam már a 'diszkrét sim-ekről', de nem volt sok)

    3. A campus-ban található VC mennyire jó? mármint halottam valamit róla hogy valami nem teljesen kóser....

    Segítségeteket köszönöm

    Frenky
    Mutasd a teljes hozzászólást!
  • Kérdés:
    azért egy kicsit a jövőre is szeretnék dolgozni: melyik kelendőbb a piacon? gondolom a VC, nem a Borland C....

    Ha igen, akkor lemondok a hirtelen grafikáról, és mondjuk megelégszem egy karakteres sim kezdettel , engem már az is gyönyörködtetne

    Akkor viszont jó lenne egy SQL server-t korán hozzákapcsolni (hamár grafika nem, legalább adatbázis, igaz gondolom a borland-ban az is könnyebb)......

    Frenky
    Mutasd a teljes hozzászólást!
  • Akkor elore a lenini uton :)

    egyszerűen-gyorsan-jólkinézően elkészíthető grafikus felület tudok ráhúzni


    Az egyszeru es gyors fejlesztesrol valahogy nem a VC, MFC es tarsai jutnak eszembe elszor :)
    En utoljara a 3.x-es szeriat lattam a Borland C++ Builder-nek, de szerintem az sokkal kozelebb all ahhoz ami neked kell, szerintem tegyel vele egy kanyart.

    Udv,
    netchan
    Mutasd a teljes hozzászólást!
  • A cél a nyelv megísmerése és/közben a TDK elkészítése (ez leginkább az alkotási kedv és referencia miatt). Az idő nem szorít, azthiszem hogy tavaszal van TDK leadási határidő, azaz kb 1 év múlva.

    Számításigény? Nemtudom, nem akarom Budapestet leszimulálni, csak mondjuk egy belső kerületet. Nem a szimuláció mérete lesz a lényeg, hanem a minősége, vagy legalábbis valami ilyesmi.

    További 'igény': őőő... szóval én az a tesztelős-örülős emberke vagyok. Szeretek nem elméletben tanulni programozni, hanem agyalágyult programokon keresztül (pl: pascalban írtunk rendőr-sziréna emulálót, nagyon idegesítette a tanárt ). Szóval csak azt akarom mondani hogy 'nem szeretnék' csak c++-al kezdeni, mégha az lenne a jobb, mert szeretem látni, mit értem el. Ezért is gondoltam a Visual részét korán hozzáteni, remélve hogy egy Delphi szerű, egyszerűen-gyorsan-jólkinézően elkészíthető grafikus felület tudok ráhúzni, bugyuta programjaimra , mégha ez az elején ilyen drag&drop szerű elsz is. Amikor meg majd már megy, akkor csinálom kézzel komolyan a graf dolgokat....

    Frenky
    Mutasd a teljes hozzászólást!
  • Szia!

    Nem tudom mennyire lesz szamitasigenyes ez a konkret alkalmazas, de egesz biztos vagy benne, hogy C/C++ -ban akarod megirni? Ha kicsi tapasztalatod van benne, akkor valoszinu, hogy az idod jo reszeben nem magaval a feladattal fogsz foglalkozni
    Ha nem szorit az ido, es egyebkent is celod megismerni ezeket a nyelveket, akkor semmi gond. Ha megis, akkor szerintem valassz olyan kornyezetet, amit mar ismersz vagy amit gyorsan meg lehet ismerni, es ami "toleransabb" a C/C++-nal. Scriptnyelvek tipikusan ilyenek, ha gui is kell, akkor Delphi, C# is bejatszik.

    Ha maradsz a C++-nal:
    Jo magyar nyelvu VC konyvvel en meg nem talalkoztam, a sima C++ -hoz szerintem a legjobb recept egy "kezenfogos" tutoriallal kezdeni ("Teach Yourself C++ in 21 Days" es tarsaik), aztan pedig nincs mese, Bjarne Stroustrup: The C++ Programming Language.

    Adatbazisok: Barmit hozza tudsz kotni, aminek van ODBC csatoloja. Ingyenes adatbazisok kozul sokan dicsertek a FireBird-ot es a SAB DB-t.

    Az otleted imho sokkal realisabb, mint sok mas, amivel itt a forumokon talalkoztam. Sok sikert!

    Udv,
    netchan
    Mutasd a teljes hozzászólást!
  • bocs, apró modosítás:
    oldalszám<10000
    ....
    Mutasd a teljes hozzászólást!
  • A cél:: a nyár folyamán szeretnék írni egy közlekedési szimulációs TDK-t, amelyben 50%-os részvetellel (most ennyire gondolok, aztán majd kiderül) maga a szimulációs program lesz. A téma nagyon érdekel , és készen lennék éjszakákat tölteni vele, csak nem tudom hogy kezdjem. Ebben, és ha minden jól megy akár a teljes folyamatban szeretném segítségeteket kérni.

    A helyzet: pillanatnyilag Kalmáros tudásom van pascalban, c/c++-ban egy nagyonkicsi, PHP/MySQL(SQL)-ban már egyész komoly (ezalatt azt értsd hogy tapasztalat>2 év, PHP-programozó állás>1év) stb,stb... tehát nem vagyok nagyon kezdő, de messze vagyok a penge programozótol

    A kérés:szeretném c++/Visual c++-ban megírni, és a legelső dolog az lenne hogy ajánlani kellene egy c++/Vc++ könyvet. Nem akarok Kernelíró hipersuper programozó lenni, tehát oldalszám>10000... de azért tudjak egy félig-komoly sim programot írni. Ez lenne az első kérésem. (a második amikor már valamennyire megy a c++: hogyan és milyen SQL server-t lehet c++/Vc++ -hoz kapcsolni)

    Mindenkinek köszönöm. Az előző témákban való olvasgatás tanulságaként előre közlöm:
    Tudom hogy gagyi vagyok,
    Tudom hogy nem lehet csak úgy írni ilyet,
    21 éves vagyok,
    és nem akarom megváltani a világot.

    Köszi
    Helló

    Frenky
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd