Kezdőoldal » Számítástechnika » Programozás » Pascalban lekérdezni, hogy a...

Pascalban lekérdezni, hogy a beírt karakter milyen típusú?

Figyelt kérdés

Üdv!

Nemrég kezdtem el programozgatni és elakadtam ott, hogy nem tudom hogyan lehetne eldönteni a beírt a szövegről, hogy szám vagy karakter. Igazából a jelenlegi kis programomhoz csak ennyi kéne. Próbáltam keresni, de nekem nem jött össze.



2015. szept. 14. 17:48
 1/7 anonim ***** válasza:

pascalban mindenféleképpen szövegként olvass be és utána megtudod mondani hogy az szöveg vagy szám-e vizsgálattal (mivel ha integerbe olvasol be és szöveget adsz a program kifagy; nincs benne hibakezelési lehetőség ha jól tudom mint a c c++ c# java) - most röviden algoritmikusan elmondom hogy old meg NEM vagy NEM FELTÉTLENÜL a legoptimálisabb választ írom


string beker;

int szam;

int visszater;


Val(beker, szam, visszater);


ha (visszater == 0)

akkor

{

kiir('bekert cucc az egy szám')

}

egyébként

{

kiir('bekert cucc az egy szöveg')

}

2015. szept. 14. 17:59
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

ja még annyi hogy

Val(beker, szam, visszater);

beker <= amit bekertel

szam <= a szam megkapja az értéket ha áttudja konvertálni, de ha nem akkor 0 at fog visszaadni

visszater <= ez már érdekesebb, ha 0 át ad vissza akkor nem volt szöveg a bekérésben, ha 0-nál nagyobbat akkor az index poziciót kiírja hogy hol volt benne szöveg


megnéztem lehet hibakezelést csinálni pascalban de azt hagyjuk

2015. szept. 14. 18:03
Hasznos számodra ez a válasz?
 3/7 coopper ***** válasza:

Szia.


Pascalban a val () függvénynek néz utánna : [link]


A fenti függvény tudja (többek között) a szövegként beirt számot átalakitani számmá. A Freepascalos mintapélda nagyon korrekt a programnak paraméterként beadott "szövegről" dönti el, hogy hibás-e (a hiba melyik pozicióban van) illetve, hogy a beadott érték mennyi.


Sok sikert.

üdv.

2015. szept. 14. 18:07
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:

TryStrToInt-tel így:


var

input: string;

szam: Integer;

isNum: Boolean;

begin

Readln(input);

isNum := TryStrToInt(input, szam);

if isNum then begin

Writeln('Szam: ' + IntToStr(szam));

end else begin

Writeln('Nem szam!');

end;

end.

2015. szept. 14. 18:16
Hasznos számodra ez a válasz?
 5/7 SimkoL ***** válasza:

Ha csak egy karakterre vagy kiváncsi akkor így:


var ch : char;


begin

ReadLn(ch); //csak az első karakter számít

if ch in['0'..'9'] then WriteLn ('Szam') else WriteLn ('Karakter');

ReadLn;

end.

2015. szept. 14. 18:45
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:

#5-nek (SimkoL-nek):


"...és elakadtam ott, hogy nem tudom hogyan lehetne eldönteni a beírt a szövegről, hogy szám vagy karakter."


Tehát nem egy karakterről van szó, ergó a megoldásod, várjál csak, hogy is fogalmaztál? Jaaa igen: "Több karakterrel meg megeteted a húgyos körtét." :-)

2015. szept. 14. 21:10
Hasznos számodra ez a válasz?
 7/7 SimkoL ***** válasza:

Alapkérdés, bár ilyen formában ez is értelmetlen:

'Pascalban lekérdezni, hogy a beírt karakter milyen típusú?' - ha karaktert kérünk be akkor char -

'eldönteni a beírt a szövegről, hogy szám vagy karakter' ez is értelmetlen, helyes(ebb)en: eldönteni a beírt a szövegről, hogy számként lehet-e értelmezni. A karakter az egy ! 'valami' a szám több karakterből is állhat ['0'..'9', '.'] . Technikailag nem mindegy mit, hogyan értékelünk ki. Egy karakterre kiváló a halmazos megoldás, értékadásához az Ord függvény. A Val eljárás nagyon kiváló ha stringet kívánunk számmá alakítani, mivel 'megmondja' a hiba helyét is - ami akár lehet tizedesvessző vagy pont hiba is, bár ezt illik az ilyen jellegűeket már az elején kiszűrni -

De ha elolvastad a válaszom első sorát:

'Ha csak egy karakterre vagy kiváncsi akkor így'

2015. szept. 14. 21:50
Hasznos számodra ez a válasz?

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

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!