Slova ve vete – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Slova ve vete – Delphi – Fórum – Programujte.comSlova ve vete – Delphi – Fórum – Programujte.com

 

karl
~ Anonymní uživatel
13 příspěvků
28. 5. 2007   #1
-
0
-

Dobry den chtel jsem se zeptat mam priklad:Vytvorte program, ktery ze vstupniho souboru cte text slozeny z vet ukoncenych teckou. Slova ve vete jsou oddelena jednou nebo vice mezerami. Program vytiskne zadany text a pro kazdou vetu uvede pocet slov, z nichz se sklada.
Vytvoril jsem tohle ale nejak mi to blbne vsak zkuste nekdo kdo tomu rozumite si vytvorit txt s vetama.Ma to chyby ze musim na kazdy radek psat novou vetu jinak to bere jako jednu.Muzu dat maximalne tri vety pod sebe pak to dalsi nebere,nejak to blbne.Umel by to nekdo vyladit nebo rict kde je chyba?

program SlovaVeVete;


{$APPTYPE CONSOLE}

uses
SysUtils;

var
vety:array[1..100] of integer;
soubor:text;
zn:char;
ps,i:integer;
veslove:boolean;
begin
writeln('Tento program zjisti pocet slov ve vete');
writeln('***************************************');
writeln;
writeln('Text souboru: ');
writeln('**************');
writeln;
assign(soubor,'a.txt');
reset(soubor);
veslove:=false;
ps:=0;
i:=0;
while not eof(soubor) do begin {delej dokud neni konec souboru}
read(soubor,zn); {cti znak ze souboru}
write(zn); {tiskni znak na obrazovku}
if (zn=' ') or (zn=chr(13)) or (zn=chr(10)) or (zn='.') then veslove:=false
else if not veslove then begin {jestlize veslove=true sem uz nevlezem}
veslove:=true; {sem se dostanem jen pri prvnich pismenech }
Inc(ps); {pri prvnim pismenu po mezere zvetsi pocet slov}
end;
if(zn=Chr(13)) then begin {jestli je konec vety ...}
inc(i); {zvetsi ukazatel pole..}
vety[i]:=ps; {uloz do pole pro vetu[i] hodnotu ps}
ps:=0; {nulovani pro dalsi vetu}
veslove:=false; {nejsme ve slove}
end;
end;
writeln;
for i:=1 to i do begin
writeln('Ve vete cislo ',i,' je slov: ',vety[i],'.');
end;
writeln;
writeln;
writeln('Konec - Enter');
writeln('*************');
readln;readln;
end.

Nahlásit jako SPAM
IP: ...–
michal0
Newbie
28. 5. 2007   #2
-
0
-

program SlovaVeVete;


{$APPTYPE CONSOLE}

uses
SysUtils;

var
vety:array[1..100] of integer;
soubor:text;
zn:char;
ps,i:integer;
koniecvety:boolean;
begin
writeln('Tento program zjisti pocet slov ve vete');
writeln('***************************************');
writeln;
writeln('Text souboru: ');
writeln('**************');
writeln;
assign(soubor,'a.txt');
reset(soubor);
ps:=0;
i:=0;
while not eof(soubor) do begin {delej dokud neni konec souboru}
read(soubor,zn); {cti znak ze souboru}
write(zn); {tiskni znak na obrazovku}
if (zn=' ') or (zn='.') or (zn=chr(13)) or (zn='!') or (zn='?') then begin
inc(ps); {zvýšim počet slov}
if koniecvety then dec(ps); {ak bol koniec vety, tak medzeru medzi bodkou a novou vetou musim odratat}
if (zn='.') or (zn='!') or (zn='?') then koniecvety:=true else koniecvety:=false; {koniec vety: nasledujúca medzera nie je slovo}
end;
if (zn='.') or (zn='!') or (zn='?') then
begin {jestli je konec vety ...}
inc(i); {zvetsi ukazatel pole..}
vety[i]:=ps; {uloz do pole pro vetu[i] hodnotu ps}
ps:=0; {nulovani pro dalsi vetu}
end;
end;
writeln;
for i:=1 to i do begin
writeln('Ve vete cislo ',i,' je slov: ',vety[i],'.');
end;
writeln;
writeln;
writeln('Konec - Enter');
writeln('*************');
readln;readln;
end.


testovaný reťazec obsahoval:
- viac riadkov
- viac viet na jednom riadku
- vety s čiarkou
- vety ukončené bodkou/otáznikom/výkričníkom
- vety rozdelené do viacerých riadkov.

Jeho podoba je tu:

Dobry den, ako sa dnes mate? Ja sa mam vynikajuco.
Vonku prave prsi.
Vcera sme boli v kine. Davali super film!
Co si mal na veceru? Ja som este nejedol! Najem sa neskor.
S pozdravom audiotrack.
Zajtra mam skusku
z matematiky.

Nahlásit jako SPAM
IP: ...–
michal0
Newbie
28. 5. 2007   #3
-
0
-

ešte som zabudol spraviť to, čo som teraz zbadal v tvojom zadaní a síce, že veta môže mať viac medzier. Potom to budeš musieť ošetriť tak ako som to spravil s tou bodkou, že si bude pamätať medzeru (medzera:=true) a pri prečítaní iného znaku ako je medzera sa dá medzera:=false. Tým zabezpečíš že reťazec viacerých medzier sa zaráta iba ako jediná medzera. Ak s tým nebudeš vedieť hnúť, tak sa ozvi, ale myslím že to zmákneš ;)

Nahlásit jako SPAM
IP: ...–
rrvtkyqcao
~ Anonymní uživatel
1 příspěvek
2. 7. 2007   #4
-
0
-

Thanks for this site!
<a href=http://7ql57.bcvbcvxb.info>7ql57.bcvbcvxb.info</a>
<a href=http://mrz.bcvbcvxb.info>mrz.bcvbcvxb.info</a>
<a href=http://18xu0y.bcvbcvxb.info>18xu0y.bcvbcvxb.info</a>
<a href=http://fst2l.bcvbcvxb.info>fst2l.bcvbcvxb.info</a>
<a href=http://y37hg.bcvbcvxb.info>y37hg.bcvbcvxb.info</a>
<a href=http://gn2.bcvbcvxb.info>gn2.bcvbcvxb.info</a>
<a href=http://rvs.bcvbcvxb.info>rvs.bcvbcvxb.info</a>
<a href=http://zgttf.bcvbcvxb.info>zgttf.bcvbcvxb.info</a>
<a href=http://peebrs.bcvbcvxb.info>peebrs.bcvbcvxb.info</a>
<a href=http://aic.bcvbcvxb.info>aic.bcvbcvxb.info</a>

Nahlásit jako SPAM
IP: ...–
bnzuluossr
~ Anonymní uživatel
1 příspěvek
2. 7. 2007   #5
-
0
-

Thanks for this site!
<a href=http://zptsz4.jnbcvb.info>zptsz4.jnbcvb.info</a>
<a href=http://efpki8.wafsda.info>efpki8.wafsda.info</a>
<a href=http://skwx.jnbcvb.info>skwx.jnbcvb.info</a>
<a href=http://tet0xj.wafsda.info>tet0xj.wafsda.info</a>
<a href=http://xql.wafsda.info>xql.wafsda.info</a>
<a href=http://14rm.jnbcvb.info>14rm.jnbcvb.info</a>
<a href=http://s45onu.jnbcvb.info>s45onu.jnbcvb.info</a>
<a href=http://jokh.wafsda.info>jokh.wafsda.info</a>
<a href=http://kx6jmz.jnbcvb.info>kx6jmz.jnbcvb.info</a>
<a href=http://bh0m.jnbcvb.info>bh0m.jnbcvb.info</a>
<a href=http://gwd.wafsda.info>gwd.wafsda.info</a>
<a href=http://xczy89.jnbcvb.info>xczy89.jnbcvb.info</a>

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Podobná vlákna

Po 2 vete konec — založil Anonym

Nejkratší slovo ve větě. — založil JaNevimCoDelat

Výskyt znakov vo vete — založil Anonym

Počet písmen vo vete — založil kristián

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý