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 27. 01. 2011 16:45

qwertprd
Zelenáč
Příspěvky: 2
Reputace:   
 

Program na určení délky vět

Zdravím, potřeboval bych poradit. Mám texovej soubor ve kterým je pár vět a úkolem je vytvořit program, který načte tento soubor a určí, která věta je nejkratší a která věta je nejdelší. Nevím si vůbec rady, takže budu rád za každou radu.

Offline

 

#2 27. 01. 2011 17:22

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

Re: Program na určení délky vět

↑ qwertprd:
Zdravím, v jakém formátu jsou věty ukládány? Bez této informace se dá říct jen "obecné" řešení, které ti asi moc nepomůže.

Je totiž třeba rozdíl mezi

Code:

První věta má pět slov.
Druhá věta jich už ale má více, dokonce devět.
Tato věta je krátká.

a

Code:

První věta má pět slov. Druhá věta jich už ale má více, dokonce devět. Tato věta je krátká.

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

Offline

 

#3 27. 01. 2011 19:22

hradecek
Příspěvky: 772
Pozice: Student
Reputace:   25 
Web
 

Re: Program na určení délky vět

↑ qwertprd:
Vždy porovnávaj len dve vety. Veta končí bodkou :)), a či sa majú pripočítavať aj biele znaky si už nepovedal...


Netrápte sa nad svojimi problémami s matematikou, môžem vás uistiť, že tie moje sú ešte väčšie. ~~Albert Einstein~~
Jak spozná člověk, že není pitomec ? - Moudrý člověk to nepozná nikdy a blbci je to jedno. ~~Jak přicházejí básnici o iluze~~
Někteří lidi se nikdy nezmění. Anebo se rychle změní a pak se zase rychle změní nazpátek. ~~Homer Simpson~~

Offline

 

#4 27. 01. 2011 22:39

Jookyn
Místo: Mar. Lázně / Praha
Příspěvky: 143
Reputace:   11 
 

Re: Program na určení délky vět

↑ hradecek:
Proč porovnávat jen dvě věty? Možná jsem tu myšlenku nepochopil...


Jinak algoritmus bych si navrhnul takhle:

delka_nejdelsi_vety := 0;
nejdelsi_veta = "";
delka_nejkratsi_vety := (něco velkýho, třeba MAXINT)
nejkratsi_veta = "";

while(veta = nacti_vetu(vstup)){
if(veta.delka > delka_nejdelsi_vety){
  nejdelsi_veta = veta;
  delka_nejdelsi_vety = veta.delka;
}
if(veta.delka < delka_nejkratsi_vety){
  nejkratsi_veta = veta;
  delka_nejkratsi_vety = veta.delka;
}
}

A je jen potřeba naprogramovat čtení věty, což už nebude takovej problém. Záleží v čem se to má napsat (C#/Java je to pár řádků, v Pascalu malinko práce navíc)...

Offline

 

#5 28. 01. 2011 08:21 — Editoval jindra (28. 01. 2011 08:21)

jindra
Příspěvky: 78
Reputace:   
 

Re: Program na určení délky vět

Souhlasím s řešením od ↑↑ Jookyn:.

K zadání: Aby ti mohl někdo pomoci více než jen s algoritmem, je potřeba uvést více informací: jazyk, formát jak jsou uložené v txt (co řádek věta nebo konec tečkou..otazníkem?? atd.) A délkou věty myslíš počet slov nebo počet znaků? Počítají se do délky i bílé znaky?

Offline

 

#6 28. 01. 2011 16:28

qwertprd
Zelenáč
Příspěvky: 2
Reputace:   
 

Re: Program na určení délky vět

Díky za reakce k mému problému. Abych to upřesnil. Mým úkolem je to naprogramovat v Pascalu, věty jednoduché, žádná souvětí a jsou zakončeny tečkou. Délka věty je počet znaků, takže i mezery. ↑ qwertprd:

Offline

 

#7 28. 01. 2011 16:38

pizet
Místo: Levice/Praha
Příspěvky: 459
Reputace:   11 
 

Re: Program na určení délky vět

↑ qwertprd: Proste to načítaj do stringu a udržuj si ich dĺžku. Nič ťažké. Skonči, keď príde bodka a choď na ďalšiu.


Do you follow my way? Or you just see a black stain swimming in the Milky Way ...
KSP je určený pre študentov základných a stredných škôl, ktorí majú záujem naučiť sa niečo z oblasti algoritmov, logických úloh, programovania a informatiky.

Offline

 

#8 28. 01. 2011 18:58 — Editoval jindra (28. 01. 2011 19:13)

jindra
Příspěvky: 78
Reputace:   
 

Re: Program na určení délky vět

V tom případě já bych to řešil takto:

Code:

program packalScitaPismenka;

var vstup:string;
var iterator,max,min,cur:integer;

begin
vstup:='Ahoj ja jsem nejdelsi veta a pocitame se vcetne tecky na konci. A ja nejkratsi.';
cur:=0;
max:=0;
min:=length(vstup);
iterator:=1;

while(iterator <= length(vstup))
do
  begin
        cur:=cur+1;
        if '.' = vstup[iterator]
                then
                begin
                  if(cur>max)
                     then max:=cur;

                  if(max>cur)
                     then min:=cur;

                  cur:=0;
                end;
        iterator:=iterator+1;
  end;

writeln('max: ',max);
writeln('min: ',min);
readln;
end.

Je tam akorát potřeba dopsat načtení ze souboru.

-edit: a pokud chceš vypsat i která to je, tak tam prostě jen přidáš dvě proměnné a upravíš IF(y)

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson