Hogy kell C++ ban mátrixot beolvasni szöveges állománybol? Nem írnátok le légyszi a pontos kódot!?
Najó, látva hogy eléggé el vagy veszve és mert jó napom van:
Mátrixot beolvasni nem fogsz tudni, mert a C++ nem tudja mi az a mátrix.
Számokat tudsz beolvasni. Erre a gugli kb 2 ms alatt dob 10 millió találatot, hogy hogyan.
Aztán hogy ezt te hogyan tárolod, az már egyéni szoc problem.
Érdemes mondjuk std::vector<std::vector<double>>-ben, az elég hatékony, de ha igazán szép akarsz lenni, akkor írsz egy saját Mátrix osztályt és elrejtesz mindenféle implementációt. (Nyilván lehet tölteni a netről ezer féle matekos, mátrixos könyvtárat, de nyilván nem ez a feladat)
60%-os. Ha nem vetted volna észre, itt minden egyes kérdés már megvan válaszolva a google által, csak keresni kéne. De ez az oldal direkt szándékosan azért jött létre, hogy azok, akik nem akarnak keresgélni, csak felteszik a kérdésüket, hogy aztán megválaszolhassák nekik. Ez van. Ugyanis ez az oldal célja, rendeltetése, feladata, és aki ez ellen van, az az oldal ellen van. Tehát te most azzal, hogy a kérdezővel keresteted meg, hogy a kérdezőt arra ösztönzöd, hogy keresse meg, egyenesen tönkre vágod az egész oldalt. Na jó, te egyedül még nem, de érts meg, ez az oldal azoknak készült, akik nem tudják, vagy nem akarják megkeresni a kérdésükre a választ, hanem készen szeretnék megkapni mások által. Úgyhogy kérlek ne tedd tönkre az oldalt azzal, hogy arra ösztönzöl másokat, hogy maguk keressék meg a kérdésüket. Szépen mindenki fölteszi amit akar, aztán ha nem akarsz rá válaszolni, akkor nem kell.
Úgyhogy kérdező, megkérlek, hogy NE írd be a google keresőbe, amit meg akarsz keresni! NE te magad nézz utána, hanem tedd föl ide a kérdést, és addig várj, amíg nem kapsz értelmes választ. Ne is figyelj a 60%-osra, a 60%-osok mind ilyenek, nem megbízhatóak. Bezzeg én. Én az vagyok. Ezért szeretnek engem a nők.
# 5/5 ma 11:03
Ez az oldal kérdésekre lett kitalálva, nem kódkunyerálásra. Ha programozást tanul, és ezzel akar foglalkozni, akkor épp ideje, hogy egyedül megtanuljon legalább próbálkozni, és ezután kérdezni. Egy fél sor kódot nem kaptunk tőle, hogy legalább azt lássuk, hogy próbálkozik. Épp elég kókler van a szakmában, nem hiányzik még az a sok akik itt kérdezgetnek fél perces guglis kérdéseket.
#5: Van itt némi félreértés. Az ember beleütközik egy problémába. Keresgél, nem találja a megoldást. Ekkor feltesz egy kérdést, amire valaki esetleg válaszolni tud. Itt minimum elvárható, hogy a kérdező legalább annyi időt szánjon a kérdése megválaszolására, mint amennyi időt a válasz megírása igényel. Legalább annyira értse a problémát, hogy a ki tudja írni korrekt módon a kérdést. Mondjuk például illene annyira beleásni magát a témába, hogy tudja, hogy a C++-ban alapból nincs olyan, hogy „mátrix.” Lehet mátrixot kezelni persze a megfelelő osztályokkal, vagy egy vektorokból álló tömbbel, vagy egy számokból álló kétdimenziós tömbbel, de akkor le kellene írnia, hogy milyen formában tárolná a mátrixot.
Evidens, hogy ha valaki problémába ütközik, annak segítünk. Nem oldjuk meg helyette a házi feladatát, hanem ha kinyitja a tankönyvet, elolvassa, amit kell, próbálkozik, és valamit nem ért, akkor segítünk megérteni. De ez a kérdés nem erről szól, hanem arról, hogy csináljunk meg – gondolom – egy házi feladatot, ő meg közben elmegy mondjuk játszani, aztán este bemásolja a füzetbe, és probléma letudva. Erre teljesen jogos reakció, ha mondjuk visszakérdezünk, hogy mit fizet a kérdező a kód megírásáért, vagy ha cinikusan, szarkasztikusan válaszolunk, afféle „ne nézz már minket hülyének” jelleggel.
Eleve ott kezdődik, hogy a kérdésben benne kellene lennie minden a megválaszoláshoz szükséges információnak. Ez átgondolást, kutakodást igényel. Itt nincs specifikálva, hogy mégis milyen formában szerepel abban a bizonyos szövegfájlban a mátrix, mert úgy kapásból tudok vagy 3 különböző formátumot mondani. Nincs megfogalmazva, hogy fix méretű mátrixról van-e szó, vagy a szövegfájl dönti el a mátrix méretét. Nincs tisztázva, hogy a szövegfájl formátumát megbízhatónak kell-e kezelni, legyen-e hibaellenőrzés mondjuk arra, hogy a mátrix sorai nem azonos számú számot tartalmaznak, vagy nem szükséges ezt lekezelni, mert biztosan azonos számú számot tartalmaz egy sor.
De úgy összességében van egy szellemes írás erről, alapvetően hacker témakörben, de tulajdonképpen minden témakörre nézve tanulságos az írás: [link]
~ ~ ~ ~ ~ ~ ~
Kérdező: A fenti problémák adottak. A kérdésed megválaszolása némi többlet információt igényel, bár az előző válaszok megmutatják az utat a megoldáshoz. Ha leírod, hogy hol akadtál el, mondjuk mellékelve a jelenlegi kódodat, akkor segítünk megtalálni a hibát, vagy megszülni a megoldás lépéseit, az algoritmust. Nem, természetesen nem fogjuk megírni a teljes kódot.
Szia!
Ha nem tudod, mekkora a mátrix mérete, mondjuk ilyen egy fájl:
1 2 3
4 5 6
7 8 9
De egyik dimenzió sem fix, akkor vectorban vectort használj.
Elvben:
Beolvasol egy sort getline-nal, kiveszed a sor egyes számait egyesével egy ideiglenes változóba, ezeket a számokat egy ideigleens vektorba push_backeled.
Ezek után a sort tároló vektort push backeled a mátrix tárolására szánt vektorba. A folyamat elején mindig kiüríted a sort tároló vektort.
kb.:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!