Sunteți pe pagina 1din 3

#include <stdio.

h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i,j,k,n,a,c,z,error;
float JOP[32765],CJOP[32765],PCJOP[32765],sum=0,avg=0;
FILE *fp;
fp=fopen("Monte Carlo Simulation Output.txt","w");
printf("\n\n\t'Welcome to the Monte Carlo Simulation Program' \n\n");
printf("\tHere you can put your own problems and see results \n") ;
fprintf(fp,"\n*************************************************************");
fprintf(fp,"\n*
*");
fprintf(fp,"\n*
'Monte Carlo Simulation Program'
*");
fprintf(fp,"\n*
*");
fprintf(fp,"\n*************************************************************\n");
printf("\n\t Example Problem: \n\n");
printf("Maximum No. of Jobs=4\n\n");
printf("--------------------------------------------------------\n");
printf("Job Orders |\t 0 \t 1 \t 2 \t 3 \t 4 |\n");
printf("--------------------------------------------------------\n");
printf("Probability |\t0.30\t0.45\t0.20\t0.20\t0.05 |\n");
printf("--------------------------------------------------------\n\n\n");
printf("Please input the data as mentioned in above table\n");
printf("\nPlease put probabilities between 0 & 1, 0<P<1\n\n\n");
printf("Press ENTER if are ready to enter the data input\n");
getch();
printf("\nPlease Enter Maximum Number of Job Orders\n");
printf("(Maximum Number = 32000)\n\n\t");
scanf("%d", &a);
if (a<1)
{
printf("\n\nERROR : you entered a invalid number\n\n\n");
fprintf(fp,"\n\nERROR : you entered a invalid number\n\n\n");
getch();
exit(1);
}
printf("\nMaximum No. of Jobs = %d",a);
printf("\n\nPlease Enter the Probability coressponding to each Job Order sequentially \n\n");
for (i=0,k=0;k<=a;i++,k++)
{
printf("Probability of Job Order %d = ",k);
scanf ("%f",&JOP[i]);
sum=sum+JOP[i];
}
printf("\n\nYou have entered .....\n\n" );
printf("Maximum No. of Jobs = %d",a);
fprintf(fp,"\n\tMaximum No. of Jobs = %d\n",a);
CJOP[0]=JOP[0];

for (i=1;i<=a;i++)
{
CJOP[i]=JOP[i]+CJOP[i-1];
}
for (i=0;i<=a;i++)
{
PCJOP[i]=CJOP[i]*100;
}
printf("\n---------------------------------------------------\n");
fprintf(fp,"\n---------------------------------------------------\n");
error=PCJOP[a];
if (error!=100)
{
printf("\n\nERROR : Sum of probabilities is not equal to 1\n\n\n\n");
fprintf(fp,"\n\nERROR : Sum of probabilities is not equal to 1\n\n\n\n");
getch();
exit(1);
}
printf("| Job | Probability | Cummulative | Probability |\n");
printf("| Order |
| Probability | Percentage |\n");
printf("---------------------------------------------------\n");
fprintf(fp,"| Job | Probability | Cummulative | Probability |\n");
fprintf(fp,"| Order |
| Probability | Percentage |\n");
fprintf(fp,"---------------------------------------------------\n");
for (i=0,j=0;j<=a;i++,j++)
{
printf("| %d | %g
%g
%g \n",i,JOP[i],CJOP[i],PCJOP[i]);
fprintf(fp,"| %d | %g
%g
%g \n",i,JOP[i],CJOP[i],PCJOP[i]);
}
fprintf(fp,"---------------------------------------------------\n");
printf("---------------------------------------------------\n");
printf("How many Job Arrival do you want ?\n\n");
scanf("%d",&c);
printf("\nyou entered %d \n",c);
fprintf(fp,"\nyou entered (No. of Job Arrival) = %d \n",c);
printf("\nGenerating 'Random Numbers' ........\n");
printf("\nDeciding 'Job Orders' ........\n\n");
fprintf(fp,"\nGenerating 'Random Numbers' ........\n");
fprintf(fp,"\nDeciding 'Job Orders' ........\n\n");
getch();
printf("\n--------------------------------------------------------------------------------\n");
fprintf(fp,"\n--------------------------------------------------------------------------------\n");
printf("Job Orders |->\n");
fprintf(fp,"Job Orders |->\n");
for(i=0;i<c;i++)
{
n=((rand()*time(0))%100);
if(n<0)
n+=100;
printf("\nRandom Number = %d \t",n);

fprintf(fp,"\nRandom Number = %d \t",n);


if (n<=PCJOP[0])
{
printf("Job Order = 0 ");
fprintf(fp,"Job Order = 0 ");
}
for (z=0;z<a;z++)
{
if(n>PCJOP[z] && n<=PCJOP[z+1])
{
printf("Job Order = %d ",z+1);
fprintf(fp,"Job Order = %d ",z+1);
avg=avg+z+1;
}
}
}
printf("\n--------------------------------------------------------------------------------\n\n");
fprintf(fp,"\n--------------------------------------------------------------------------------\n\n");
avg=avg/c;
printf("Average Job Order = %g\n\n",avg);
fprintf(fp,"Average Job Order = %g\n\n",avg);
getch();
printf("\n\t This Program is made by (c) 'Ksheer Sagar Verma'");
fprintf(fp,"\n\t This Program is made by (c) 'Ksheer Sagar Verma'");
fclose(fp);
getch();
return(0);
}

S-ar putea să vă placă și