Programación General > C/C++

 Programa .cpp no compila

(1/1)

viru:
es un programa de ingenieria que sirve para hacer distribucion de planta, tipo CORELAP, y lo necesito para la facu.
lo encontre en internet y esta en formato cpp, pero no compila
por favor si alguien me puede ayudar, se lo agradeceria muchisimo
lo baje de: planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=11462&lngWid=3
y es de mayo del 2007 mas o menos

es bastante largo asi que no creo que nadie lo quiera leer entero y revisarlo, pero supongo que los errores son cosas no tan dificiles de encontrar y solucionar, por eso lo subo aca

desde ya les agradezco
saludos

CALYPLAN.CPP


--- Código: Text ---#include<conio.h>#include<stdio.h>#include<iostream.h>#include<process.h> #define SZ 42 #define AVALUE 10000#define EVALUE 1000#define IVALUE 100#define OVALUE 10#define UVALUE 0#define XVALUE -10000 /***********************************************************/void cbab(){clrscr();cout<<"Created by   AMIT BHOLA";for(long int w=0;w<99999999;w++) ;}/***********************************************************/void hline(){for(int i=0;i<80;i++)printf("Ä");return;}/***********************************************************/void bhline(){for(int i=0;i<80;i++)printf("Û");return;}/***********************************************************/void writescreen( char name[]){   int i;   char buffer[4000];    FILE *fp;    fp=fopen(name,"a");    gettext(1, 1, 80, 25, buffer);   char buffer2[4000]; int j=0;     for(i=0;i<4000;i++)     {      if(int(buffer[i])==15);      else       {    buffer2[j++]=buffer[i];       }     }   for(i=0;i<2000;i++)   {    fprintf(fp,"%c",buffer2[i]);    if( (i+1)%80==0 ) fprintf(fp,"n");   }    fclose(fp); return; }/**************************************************************************/ int  indexmax         ( int []  , int );void establish_neb    ( int [][SZ], int [][SZ] );void establish_neborder   ( int [][SZ], int [][2],int );void establish_reltab     ( int, int [], char [][SZ],int [][SZ][SZ]);int  establish_nextstation( int,int [][SZ][SZ],int [],int [],int,int[]);int  fill_last        ( char [][SZ],int,int [],int,int [],int [],int);void establish_wpvgrid    ( int [][SZ], int,char [][SZ], int [][SZ],int [][SZ]);int  value        ( char );void establish_xy     ( int [][SZ],int [][2], int [][SZ],int [][SZ],int []);void establish_inputmatrix( int); void main(){ char input[SZ][SZ]; int tcr[SZ],status[SZ][SZ],neb[SZ][SZ],neborder[1000][2],wpv[SZ][SZ],     reltab[6][SZ][SZ],station[SZ],stnsta[SZ],last[SZ],layout[SZ][SZ],xy[2]; int n,i,j,k,nextstni,midx,midy,x,y,noflast,leftovers; FILE *fp; clrscr(); midx=SZ/2; midy=SZ/2; ///////////////////////////// input //////////////////////////////////  cout<<"nnnn                  C  A  L  Y  P  L  A  Nnn"; bhline(); cout<<"nn          Computer   Aided   Layout   Planning  nn              (based on CORELAP technique)"; gotoxy(23,20); cout<<"Press any key to continue..."; getch();  clrscr(); cout<<"CALYPLANn"; hline(); cout<<"nnReading input data from file INPUT.TXTnnEnter no. of stations : "; cin>>n;  establish_inputmatrix(n); //exit(0); fp=fopen("C:\CALYPLAN\calyplan.txt","r");   for(i=0;i<n;i++)  {   for(j=0;j<n;j++)    {     fscanf(fp," %c",&input[i][j]);    }   fscanf(fp,"%dn",&tcr[i]);  } fclose(fp);///////////////////////////// initialisation ////////////////////////////////// for(i=0;i<SZ;i++)  {   for(j=0;j<SZ;j++)    {     status[i][j]=0;     neb   [i][j]=0;     wpv   [i][j]=0;     layout[i][j]=0;    }  }  for(i=0;i<6;i++)  {   for(j=0;j<SZ;j++)    {     for(k=0;k<SZ;k++)      {       reltab[i][j][k]=0;      }    }  } for(i=0;i<n;i++)  {   station[i]=i+1;   last   [i]=0;   stnsta [i]=0;  }  xy[0]=xy[1]=0; leftovers=0; /////////////////////////// 1st station placement ////////////////////////// nextstni=indexmax(tcr,n); noflast=0; noflast=fill_last(input,nextstni,last,n,tcr,stnsta,noflast);  x=midx; y=midy; layout[x][y]=station[nextstni]; status[x][y]=1; stnsta[station[nextstni]-1]=1;  cout<<"n1tstation : "<<station[nextstni]<<"tat  "<<x<<" , "<<y;//<<"tlast : "<<last[0]<<","<<last[1]; writescreen("C:\CALYPLAN\calytemp.txt"); /////////////////////////// rest placements ////////////////////////// for(i=1;i<n;i++) {  if( (i+noflast)==n ) { leftovers=1; /*cout<<" M "<<i<<" "<<noflast;*/ }  if(!leftovers)   {      establish_neb     (status,neb);      establish_neborder    (neb,neborder,midx);      establish_reltab  (n,stnsta,input,reltab); nextstni=establish_nextstation (n,reltab,tcr,last,noflast,stnsta); noflast =fill_last     (input,nextstni,last,n,tcr,stnsta,noflast);      establish_wpvgrid (wpv,nextstni,input,status,layout);      establish_xy      (neb,neborder,wpv,status,xy);       x=xy[0]; y=xy[1];      layout[x][y]=station[nextstni];      status[x][y]=1;      neb[x][y]=0;      stnsta[station[nextstni]-1]=1;       for(j=0;j<SZ;j++)       for(k=0;k<SZ;k++)        wpv[j][k]=0;   }   if(leftovers)   {      establish_neb     (status,neb);      establish_neborder    (neb,neborder,midx);  nextstni=last[noflast-1];       establish_wpvgrid (wpv,nextstni,input,status,layout);      establish_xy      (neb,neborder,wpv,status,xy);       x=xy[0]; y=xy[1];      layout[x][y]=station[nextstni];      status[x][y]=1;      neb[x][y]=0;      stnsta[station[nextstni]-1]=1;       for(j=0;j<SZ;j++)       for(k=0;k<SZ;k++)        wpv[j][k]=0;     noflast--;   }  cout<<"n"<<i+1<<"tstation : "<<station[nextstni]<<"tat     "<<x<<" , "<<y;//<<"tlast : "<<last[0]<<","<<last[1]<<" , "<<noflast;  writescreen("C:\CALYPLAN\calytemp.txt"); }///////////////// all placements over //////////////////////////////////// fp=fopen("C:\CALYPLAN\calyplan.txt","a"); for(i=0;i<SZ;i++)  {   for(j=0;j<SZ;j++)    {     if(!layout[i][j]) fprintf(fp,"    ");     else fprintf(fp,"%-4d",layout[i][j]);    }   fprintf(fp,"n");  } fclose(fp); cout<<"nnOutput saved in file            calyplan.txtnIntermediate status saved in file calytemp.txtnnPress any key to exit..."; writescreen("C:\CALYPLAN\calytemp.txt"); getch(); cbab();}/*************************************************************************/int indexmax(int a[],int n){ int m=0; for (int i=1;i<n;i++)  if (a[i]>a[m]) m=i; return m;}/*************************************************************************/void establish_neb  ( int st[][SZ], int nb[][SZ] ){ int i,j;  for(i=1;i<SZ-1;i++)  {   for(j=1;j<SZ-1;j++)    {     if(st[i][j]) ;     else      if( st[i-1][j-1] || st[i-1][j] || st[i-1][j+1] ||      st[i  ][j-1] ||       st[i  ][j+1] ||      st[i+1][j-1] || st[i+1][j] || st[i+1][j+1]    )      nb[i][j]=1;    }  }  return;}/*************************************************************************/void establish_neborder ( int nb[][SZ], int nbo[][2], int mx ){ int i,j,x,y,stx,sty,nofneb=0, nbdone[SZ][SZ];  for(i=0;i<SZ;i++)  for(j=0;j<SZ;j++)   nbdone[i][j]=0;   for(i=0;i<SZ;i++)  for(j=0;j<SZ;j++)   if(nb[i][j]) nofneb++;  for(j=1;j<SZ;j++)  {   if(nb[mx][j-1] && (!nb[mx][j]) )    { stx=mx; sty=j-1; break; }  }  nbo[0][0]=stx; nbo[0][1]=sty; nb[stx][sty]=1; x=stx; y=sty;  for(i=1;i<=nofneb-1;i++)  {   if(nb[x][y-1] && !nbdone[x][y-1] )    { x=x; y=y-1; nbo[i][0]=x; nbo[i][1]=y; nbdone[x][y]=1; continue; }    if(nb[x+1][y] && !nbdone[x+1][y] )    { x=x+1; y=y; nbo[i][0]=x; nbo[i][1]=y; nbdone[x][y]=1; continue; }    if(nb[x][y+1] && !nbdone[x][y+1] )    { x=x; y=y+1; nbo[i][0]=x; nbo[i][1]=y; nbdone[x][y]=1; continue; }    if(nb[x-1][y] && !nbdone[x-1][y] )    { x=x-1; y=y; nbo[i][0]=x; nbo[i][1]=y; nbdone[x][y]=1; continue; }  }  return;}/**************************************************************************/void establish_reltab ( int n, int stnsta[], char input[][SZ],int reltab[][SZ][SZ]){ int i,j,nop,placedstns[SZ]; char relation;   for(i=0,j=0;i<n;i++)   { if(stnsta[i]) placedstns[j++]=i; }  nop=j;   for(i=0; i<nop; i++)   {    for(j=0;j<n;j++)     {      relation=input[placedstns[i]][j];      switch(relation)       {    case 'a':    case 'A':     reltab[0][placedstns[i]][j]=1;     break;    case 'e':    case 'E':     reltab[1][placedstns[i]][j]=1;     break;    case 'i':    case 'I':     reltab[2][placedstns[i]][j]=1;     break;    case 'o':    case 'O':     reltab[3][placedstns[i]][j]=1;     break;    case 'u':    case 'U':     reltab[4][placedstns[i]][j]=1;     break;    case 'x':    case 'X':     reltab[5][placedstns[i]][j]=1;     break;    case '-':     break;    default:     cout<<"nUnidentified character '"<<relation<<"'found in input table.nnPress any key to terminate program...";     getch();     exit(0);     break;       }     }   } return;}/*************************************************************************/int establish_nextstation( int n,int reltab[][SZ][SZ],int tcr[],int last[],               int noflast, int stnsta[]){ int i,j,k,p,t[SZ],tc[SZ],m=0,flag=0,notinlast=1;  for(i=0;i<6;i++)  {   for(j=0;j<n;j++)    {     for(k=0;k<n;k++)      {       for(p=0;p<noflast;p++)    {     if (k==last[p]) { notinlast=0; break; }    }      // cout<<"n "<<i<<" "<<j<<" "<<k<<" "<<reltab[i][j][k];       //////       if(reltab[i][j][k] && (!stnsta[k]) && notinlast)    { t[m++]=k; flag=1; }       else notinlast=1;      }    }   //getch();               /////////   if(flag) break;  }   for(j=0;j<m;j++)   { //cout<<" "<<tcr[j]<<",";           //////////     tc[j]=tcr[t[j]];   }   //getch();                           ///////  //exit(0);                           //////// return (t[indexmax(tc,m)]);} /*************************************************************************/int fill_last ( char input [][SZ],int nextstni,int last[], int n, int tcr[],        int stnsta [], int nofl){ int i,j,k,t[SZ],tc[SZ],m=0,atleast1found=0,alreadypresentinlast=0,     alreadyplaced=0;      for(k=0;k<n;k++)      {       if(input[nextstni][k] == 'x' || input[nextstni][k]=='X' )    {     for(i=0;i<nofl;i++)      {       if (last[i]==k)        { alreadypresentinlast=1; break; }      }      if(stnsta[k]) alreadyplaced=1;      if(!alreadypresentinlast && !alreadyplaced)      {        t[m++]=k;        atleast1found=1;        alreadypresentinlast=0;        alreadyplaced=0;//      cout<<"k";      }    }      }  if(atleast1found) {  for(j=0;j<m;j++) { tc[j]=-1*tcr[j]; }  i= t[indexmax(tc,m)];  last[nofl]=i;  return (nofl+1); } else return (nofl);} /*************************************************************************/void establish_wpvgrid    ( int wpv[][SZ], int nextstni,char input[][SZ],                int status [][SZ], int layout [][SZ] ){ int i,j,k;  for(i=0;i<SZ;i++)  {   for(j=0;j<SZ;j++)    {     if(status[i][j])      { wpv[i][j]=value(input[nextstni][layout[i][j]-1]); }    }  }  return;} /*************************************************************************/int value (char ch){ int t; switch (ch)  {    case 'a':    case 'A':     //t=10000;     t=AVALUE;     break;     case 'e':    case 'E':     //t=1000;     t=EVALUE;     break;     case 'i':    case 'I':     //t=100;     t=IVALUE;     break;     case 'o':    case 'O':     //t=10;     t=OVALUE;     break;     case 'u':    case 'U':     //t=0;     t=UVALUE;     break;     case 'x':    case 'X':     //t=-10000;     t=XVALUE;     break;        }   return t;} /*************************************************************************/void establish_xy  ( int nb[][SZ],int neborder[][2], int wpv[][SZ],             int st[][SZ],int xy[]){ int i,j,k,nofneb=0,tm,t[SZ],m=0;   for(i=0;i<SZ;i++)  for(j=0;j<SZ;j++)   if(nb[i][j]) nofneb++;  for(k=0;k<nofneb;k++)  {   xy[0]=neborder[k][0]; xy[1]=neborder[k][1];   tm=0;   //cout<<" "<<xy[0]<<"XY"<<xy[1]<<"-";   i=xy[0]; j=xy[1];    if(st[i-1][j  ])   { tm+=wpv[i-1][j  ]; }   if(st[i  ][j-1])   { tm+=wpv[i  ][j-1]; }   if(st[i  ][j+1])   { tm+=wpv[i  ][j+1]; }   if(st[i+1][j  ])   { tm+=wpv[i+1][j  ]; }    if(st[i-1][j-1])   { tm+=wpv[i-1][j-1]/2; }   if(st[i-1][j+1])   { tm+=wpv[i-1][j+1]/2; }   if(st[i+1][j-1])   { tm+=wpv[i+1][j-1]/2; }   if(st[i+1][j+1])   { tm+=wpv[i+1][j+1]/2; }    t[m++]=tm;  //cout<<"_";  }   //cout<<endl; for(i=0;i<m;i++) { cout<<" w"<<t[i]; } cout<<endl; getch();   xy[0]=neborder[indexmax(t,m)][0];  xy[1]=neborder[indexmax(t,m)][1];  return;}/**************************************************************************/void establish_inputmatrix( int n){ FILE *fp1,*fp2; char tab[SZ][SZ],tabt[SZ][SZ]; int i,j,k,i1,j1;  fp1=fopen("C:\CALYPLAN\input.txt","r"); fp2=fopen("C:\CALYPLAN\temp.txt","w");  if(fp1==NULL) { cout<<"nn Input file input.txt not found !nnnPress any key to exit..."; getch(); exit(0); }   for(i=0;i<n-1;i++)  {   for(j=0;j<n-1;j++)    {     if(j<i) tab[i][j]=' ';     else     fscanf(fp1," %c",&tab[i][j]);    }  }   for(i=0;i<n-1;i++)  {   for(j=0;j<n-1;j++)    {     tabt[i][j]=tab[j][i];    }  }   for(i=0;i<n;i++)  {   for(j=0,j1=0;j<n;j++)    {     if      (j<i && i>0) fprintf(fp2,"%ct",tabt[i-1][j1++]);     else if (j>i) fprintf(fp2,"%ct",tab[i][j1++]);     else          fprintf(fp2,"-t");    }    fprintf(fp2,"n");  }  fclose(fp1); fclose(fp2);  fp2=fopen("C:\CALYPLAN\temp.txt","r");  int na,ne,ni,no,nu,nx,tcr[SZ]; char ch;  for(i=0;i<n;i++)  { tcr[i]= 0; }  for(i=0;i<n;i++)  {   na=ne=ni=no=nu=nx=0;    for(j=0;j<n;j++)    {     fscanf(fp2," %c",&ch);     switch(ch)      {    case 'a':    case 'A':     na++;     break;     case 'e':    case 'E':     ne++;     break;     case 'i':    case 'I':     ni++;     break;     case 'o':    case 'O':     no++;     break;     case 'u':    case 'U':     nu++;     break;     case 'x':    case 'X':     nx++;     break;    default:     ;      }     }   tcr[i]=na*value('a')+      ne*value('e')+      ni*value('i')+      no*value('o')+      nu*value('u')+      nx*value('x');   //cout<<endl<<tcr[i]; getch();   fscanf(fp2,"n");  }  fclose(fp2); fp1=fopen("C:\CALYPLAN\temp.txt","r"); fp2=fopen("C:\CALYPLAN\calyplan.txt","w");  for(i=0;i<n;i++)  {   for(j=0;j<n;j++)    {     fscanf(fp1," %c",&ch);     fprintf(fp2,"%ct",ch);    }   fprintf(fp2,"%dn",tcr[i]);   fscanf(fp1,"n");  }  fclose(fp1);  fclose(fp2);  //remove("C:\CALYPLAN\calyplan.txt");  //rename("C:\CALYPLAN\temp.txt","C:\CAYPLAN\calyplan.txt");  return;}/******************* end of program **********************************/ 

lostshell:
en que programa lo estas tratando de compilar?? yo trate en devcpp y al parecer el unico problema es que usa clrscr, gettext y gotoxy de borland (conio.h) y el main no es int

viru:
si, lo quise compilar con dev c++

y como se soluciona eso?

perdon la ignorancia :$

Amilius:
O rehaces el código par evitar usar funciones no estándar, o puedes buscar algunas bibliotecas de functiones que hagan lo mismo que conio.h pero que compilen en dev c++.

Navegación

[0] Índice de Mensajes

Ir a la versión completa