Hi Everyone..!!:*

I'm a newcomer here. And looks like need your help here. I 've just make a program tha simulates The HRN CPU Scheduler.I have no problem in compiling it. But, when I run it, It won't work.
:S

I don't know which Part of my pseudocode that was wrong. Could someone help me to solve it, please..!
:sad:

Here's the pseudocode

#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iomanip.h>

typedef struct
{
    float Prioritas;
    int Waiting;
    int Lama;
    int TA;
    char ID;
}Penjadwalan;

typedef Penjadwalan Proses[6];

void main()
{
    Proses HRN;
    int i,j,time,Min;
    float Max;


    /*INPUT PROSES*/

    HRN[1].ID = 'A';
    HRN[1].Lama= 12;

    HRN[2].ID = 'B';
    HRN[2].Lama= 57;

    HRN[3].ID = 'C';
    HRN[3].Lama= 32;

    HRN[4].ID = 'D';
    HRN[4].Lama= 10;

    HRN[5].ID = 'E';
    HRN[5].Lama= 40;


    /******************/


    /*Menampilkan hasil input*/
    printf("Sebelum\n");

    for (i=1; i<6; i++)
    {  HRN[i].Waiting = 0;
        printf("ID        : %c\n",HRN[i].ID);
        printf("Layanan   : %d\n",HRN[i].Lama);
        printf("Waiting   : %d\n\n",HRN[i].Waiting);
    }
    getch();
    /******************/

   clrscr();

    /*Melakukan Eksekusi HRN*/
    time=0;
    for (i=1; i<6; i++)
    {
        /*Jika wktu belum berjalan cari Lama dgn wkt terkecil*/
        if ( time == 0 )
        {
            /*PROSEDUR untuk mencari Min*/
            Min = HRN[1].Lama;
            for (j=2; j<6; j++)
            {
              if ( Min > HRN[j].Lama )
              {
                    Min  = HRN[j].Lama;
              }
            }
            /******************************************************/
            for(j=1; j<6; j++)
            {
                if (Min == HRN[j].Lama)
                {
                    time=time+HRN[j].Lama;
                    HRN[j].Lama=0;
                    printf("Proses '%c' Telah Di eksekusi\n\n", HRN[j].ID);
                }
            }
            printf("Waktu Sekarang: %d\n\n",time);
        }
        /*****************************************************************/
        else
        {  printf("Perputaran ke-%d\n\n",i);
            for (j=1; j<6; j++)
            {
              HRN[j].Waiting=time+HRN[j].Waiting;
              HRN[j].Prioritas = (HRN[j].Waiting + HRN[j].Lama)/ HRN[j].Lama;
              printf("Proritas Proses '%c' = %f\n\n",HRN[j].ID,HRN[j].Prioritas);
            }

            /*PROSEDUR untuk mencari Prioritas Terbesar*/
            Max=HRN[1].Prioritas;
            for (j=2;j<6;j++)
            {
                if ( Max < HRN[j].Prioritas )
                {
                    Max = HRN[j].Prioritas;
                }
            }
            /*******************************************/

            for(j=1; j<6; j++)
            {
                if (Max == HRN[j].Prioritas)
                {
                    time=time+HRN[j].Lama;
                    HRN[j].Lama=0;
                    printf("Proses '%c' Telah Di eksekusi", HRN[j].ID);
                }
            }


        }
    }
    /******************/

}

cOZ I'm an Indonesian. There're Lots of sentences using Bahasa Indonesia there...

Anyway, Thanks 4 ur attention..!!:)

Edited 4 Years Ago by Reverend Jim: Fixed formatting

Attachments
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iomanip.h>

typedef struct
{
	float Prioritas;
	int Waiting;
	int Lama;
	int TA;
	char ID;
}Penjadwalan;

typedef Penjadwalan Proses[6];

void main()
{
	Proses HRN;
	int i,j,time,Min;
	float Max;


	/*INPUT PROSES*/

	HRN[1].ID = 'A';
	HRN[1].Lama= 12;

	HRN[2].ID = 'B';
	HRN[2].Lama= 57;

	HRN[3].ID = 'C';
	HRN[3].Lama= 32;

	HRN[4].ID = 'D';
	HRN[4].Lama= 10;

	HRN[5].ID = 'E';
	HRN[5].Lama= 40;


	/******************/


	/*Menampilkan hasil input*/
	printf("Sebelum\n");

	for (i=1; i<6; i++)
	{  HRN[i].Waiting = 0;
		printf("ID        : %c\n",HRN[i].ID);
		printf("Layanan   : %d\n",HRN[i].Lama);
		printf("Waiting   : %d\n\n",HRN[i].Waiting);
	}
	getch();
	/******************/

   clrscr();

	/*Melakukan Eksekusi HRN*/
	time=0;
	for (i=1; i<6; i++)
	{
		/*Jika wktu belum berjalan cari Lama dgn wkt terkecil*/
		if ( time == 0 )
		{
			/*PROSEDUR untuk mencari Min*/
			Min = HRN[1].Lama;
			for (j=2; j<6; j++)
			{
			  if ( Min > HRN[j].Lama )
			  {
					Min  = HRN[j].Lama;
			  }
			}
			/******************************************************/
			for(j=1; j<6; j++)
			{
				if (Min == HRN[j].Lama)
				{
					time=time+HRN[j].Lama;
					HRN[j].Lama=0;
					printf("Proses '%c' Telah Di eksekusi\n\n", HRN[j].ID);
				}
			}
			printf("Waktu Sekarang: %d\n\n",time);
		}
		/*****************************************************************/
		else
		{  printf("Perputaran ke-%d\n\n",i);
			for (j=1; j<6; j++)
			{
			  HRN[j].Waiting=time+HRN[j].Waiting;
			  HRN[j].Prioritas = (HRN[j].Waiting + HRN[j].Lama)/ HRN[j].Lama;
			  printf("Proritas Proses '%c' = %f\n\n",HRN[j].ID,HRN[j].Prioritas);
			}

			/*PROSEDUR untuk mencari Prioritas Terbesar*/
			Max=HRN[1].Prioritas;
			for (j=2;j<6;j++)
			{
				if ( Max < HRN[j].Prioritas )
				{
					Max = HRN[j].Prioritas;
				}
			}
			/*******************************************/

			for(j=1; j<6; j++)
			{
				if (Max == HRN[j].Prioritas)
				{
					time=time+HRN[j].Lama;
					HRN[j].Lama=0;
					printf("Proses '%c' Telah Di eksekusi", HRN[j].ID);
				}
			}


		}
	}
	/******************/

}
This article has been dead for over six months. Start a new discussion instead.