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 25. 01. 2011 15:51

gigo
Příspěvky: 93
Reputace:   
 

cetnost

dobry den
na tomto foru jsem dnes poprve
zajimalo by me jak resit cetnost slov a vypsani prvnich dejme tomu peti nejcetnejsich
mam navrh
slovo:='';
while a<>ord(32) do
begin
read(a);
slovo:=slovo+a;
end;

pak mit dve pole v prvnim met slova a pro kazde nove slovo zkoumat jestli uz se vyskytlo pokud ano pak zvysit cetnost v druhem poli
pokud ne tak by se do prazdneho pole dalo slovo neco jako
for i:=1 to 1000 do
begin
if pole[i]=slovo then
inc(q[i])
else begin
if pole[i]=0 then
pole[i]:=slovo;
inc(q[i]);
break;
end;
if pole[i]=slovo then break;{abych se dostal z forcyklu a nactu dalsi slovo dokud nebude konec souboru}
end;

problem je ze mi to pri nacteni nacte i mezeru do slovo a take mi to nechce nacist dalsi slovo protoze v promenne a je mezera


dekuju

Offline

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

#2 25. 01. 2011 16:06

Dioxid
Příspěvky: 416
Reputace:   13 
 

Re: cetnost

↑ gigo:
Dobrý den,

Takže problém je jen v této části?

Code:

slovo:='';
while a<>ord(32) do
begin
read(a);
slovo:=slovo+a;
end;

Co třeba to udělat takto:

Code:

slovo:='';
read(a);
while a<>ord(32) do
begin
  slovo:=slovo+a;
  read(a);
end;

Totiž že se nejprve kontroluje jestli to není mezera a pak se to uloží.


Jsem omylný, proto ne vše, co jsem napsal, je zaručeně správně.
468

Offline

 

#3 25. 01. 2011 16:25

gigo
Příspěvky: 93
Reputace:   
 

Re: cetnost

↑ TomDlask:
jo a jeste by me zajimalo jak potom prochazet 'q'
napada me
z:=0;
while z<5 do
begin
abs:=0;
for i:=1 to 1000 do
begin
max:=q[i];
if max>abs then
begin
abs:=max;
j:=i;
end;
end;
write(pole[j],' ');
write(q[j]);
q[j]:=0;
inc(z);
end;

to je to co me ted napadlo
vypada to snad ok

Offline

 

#4 25. 01. 2011 16:40

Dioxid
Příspěvky: 416
Reputace:   13 
 

Re: cetnost

↑ gigo: Takže se projede celé pole q než najdeš nejvyšší, ten vypíšeš a zmenšíš hodnotu na 0 - tohle se opakuje pětkrát... Spouštět jsem to nezkoušel, ale od pohledu by to mohlo být funkční. To bude složitost přibližně O(N), kde N je počet slov - nemyslím, že je špatná.


Jsem omylný, proto ne vše, co jsem napsal, je zaručeně správně.
468

Offline

 

#5 26. 01. 2011 23:22

gigo
Příspěvky: 93
Reputace:   
 

Re: cetnost

↑ TomDlask:
dekuju uzaviram

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson