الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج في البرمجة الديناماكية

بدأه kisokiso في 6 يناير 2012 · 3 رد · 730 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اريد تحول برنامج من البسكال الى الدلفي

هذا الكود

program ex02;
{************************ fonction de max de 2 nombre *********************}
function max(a,b:integer):integer;
begin
  if(a>b)then
    max:=a
  else
    max:=b;
end;
{------------------------------------------------------------------}


{*********************** fonction de min de 2 nombre *************************}
function min(a,b:integer):integer;
begin
  if(a<b)then
    min:=a
  else
    min:=b;
end;
{------------------------------------------------------------------}


{****************** fonction de calcule le prix *******************}
function prix(x:integer):integer;
begin
  case x of
    0:prix:=0;
    1:prix:=50;
    2:prix:=80;
    3:prix:=100;
    4:prix:=110;
    5:prix:=120;
  end;
end;
{-----------------------------------------------------------------}
var
soulution:array[1..5,1..100]of integer;
tab1,tab2:array[1..5]of integer;
d:array[1..100]of integer;
n,i,x,alpha,z,a,k,j,maxx,maxz:integer;
begin
  write('entr‚ le nombre de jour');
  readln(n);
  for i:=1 to n do
  begin
    write('entr‚ la demande de jour',i);
    readln(d);
  end;
  d[n+1]:=0;
  alpha:=0;
  while(alpha<=min(5-d[1],d[2]))do
  begin
    writeln(alpha);
    x:=alpha+d[1];
    soulution[alpha+1,1]:=x;
    z:=80*(d[1])-prix(x);
    soulution[alpha+1,2]:=z;
    alpha:=alpha+1;
  end;
  for i:=2 to n do
  begin
    alpha:=0;
    while(alpha<=min(5-d,d[i+1]))do
    begin
      a:=0;
      k:=1;
      maxz:=0;
      maxx:=0;
      while(a<=min(5-d[i-1],d))do
      begin
        x:=alpha+d-a;
        z:=80*(d-a)+70*(a)-prix(x)+soulution[a+1,((i-1)*2)];
        if(maxz<z)then
        begin
          maxz:=z;
          maxx:=x;
        end;
        a:=a+1;
      end;
      soulution[alpha+1,((i-1)*2)+1]:=maxx;
      soulution[alpha+1,((i-1)*2)+2]:=maxz;
      alpha:=alpha+1;
    end;
  end;
  for i:=1 to 5 do
  begin
    for j:=1 to n*2 do
    begin
      write(soulution[i,j]:4);
    end;
    writeln;
  end;
readln;
end.
#2

هل من رد؟؟؟

#3

السلام عليكم .بالنسبة لتحويل هذا البرنامج من باسكال الى دلفي لا يوجد تغيير كبير ......اما القيمة التي يجب ان تعطى ل n تكون اقل من 22 بصراحة لم افهم المطلوب من البرنامج, لكن هذا كود في دلفي قد يكون نسخة لبرنامجك جربها ..كما نرجو من له افكار اخرى ان يتقدم لنا بحل آخر..وهذا هو البرنامج بلغة دلفي.....وشكرا

pascal-delphi.rar

#4

شكرا جزيلا وبارك الله فيك أخي

جاري مرجعة الكود

مواضيع مشابهة