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();
}
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.