Hi, I'd like to know how the following program work.
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
#include "graphics.h"
#include "dos.h"
void iniciar_grafica();
void graficar_datos();
void graficar_vectores();
int procesos[4][5]={1,8,2,4,6,
2,3,8,9,6,
0,1,2,3,4,
0,0,0,0,0},procesos_ejecutados[5];
int cpu=5,uso_cpu,mayor,prioridad,i,midx,midy,pid=4,j;
char num[10],c;
int main(void)
{
clrscr();
iniciar_grafica();
midx=getmaxx()/2;
midy=getmaxy()/2;
while(1){
for(j=0;j<5;j++){
graficar_vectores();
graficar_datos();
cleardevice();
}
printf("Si deseas salir presiona (s/S) de lo contrario pulsa enter: ");
scanf("%c", &c);
if(c=='S'||c=='s')
{
break;
}
else
{
j=0;
}
}
closegraph();
return 0;
}
void iniciar_grafica()
{
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "C:\\TC\\BGI");
errorcode = graphresult();
if (errorcode != grOk)
{
printf("Error de grafica: %s\n", grapherrormsg(errorcode));
printf("presione una tecla para terminar:");
getch();
exit(1);
}
}
void graficar_datos()
{
mayor=procesos[0][0];
prioridad=0;
//Dibuja la estructura basica
circle(midx,midy,80);
rectangle(10,150,100,450);
rectangle(540,150,630,450);
outtextxy(10,50,"ALGORITMO DE PRIORIDAD");
//verifica el valor mas grande
for (i=0;i<4;i++)
{
if(mayor<procesos[0][i+1])
{
mayor=procesos[0][i+1];
prioridad=i+1;
uso_cpu=procesos[1][i+1];
}
}
outtextxy(midx-130,80,"Atendiendo al proceso con id= ");
itoa(procesos[2][prioridad],num,10);
outtextxy(midx+102,80,num);
outtextxy(midx-130,90,"con carga de trabajao de ");
itoa(uso_cpu,num,10);
outtextxy(midx-5,230,num);
sleep(uso_cpu);
procesos[0][prioridad]=rand()%9+1;
procesos[1][prioridad]=rand()%9+1;
procesos[2][prioridad]=++pid;
procesos_ejecutados[prioridad]=uso_cpu;
}
void graficar_vectores()
{
int k;
outtextxy(5,460,"Proceso : Prioridad : Uso del CPU");
for(k=0;k<=4;k++)
{
//Vector Izquierdo
itoa(procesos[2][k],num,10);
outtextxy(15,175+(k*60),num);
itoa(procesos[0][k],num,10);
outtextxy(30,175+(k*60),":");
outtextxy(50,175+(k*60),num);
outtextxy(70,175+(k*60),":");
itoa(procesos[1][k],num,10);
outtextxy(85,175+(k*60),num);
//Vector Derecho
itoa(procesos_ejecutados[k],num,10);
outtextxy(580,175+(k*60),num);
}
}
Is there any way to change the numbers of the output (of the program)
for a structure
that contains name of the program , memory used , time of execution, files opened.
"all invented of course!!! "
like :
struct Informacion{
char nombre[50];
char montodememoria[100];
char tiempodecalculo[100];
char archivosabiertos[100];
};
struct Nodo{
struct Informacion info;
struct Nodo *sig;
}