endsamsara -2 Light Poster

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;
       }
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.