Programování Pascal - Kolik je v textu jednopísmenných slov?
Napište program, kterým načtete text dlouhý max 1000 znaků. Zjištěte, kolik je v textu jednopísmenných slov. Jednopísmenné slovo je „významný znak mezi dvěma mezerami“. Jednopísmenné slova nakonec vypište!
Prosím, nevím si s tím rady. Díky
Prosím, nevím si s tím rady. Díky
Odpovědi
Diskuze
Ve VBA bych načetl celý text jako řetěz. String.
Cyklem bych testoval kdy nastane znak mezery.
Po nalezení mezery provézt test délky "řetězce Len"
významných (předdefinovaných) znaků.
Nalezené hodnoty bych vypisoval do jednorozměrného pole.
Kdysi jsem to dělal z důvodů načtení celého Příjmení a Jména.
A potom jsem potřeboval oddělit jenom příjmení.
Fungovalo to, i když bylo celé jméno složeno ze tří slov,
jak je teď moderní.....
Rokůsková Jill Viktoria
Ale profesionální řešení by asi vypadalo jinak.
benda.josef1@seznam.cz
Načetla bych všechny vstupní znaky a uložila si je, zároveň zjistila jejich počet n. x jako hledaný počet bych vynulovala.
A pak bych v cyklu pro i=1 až n-2 testovala trojice znaků:
je-li první znak mezera, druhý znak "významný znak", třetí znak mezera, jde o hledaný výraz a zvětším x o 1 a druhý znak si uložím do nějakého pole.
Po skončení cyklu vytisknu zjištěný počet, který je v x a pak tisknu uložené pole.
Tisknout mohu buď pokaždé na nový řádek, nebo ve skupinách např. dvaceti znaků, oddělovat mezerami nebo čárkami. Opět s použitím cyklu nebo v případě řádkování i cyklu pro znaky v řádku.
Co mi je nejasné v zadání:
definice "jednopísmenného slova" - podle ní, jestliže text začíná na "významný znak", mezera, nebo končí na mezera, "významný znak", tak se to nezapočítá. Kdybych to měla počítat, tak bych musela otestovat zvlášť dva první a dva poslední znaky z uložených n znaků.
Nevím také, co to je "Významný znak". To by mělo být řečeno. Jestli malá a velká písmena a-z a A-Z nebo malá a velká písmena české abecedy, nebo co.