Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Utovar tereta

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Utovar tereta

[ Pregleda: 3431 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

marko921

Član broj: 169290
Poruke: 1
*.tectra.ma.



Profil

icon [Zadatak] Utovar tereta14.01.2008. u 11:13 - pre 197 meseci
Pre svega pozdrav za sve ljude dobre volje,ucim neko vreme c++ i sad sam krenuo da resavam neke zadatke i zapeo,problem je valda trivijalan za iskusnije programere ali ja jednostavno ne mogu da shvatim algoritam..da ne kopiram ceo zadatk,ovde se moze naci http://www.bhoi.net/zadaci/utovar.htm kao i resenje ovde http://www.bhoi.net/zadaci/utovar.cpp.txt radi citljivijeg koda resenje sam ovako postavio

Code:

#include <fstream.h>

   int main(void) {
  int I,J,N,M,Z,
  Vel[1000],Cijena[1000],Zarada[1000];
  ifstream Ulaz("UTOVAR.IN"); ofstream Izlaz("UTOVAR.OUT");
  Ulaz>>M>>N;
  for(J=1;J<=N;J++){ 
    Ulaz>>Vel[J];
   }
   for(J=1;J<=N;J++) 
   {
    Ulaz>>Cijena[J];
   }
  for(I=0;I<=M;I++) 
  {
    Zarada[I]=0;
  }
  for(J=1;J<=N;J++)
    for(I=Vel[J];I<=M;I++) {
      Z=Zarada[I-Vel[J]]+Cijena[J];
      if(Zarada[I]<Z) Zarada[I]=Z;
    }
  Izlaz<<Zarada[M];
  return 0;
}


Ono sto ja razumem je sledece, unose se vrednosti u promenljive i nizove,i onda ovaj deo koda nikako ne razumem
Code:

 for(J=1;J<=N;J++)
    for(I=Vel[J];I<=M;I++) {
      Z=Zarada[I-Vel[J]]+Cijena[J];
      if(Zarada[I]<Z) Zarada[I]=Z;
    }


Zamolio bih nekog da mi objasni taj algoritam koji izvrsava gore navedeni kod,i da li imate neku preporuku o knjizi za algoritme posle koje cu moci da savladam ovakve stvari bez vase pomoci?
 
Odgovor na temu

laki_srt
laki_srt
ucenik

Član broj: 166987
Poruke: 183
*.tippnet.co.yu.



Profil

icon Re: [Zadatak] Utovar tereta15.01.2008. u 21:23 - pre 197 meseci
Ne znam bas dobro objasnjavati,tako da bolje sacekaj da ti neko drugi objasni jer ja cu te samo zbuniti. A sto se tice zadataka nemoj odmah poceti sa tezim zadatcima pocni sa zadatcima tipa nadji maximum,minimum,neke matematicke funkcije,cak ti i savetujem da iste te programe odradis vise puta,da ispitujes kad nesto izostavis sta se desava,da vidis kako mozes najelegantnije da uradis isti taj program,eksperimentisi......
 
Odgovor na temu

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 402



Profil

icon Re: [Zadatak] Utovar tereta16.01.2008. u 13:24 - pre 197 meseci
Ako ti nije jasan zadatk - probaj da ga procitas ponovo (meni se ne cita),
a ako ti deo koda izgleda komplikovano, evo ovako je malo jasniji (cini mi se):
Code:

for(J=1;J<=N;J++){
    int Tmp1 = Vel[J];        // Odavde (od Tmp1) polazi brojac 'I' u sledecoj petlji
    for(I=Tmp1; I<=M; I++) {
        int Tmp2 = I - Tmp1;  // Index clana niza u sledecem redu ...
        Z = Zarada[Tmp2] + Cijena[J];  // Izracunam neko 'Z', pa u zavisnoti od njega ....
        if (Zarada[I]<Z) {
            Zarada[I] = Z;
        }
        else {
            // Zarada[I] = ono sto je i pre bila ... ;
        }
    }
}

pozdrav idb
 
Odgovor na temu

dr_z
Novi Sad

Član broj: 76008
Poruke: 6
*.ns.ac.yu.



Profil

icon Re: [Zadatak] Utovar tereta31.01.2008. u 21:27 - pre 197 meseci
Zadatak je trivijalan primer klase problema koji se rjesavaju dinamickim programiranjem.
O tome mozes da nadjes dosta tutoriala na netu...
Sto se tice knjiga, ima ih dosta, jedna od boljih je "Introduction to algorithms" T.H. Cormen,
pokusaj je naci.
Inace, sve sto u nazivu ima "algorithms" je manje-vise korisno...
"I don't believe it. Prove it to me and I still won't believe it."
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Utovar tereta

[ Pregleda: 3431 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.