cuadro magico ayuda
// cuadrado magico
const int DIM = 15,
MAX = 2*DIM-1;
#include <iostream.h>
#include <iomanip.h>
int GetDim()
{
for(int dim = -1;;)
{
cout << "escriba un numero entre 1 a" << DIM << " : ";
cin >> dim;
if(!(dim%2)) // dim no es un numero inpar
continue;
if(dim >= 1 && dim <= DIM) // dim fuera del rango exigido
break;
}
return dim;
} // GET DIM
void ShowMatrix(int a[][MAX],char *msg,int start,int end)
{
cout << msg << " : " << endl << endl;
for(int i = start;i < end;i++)
{
for(int j = start;j < end;j++)
{
if(a[i][j])
cout << setw(5) << a[i][j];
else
cout << setw(5) << '.';
} // FOR J
cout << endl;
} // FOR I
cout << endl;
} // SHOW MATRIX
void InitMatrix(int a[][MAX],int dim) // construir la matriz basica
{
for(int i = 0;i < dim;i++)
for(int j = 0;j < dim;j++)
a[i][j] = 0;
int num = 1,
xo = dim/2,
yo = 0;
for(int diagonal = 0;diagonal < dim/2+1;diagonal++)
{
for(int i = 0;i < dim/2+1;i++)
a[yo+i][xo+i] = num++;
xo--;
yo++;
}
} // INIT MATRIX
void Process(int a[][MAX],int max,int dim,int delta)
{ // construccion del cuadrado magico
int i,j; // a partir de la matriz basica
for(i = delta;i < max-delta;i++) // arreglar las filas
{
for(j = delta;j < max/2;j++)
if(!a[i][j])
a[i][j] = a[i][j+dim];
for(j++;j < max;j++)
if(!a[i][j])
a[i][j] = a[i][j-dim];
}
for(j = delta;j < max-delta;j++) // arreglar las columnas
{
for(i = delta;i < max/2;i++)
if(!a[i][j])
a[i][j] = a[i+dim][j];
for(i++;i < max;i++)
if(!a[i][j])
a[i][j] = a[i-dim][j];
}
} // PROCESS
int Check(int a[][MAX],int start,int end) // controlar que el cuadrado
{ // obtenido es realmente magico
int suma = 0,sumb = 0,i,j,k = end-1;
for(i = start;i < end;i++) // chequear diagonales
{
suma += a[i][i];
sumb += a[i][k--];
}
if(suma != sumb)
return 0;
int total = suma;
for(i = start;i < end;i++) // chequear filas y solumnas
{
suma = sumb = 0;
for(j = start;j < end;j++)
{
suma += a[i][j]; // filas
sumb += a[j][i]; // columnas
}
if(suma != total || sumb != total)
return 0;
}
cout << endl << "valor sumatoria : " << total << endl << endl;
return 1;
} // CHECK
int main()
{
int a[MAX][MAX],
dim = GetDim(), // dimension del cuadrado magico
max = 2*dim-1; // dimension de la matriz basica
InitMatrix(a,max);
ShowMatrix(a,"valor matriz ",0,max); // toda la matriz
int delta = dim/2;
Process(a,max,dim,delta);
ShowMatrix(a,"cuadro magico ",delta,max-delta);// la parte del cuadrado magico
if(Check(a,delta,max-delta))
cout << "cuadro magico " << endl;
else
cout << "cuadro magico " << endl;
cout << endl << "fin del programa - adios ! ! !" << endl;
return 0;
} // MAIN
const int DIM = 15,
MAX = 2*DIM-1;
#include <iostream.h>
#include <iomanip.h>
int GetDim()
{
for(int dim = -1;;)
{
cout << "escriba un numero entre 1 a" << DIM << " : ";
cin >> dim;
if(!(dim%2)) // dim no es un numero inpar
continue;
if(dim >= 1 && dim <= DIM) // dim fuera del rango exigido
break;
}
return dim;
} // GET DIM
void ShowMatrix(int a[][MAX],char *msg,int start,int end)
{
cout << msg << " : " << endl << endl;
for(int i = start;i < end;i++)
{
for(int j = start;j < end;j++)
{
if(a[i][j])
cout << setw(5) << a[i][j];
else
cout << setw(5) << '.';
} // FOR J
cout << endl;
} // FOR I
cout << endl;
} // SHOW MATRIX
void InitMatrix(int a[][MAX],int dim) // construir la matriz basica
{
for(int i = 0;i < dim;i++)
for(int j = 0;j < dim;j++)
a[i][j] = 0;
int num = 1,
xo = dim/2,
yo = 0;
for(int diagonal = 0;diagonal < dim/2+1;diagonal++)
{
for(int i = 0;i < dim/2+1;i++)
a[yo+i][xo+i] = num++;
xo--;
yo++;
}
} // INIT MATRIX
void Process(int a[][MAX],int max,int dim,int delta)
{ // construccion del cuadrado magico
int i,j; // a partir de la matriz basica
for(i = delta;i < max-delta;i++) // arreglar las filas
{
for(j = delta;j < max/2;j++)
if(!a[i][j])
a[i][j] = a[i][j+dim];
for(j++;j < max;j++)
if(!a[i][j])
a[i][j] = a[i][j-dim];
}
for(j = delta;j < max-delta;j++) // arreglar las columnas
{
for(i = delta;i < max/2;i++)
if(!a[i][j])
a[i][j] = a[i+dim][j];
for(i++;i < max;i++)
if(!a[i][j])
a[i][j] = a[i-dim][j];
}
} // PROCESS
int Check(int a[][MAX],int start,int end) // controlar que el cuadrado
{ // obtenido es realmente magico
int suma = 0,sumb = 0,i,j,k = end-1;
for(i = start;i < end;i++) // chequear diagonales
{
suma += a[i][i];
sumb += a[i][k--];
}
if(suma != sumb)
return 0;
int total = suma;
for(i = start;i < end;i++) // chequear filas y solumnas
{
suma = sumb = 0;
for(j = start;j < end;j++)
{
suma += a[i][j]; // filas
sumb += a[j][i]; // columnas
}
if(suma != total || sumb != total)
return 0;
}
cout << endl << "valor sumatoria : " << total << endl << endl;
return 1;
} // CHECK
int main()
{
int a[MAX][MAX],
dim = GetDim(), // dimension del cuadrado magico
max = 2*dim-1; // dimension de la matriz basica
InitMatrix(a,max);
ShowMatrix(a,"valor matriz ",0,max); // toda la matriz
int delta = dim/2;
Process(a,max,dim,delta);
ShowMatrix(a,"cuadro magico ",delta,max-delta);// la parte del cuadrado magico
if(Check(a,delta,max-delta))
cout << "cuadro magico " << endl;
else
cout << "cuadro magico " << endl;
cout << endl << "fin del programa - adios ! ! !" << endl;
return 0;
} // MAIN
// program oia37.cpp
// cuadrado magico
// written in Borland CPP ver 4.5
const int DIM = 15,
MAX = 2*DIM-1;
#include <iostream.h>
#include <iomanip.h>
int GetDim()
{
for(int dim = -1;;)
{
cout << "enter an odd number betwen 1 to " << DIM << " : ";
cin >> dim;
if(!(dim%2)) // dim no es un numero inpar
continue;
if(dim >= 1 && dim <= DIM) // dim fuera del rango exigido
break;
}
return dim;
} // GET DIM
void ShowMatrix(int a[][MAX],char *msg,int start,int end)
{
cout << msg << " : " << endl << endl;
for(int i = start;i < end;i++)
{
for(int j = start;j < end;j++)
{
if(a[i][j])
cout << setw(5) << a[i][j];
else
cout << setw(5) << '.';
} // FOR J
cout << endl;
} // FOR I
cout << endl;
} // SHOW MATRIX
void InitMatrix(int a[][MAX],int dim) // construir la matriz basica
{
for(int i = 0;i < dim;i++)
for(int j = 0;j < dim;j++)
a[i][j] = 0;
int num = 1,
xo = dim/2,
yo = 0;
for(int diagonal = 0;diagonal < dim/2+1;diagonal++)
{
for(int i = 0;i < dim/2+1;i++)
a[yo+i][xo+i] = num++;
xo--;
yo++;
}
} // INIT MATRIX
void Process(int a[][MAX],int max,int dim,int delta)
{ // construccion del cuadrado magico
int i,j; // a partir de la matriz basica
for(i = delta;i < max-delta;i++) // arreglar las filas
{
for(j = delta;j < max/2;j++)
if(!a[i][j])
a[i][j] = a[i][j+dim];
for(j++;j < max;j++)
if(!a[i][j])
a[i][j] = a[i][j-dim];
}
for(j = delta;j < max-delta;j++) // arreglar las columnas
{
for(i = delta;i < max/2;i++)
if(!a[i][j])
a[i][j] = a[i+dim][j];
for(i++;i < max;i++)
if(!a[i][j])
a[i][j] = a[i-dim][j];
}
} // PROCESS
int Check(int a[][MAX],int start,int end) // controlar que el cuadrado
{ // obtenido es realmente magico
int suma = 0,sumb = 0,i,j,k = end-1;
for(i = start;i < end;i++) // chequear diagonales
{
suma += a[i][i];
sumb += a[i][k--];
}
if(suma != sumb)
return 0;
int total = suma;
for(i = start;i < end;i++) // chequear filas y solumnas
{
suma = sumb = 0;
for(j = start;j < end;j++)
{
suma += a[i][j]; // filas
sumb += a[j][i]; // columnas
}
if(suma != total || sumb != total)
return 0;
}
cout << endl << "square constant is : " << total << endl << endl;
return 1;
} // CHECK
int main()
{
int a[MAX][MAX],
dim = GetDim(), // dimension del cuadrado magico
max = 2*dim-1; // dimension de la matriz basica
InitMatrix(a,max);
ShowMatrix(a,"source matrix",0,max); // toda la matriz
int delta = dim/2;
Process(a,max,dim,delta);
ShowMatrix(a,"magic square",delta,max-delta);// la parte del cuadrado magico
if(Check(a,delta,max-delta))
cout << "magic square OK" << endl;
else
cout << "wrong magic square" << endl;
cout << endl << "end of program - good bye ! ! !" << endl;
return 0;
} // MAIN
// cuadrado magico
// written in Borland CPP ver 4.5
const int DIM = 15,
MAX = 2*DIM-1;
#include <iostream.h>
#include <iomanip.h>
int GetDim()
{
for(int dim = -1;;)
{
cout << "enter an odd number betwen 1 to " << DIM << " : ";
cin >> dim;
if(!(dim%2)) // dim no es un numero inpar
continue;
if(dim >= 1 && dim <= DIM) // dim fuera del rango exigido
break;
}
return dim;
} // GET DIM
void ShowMatrix(int a[][MAX],char *msg,int start,int end)
{
cout << msg << " : " << endl << endl;
for(int i = start;i < end;i++)
{
for(int j = start;j < end;j++)
{
if(a[i][j])
cout << setw(5) << a[i][j];
else
cout << setw(5) << '.';
} // FOR J
cout << endl;
} // FOR I
cout << endl;
} // SHOW MATRIX
void InitMatrix(int a[][MAX],int dim) // construir la matriz basica
{
for(int i = 0;i < dim;i++)
for(int j = 0;j < dim;j++)
a[i][j] = 0;
int num = 1,
xo = dim/2,
yo = 0;
for(int diagonal = 0;diagonal < dim/2+1;diagonal++)
{
for(int i = 0;i < dim/2+1;i++)
a[yo+i][xo+i] = num++;
xo--;
yo++;
}
} // INIT MATRIX
void Process(int a[][MAX],int max,int dim,int delta)
{ // construccion del cuadrado magico
int i,j; // a partir de la matriz basica
for(i = delta;i < max-delta;i++) // arreglar las filas
{
for(j = delta;j < max/2;j++)
if(!a[i][j])
a[i][j] = a[i][j+dim];
for(j++;j < max;j++)
if(!a[i][j])
a[i][j] = a[i][j-dim];
}
for(j = delta;j < max-delta;j++) // arreglar las columnas
{
for(i = delta;i < max/2;i++)
if(!a[i][j])
a[i][j] = a[i+dim][j];
for(i++;i < max;i++)
if(!a[i][j])
a[i][j] = a[i-dim][j];
}
} // PROCESS
int Check(int a[][MAX],int start,int end) // controlar que el cuadrado
{ // obtenido es realmente magico
int suma = 0,sumb = 0,i,j,k = end-1;
for(i = start;i < end;i++) // chequear diagonales
{
suma += a[i][i];
sumb += a[i][k--];
}
if(suma != sumb)
return 0;
int total = suma;
for(i = start;i < end;i++) // chequear filas y solumnas
{
suma = sumb = 0;
for(j = start;j < end;j++)
{
suma += a[i][j]; // filas
sumb += a[j][i]; // columnas
}
if(suma != total || sumb != total)
return 0;
}
cout << endl << "square constant is : " << total << endl << endl;
return 1;
} // CHECK
int main()
{
int a[MAX][MAX],
dim = GetDim(), // dimension del cuadrado magico
max = 2*dim-1; // dimension de la matriz basica
InitMatrix(a,max);
ShowMatrix(a,"source matrix",0,max); // toda la matriz
int delta = dim/2;
Process(a,max,dim,delta);
ShowMatrix(a,"magic square",delta,max-delta);// la parte del cuadrado magico
if(Check(a,delta,max-delta))
cout << "magic square OK" << endl;
else
cout << "wrong magic square" << endl;
cout << endl << "end of program - good bye ! ! !" << endl;
return 0;
} // MAIN
necesityo ayuda con un programa que debo realizar para mi carrera. acabo de empezar a programar y soy un novatiyo en esto. el programa es muy simple:
escribir un programa que lea caracteres desde la entrada estandar hasta leer el caracter "." e imprima en pantalla el numero total de vocales que se han leido. el programa debe contar tanto vocales mayusculas como minusculas pero no las acentuadas. la salida del programa debe ser un linea con el texto "El total de vocales es:" seguido del numero de vocales encontradas.
porfavor es urgente, yevo dos dias con el y no e conseguido acerlo AYUDA
escribir un programa que lea caracteres desde la entrada estandar hasta leer el caracter "." e imprima en pantalla el numero total de vocales que se han leido. el programa debe contar tanto vocales mayusculas como minusculas pero no las acentuadas. la salida del programa debe ser un linea con el texto "El total de vocales es:" seguido del numero de vocales encontradas.
porfavor es urgente, yevo dos dias con el y no e conseguido acerlo AYUDA
creo que tengo la res puesta mandame tu direccion de correo para responderte y para aquellos que tengan dudas contactenme a mi correo soy catedratico de la facultad de computacion de la UNAM.
espero sus preguntas
espero sus preguntas
Ola mi amorsote si necesitas lo del cuadrado magico yo te puedo ayudar mi vida, ay te lo mando ya ta en c++ asi que solo es pasarlo y funciona
Si necersitas ayuda llamame
Besotes mi amorsote divino, TQm
Daniel Martinez desde bogota Colombia
Universidad de la salle
#include<conio.h>
#include<iostream.h>
void main ()
{ int n,fil,col,c,M[30][30];
clrscr();
do{
cout<<"Ingrese numero :";
cin>>n;
}while(n<3 || !(n%2));
fil=1;col=n/2+1;
for(c=1;c<=n*n;c++)
{ M[fil][col]=c;
if(c%n==0)
fil+=1;
else{ if(fil==1)
fil=n;
else
fil-=1;
if(col==n)
col=1;
else
col+=1;
}
}
for(fil=1;fil<=n;fil++)
{ for(col=1;col<=n;col++)
{ cout<<M[fil][col]<<"\t";
}
cout<<endl;
}
getch();
}
Si necersitas ayuda llamame
Besotes mi amorsote divino, TQm
Daniel Martinez desde bogota Colombia
Universidad de la salle
#include<conio.h>
#include<iostream.h>
void main ()
{ int n,fil,col,c,M[30][30];
clrscr();
do{
cout<<"Ingrese numero :";
cin>>n;
}while(n<3 || !(n%2));
fil=1;col=n/2+1;
for(c=1;c<=n*n;c++)
{ M[fil][col]=c;
if(c%n==0)
fil+=1;
else{ if(fil==1)
fil=n;
else
fil-=1;
if(col==n)
col=1;
else
col+=1;
}
}
for(fil=1;fil<=n;fil++)
{ for(col=1;col<=n;col++)
{ cout<<M[fil][col]<<"\t";
}
cout<<endl;
}
getch();
}
