Csak betű és szóköz?
Olyan pascal programot szeretnék írni ami kiirja az "IGEN" üzenetet ha a sorozat csak betűből és szóközből áll, ellenkező esetben a "NEM"-et..
pl:Jancsi 19 éves.
Itt a Nem-et kell kiirja.
valami elmélet?
switch case pascal-ba?
egyébként nem ismerem..
én egy egyszerű béna programot szeretnék írni háttértudás nélkül.
úgy képzeltem el hogy "ha a szöveg tartalmaz 1-t akkor írd ki hogy nem"
ha a szöveg tartalmaz 2-t akkor írd ki hogy nem else write Igen..
valami hasonlú alapműveletekből álló ötlet?
Szia.
Meg lehet oldani a Te módszereddel is, de szerintem az egy kicsit macerás :
pl.:
if pos ('0', szoveg)<>=0 then jelzo:=True;
if pos ('1', szoveg)<>=0 then jelzo:=True;
if pos ('2', szoveg)<>=0 then jelzo:=True;
if pos ('3', szoveg)<>=0 then jelzo:=True;
.
.
.
és még vagy 128 sor hasonlókkal tele (ugyanis nem csak a számokat, hanem a matematikai jeleket a speciális karaktereket is le kell csekkolni( és mindig ott van a lehetőség, hogy egyet kihagytál), ha ez kész akkor :
if jelzo
then writeln ("NEM")
else writeln ("IGEN");
Egyszerübb az első öttlete, egy ciklussal végigmész a szövegen, egy feltétellel megálapitod, hogy betű-e vagy szóköz az adott karakter, egy változót növelsz ha igen.
A végén összehasonlitod a szöveg hosszát a változóddal, ha egyformák akkor az azt jelenti, hogy csak betű és szóköz van a beadott szövegben.
itt a lényeg a többit rakd köré
(amit vizsgál :
a-z intevallum
A-Z intervallum és a
szóköz : " ")
darab:=0;
for i:=1 to length (szoveg) do begin
betu:=szoveg[i];
if ('a'<=betu) and (betu<='z') or ('A'<=betu) and (betu<='Z') or (betu=' ') then darab:=darab+1;
end ;
if darab=length (szoveg)
then writeln ('IGEN')
else writeln ('NEM');
Sok sikert.
Üdv.
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!