Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 13. 04. 2010 17:13

květoslav
Příspěvky: 31
Reputace:   
 

Algoritmus pocet znaků ve větě...

Zdravím, potřebuju poradit s programem v Pascalu.

Vytvorte  program, ktery  ze vstupniho  souboru cte  vetu ukoncenou teckou.
Slova ve vete jsou oddelena  jednou nebo nekolika mezerami. Program zjisti,
v kolika slovech je  vice znaku nez pocet, hodnota kterou zadám z klávesnice.



Mám představu  jak by to mohlo vypadat, ale realizace pokulhává )

Slova budu načítat do proměnné typu string, jak ale načíst jen jedno slovo?
Jeden cyklus bude načítat jednotlivé znaky slova, mez jeho ukončení bude znak mezery, druhý cyklus bude porovnávat počet znaků ve slově s hodnotou zadanou uživatelem... dík za jakoukoli radu.

Offline

  • (téma jako vyřešené označil(a) byk7)

#2 13. 04. 2010 18:01

septolet
Příspěvky: 334
Reputace:   
 

Re: Algoritmus pocet znaků ve větě...

Nepotřebuješ dva cykly. Bohatě by stačilo číst soubor po písmenkách a při tomto čtení rovnou počítat počet znaků ve slově a porovnávat, jaké slovo je delší než zadané číslo. Bohužel ale Pascal neznám, takže nějakou malou nápovědu s podobě kódu ti nedám.

Offline

 

#3 13. 04. 2010 20:59

plisna
Místo: Brno
Příspěvky: 1503
Reputace:   
 

Re: Algoritmus pocet znaků ve větě...

↑ květoslav: mozna inspirace viz nize, za syntax nerucim, uz je to prece jen dost dlouho, co jsem v nem naposledy programoval, nicmene vyznam je snad jasny.

Code:

pocetZnaku := 0;
pocetSlovDelsichNezPovolene := 0;

for i := 1 to delkaVety do begin
  if veta[i] <> " " then begin
    pocetZnaku := pocetZnaku + 1;
  end
  else begin
    pocetZnaku := 0;
  end;
  if (pocetZnaku - povolenyPocetZnaku) = 1 then begin
    pocetSlovDelsichNezPovolene := pocetSlovDelsichNezPovolene + 1;
  end;
end;

Offline

 

#4 13. 04. 2010 21:46

květoslav
Příspěvky: 31
Reputace:   
 

Re: Algoritmus pocet znaků ve větě...

↑ plisna:

jj chapu co to bude dělat ještě si nejsem jistý s načtením té věty ze zdrojového souboru... bude stačit klasicky

assign(f,'vstup.txt');
  reset(f);
  read(f,veta);


a datový typ proměnné 'veta' má být string? Bude potom cyklus brát znaky po jednom?



a ještě

if veta[i] <> ' ' then begin

tenhle řádek posbírá znaky ruzne od mezery, po každém znaku navýší hodnotu počet znaků o jedničku ale při nesplnění podmínky program hodnotu počet znaků vynuluje, to je špatně ne?


tyhle algoritmy mi dávají fakt zabrat :-/ Jinak díky za odpovědi.)

Offline

 

#5 13. 04. 2010 22:25

plisna
Místo: Brno
Příspěvky: 1503
Reputace:   
 

Re: Algoritmus pocet znaků ve větě...

↑ květoslav: snad ano, nacitani do stringu by melo fungovat, string je totiz vlastne pole znaku. nejlepe je to vyzkouset a kouknout, co to bude delat. jinak ta podminka if veta[i] <> ' ' by mela byt spravne, protoze pokud veta[i] <> ' ', pak jsem nekde uvnitr slova. jakmile narazim na mezeru ' ', tak je predchozi slovo ukonceno a pro pocitani delky nasledujiciho slova je treba promennou pocetZnaku vynulovat. mozna doslo k mylnemu pochopeni, promenna pocetZnaku oznacuje pocet znaku aktualniho slova pri prochazeni vety cyklem, nikoliv celkovou delku cele vety.

Offline

 

#6 13. 04. 2010 22:29

květoslav
Příspěvky: 31
Reputace:   
 

Re: Algoritmus pocet znaků ve větě...

jo vlastně... moc díky jdu se s tím ještě poprat.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson