Započni novu temu Odgovori na temu  [ 51 Posta ]  Idi na stranicu 1, 2, 3  Sledeća
Autoru Poruka
 Tema posta:
PostPoslato: 04.11.2002. 23:58:45 

Pridružio se: 03.01.2002. 02:15:30
Postovi: 744
Lokacija: BG
Godina: Dipl.
Smer: IS
Zadatak glasi ovako:
Napisati proceduru koja mala slova niske X zamenjuje velikim. Ostali znakovi u nisci ostaju nepromenjeni.

Zaboravio sam kako se ovo radi ???

_________________
There must be some kind of way out of here
Said the joker to the thief
Theres too much confusion
I cant get no relief


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 05.11.2002. 04:53:39 

Pridružio se: 03.01.2002. 02:15:30
Postovi: 744
Lokacija: BG
Godina: Dipl.
Smer: IS
A evo i resenja

procedure promeni (var x:string);
var i:integer;
begin
for i:=1 to lenght (x) do
x[i]:=upcase (x[i]);
end;

Nego... kako biste uradili ovaj:
Napisati proceduru koja sortirane nizove x i y spaja u sortirani niz z.

_________________
There must be some kind of way out of here
Said the joker to the thief
Theres too much confusion
I cant get no relief


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 05.11.2002. 09:21:27 
Site Admin
Korisnikov avatar

Pridružio se: 20.10.2001. 23:51:26
Postovi: 2866
Lokacija: Beograd
Godina: Dipl.
Smer: IS
Nisi dovoljno detaljno postavio zadatak.
Da li nizovi x i y imaju isti broj clanova?

Mislim da bi najlakse bilo da se uradi sa dve petlje, u prvoj da se napravi i napuni niz z, a u drugoj da se sortira.
Kod:
Procedure nizovi (x,y :array [1..10] of integer;var z:array[1..10] of integer; bX,bY: integer; var bZ:integer);

Var i,j,pom : integer;

Begin
   For i := 1 to bX do
            z[i]:=x[i];
   For i:=bX to bX+bY do
            z[i]:=y[i];
   bZ:=bX+bY;
   
  For i:= 1 to bZ-1 do
        For j:= i to bZ do
              if z[j]>z[i] then
                   begin
                       pom:=z[j];
                       z[j]:=z[i];
                       z[i]:= pom;
                   end;
End;   


Mozda jeste malo glomaznije, ali je najlakse resenje :)

_________________
------------------
GNU/Linux
Get counted! http://counter.li.org/


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 05.11.2002. 11:49:11 

Pridružio se: 03.01.2002. 02:15:30
Postovi: 744
Lokacija: BG
Godina: Dipl.
Smer: IS
Mislim da ti se potkrala greska. Elemente niza Y bi trebalo ubaciti ovako
Kod:
for i:=bX+1 to bX+bY do
 z[i]:=Y[i-bX];


Jer su clanovi niza Y takodje indeksirani od 1 pa do bY.

U svakom slucaju ideja je dobra, treba se snaci :)
Ali mene i dalje kopka da li bi nekako mogli da iskoristimo to sto su nizovi X i Y vec sortirani.

_________________
There must be some kind of way out of here
Said the joker to the thief
Theres too much confusion
I cant get no relief


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 05.11.2002. 15:19:34 
Moderator
Korisnikov avatar

Pridružio se: 02.07.2002. 12:41:08
Postovi: 1490
Lokacija: office
Godina: Dipl.
Smer: IS
A ovako:

Kod:

i:=1; r:=1; j:=1;
while (j<=nb) do
        begin
          while (i<=na) and (a[i]<=b[j]) do
              begin
                if a[i]=b[j] then
                j:=j+1
                c[r]:=a[i];
                i:=i+1;
                r:=r+1;
              end;

          c[r]:=b[j];
          r:=r+1;
          j:=j+1;
        end;



Nisam pisala celu funkciju, ali se podrazumeva da saljes sortirane nizove a i b

_________________

Can't help....help....help
Loving that man....man....man
Man of mine....mine....mine
I just can't help

I Can't Help Loving That Man
bjork


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 05.11.2002. 17:49:35 
Korisnikov avatar

Pridružio se: 25.10.2001. 12:12:48
Postovi: 380
Lokacija: Beograd
Godina: Dipl.
Smer: IS
zAkiLi je napisao:
Kod:
  For i:= 1 to bZ-1 do
        For j:= i to bZ do
              if z[j]>z[i] then
                   begin
                       pom:=z[j];
                       z[j]:=z[i];
                       z[i]:= pom;
                   end;

Ispravka (druga linija):
Kod:
for j:=i+1 to bZ do

_________________
Zoran Marokanac: "Postojao je samo jedan Ljuba Zemunac. Svi drugi su obični krompiri."


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 05.11.2002. 18:12:26 

Pridružio se: 17.01.2002. 01:08:22
Postovi: 261
Lokacija: /home/kruzer/
bl


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 05.11.2002. 18:19:01 

Pridružio se: 17.01.2002. 01:08:22
Postovi: 261
Lokacija: /home/kruzer/
kruzer je napisao:
aleksaX je napisao:
Nisam pisala celu funkciju, ali se podrazumeva da saljes sortirane nizove a i b


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 05.11.2002. 19:35:04 

Pridružio se: 17.01.2002. 01:08:22
Postovi: 261
Lokacija: /home/kruzer/
E nemam na kompu pascal, a po


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 05.11.2002. 20:29:20 
Moderator
Korisnikov avatar

Pridružio se: 13.11.2001. 08:45:08
Postovi: 4717
Lokacija: Novi Bgd.
Godina: Dipl.
Smer: IS
kruzer je napisao:
if (((x<an) & (a[x]<b[y])) | (y+1>bn)) c[z]=a[x++];

Da li si siguran da si upotrebio prave logi

_________________
Oni hipotetički kostrukti o kojima se može govoriti kao o konzistentnim i relativno trajnim dinamičkim sistemima koji objašnjavaju veći deo procesa motivacije, obuhvatajući i ciljeve i motive kroz njihove međusobne relacije, čime se mogu uslovno..


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 05.11.2002. 20:31:06 
Moderator
Korisnikov avatar

Pridružio se: 13.11.2001. 08:45:08
Postovi: 4717
Lokacija: Novi Bgd.
Godina: Dipl.
Smer: IS
Evo re


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 05.11.2002. 20:44:25 
Korisnikov avatar

Pridružio se: 25.10.2001. 12:12:48
Postovi: 380
Lokacija: Beograd
Godina: Dipl.
Smer: IS
Sto se tice resenja AleksaX ono ne radi ... izbacuje duplirane elemente iz konacnog niza c.

Evo poredjenja mog resenja sa resenjem zakilija, obzirom da svi znamo da bi kod u c++ radio sigurno brze nego pascal-ov, pa ga zato nisam ni testirao.

zAkiLi je napisao:
Nisi dovoljno detaljno postavio zadatak.
Da li nizovi x i y imaju isti broj clanova?

Mislim da bi najlakse bilo da se uradi sa dve petlje, u prvoj da se napravi i napuni niz z, a u drugoj da se sortira.
Kod:
Procedure nizovi (x,y :array [1..10] of integer;var z:array[1..10] of integer; bX,bY: integer; var bZ:integer);

Var i,j,pom : integer;

Begin
   For i := 1 to bX do
            z[i]:=x[i];
   For i:=bX to bX+bY do
            z[i]:=y[i];
   bZ:=bX+bY;
   
  For i:= 1 to bZ-1 do
        For j:= i to bZ do
              if z[j]>z[i] then
                   begin
                       pom:=z[j];
                       z[j]:=z[i];
                       z[i]:= pom;
                   end;
End;   


Mozda jeste malo glomaznije, ali je najlakse resenje :)

Sto se tice zakilijevog resenja, ono jeste, mozda, najlakse, ALI evo brzeg:

Kod:
begin
  ka := 1; kb := 1; kc := 1;
  ia := true;
  while kc < 6 do
  begin
    if (kb = 3) then ia := true;
    if (ka = 3) then ia := false;
    if (ia) then
    begin
      if (kb = 3) then begin c[kc] := a[ka]; inc(kc); inc(ka); end;
      if (a[ka] <= b[kb]) then begin c[kc] := a[ka]; inc(kc); inc(ka); end else ia := false;
    end else
    begin
      if (ka = 3) then begin c[kc] := b[kb]; inc(kc); inc(kb); end;
      if (b[kb] <= a[ka]) then begin c[kc] := b[kb]; inc(kc); inc(kb); end else ia := true;
    end;
  end;
end;


a,b,c nizovi (1-based) gde je c niz koji treba da se sacini spajanjem sortiranih a i b. Pretpostavio sam da su nizovi a i b sa 3 elementa (c ce imati 6).

Kako sam merio ovo i zakilijevo resenje? Stavio sam u for petlju (od 1000000 iteracija) oba resenja. Sa funkcijom(koja vraca trenutno vreme u Msec):
Kod:
TimeStampToMsecs(DateTimeToTimeStamp(Now));

sam uzeo vremena neposredno pre i posle izvrsenja ciklusa, oduzeo ih i dobio da se moje resenje izvrsava za ~109Msec a zakilijevo za ~178Msec, sto ce reci da je moje bre za ~39,1%. Napominjem da sam oba resenja pokrenuo pod identicnim memorijskim i procesorskim uslovima, a sve to u Delphi 5. Ako treba detaljniji komentar na kod, tu sam ... mada se prolaskom kroz resenje moze videti sta ono radi.

.to kruzer: Pa nije bitno koliko ima linija tvoj kod (dobro, u razumnim granicama) vec brzina izvrsavanja, evo zakili ima duplo manje linija od mene (ako expand-ujes moje begin i end) ali je moj kod, dokazano, brzi. :D

P.S. Interesantno je to da kada se, recimo moje, resenje smesti u funkciju i poziva tako za izvrsavanje gore napomenute for petlje trebace ~247Msec sto je vise nego duplo u odnosu kada se kod direktno izvrsava.

_________________
Zoran Marokanac: "Postojao je samo jedan Ljuba Zemunac. Svi drugi su obični krompiri."


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 05.11.2002. 23:44:23 
Moderator
Korisnikov avatar

Pridružio se: 02.07.2002. 12:41:08
Postovi: 1490
Lokacija: office
Godina: Dipl.
Smer: IS
Huh, kod mene je radilo... :o...mislim nije mi dupliralo elemente...

_________________

Can't help....help....help
Loving that man....man....man
Man of mine....mine....mine
I just can't help

I Can't Help Loving That Man
bjork


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 06.11.2002. 01:04:43 

Pridružio se: 17.01.2002. 01:08:22
Postovi: 261
Lokacija: /home/kruzer/
BugiVugi je napisao:
a.to kruzer: Pa nije bitno koliko ima linija tvoj kod (dobro, u razumnim granicama) vec brzina izvrsavanja, evo zakili ima duplo manje linija od mene (ako expand-ujes moje begin i end) ali je moj kod, dokazano, brzi. :D

ma


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 06.11.2002. 01:06:29 

Pridružio se: 17.01.2002. 01:08:22
Postovi: 261
Lokacija: /home/kruzer/
zlatko je napisao:
Da li si siguran da si upotrebio prave logi


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 06.11.2002. 07:57:23 
Moderator
Korisnikov avatar

Pridružio se: 13.11.2001. 08:45:08
Postovi: 4717
Lokacija: Novi Bgd.
Godina: Dipl.
Smer: IS
kruzer je napisao:
// Copyright by Kruzer 2002
void sort(int a[], int b[], int *c, int an, int bn) {
int x=0, y=0, z;
for (z=0; z<(bn+an); z++)
if (((x<an) & (a[x]<b[y])) | (y+1>bn)) c[z]=a[x++];
else c[z]=b[y++];
}

Ko razume - shvati

_________________
Oni hipotetički kostrukti o kojima se može govoriti kao o konzistentnim i relativno trajnim dinamičkim sistemima koji objašnjavaju veći deo procesa motivacije, obuhvatajući i ciljeve i motive kroz njihove međusobne relacije, čime se mogu uslovno..


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 06.11.2002. 09:13:20 
Moderator
Korisnikov avatar

Pridružio se: 02.07.2002. 12:41:08
Postovi: 1490
Lokacija: office
Godina: Dipl.
Smer: IS
Ajde sada probajte pa mi recite jer proradio moj programcic :)

Kod:

i:=1; r:=1; j:=1;
while (j<=nb) do
   begin
     while (i<=na) and (a[i]<=b[j]) do
        begin
         if a[i]=b[j] then
           begin
      c[r]:=b[j];
      j:=j+1;
      r:=r+1;
      i:=i+1;
            end
         else
       begin
      c[r]:=a[i];
      i:=i+1;
      r:=r+1;
      end;
       end;

     c[r]:=b[j];
     r:=r+1;
     j:=j+1;

     if j>nb then
     c[r]:=a[i];
     end;


Uf, od kada ovo nisam radila!

_________________

Can't help....help....help
Loving that man....man....man
Man of mine....mine....mine
I just can't help

I Can't Help Loving That Man
bjork


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 06.11.2002. 10:05:31 
Moderator
Korisnikov avatar

Pridružio se: 13.11.2001. 08:45:08
Postovi: 4717
Lokacija: Novi Bgd.
Godina: Dipl.
Smer: IS
Bugi tvoj kod delimi

_________________
Oni hipotetički kostrukti o kojima se može govoriti kao o konzistentnim i relativno trajnim dinamičkim sistemima koji objašnjavaju veći deo procesa motivacije, obuhvatajući i ciljeve i motive kroz njihove međusobne relacije, čime se mogu uslovno..


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 06.11.2002. 10:44:09 
Site Admin
Korisnikov avatar

Pridružio se: 20.10.2001. 23:51:26
Postovi: 2866
Lokacija: Beograd
Godina: Dipl.
Smer: IS
I? Zar posle svega niste videli da je najlakse prvo spojiti nizove, a zatim sortirati novodobijeni :)
Sorry zbog greske, kucao sam "iz glave"....

_________________
------------------
GNU/Linux
Get counted! http://counter.li.org/


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 06.11.2002. 15:34:03 

Pridružio se: 17.01.2002. 01:08:22
Postovi: 261
Lokacija: /home/kruzer/
zlatko je napisao:
E sad da


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 06.11.2002. 17:25:33 

Pridružio se: 17.01.2002. 01:08:22
Postovi: 261
Lokacija: /home/kruzer/
zlatko je napisao:
Ovo je najefikasnije i najkra


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 06.11.2002. 17:41:23 
Korisnikov avatar

Pridružio se: 25.10.2001. 12:12:48
Postovi: 380
Lokacija: Beograd
Godina: Dipl.
Smer: IS
zlatko je napisao:
Bugi tvoj kod delimi

_________________
Zoran Marokanac: "Postojao je samo jedan Ljuba Zemunac. Svi drugi su obični krompiri."


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 07.11.2002. 09:44:39 
Moderator
Korisnikov avatar

Pridružio se: 13.11.2001. 08:45:08
Postovi: 4717
Lokacija: Novi Bgd.
Godina: Dipl.
Smer: IS
Kona


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 07.11.2002. 15:39:50 
Moderator
Korisnikov avatar

Pridružio se: 13.11.2001. 08:45:08
Postovi: 4717
Lokacija: Novi Bgd.
Godina: Dipl.
Smer: IS
kruzer je napisao:
Aj ti umesto


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
 Tema posta:
PostPoslato: 07.11.2002. 15:42:18 
Moderator
Korisnikov avatar

Pridružio se: 13.11.2001. 08:45:08
Postovi: 4717
Lokacija: Novi Bgd.
Godina: Dipl.
Smer: IS
BugiVugi je napisao:
Da li je moguce? Jesi li proverio kroz pascal? Evo upravo sam pustio kroz Delphi date nizove i vratio je u prvom slucaju c=6,7,8,9,10,11 i u drugom c=7,7,8,9,10,10 ... dakle, radi. Proveri ti to opet ... nemoguce da ne radi.

Probao sam na TP7 i jopet isto. A mo

_________________
Oni hipotetički kostrukti o kojima se može govoriti kao o konzistentnim i relativno trajnim dinamičkim sistemima koji objašnjavaju veći deo procesa motivacije, obuhvatajući i ciljeve i motive kroz njihove međusobne relacije, čime se mogu uslovno..


Share on FacebookShare on TwitterShare on Google+
Vrh
 Profil  
Odgovori sa citatom  
Prikaži postove u poslednjih:  Poređaj po  
Započni novu temu Odgovori na temu  [ 51 Posta ]  Idi na stranicu 1, 2, 3  Sledeća


Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 29 gostiju


Ne možete postavljati nove teme u ovom forumu
Ne možete odgovarati na teme u ovom forumu
Ne možete monjati vaše postove u ovom forumu
Ne možete brisati vaše postove u ovom forumu
Ne možete slati prikačene fajlove u ovom forumu

Pronađi:
Idi na:  
Copyleft FONForum 2001-2014 | Powered by phpBB © phpBB Group