Pascalban lehetséges egyszerre szöveget és számokat is beolvasni?
Ne keverd össze a szám jelét az értékkel, amit jelez. Az '1' nem szám, hanem egy karakter, vagyis egy olyan ábra, amelyet a számítógép kiír, amikor megnyomod az egyes billentyűt, hasonlóan a többi betű- vagy egyéb jelhez. Az 1 ezzel szemben egy számérték, amellyel mondjuk matematikai műveleteket tudsz végezni.
Igen, végezhetsz összehasonlítást a szöveges számok között is, ilyenkor azonban a program nem a számértékeket hasonlítja össze, hanem azt, hogy a vizsgált szöveg első (vagy egyezés esetén a második, harmadik, stb.) karaktere egy bizonyos táblázatban (általában az ASCII-karaktertáblában) alacsonyabb vagy magasabb sorszámot visel. Mivel a számok a táblázatban is növekvő sorrendben követik egymást, kaphatsz számszakilag is helyes eredményt; például '1' kisebb '5'-nél, mert '1' a táblázat negyvenkilencedik rubrikájában van, '5' pedig az ötvenharmadikban. De ugyanezen ok miatt a stringek összehasonlításakor '1000' is kisebb lesz, mint '5'. Szintén ebből következik, hogy egy számot leíró szöveget bármely egyéb karakterfüzérrel összehasonlíthatsz, például 'kakuk' nagyobb, mint '8746', mivel a 'k' karakter hátrább van a táblázatban, mint a '8'.
Röviden: Az 'ember1' inputban lévő egyes nem szám, hanem ugyanúgy a szöveg része, mint a betűk, és az általa jelzett értékkel a program egyáltalán nem is foglalkozik. Ha valami miatt valaha a tényleges értékére volna szükséged, akkor a szövegből ki kell emelned a számjegykaraktereket, és tényleges számmá kell alakítanod, mondjuk a val() függvénnyel.
„Csak egyes helyeken olyan volt, mint például while n<>0, és át kellett írjam '0'-ra.”
Ez önmagában értelmetlenség, az a lényeg, hogy miért.
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!