Sie sind auf Seite 1von 3

#include<stdlib.

h>
#include<stdio.h>
#include<math.h>
double aleator()
{
return (rand()%100);
}
int main()
{
long m;
int nr_lans, cant_s,stoc_i;
int t[100],d[100],total_c,aprov,n;
float pd[100], pt[100],ca, cs, cp,cl;
int i,j,s,r,demand,time,save_time,q;
float v_ca,v_cs,v_cl, v_cp,tt,ttm,minim;
double r1,r2;

/* nr_lans=timp de lansare
t=vector timpi de lansare
cant_s=cantitate ceruta/zi
d=cererea
pd,pt= probabilitati,
aprov per aproviz,
ca,cs,cp,cs= costurile de productie,
m=nr simulari,
n=timp
tt=cost total pe zi,
ttm=mediu */
printf("Nr simulari: ");
scanf("%d",&m);
printf("Nr de cereri: ");
scanf("%d",&cant_s);
printf("Nr de timpi de lansare: ");
scanf("%d",&nr_lans);
printf("Cost de achizitie: ");
scanf("%f",&ca);
printf("Cost de stocare: ");
scanf("%f",&cs);
printf("Cost de penalizare: ");
scanf("%f",&cp);
printf("Cost de lansare comanda: ");
scanf("%f",&cl);
printf("Stoc initial: ");
scanf("%d",&stoc_i);
printf("Nr de produse comandate: ");

scanf("%d",&total_c);
printf("Perioada de simulare(nr zile!): ");
scanf("%d",&n);
printf("Perioada de timp la care se face aprovizionarea: ");
scanf("%d",&aprov);
for(i=0;i<cant_s;i++)
{
printf("\n");
printf("Cererea %d: ",i+1);
scanf("%d",&d[i]);
printf("Probabilitatea cererii %d: ",i+1);
scanf("%f",&pd[i]);
printf("\n");
}
for(i=0;i<nr_lans;i++)
{
printf("\n");
printf("Timpul de la lansare pana la sosire %d: ",i+1);
scanf("%d",&t[i]);
printf("Probabilitatea duratei comandenzii %d: ",i+1);
scanf("%f",&pt[i]);
printf("\n");
}
for(i=1;i<cant_s-1;i++)
pd[i]=pd[i]+pd[i-1];

pd[cant_s-1]=100;
for(i=1;i<nr_lans-1;i++)
pt[i]=pt[i]+pt[i-1];
pt[nr_lans-1]=100;
printf("Cantitatea ceruta este: \n");
for(i=0;i<cant_s;i++)
printf("%d %f\n",d[i],pd[i]);
printf("\n");
printf("Probabilitatea cererii: \n");
for(i=0;i<nr_lans;i++)
printf("%d %f\n",t[i],pt[i]);
ttm=0;
for(i=0;i<m;i++)
{ s=stoc_i; tt=0;
for(r=1;r<n;r++)
{
r1=aleator();
for(j=0;j<cant_s;j++)
if(r1< pd[0]) demand=d[0];
else
if(r1>=pd[j]&&r1<pd[j+1])
demand=d[j+1];
if(s>demand)
{
v_cs=cs;
tt=tt+v_cs*s;
v_cp=0;

s=s-demand;
}
else{
v_cp=cp;
v_cs=cs;
tt=tt+s*v_cs+(demand-s)*v_cp;
s=0;
}
r2=aleator();
for(j=0;j<nr_lans;j++)
if(r2<pt[0]) time=t[0];
else if(r2>=pt[j]&&r2<pt[j+1])
time=t[j+1];
if(r%aprov==0)
{
v_ca=ca;
v_cl=cl;
tt=tt+total_c*v_ca+v_cl;
save_time=r;
}
else
{ v_cl=0;
v_ca=0;
}
if(r==save_time+time)
s=s+total_c;
printf("\n");
if(i==0)
{

printf("Ziua: %d", r);


printf("Stoc: %3f", s);
printf("Numarul aleator stoc: %3f", r1);
printf("Cererea: %3f", demand);
printf("Numarul aleator cerere: %3f", r2);
printf("Numarul de zile: %3f", time);
printf("Cost total: %3f", tt);
printf("\n");
}
}
if(i==0)
minim=tt;
else
if(tt<minim)
minim=tt;
ttm=ttm+tt;
}
printf("Rezultate dupa %d simulari: \n",m);
printf("Cost total mediu (RON): %3f\n", ttm/m);
printf("Costul minimim : %3f\n", minim);
}

Das könnte Ihnen auch gefallen