Problema Rucsacului3
Upcoming SlideShare
Loading in...5
×
 

Problema Rucsacului3

on

  • 2,105 views

 

Statistics

Views

Total Views
2,105
Views on SlideShare
2,097
Embed Views
8

Actions

Likes
1
Downloads
19
Comments
0

2 Embeds 8

http://www.slideshare.net 6
http://reusraluca.wikispaces.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Problema Rucsacului3 Problema Rucsacului3 Presentation Transcript

  • Problema Rucsacului Elev ă :Reus Raluca
    • Se da un rucsac de capacitate,
    • volum si un numar de n obiecte specificandu-se volumul obiectelor.Se cere un program care sa determine varianta de introducere a obiectelor in rucsac astfel incat sa incapa cat mai multe obiecte.
  • Exemplu N=5; Volum=10kg; 2 3 4 5 7 5 1 2 2 1 3 5 5 3 4 3 4 Greutate Nr. obiect View slide
  • Ob 1 Ob 2 Ob 3 Ob 4 Ob 5 Volumul disponibil al rucsacului este: 10 kg 8 kg 5 kg 1 kg Greutatea obiectului este prea mare View slide
  • Algoritmul de rezolvare:
    • Pas1:Citirea volumelor fiecarui obiect şi a volumului rucsacului.
    • Pas2:Iniţializăm obiectele.
    • Pas3:Se ordonează obiectele crescator in functie de volumul lor.
    • Pas4:Se inţializează volumul disponibil cu volumul obiectului.
    • Pas5:Se verifica dacă fiecare obiect incape in rucsac astfel:
      • Daca volumul obiectului e mai mic sau egal decat volumul disponibil a rucsacului atunci acesta incape in rucsac si din volumul disponibil a rucsacului scădem volumul obiectului.
    • Pas 6 :Dacă a rămas o zonă din rucsac neocupată atunci afişăm volumul rămas neocupat, în caz contrar înseamnă că nu am putut introduce nici un obiect în rucsac
  • Implementare
    • max_ob –nr maxim de obicte care pot fi puse in rucsac
    • n-nr de obiecte.
    • v_dis-volumul disponibil din rucsac.
    • o-obiectele.
    • Greutate-greutatea fiecarui obiect.
  • Algoritm
    • Program rucsac :
    • Const max_ob =100;
    • Type vector=array [1..100] of integer ;
    • Var volum,n,i:integer;
    • greuate :array[1..max_ob] of integer;
    • Procedure citeste:
    • Begin
    • Repeat (‘volumul rucsacului’);
    • readln(volum);
    • Until volum>0;
    • Repeat
    • write(‘nr.obiectelor’);readln(n);
    • Until (n>0) and (n<=max_ob);
    • For i:=1 to n do
    • Repeat
    • write(‘greutate[‘,I,’]=‘);
    • readln(greutate);
    • Until greutate[i]>0;
    • writeln;
    • End;
    • Procedure rezolva;
    • Var a:array[1..ob_max] of integer;
    • V_dis,aux,i:integer;
    • Ok:boolean;
    • Begin
    • For i:1 to n do o[i]:=i;
    • t:=1;
    • Repeat
    • ok:=true;
    • For i:=1 to n-t do
    • If greutate[o[i]]>greutate[o[i]] then
    • begin
    • aux:=o[i];
    • o[i]:=o[i+1];
    • o[i+1]:=aux;
    • ok:=false;
    • end;
    • t:=t+1;
    • Until ok;
    • Write(‘continutul posibil a rucsacului este’);
    • v_dis:=volum;
    • For i:=1 to n do
    • if greutate [o[i]]<=v_dis then begin
    • v_dis:=v_dis-greutate[o[i]];
    • writeln(‘obictul’,o[i],’de volum’,greutate[o[i]]);
    • end;
    • If v_dis<volum then
    • Writeln(‘volum ramas neocupat=‘,v_dis)
    • else
    • Writeln(‘nu incape nici un obiect in rucsac’);
    • Writeln;
    • End;
    • Begin
    • Citeste;
    • Rezolva;
    • Readln;
    • End.