Procedura HELP

1

Procedura HELP

offline
  • Pridružio: 19 Dec 2005
  • Poruke: 110
  • Gde živiš: S one strane Drine gde padaju mine!!!

Poceo sam da pisem proceduru za program ali nikako da uspem. Naime procedura treba da iz recenice S uklanja sve praznine poceo sam ali neide.
Pa bih zamolio neko da mi pomogne.

 uses wincrt; var s:string;     a,b,c,d:integer; procedure pra(s:string); var r,k:integer;     i:integer; begin      k:=1;      r:=length(s);      for i:=1 to r do          if i= then             begin               k:=k+1;             end;                    end;
Length odredjuje velicinu recenice,sad nekako treba da izbacim razmake u stringu kako bih mogao u da odredim velicinu recenice bez razmaka kako bih u glavnom programu uporedjivao recenice koja ima vise reci od koje.



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24130
  • Gde živiš: Wien

Da bi izbacio razmake mozes da se posluzis sledecim:
var   sIn: string;   sOut: string;   i: integer; begin   sOut := '';   for i := 1 to length(sIn) do     if sIn[i] <> #32 then sOut := sOut + sIn[i]; end;
sOut ce biti kopija sIn-a, ociscen od razmaka



offline
  • Đuro Glumac
  • dipl. ing. informatike
  • Pridružio: 08 Feb 2004
  • Poruke: 3640
  • Gde živiš: ApAtIn

Ovo sto si ti napisao ce samo da ti prebroji blank mesta, ali nece raditi bas ovako kako je napisano.
Moras da izdvojis char iz stringa, prvo prvi, pa drugi... i poredis za char=' ';
Iz stringa izdvajas sa copy naredbom.
Ovo ti je ono, cisto skolsko resenje.

Ovo sto ti je bobby napisao takodje radi i mnogo je elegantnije resenje, ali malo njih zna za ove naredbe.

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24130
  • Gde živiš: Wien

@Licanin

Sada sam ponovo procitao tvoj post. Zasto bi uopste izbacivao razmake ako treba da izbrojis koliko reci ima recenica?

offline
  • Pridružio: 19 Dec 2005
  • Poruke: 110
  • Gde živiš: S one strane Drine gde padaju mine!!!

@bobby

Pa moram da izbacim razmake zato sto to trazi zadatak, ali moram da ih izbacim pomocu procedure ili funkcije.

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24130
  • Gde živiš: Wien

Daj mi ceo tekst zadatka, ovako ne mogu da te pratim.

offline
  • Strog  Male
  • Stručni saradnik
    Web programiranje
  • Bojan Kopanja
  • Web & Mobile developer @ ZeusSoftware
  • Pridružio: 26 Jul 2003
  • Poruke: 2596
  • Gde živiš: Stara Pazova

Probaj ovako:

procedure pra(var s:string; var k: Integer;); var i:integer;     Str: String; begin   Str:= s;   s:= '';   k:=1;   for i:=1 to length(Str) do     if Str[i]= ' ' then Inc(k)                      else s:= s + Str[i];         end;

Posle ovoga u promenljivoj k dobijas broj razmaka, a u promenljivoj s dobijas pocetnu recenicu, ali bez razmaka. Naravno tebi se u programu ne moraju tako zvati promenljive, ali to valjda i sam znas Wink.

Pozz!

offline
  • Pridružio: 19 Dec 2005
  • Poruke: 110
  • Gde živiš: S one strane Drine gde padaju mine!!!

@bobby

Zadatak glasi:

Napisati funkciju⁄proceduru koja iz rečenice S uklanja sve praznine. U glavnom programu korisnik unosi tri reda teksta (stringovi S1, S2, S3). Odrediti:
Koji red teksta sadrži najveći broj reči.

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Aman Strog, nemoj da se brukas. Bobby je lepo rekao. Ja bih napravio ovako.

function Pra(s:string):string; var   i:integer; begin  Result:=´';  for i:=1 to Length(s) do       if s[i[<>#32 then result:=result+s[i]; end;


E sada, za odredjivanja broja reci, je malo kompleksniji problem, koji, ja mislim, da ni profesor nije svestan.
Prebrojavanje praznina ne znaci da je i to broj reci.

Pravilno je napraviti delimiters

(nemam sad pascal pri ruci, pa me ne drzite za rec, tj sintaksu)
type
TDelimiters=set of (#32,#13,#10,',',';',':',#9); // i dodati jos delimitera

pa onda se proverava if (s[i] in TDelimiters) then...

offline
  • Strog  Male
  • Stručni saradnik
    Web programiranje
  • Bojan Kopanja
  • Web & Mobile developer @ ZeusSoftware
  • Pridružio: 26 Jul 2003
  • Poruke: 2596
  • Gde živiš: Stara Pazova

Pa ne znam sto se brukam? Namerno nisam pisao nista novo, nego sam samo coveku preradio ono sto je on zapoceo bez komplikovanja Smile... Nisam rekao da bih ja to tako resio, samo sam modifikovao njegovo resenje da radi!

BTW ovo su skolski zadaci ( ili fakultetski, nije bitno ) tako da je brojanje reci upravo prebrojavanje praznina, a jedino bi se moglo ubaciti da se gleda da li je i posle razmaka razmak, pa razmak, pa razmak itd. da ne bi svaki taj razmak brojao kao rec tako da nema potrebe komplikovati sa delimiterima Wink.

Ko je trenutno na forumu
 

Ukupno su 438 korisnika na forumu :: 4 registrovanih, 1 sakriven i 433 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: branko7, cikadeda, Filip.ue, Marko Marković