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. 04. 2010 16:33

kedrik
Příspěvky: 25
Reputace:   
 

Delphi rozdeleni vety

Dobry den

mam zadan priklad :Vytvorte  program, ktery  ze vstupniho  souboru cte  vetu ukoncenou teckou.
                              Slova ve vete jsou oddelena jednou nebo nekolika mezerami. Program vytiskne
                              zadanou vetu,  a dale vytiskne  slova po jednom  na radek usporadana  podle
                              delky. Slova se stejnou delkou se vytisknou v poradi podle abecedy.

Tohle mi rozdeli vetu na slova a sepise mi je pod sebe ale nemzu prijd na to jak udelat to aby se mi seradily podle velikosti
a uz vubec ne podle abecedy ... prosim o radu

var
  f:text;
  zm:integer;
  zn:char;
begin
  writeln('Program rozdeli vetu na slova a seradi je pod sebe');
  writeln('dle velikosti popripadne dle abecedy');
  assign(f,'text.txt');
  reset(f);
  writeln;writeln;
  writeln('Enter k pokracovani');
  writeln('*******************');
  readln;
  writeln;
  while not eof(f) do
    begin
    read(f,zn);
      if  (zn<>' ') and (zn<>'.') then
        begin
        write(zn);
        zm:=0;
        end
          else begin
              if zm=0 then
              writeln;
              zm:=zm+1;
          end;
    end;
  writeln;writeln;
  closefile(f);
  writeln;writeln;
  writeln('ENTER = KONEC');
  readln;
end.


predem diky za odpoved :-)

Offline

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

#2 27. 04. 2010 16:54

kedrik
Příspěvky: 25
Reputace:   
 

Re: Delphi rozdeleni vety

i napad beru s otevrenou naruci .... :-)

Offline

 

#3 27. 04. 2010 17:19 — Editoval RePRO (27. 04. 2010 17:34)

RePRO
Místo: Jihlava
Příspěvky: 363
Škola: AI VŠPJ (09-12, Bc.)
Pozice: programátor
Reputace:   11 
Web
 

Re: Delphi rozdeleni vety

↑ kedrik: Ahoj,

1. Prosím, dej ten kód do elementu CODE

2. Podle délky: Měl bych nějaké pomocné pole, kam bych to pořád přepisoval to porovnání, dokud by to nebylo EOF ve vstupním souboru. Stačí si vždycky zjistit délku slova a délku slova následujícího. Porovnáš a popřípadě prohodíš. No, prostě klasickej Bubble sort. Možná to není optimální, ale já bych to tak asi řešil...

3. Podle abecedy: No a tady bych asi využil nějakou funkci pro porovnání řetězců. Takže opět načteš první a následující slovo, hodíš to do porovnávací funkce, nevím možná strcmp a popřípadě prohodíš a pokračuješ dál.

Aha, takže jsem zjistil, že jsem Ti odpovídal tak trochu (víc) na něco jiného.

Ale návod tu je, ale upřesním. Ty stejně dlouhá slova bych si načetl do pomocného pole, včetně White space, aby jsi je pak mohl rozeznat. No a potom použiješ to pomocné pole + Bubble sort. Načteš první slovo a následující, hodíš je do funkce strcmp a popřípadě prohodíš a pokračuješ dál. Jo, ta funkce strcmp nepůjde, nejsme v C! Aha, takže zkus něco jako string compare Delphi zadat do Google.

Jinak, tyto algoritmy jsem nikdy nezkoušel a ani nevím, jak moc jsou složité. Stoprocentně existují jednodušší algoritmy na vyřešení Tvé úlohy.


Srdcem trochu-programátor, duší rádoby-matematik a povoláním analytik-vývojář.

Offline

 

#4 27. 04. 2010 19:22

kedrik
Příspěvky: 25
Reputace:   
 

Re: Delphi rozdeleni vety

jo vyskousim to ale kazdopadne dekuju za tuhle, pro me vycerpavajicui, odpoved :-)
jeste jednou diky :-)

Offline

 

#5 27. 04. 2010 19:23

kedrik
Příspěvky: 25
Reputace:   
 

Re: Delphi rozdeleni vety

jedine co jsem nepochopil je elementu CODE ale snad to neva :-)

Offline

 

#6 27. 04. 2010 19:41 — Editoval septolet (27. 04. 2010 19:42)

septolet
Příspěvky: 334
Reputace:   
 

Re: Delphi rozdeleni vety

↑ kedrik: RePRO to s tím CODE myslel tak, že kód, který vkládáš sem na fórum máš uzavřít mezi [CODE a [/CODE (na konci je samozřejmě ukončovací hranatá závorka). Nemusíš tam tyhle značky psát ručně, stačí daný kód označit a dole (pod oknem kam píšeš) kliknout na tlačítko CODE.

↑ RePRO: To chceš v tom pomocném poli přehazovat celá slova? To je trochu šílenost. Bohatě stačí pracovat s indexy toho pomocného pole, čili řadit pouze čísla.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson