caute ludia prosim vas potrebujem spravit v pascale program co znie takto:
Zostavte program, ktorý zistí počet slov vo vete a zoradí slová podľa počtu znakov vzostupne.
Prosim kto sa toho ujme a pomoze mi? Staci mi iba kod a popis k tomu ze co to robi. Dakujem velmi pekne za ochotu dufam ze sa niekto najde
program v pascale
Hmm... to by nemusel byt problem... som v programovani sice iba zaciatocnik ale akurat preberame retazce a mam spravený program ktorý rozseká vetu na slová. Problem je v tom že aby to fungovalo musis vediet kolko slov ma daná veta. Je to lamactvo ale zatial to vyzera takto:
Keby že vies kolko slov bude mat veta ktorej slová chces zoradit tak nie je problem upravit program tak aby to spravil... Toto co som sem postol iba rozseka vetu co ma 3 slova a slova vypise pod seba (nijako ich nezoraduje).
Kód: Vybrať všetko
program veta_slova;
uses crt;
var slovo1,slovo2,slovo3,veta,medzera:string;
pozicia,i,j,k,dlzka:integer;
begin
clrscr;
medzera:=' ';
dlzka:=0;
readln(veta);
for i:=1 to length(veta) do
if veta[i]=' ' then inc(dlzka);
begin
pozicia:=pos(medzera,veta);
for k:=1 to pozicia-1 do
slovo1:=slovo1+veta[k];
writeln(slovo1);
delete(veta,1,pozicia);
pozicia:=pos(medzera,veta);
for k:=1 to pozicia-1 do
slovo2:=slovo2+veta[k];
writeln(slovo2);
delete(veta,1,pozicia);
slovo3:=veta;
writeln(slovo3);
readln;
end;
end.-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
už som to kedysi dávno niekomu písal. Možno to je ešte na fore. Robil som to tak, že som prechádzal vetou a hladal častí kde je medzera nasledovaná písmenom (lebo môže byť viac medzier zasebou, či už na začiatku, v strede alebo na konci). To je začiatok slova, tak až po ďalšiu medzeru som si ho zapamätal. Pokračoval som ďalej od tej medzery a zase som hladal postupnosť mezdery a znaku. Ak sa už takáto postupnosť nenašla, mal som separované všetky slová. Bolo to cez dynamické pole, tak ich počet je high(slova) a ich zoradenie je jednoduché, iba zoradíš podľa length(slova)