miércoles, 28 de noviembre de 2012

qwerty en C++


#include<conio.h>
#include <stdlib.h>
#include<stdio.h>
#include<string.h>
#include <graphics.h>
#include<iostream.h>
#include"ventanas.h"
#include"esctexto.h"
int final[20], N;
int vec3[20],numero;
void Flecha1(int x, int y){
    int i, j;
    int bitmap[5][9]={
    15,15,15,15,1,15,15,15,15,
    15,15,15,1,15,1,15,15,15,
    15,15,1,15,15,15,1,15,15,
    15,1,15,15,15,15,15,1,15,
    1,15,15,15,15,15,15,15,1
    };
    for(i=0;i<5;i++)
      for(j=0;j<9;j++)
       putpixel(y+j,x+i,bitmap[i][j]);
}
void Flecha2(int x, int y){
    int i, j;
    int bitmap[9][5]={
    1,15,15,15,15,
    15,1,15,15,15,
    15,15,1,15,15,
    15,15,15,1,15,
    15,15,15,15,1,
    15,15,15,1,15,
    15,15,1,15,15,
    15,1,15,15,15,
    1,15,15,15,15
    };
    for(i=0;i<9;i++)
      for(j=0;j<5;j++)
       putpixel(y+j,x+i,bitmap[i][j]);
}
void EjeXY(){
  int i, j;
  char num[3];
  setfillstyle(8,15);
  bar(0,0,639,479);
  VentanaBarraTitulo("Gr fico de SSTF",4,4,632,472,7,1,15);
  Contenedor(7,32,630,470);
  VentanaTexto(11,36,628,468);
  Comentario("Para salir de la ventana digite cualquier tecla...!",150,454,0);
  setcolor(1);
  Flecha1(47,66);
  Flecha2(416,599);
  line(70,440,70,50);
  line(50,420,600,420);
  settextstyle(8,1,2);
  outtextxy(15,160,"Procesos");
  settextstyle(8,0,2);
  outtextxy(250,435,"tiempo");
  j=400;
  settextstyle(2,0,2);
  for(i=1;i<=18;i++){
      itoa(i,num,10);
      outtextxy(55,j,num);
      j-=20;
  }
  j=70;
  settextstyle(2,0,2);
  for(i=numero;i<=34+numero;i++){          //------
      itoa(i,num,10);
      outtextxy(j,425,num);
      j+=15;
  }
}
void puntos(){
 //    n=5;
    int i,j,indice[10];
    for(i=1;i<=N;i++)
    {  for(j=1;j<=N;j++)
      { if(final[i]==vec3[j])
    {  indice[i]=j;
    }
      }

    }
    //printf("hola %d",N);
    setcolor(RED);
    setlinestyle(0,0xffff,3);
    line(70,400,70+(final[1]-numero)*15,400);
    for(i=2;i<=N;i++){
      line(70+(final[i-1]-numero)*15,420-indice[i]*20,70+(final[i]-numero)*15,420-indice[i]*20);
    }
  setlinestyle(0,0xffff,1);
}

int menor(float vec[],int n)
{  int c,i; c=1;
float menor;
      menor=vec[1];
    for(i=2;i<=n;i++)
    {
      if(vec[i]<menor)
      {  c=i;
      }

    }
return(c);

}
void intro()
{
  int mat[20][10];
  int i,j=1,n,x, posy, posx;
  char n_[6],i_[5],proceso[10];

  VentanaBarraTitulo("Algoritmo de HRN",49,49,589,429,7,1,15);
  Contenedor(54,79,584,424);
  Comentario("Digite el Numero de Procesos",110,90,7);
  BarraTexto(400,90,424);
  EscribeTextoBarra(n_,400,90,424);
  n=atoi(n_);
  N=n;
    for(i=1;i<=n;i++)
    {
      mat[i][j]=i;
    }
  Comentario("Tiempos Iniciales",70,110,7);
   j=2;
   posy=140;

  for(i=1;i<=n;i++)
  {
    itoa(i,i_,10);
    strcpy(proceso,"Proceso ");
    strcat(proceso,i_);
    Comentario(proceso,70,posy,0);
    BarraTexto(150,posy,190);
    EscribeTextoBarra(n_,150,posy,190);
    mat[i][j]=atoi(n_);
    if(posy<420)posy+=20;
  }
  j++;
  Comentario("Tiempos  Requiridos",290,110,7);
  posy=140;
  for(i=1;i<=n;i++)
  {
    itoa(i,i_,10);
    strcpy(proceso,"Proceso");
    strcat(proceso,i_);
    Comentario(proceso,290,posy,0);
    BarraTexto(370,posy,410);
    EscribeTextoBarra(n_,370,posy,410);
    mat[i][j]=atoi(n_);
    if(posy<420)posy+=20;
  }
    /*for(i=1;i<=n;i++)
    {
   for(j=1;j<=3;j++)
   {  gotoxy(j*j+4,i+2);
     printf("%d",mat[i][j]);

   }
    } */
  float vec[20];
  int f,k,m,c=1,pivote,nuevomat[20][10];
  final[1]=mat[1][2]+mat[1][3];
  pivote=final[1];
    m=n;
  mat[1][4]=pivote;
 for(f=1;f<=n;f++)
 {  for(j=1;j<=3;j++)
    {

    nuevomat[f][j]=mat[f][j];

    }
 }


 for(f=c;f<=m-1;f++)
 {  for(j=1;j<=3;j++)
    {

    nuevomat[f][j]=nuevomat[f+1][j];
      }
  }
  m--;    //------------------



 int w=2;
 //-----------------------------------------
for(k=1;k<=n-1;k++)
{
     for(i=1;i<=m;i++)
     {
       vec[i]=( ( pivote-nuevomat[i][2] ) + nuevomat[i][3] ) / nuevomat[i][3];

     }
      c=menor(vec,m);
      x=nuevomat[c][1];
      final[w]=pivote+nuevomat[c][3];
      pivote=0;
      pivote=final[w];  // printf("\t \tfinal %d \n",pivote);
      mat[x][4]=final[w];
      w++;
    for(f=c;f<=m-1;f++)
    {    for(j=1;j<=3;j++)
     {
       nuevomat[f][j]=nuevomat[f+1][j];
     }
      }
      m=m-1;
}


    /*for(i=1;i<=n;i++)
    {
      printf(" \n %d \n",final[i]);
    } */
     for(i=1;i<=n;i++)
     {
         vec3[i]=mat[i][4];
     }
     numero=mat[1][2];
      //   puntos(final,vec3);

      getch();
      VentanaBarraTitulo("",400,250,600,430,3,3,3);
      Contenedor(405,255,595,425);
      posy=260;
    for(i=1;i<=n;i++)
    {  posx=423;
   for(j=1;j<=4;j++)
   {
     itoa(mat[i][j],n_,10);
     Comentario(n_,posx,posy,0);
     posx+=32;

   }
   posy+=10;
    }
    Comentario("Digite una tecla para salir de la ventana..!",200,410,0);
    getch();
    getch();
}
void main(){

    int a=0,b=0;
    getch();
    initgraph(&a,&b,"c:\\tc\\bgi");
    setfillstyle(8,15);
    bar(0,0,639,479);
    intro();
    EjeXY();
    puntos();
    getch();
    closegraph();
}

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.