Kezdőoldal » Számítástechnika » Programozás » C#ban ezt hogy tudom megoldani?

C#ban ezt hogy tudom megoldani?

Figyelt kérdés

Van egy string értékem, amiben mértékek vannak megadva, de nem lehet tudni, hogy milyen sorrendben és hogy van-e szóköz a mértékegység és a szám között vagy nem. Pl. 1x;1y és 1y;1x ugyanaz, de ugyanaz a 1x;2y és a 1 x ; 2 y is. Split-tel fel tudom darabolni, de hogy tudom felismertetni, hogy melyik mérték van előbb (tehát hogy tudom megkapni pl boolként hogy x előbb van-e mint y)?

Remélem érthető, bocs csak siettem. Ha valami nem világos, akkor írj. Köszi :)


2011. nov. 29. 17:56
 1/2 KovA1963 válasza:

Szia !

Hát eléggé erőltetni kell az agyamat, hogy el tudjam képzelni mit is akarsz kicsit szemléletesebb lenne

ha pl 1 kg; 2 m avagy 2m; 1 kg - vagy ilyesmit írnál azt sem tudom jól képzelem-e ?


A nyelv egyébként tökmindegy szerintem - előbb a módszert kell átgondolnod, meg mit is akarsz vele - kell-e az érték, kell-e a mérték, tárolni akarod-e vagy csak azonosságot akarsz felismerni két megadás között, vagy mit ?


Az alkalmazható módszer egy kicsit a bevitt adatok miféleségétől is függ - lehet-e tudni, hogy mondjuk csak kg és m fordul elő mértékegységként meg számok, vagy változatosabb az "input".


Van egy általános tanácsom (mindenféle programozási feladatra): csináld magad és figyeld meg magad közben, hogy hogy csinálod - ha jó megfigyelő vagy - hamar program lesz belőle.


Írok néhány ötletet is:

Próbálhatod a formátumot a könnyebb feldolgozás szempontjából egységesíteni - pl felesleges karaktereket (szóközök, vagy jelentőségmentes egyéb karakterek)kiszórod belőle - a többit kereséssel felismered...

megnézed melyik van korábbi, melyik későbbi pozíción, avagy megkeresed az elválasztójelet és megnézed melyik van előtte vagy utána.


Vagy csinálhatsz olyat, hogy keresd a szintaktikai elemeket és aszerint bontod fel a sort - az egész stringet egy char mezőként, aztán szépen végigfutsz egy index-szel rajta és feljegyzed a szintaktikai elemek kezdetére mutató indexeket - ez olyasmi mint a split lehet, csak split nélkül :-) - vagyis nem szeded szét a stringet, csak indexet csinálsz rá hol kezdődnek a darabjai valamely ügyes algoritmus szerint ami figyelhet numerikus nemnumerikus és viszont átmenetre, tagozőjel átmenetre - szintaktikai elemek felismerésére - szóval csináhatsz rá egy elemző állapotautomatát - csinálhatod toleránsra és kevésbbé toleránsra - előbbi a szemetet figyelmenkívülhagyja - túlteszi magát és mindenáron kibányássza ami értelmezhető - az utóbbi hibának értékeli, ha nem várt karakterekkel találkozik nem várt helyen...


Szóval szempont kérdése mit és milyen céllal elemzel...

És ennek ismerete nélkül nehéz találó választ adni...


Különben is egy második programozónak adható általános tanács: ha jól meg tudod fogalmazni a kérdést - az már fél válasz...


Egy harmadik tanács: ne gondolkozz durva sablonokban (kész funkciók és metódusok) - túlbonyolíthatod a dolgod magadnak is és a gépnek is.

Inkább azt gondold meg minek hogy kell történnie, és akkor vess be kész dolgot, ha az abba a folyamatba illeszkedik...

Az elsődleges az hogy mit kell csinálni és nem az, hogy milyen eszközt funkciót metódust kellene/lehetne használni.

Előbb légy kőfaragómester szobrász mint kőműves...

Később jobban megy majd a kőműveskedés is, ha/mert muszáj a "hatékonyság" meg a "technológiák" ... miatt...

De agyagozással jobb kezdeni mielőtt az ember téglákhoz nyúl.



Az egyik es

2011. dec. 5. 12:00
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:

koszi :) ment a zold de en egyszerubben megtudtam :)

csak annyi hogy kulon muvelet kell akkor ha ez van elobb v ha ez van elobb stb. amig nincs sok lehetoseg addog ez is megy :)

2011. dec. 5. 15:15

További 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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!