_DooM_ Posted November 2, 2009 Posted November 2, 2009 Írnom kellene egy szótár programot. Bár holnapra még csak a specifikáció kell, azért beleírnám, hogy miben tárolja a kifejezéseket. Szóval mit javasoltok...? Tömbök, fájl, más? :unsure: Nyilván olyan program kell, amihez a felhasználó tud adni új bejegyzést. Mivel a méret nem fix, így a tömb kiesett. Fájlban tárolni nem érdemes, viszont oda elmenteni erõsen ajánlott. Az, hogy konkrétan milyen adatszerkezetet használsz, függ attól is, hogy milyen nyelven kell megírni a programot. Szóval?
CrW Posted November 2, 2009 Posted November 2, 2009 Írnom kellene egy szótár programot. Bár holnapra még csak a specifikáció kell, azért beleírnám, hogy miben tárolja a kifejezéseket. Szóval mit javasoltok...? Tömbök, fájl, más? :unsure: Nyilván olyan program kell, amihez a felhasználó tud adni új bejegyzést. Gondolom c-ben kell. Szerintem a szókapcsolatokat tárold struktúrákban, azokat pedig egy nagy tömbben. Ha új bejegyzést kap és a tömbben nincs több hely, akkor létrehozol egy új tömböt, abba átmásolod a régit, a régit realloc-kal megnöveled majd a végén visszamásolod. (Én legalábbis így csináltam c-ben :) ). A szavakat a tömbbe pedig egy szövegfájlból olvasd be (ill. oda tárold). Minden szó-jelentés kapcsolatot új sorba tegyél és akkor nem nehéz.
BajuszGG Posted November 2, 2009 Posted November 2, 2009 Kell tudnia oda-vissza keresnie? Kellene... Tehát úgy gondoltam, hogy a user kiválasztja, hogy melyik irányba akar keresni. Tehát mitt'om én ha lenyomja hogy 'a' akkor angolról fordít magyarra, ha meg azt hogy 'm' akkor magyarról angolra. Végül is én is úgy írtam a spec.-ben, ahogy CrW mondta. A szavakat tárolom két txt-ben aztán olvasom be.
Calypsol Posted November 3, 2009 Posted November 3, 2009 Kettõ darab STL-beli map segítségével is meg lehet csinálni, ha C++-ban kell. Ha C#-ban akkor meg van beépített Dictionary és SortedDictionary osztály.
BajuszGG Posted November 3, 2009 Posted November 3, 2009 Kettõ darab STL-beli map segítségével is meg lehet csinálni, ha C++-ban kell. Ha C#-ban akkor meg van beépített Dictionary és SortedDictionary osztály. Sima C-ben kell.
Calypsol Posted November 3, 2009 Posted November 3, 2009 Sima C-ben kell. Akkor a következõ linket ajánlom tanulmányozásra: http://www.macs.hw.ac.uk/~rjp/Coursewww/Cwww/linklist.html
_DooM_ Posted November 3, 2009 Posted November 3, 2009 Akkor a következõ linket ajánlom tanulmányozásra: http://www.macs.hw.ac.uk/~rjp/Coursewww/Cwww/linklist.html Én is ezt akartam épp javasolni, könnyû új adatot beszúrni (és rendezni, ha szükséges), viszont a "visszafelé" keresés az elég macerás. Vagy csinál mindkét iránynak egy-egy listát.
BajuszGG Posted November 3, 2009 Posted November 3, 2009 Én is ezt akartam épp javasolni, könnyû új adatot beszúrni (és rendezni, ha szükséges), viszont a "visszafelé" keresés az elég macerás. Vagy csinál mindkét iránynak egy-egy listát. Úgy akartam... Gondolom még nem várnak el tõlünk marha nagy kunsztokat.
Calypsol Posted November 4, 2009 Posted November 4, 2009 Úgy akartam... Gondolom még nem várnak el tõlünk marha nagy kunsztokat. C-ben nagy kunsztot csak a programozók 5%-ától várnak el, ne aggódj! :P Én is ezt akartam épp javasolni, könnyû új adatot beszúrni (és rendezni, ha szükséges), viszont a "visszafelé" keresés az elég macerás. Vagy csinál mindkét iránynak egy-egy listát. Mindenképp duplán kell tárolnia a dolgokat, még az alább említett módszerek esetén is. (Persze, kivéve, ha adatbázisozik...az lenne a legegyszerűbb, node C-ben nem tudom, hogy lehet normálisan megcsinálni, gugli viszont biztos haver ebben is)
_DooM_ Posted November 4, 2009 Posted November 4, 2009 C-ben nagy kunsztot csak a programozók 5%-ától várnak el, ne aggódj! :P Mindenképp duplán kell tárolnia a dolgokat, még az alább említett módszerek esetén is. (Persze, kivéve, ha adatbázisozik...az lenne a legegyszerûbb, node C-ben nem tudom, hogy lehet normálisan megcsinálni, gugli viszont biztos haver ebben is) Ha ezt a struktúra-tömböt választja, akkor nem. Sõt, nem is muszály struktúrát használni elég ha két oszlopa van a tömbnek, értelem szerûen egyik oszlopban a magyar, másikban az angol szavak lennének. Ezzel csak az a baj, hogy egyrészt baromi nagy a redundancia (egy több jelentésû szó nyílván annyiszor szerepel, ahány jelentése van; ha meg a szinonímákat is hozzávesszük, akkor...), másrészt macerás a bõvítés. (Mondjuk a keresés sem az igazi...) Én személy szerint két lehetõséget javasolnék: 1) minden iránynak egy "sima" láncolt lista, ahol két eltérõ szintû láncszem van. Az elsõdleges nyelv (angol-magyar esetén az angol) szavai lennének egy láncolt listában (célszerû ábécé sorrendbe rendezni), és minden szóhoz tartozna egy másik lánc, ami meg a jelentéseket tartalmazná. 2) ugyanez, csak nem két egyirányú, hanem egy kétirányú lista. Így lehetne visszafelé is keresni (igaz kissé macerásan és nem túl hatékonyan) anélkül, hogy minden kétszer lenne tárolva.
BajuszGG Posted November 6, 2009 Posted November 6, 2009 Van egy ilyenem: double a,r; scanf("%f %f",&a,&r); printf("%.2f %.2f",a,r); Valahányszor kap egy számot (egész, lebegõpontos, bármi...) mindig valami mínusz sokmilliárdot ír ki. Próbáltam úgy is, hogy %g-t írok a scanf()-be, de úgy meg még betûket is ír bele. Viszont a float a,r; scanf("%f %f",&a,&r); printf("%.2f %.2f",a,r); normálisan írja ki a számokat. Mit cseszek el? :unsure:
JimRaynor Posted November 6, 2009 Posted November 6, 2009 Van egy ilyenem: double a,r; scanf("%f %f",&a,&r); printf("%.2f %.2f",a,r); Valahányszor kap egy számot (egész, lebegõpontos, bármi...) mindig valami mínusz sokmilliárdot ír ki. Próbáltam úgy is, hogy %g-t írok a scanf()-be, de úgy meg még betûket is ír bele. Viszont a float a,r; scanf("%f %f",&a,&r); printf("%.2f %.2f",a,r); normálisan írja ki a számokat. Mit cseszek el? :unsure: scanf-ben %lf kell a beolvasáshoz, tehát "long float", akkor lesz double
_DooM_ Posted November 6, 2009 Posted November 6, 2009 Van valakinek valami ötlete az alábbi feladathoz? Egy város elhatározta, hogy értékesíti a város mellett levõ téglalap alakú földterületet. A földet egyforma méretû parcellákra osztották. A város úgy döntött, hogy a parcellákat nyilvános pályázat keretében értékesíti. Azaz egy adott határidõig minden érdeklõdõ lezárt borítékban leadhatja ajánlatát. Egy pályázó csak egy ajánlatot adhat be, amelyben meg kell adnia, hogy melyik parcellától melyik parcelláig terjedõ részt kívánja megvenni, és hogy mennyiért. A határidõ lejártáig n pályázat érkezett. Ezek közül ki kell választani azokat az ajánlatokat, amelyek a legtöbb bevételt eredményezik, s persze úgy, hogy egyetlen parcellát sem ítélhetünk oda egynél több pályázónak. Írjon programot, amely elvégzi a pályázatok olyan kiértékelését, amely a legnagyobb bevételt eredményezi. A bemenet elsõ sora tartalmazza, hogy hány pályázat (1 <= n <= 1000) van illetve hány parcella (1 <= m <= 1000). Utána n sorban fel vannak sorolva a pályázatok: hanyadik parcallától (a) hanyadikig (B) tart irényt az illetõ, illetve ezért mennyit fizetne (f). A b szerint nem csökkenõ sorrendben vannak rendezve a pályázatok. Egy példa: 4 5 2 3 500 4 4 600 4 5 500 1 5 1000 Megoldás: 1100 1 2 (az elsõ sor a bevétel, a második pedig a pályázók sorszámai; ha több megoldás is van, akkor bármelyik jó) Itt egy másik példabemenet: 20 10 1 1 481 3 3 790 4 4 201 3 5 405 2 5 548 2 6 136 7 7 613 5 7 933 5 7 764 6 8 429 5 8 475 8 8 722 8 9 532 1 9 640 9 9 506 9 9 992 9 9 311 9 9 539 8 9 503 6 9 743 papíron nekem ez a megoldás jött ki: 4119 1 2 3 8 12 16
BajuszGG Posted November 6, 2009 Posted November 6, 2009 scanf-ben %lf kell a beolvasáshoz, tehát "long float", akkor lesz double Ah... Köszi szépen. Így már mûködik. :)
JimRaynor Posted November 6, 2009 Posted November 6, 2009 Van valakinek valami ötlete az alábbi feladathoz? Szerintem ez egy diszkrét lineáris programozási feladat. A megoldáshoz egy n magasságú bináris fát kell bejárnod, aminek elvileg 2 az n-ediken levele lehet. Minden levél egy lehetséges pályázat-összeállítást jelent, tehát a fa minden elágazásánál arról döntesz, hogy a következõ pályázatot az elfogadottak közé tegyük-e. Persze nem kell minden levelet kiértékelni, hiszen vannak olyan összeállítások, amik ütik egymást, tehát nem kell végigjárni az egész fát. Például a 4 pályázó esetén mondjuk 1111-tõl 0000-ig járhatod végig a fát, 1111 azt jelenti, hogy mind a négy pályázatot elfogadják, 0000 azt jelenti, hogy egyiket sem. 1111-rõl persze kiderülne, hogy ütközés van benne, tehát odáig el sem jutsz, 0000 pedig értelemszerûen 0 Ft-os megoldást ad, tahát nem lesz befutó. Ilyen irányban bejárva már 111x-hez érve rossz összeállítást kapsz, tehát csak 110x-el folytathatod, és ezen az ágon is lesz meg a gyõztes 1100. Amint elértél az elsõ használható levélig, kiértékeled, hogy mekkora összeget ér, ezt eltárolod, és onnantól kezdve a továbbiakban már ehhez is hasonlíthatod a várható összeget egy-egy elágazásnál. Ha a várható összeg maximuma kisebb, mint az eltárolt legjobb érték, akkor annál az elágazásnál már nem érdemes tovább lépni. De persze az is elég, ha csak levelenként hasonlítod az aktuális legjobb értékhez, az optimalizálás talán nem olyan fontos szempont.
_DooM_ Posted November 6, 2009 Posted November 6, 2009 Ez egy dinamikus programozási feladat, ez lemaradt. Nem mondom, hogy teljes egészében felfogtam a megoldási javaslatodad (my bad, és természetesen köszönöm!), de elég idõigényesnek tûnik. Itt viszont az idõ korlátos, 0,3 mp, valamint egy ilyen döntési fa jó sok helyet foglal, ami szintén meg van szabva, max 16 MB lehet. Bár ez utóbbi nem egy vészes korlát, inkább az idõvel lehet gond, ha nem dinamikusan csinálja az ember. Egyébként egy nem túl hatékony (és nagy inputra valamiért egyszerûen lefagyó...) megoldásom nekem is van (mindkét példabemenetre jó megoldást ad, van egy harmadik is, de azt papíron ember nem ellenõrzi le), nagyjából hasonló az elve.
_Greb_ Posted November 8, 2009 Posted November 8, 2009 hali,én azzal a kéréssel fordulok hozzátok,hogy kellene elõször is nekem olyan forrás amivel magam feltudok készülni az érettségin kért dolgokra és annál nagyobb szintû nyelveket szeretnék elsajátítani (az iskolában fogják tanítani de ki bír addig várni. :D ) szóval ezekhez kellene nekem valami forrás amibõl megtanulhatom,elõre is köszönöm.
BajuszGG Posted November 8, 2009 Posted November 8, 2009 hali,én azzal a kéréssel fordulok hozzátok,hogy kellene elõször is nekem olyan forrás amivel magam feltudok készülni az érettségin kért dolgokra és annál nagyobb szintû nyelveket szeretnék elsajátítani (az iskolában fogják tanítani de ki bír addig várni. :D ) szóval ezekhez kellene nekem valami forrás amibõl megtanulhatom,elõre is köszönöm. Konkrétan mit értesz "nagyobb szintû nyelv" alatt? :unsure: A felkészülési forrásnak meg egy info tanárt javaslok aki érti is a dolgát. B)
_Greb_ Posted November 9, 2009 Posted November 9, 2009 Konkrétan mit értesz "nagyobb szintû nyelv" alatt? :unsure: A felkészülési forrásnak meg egy info tanárt javaslok aki érti is a dolgát. B) nagyobb szintû alatt olyanra gondolok amit lehet is használni különbözõ programok írásához,mert azt hallottam haveromtól hogy se fõiskolán se erre a célra nem azt használják amit kérnek. Én infó spec. osztályba járok (10.be) de már 12. év elejére elakarom azt a szintet érni hogy az emelt szintû érettségit le tudjam tenni infóból.
BajuszGG Posted November 9, 2009 Posted November 9, 2009 nagyobb szintû alatt olyanra gondolok amit lehet is használni különbözõ programok írásához,mert azt hallottam haveromtól hogy se fõiskolán se erre a célra nem azt használják amit kérnek. Én infó spec. osztályba járok (10.be) de már 12. év elejére elakarom azt a szintet érni hogy az emelt szintû érettségit le tudjam tenni infóból. Hát... Nem t'om mi lesz addigra a követelmény. Office biztos, hogy lesz a programozás az kérdéses mert hallottam olyat, hogy Pascal helyett már érettségin is C-ben kell programozni. Szóval C-re mindenképp érdemes ráfeküdni, mert szerintem minden egyetemen / fõiskolán azzal kezdik illetve érdeklõdj a tanároktól, hogy mi a helyzet a Pascallal ha majd aktuális lesz, mert 2 év az sok idõ és rengeteg minden változhat addig.
_DooM_ Posted November 9, 2009 Posted November 9, 2009 nagyobb szintû alatt olyanra gondolok amit lehet is használni különbözõ programok írásához,mert azt hallottam haveromtól hogy se fõiskolán se erre a célra nem azt használják amit kérnek. Én infó spec. osztályba járok (10.be) de már 12. év elejére elakarom azt a szintet érni hogy az emelt szintû érettségit le tudjam tenni infóból. Szerinted egy programozási nyelvet mire lehet még használni programok írásán kívül? :rolleyes: Ezt meg fogalmazd meg újra, mert egy szót nem értek belõle. :ph34r:
_Greb_ Posted November 10, 2009 Posted November 10, 2009 Hát... Nem t'om mi lesz addigra a követelmény. Office biztos, hogy lesz a programozás az kérdéses mert hallottam olyat, hogy Pascal helyett már érettségin is C-ben kell programozni. Szóval C-re mindenképp érdemes ráfeküdni, mert szerintem minden egyetemen / fõiskolán azzal kezdik illetve érdeklõdj a tanároktól, hogy mi a helyzet a Pascallal ha majd aktuális lesz, mert 2 év az sok idõ és rengeteg minden változhat addig. akkor viszont majd mindkettõre ráfekszek,próbálok tanárt is keresni hozzá,de tudsz valami hasznos könyv címet vagy linket adni ami kezdõ támpontnak megfelel?
BajuszGG Posted November 10, 2009 Posted November 10, 2009 akkor viszont majd mindkettõre ráfekszek,próbálok tanárt is keresni hozzá,de tudsz valami hasznos könyv címet vagy linket adni ami kezdõ támpontnak megfelel? C jegyzetek Meg a ComputerBooks-nál lehet viszonylag olcsón könyve(ke)t szerezni... Innen meg le tudod szedni a Visual Studio-t C-hez. (Van más fejlesztõ is, én speciel ezt használom).
Ameron Posted November 11, 2009 Posted November 11, 2009 hello mi kéne ahoz hogy egyedül megtanuljam a java programozási nyelvet fél év alatt és ingyen
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now