05 Arreglos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

54

ARREGLOS
Los arreglos son tipos de datos que permiten almacenar varios valores en una sola variable,
estas pueden ser multidimensionales.
Matriz, vector, arreglo( arreglo de 1 dimensión, 2 dimensiones, … n dimensiones)
Ejemplo de una dimensión: Ejemplo de dos dimensiones:
int x[5]; int m[3][4],t[3][4];
x[3]=7; m[2][1]=5;
x[0]=x[3]-3; m[1][2]=7;
m[0][1]=m[2][1]+4;
4 7 x 0 1 2 3

0 1 2 3 4 0 9
1 7
2 5

Ejemplo de una dimensión: Ejemplo de una dimensión:


#define N 5000 #define N 5000
int x[N],ne=4000; int x[N];
for (i=0;i<ne;i++) for (i=0;i<N;i++)
x[i]=5; x[i]=i+1;
5 5 5 5 .. 5 x 1 2 3 4 .. 5000 x
0 1 2 3 … 4999 0 1 2 3 … 4999

Ejemplo de una dimensión: Ejemplo de una dimensión:


#define N 5000 #define N 5000
int x[N],y[N]; int x[N];
for (i=0;i<N;i++)//0,1,2,3,… 4999 for (i=0;i<N;i++)
x[i]=i; x[i]=i%3; // 0,1,2,0,1,2,0,1,2,0,….
for (i=1;i<N;i++)//0, 1, 3, 6, 10, 15, 21 ..
for (i=0;i<N-1;i++) // x[i]=x[i-1]+i;
y[i]=x[i]+x[i+1]; ¿Cuál es la serie generada, en el arreglo x ?
0, 1, 3, 6, 10, ..

1 3 5 7 .. (vacío) y
0 1 2 3 … 4999

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


55
Ejemplo 1: Leer y mostrar un vector de una dimensión.
#include<iostream> void leer(int *n,int v[])
#include<time.h> {cout<<"Ingrese número de elementos:";
#include<conio.h> cin>>*n;
#include<math.h> for(int i=0;i<*n;i++)
using namespace std; {cout<<"V["<<i<<"]=";
//Prototipo de la funcion cin>>v[i];
#define N 1000 }
void leer(int *n,int v[]); }
void generar(int n,int v[]); void mostrar1(int n,int v[])
void mostrar1(int n,int v[]); {for(int i=0;i<n;i++)
void mostrar2(int n,int v[]); cout<<"V["<<i<<"]="<<v[i]<<endl;
void mostrar3(int n,int v[]); }
void mostrar4(int n,int v[]); void mostrar2(int n,int v[])
//Programa principal {for(int i=0;i<n;i++)
int main() cout<<v[i]<<" ";
{ int v[N],n; cout<<endl;
//leer(&n,v); }
n=10; void mostrar3(int n,int v[])
srand(time(NULL)); {cout<<"(";
generar(n,v); for(int i=0;i<n;i++)
cout<<"Mostrando los valores\n"; {cout<<v[i];
mostrar1(n,v); cout<<endl; if (i<n-1) cout<<",";
system("pause"); }
return 0; cout<<")"<<endl;
} }
//Desarrollo de las funciones void mostrar4(int n,int v[])//polinomio
void generar(int n,int v[]) {//Ahora usted intente aqui...
{for (int i=0;i<n;i++) }
v[i]=rand()%21; //5x^0+3x^1+4x^2+0x^3+5x^4.........
} //5+3x+4x^2+5x^4….

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


56
Ejemplo 2: Hallar el mayor y menor valor de un arreglo aleatorio, usar recursividad para el
mayor.
#include<iostream> int mayorec(int n,int v[])
#include<conio.h> {if (n==1) return v[0];
#include<math.h> else
#include<time.h> if (v[n-1]>mayorec(n-1,v))
using namespace std; return v[n-1];
//Prototipo de la funcion else
#define N 1000 return mayorec(n-1,v);
void generar(int n,int v[]); }
void mostrar(int n,int v[]); int menor(int n,int v[])
int mayor(int n,int v[]); {int m=v[0],i;
int mayorec(int n,int v[]); for(i=1;i<n;i++)
int menor(int n,int v[]); if (m>v[i]) m=v[i];
return m;
//programa principal }
int main()
{ int v[N],n; void generar(int n,int v[])
srand(time(NULL)); {int i;
n=10; for (i=0;i<n;i++)
generar(n,v); v[i]=rand()%101;
cout<<"Mostrando los valores\n"; }
mostrar(n,v); void mostrar(int n,int v[])
cout<<"El mayor es "<<mayorec(n,v)<<endl; {int i;
cout<<"El menor es "<<menor(n,v)<<endl; cout<<"(";
system("pause"); for(i=0;i<n;i++)
return 0; {cout<<v[i];
} if (i<n-1) cout<<",";
}
//desarrollo de las funciones cout<<")"<<endl;
int mayor(int n,int v[]) }
{int m=v[0],i;
for(i=1;i<n;i++)
if (m<v[i]) m=v[i];
return m;
}
Ejemplo 3: Implementar las operaciones básicas de:
1) Hallar el mayor valor y la posición de las casillas que la contienen.
2) Búsqueda
3) Ordenamiento
4) Intercambio

#include<iostream>
#include<math.h>
#include<time.h>

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


57
using namespace std;
//Prototipo de la funcion
#define N 1000
void generar(int n,int v[]);
void mostrar(int n,int v[]);
int mayor(int n,int v[]);
void mostrar_posicion_mayor(int m,int n,int v[]);
//programa principal
int main()
{ int v[N],n,m;
srand(time(NULL));
n=100;
generar(n,v);
cout<<"Mostrando los valores\n";
mostrar(n,v);
m=mayor(n,v);
cout<<"El mayor valor es "<<m<<endl;
cout<<"La posicion del mayor valor es(son):\n";
mostrar_posicion_mayor(m,n,v);

return 0;
}
//Prototipo de las funciones
void mostrar_posicion_mayor(int m,int n,int v[])
{for(int i=0;i<n;i++)
if (m==v[i])
cout<<i+1<<" ";
cout<<endl;
}

int mayor(int n,int v[])


{int m=v[0],i;
for(i=1;i<n;i++)
if (m<v[i])
m=v[i];
return m;
}

void generar(int n,int v[])


{int i;
for (i=0;i<n;i++)
v[i]=rand()%11;
}
void mostrar(int n,int v[])
{int i;

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


58
cout<<"(";
for(i=0;i<n;i++)
{cout<<v[i];
if (i<n-1) cout<<",";
}
cout<<")"<<endl;
}

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


59
Ejemplo 3: Generar un menú, para el tratamiento de 2 matrices.
#include<iostream>
#include<conio.h>
#include<math.h>
#include<time.h>
using namespace std;
#define Fm 100
#define Cm 100
//Prototipo de la funcion
void generar(int &f,int &c,float M[Fm][Cm]);
void leer(int &f,int &c,float M[Fm][Cm]);
void mostrar(int f,int c,float M[Fm][Cm]);
void sumar(int fa,int ca,float A[Fm][Cm],
int fb,int cb,float B[Fm][Cm],
int &fc,int &cc,float C[Fm][Cm]);
void restar(int fa,int ca,float A[Fm][Cm],
int fb,int cb,float B[Fm][Cm],
int &fc,int &cc,float C[Fm][Cm]);
void transpuesta(int fa,int ca,float A[Fm][Cm],
int &fc,int &cc,float C[Fm][Cm]);

void sumcol(int fa,int ca,float A[Fm][Cm],


int &fc,int &cc,float C[Fm][Cm]);

int menu();
//PROGRAMA PRINCIPAL
int main()
{ float A[Fm][Cm],B[Fm][Cm],C[Fm][Cm];
int fa=0,ca=0,fb=0,cb=0,fc=0,cc=0,opcion;
system("color f9");
srand(time(NULL));
do{
opcion=menu();
switch(opcion)
{case 1:cout<<"matriz A=\n";generar(fa,ca,A);
mostrar(fa,ca,A);break;
case 2:cout<<"matriz B=\n";generar(fb,cb,B);
mostrar(fb,cb,B);break;
case 3:cout<<"matriz A=\n";leer(fa,ca,A);
mostrar(fa,ca,A);break;
case 4:cout<<"matriz B=\n";leer(fb,cb,B);
mostrar(fb,cb,B);break;
case 5:cout<<"matriz A=\n";
mostrar(fa,ca,A);break;
case 6:cout<<"matriz B=\n";

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


60
mostrar(fb,cb,B);break;
case 7:cout<<"matriz C=\n";
mostrar(fc,cc,C);break;
case 8:cout<<"A+B==>C\n";sumar(fa,ca,A,fb,cb,B,fc,cc,C);
mostrar(fc,cc,C);break;
case 9:cout<<"A-B==>C\n";restar(fa,ca,A,fb,cb,B,fc,cc,C);
mostrar(fc,cc,C);break;
case 10:cout<<"Transpuesta(A)==>C\n"; transpuesta(fa,ca,A,fc,cc,C);
mostrar(fc,cc,C);break;
case 11:cout<<"Suma de columnas de A==>C\n";
sumcol(fa,ca,A,fc,cc,C);
cout<<"matriz A=\n";mostrar(fa,ca,A);
cout<<"matriz C=\n";mostrar(fc,cc,C);
break;
}
if (opcion!=0) {system("pause");system("cls");}
}while (opcion!=0);
return 0;
}
//Desarrollo de las funciones
void generar(int &f,int &c,float M[Fm][Cm])
{cout<<"Ingrese numero de filas:";cin>>f;
cout<<"Ingrese numero de columnas:";cin>>c;
for(int i=0;i<f;i++)
for (int j=0;j<c;j++)
M[i][j]=rand()%100+(rand()%100)/100.0;
}
void leer(int &f,int &c,float M[Fm][Cm])
{cout<<"Ingrese numero de filas:";cin>>f;
cout<<"Ingrese numero de columnas:";cin>>c;
cout<<"Ingrese sus elementos:\n";
for(int i=0;i<f;i++)
for (int j=0;j<c;j++)
{cout<<"M["<<i+1<<"]["<<j+1<<"]=";
cin>>M[i][j];
}
}

void mostrar(int f,int c,float M[Fm][Cm])


{cout.setf(ios::fixed);
cout.precision(2);
for(int i=0;i<f;i++)
{for (int j=0;j<c;j++)
{cout.width(8);
cout<<M[i][j]<<" ";

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


61
}
cout<<endl;
}
if(f*c==0)
cout<<"\t\tMatriz nula\n";

}
int menu()
{int opcion;
cout<<"**************************************************\n";
cout<<"* MENU PRINCIPAL DE *\n";
cout<<"* Genera aleatoriamente matriz (1)A y (2)B *\n";
cout<<"* Leer por pantalla matriz (3)A y (4)B *\n";
cout<<"* Mostrar matrices (5)A, (6)B y (7)C *\n";
cout<<"* Operaciones basicas grabadas en C: *\n";
cout<<"* (8)A+B (9)A-B (10)Transpuesta(A) *\n";
cout<<"* (11)Suma de columnas de A *\n";
cout<<"* (0)Salir *\n";
cout<<"* *\n";
cout<<"**************************************************\n";
cout<<"Ingrese opcion:";
cin>>opcion;
return opcion;
}
void sumar(int fa,int ca,float A[Fm][Cm],
int fb,int cb,float B[Fm][Cm],
int &fc,int &cc,float C[Fm][Cm])
{if (fa==fb && ca==cb)
{for(int i=0;i<fa;i++)
for (int j=0;j<ca;j++)
C[i][j]=A[i][j]+B[i][j];
fc=fa;
cc=ca;
}
else
fc=cc=0;

void restar(int fa,int ca,float A[Fm][Cm],


int fb,int cb,float B[Fm][Cm],
int &fc,int &cc,float C[Fm][Cm])
{if (fa==fb && ca==cb)
{for(int i=0;i<fa;i++)
for (int j=0;j<ca;j++)

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


62
C[i][j]=A[i][j]-B[i][j];
fc=fa;
cc=ca;
}
else
fc=cc=0;

void transpuesta(int fa,int ca,float A[Fm][Cm],


int &fc,int &cc,float C[Fm][Cm])
{for(int i=0;i<ca;i++)
for (int j=0;j<fa;j++)
C[i][j]=A[j][i];
fc=ca;
cc=fa;
}
void sumcol(int fa,int ca,float A[Fm][Cm],
int &fc,int &cc,float C[Fm][Cm])
{int s;
for (int j=0;j<ca;j++)
{s=0;
for(int i=0;i<fa;i++)
s=s+A[i][j];
C[0][j]=s;
}

fc=1;
cc=ca;
}

Problemas:
1) Genere aleatoriamente los datos de dos polinomios, en arreglos de una dimensión y
muestre la suma , la resta y el producto de dichos polinomios.
2) Lea los datos de un polinomio y muestre la derivada e integral de dicho polinomio
3) Lea 2 polinomios y muestre el producto entre ellas.
4) Considerando que un número gigante de 200 cifras se almacena en un vector (arreglo de
una dimensión), donde cada dígito es almacenado en cada elemento del vector, entonces
desarrolle un programa que lea 2 números grandes y calcule la suma, la resta, el producto
y el factorial.
5) Simule el juego de una rifa, considerando n participantes y considerando que el ganador
será designado en el k-esimo intento. Los que salieron sorteados antes del k-esimo intento,
son anulados del juego.

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


63
6) Registrar las notas de n alumnos, simulando desde números aleatorios en un arreglo
unidimensional y en otro se registrará sus DNI, la cual también se llenará de forma
aleatoria. Luego realizar los siguientes reportes:
a. La nota promedio
b. Cantidad de desaprobados
c. Los códigos de los alumnos tercio superior
d. Los códigos de los alumnos tercio inferior
e. Los códigos de los alumnos que obtuvieron la mayor nota.
f. Los códigos de los alumnos que obtuvieron la menor nota.
g. La(s) nota(s) que tiene mayor incidencia.

7) Implementar el juego del michi que se use un menú para que jueguen 2 personas, el
programa determinará el estado final del juego: Ganó jugador 1, Gano jugador 2 o Empate.
8) Mejorar el programa anterior, para que un jugador juegue con la máquina.
9) Implementar un programa que genere una matriz de nxn y el programa calcule la matriz
triangular superior equivalente a partir de operaciones elementales.
10) Implementar el juego del buscaminas.
11) Procesamiento de notas de un aula clase, en las filas se ubican las notas de cada alumno y
en las columnas se ubican las diferentes evaluaciones, por ejemplo, columna 1=> practica
1, Columna 2 => practica 2, así sucesivamente. El programa deberá realizar varios reportes
con el uso de un menú:
• Reporte de todas las notas mostrando al detalle todas las notas de todos los alumnos.
• Reporte de todos los alumnos desaprobados mostrando solamente su nota final
• Reporte de los alumnos que se encuentran en el tercio superior.
• Reporte de la máxima y mínima nota del aula.

Solución problema 1:

#include<iostream>
#include<math.h>
#include<time.h>
using namespace std;
//Prototipo de la funcion
#define N 1000
void generar(int p[],int n);
void mostrar(int p[],int n);
void mostrar2(int p[],int n);
void sumar(int p[],int np, int q[],int nq,int r[],int &nr);
void restar(int p[],int np, int q[],int nq,int r[],int &nr);
void producto(int p[],int np, int q[],int nq,int r[],int &nr);
//programa principal
int main()
{int p[N],q[N],r[N];

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


64
int np=4,nq=2,nr;
srand(time(NULL));
cout<<"p(x)=";generar(p,np);mostrar(p,np);
cout<<"q(x)=";generar(q,nq);mostrar(q,nq);
cout<<"S(x)=";sumar(p,np,q,nq,r,nr);mostrar(r,nr);
cout<<"R(x)=";restar(p,np,q,nq,r,nr);mostrar(r,nr);
cout<<"P(x)=";producto(p,np,q,nq,r,nr);mostrar(r,nr);
system("pause");
}
//Desarrollo de funciones
void generar(int p[],int n)
{for(int i=0;i<=n;i++)
p[i]=rand()%4+2;
}
void mostrar(int p[],int n)
{for(int i=0;i<=n;i++)
{if (p[i]!=0||1)
{if (i==0) cout<<p[i];
else
{if (p[i]>0) cout<<"+";
if (p[i]==-1) cout<<"-";
if (abs(p[i])!=1) cout<<p[i];
cout <<"x";
if (i>1) cout<<"^"<<i;
}
}

}
cout<<endl;
}
void mostrar2(int p[],int n)
{for(int i=0;i<=n;i++)
cout<<p[i]<<" ";
cout<<endl;
}
void sumar(int p[],int np, int q[],int nq,int r[],int &nr)
{if (np>nq)
{nr=np;
for (int i=nq+1;i<=nr;i++)
q[i]=0;
}
else
{nr=nq;
for (int i=np+1;i<=nr;i++)
p[i]=0;

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


65
}

for(int i=0;i<=nr;i++)
r[i]=p[i]+q[i];
}
void restar(int p[],int np, int q[],int nq,int r[],int &nr)
{if (np>nq)
{nr=np;
for (int i=nq+1;i<=nr;i++)
q[i]=0;
}
else
{nr=nq;
for (int i=np+1;i<=nr;i++)
p[i]=0;
}

for(int i=0;i<=nr;i++)
r[i]=p[i]-q[i];
}

void producto(int p[],int np, int q[],int nq,int r[],int &nr)


{int s;//np debe ser mayor que nq
nr=np+nq;
for(int ip=0;ip<=nq;ip++)
{s=0;
for(int iq=0;iq<=ip;iq++)
s=s+q[iq]*p[ip-iq];
r[ip]=s;
}
for(int ip=0;ip<=np-nq+1;ip++)
{s=0;
for(int iq=0;iq<=nq;iq++)
s=s+q[iq]*p[np-nq+ip-iq];
r[nq+ip]=s;
}

for(int ip=1;ip<=nq;ip++)
{s=0;
for(int iq=ip;iq<=nq;iq++)
s=s+q[iq]*p[np-(iq-ip)];
r[np+ip]=s;
}
}

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


66
Solución problema 3: (versión 1) //Desarrollo de las funciones
#include<iostream> void generarnumero(int nx[],int n)
#include<time.h> {for (int i=0;i<n;i++)
#include<conio.h> nx[i]=rand()%10;
#include<math.h> nx[n-1]=rand()%9+1;
using namespace std; }
//Prototipo de la funcion void mostrarnumero(int nx[],int n)
#define N 200 {for (int i=n-1;i>=0;i--)
void generarnumero(int nx[],int n); cout<<nx[i];
void mostrarnumero(int nx[],int n); cout<<endl;
void suma(int n1[],int n2[],int n3[],int n); }
//Programa principal
int main() void suma(int n1[],int n2[],int n3[],int n)
{srand(time(NULL)); {int lleva=0,s;
int n1[N],n2[N],n3[N],n; for(int i=0;i<n;i++)
n=100; {s=n1[i]+n2[i]+lleva;
generarnumero(n1,n);mostrarnumero(n1,n); n3[i]=s%10;
generarnumero(n2,n);mostrarnumero(n2,n); lleva=s/10;
suma(n1,n2,n3,n); mostrarnumero(n3,n); }
return 0; if (lleva>0)
} n3[n-1]=n3[n-1]+10;
}
Solución problema 3: (versión 2) void suma(int N1[],int n1,
//Prototipo de la funcion int N2[],int n2,
#define T 200 int N3[],int &n3)
void generarnumero(int nx[],int n); {int lleva=0,s;
void mostrarnumero(int nx[],int n); if (n1>n2)
void suma(int N1[],int n1, int N2[],int n2, {n3=n1;
int N3[],int &n3);//Programa principal for(int i=n2;i<n1;i++)
int main() N2[i]=0;
{srand(time(NULL)); }
int N1[T],N2[T],N3[T],n1,n2,n3; else
n1=80;n2=50; {n3=n2;
generarnumero(N1,n1);mostrarnumero(N1,n1); for(int i=n1;i<n2;i++)
generarnumero(N2,n2);mostrarnumero(N2,n2); N1[i]=0;
suma(N1,n1,N2,n2,N3,n3);mostrarnumero(N3,n3); }
return 0;
} for(int i=0;i<n3;i++)
//Desarrollo de las funciones {s=N1[i]+N2[i]+lleva;
void generarnumero(int nx[],int n) N3[i]=s%10;
{for (int i=0;i<n;i++) lleva=s/10;
nx[i]=rand()%10; }
nx[n-1]=rand()%9+1; if (lleva>0)
} { N3[n3]=lleva;
void mostrarnumero(int nx[],int n) n3++;
{for (int i=n-1;i>=0;i--) }
cout<<nx[i]; }
cout<<endl;
}

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


67
Solución problema 3 : (Versión 3) {int lleva=0,s;
#include<iostream> if (n1>n2)
#include<time.h> {n3=n1;
#include<conio.h> for(int i=n2;i<n1;i++)
#include<math.h> N2[i]=0;
using namespace std; }
//Prototipo de la funcion else
#define T 200 {n3=n2;
void generarnumero(int nx[],int n); for(int i=n1;i<n2;i++)
void mostrarnumero(int nx[],int n,int ancho); N1[i]=0;
void suma(int N1[],int n1, }
int N2[],int n2, for(int i=0;i<n3;i++)
int N3[],int &n3); {s=N1[i]+N2[i]+lleva;
void resta(int N1[],int n1, N3[i]=s%10;
int N2[],int n2, lleva=s/10;
int N3[],int &n3); }
//Programa principal if (lleva>0)
int main() { N3[n3]=lleva;
{srand(time(NULL)); n3++;
int N1[T],N2[T],N3[T],n1,n2,n3,ancho; }
n1=30;n2=20;ancho=34; }
generarnumero(N1,n1);mostrarnumero(N1,n1,ancho); void resta(int N1[],int n1,
generarnumero(N2,n2);mostrarnumero(N2,n2,ancho); int N2[],int n2,
suma(N1,n1,N2,n2,N3,n3);mostrarnumero(N3,n3,ancho); int N3[],int &n3)
resta(N1,n1,N2,n2,N3,n3);mostrarnumero(N3,n3,ancho); {int lleva=0,s;
return 0; if (n1>n2)
} {n3=n1;
//Desarrollo de las funciones for(int i=n2;i<n1;i++)
void generarnumero(int nx[],int n) N2[i]=0;
{for (int i=0;i<n;i++) }
nx[i]=rand()%10; else
nx[n-1]=rand()%9+1; {n3=n2;
} for(int i=n1;i<n2;i++)
void mostrarnumero(int nx[],int n,int ancho) N1[i]=0;
{for(int i=n;i<ancho;i++) }
cout<<" "; for(int i=0;i<n3;i++)
for (int i=n-1;i>=0;i--) if (N1[i]+lleva<N2[i])
cout<<nx[i]; {N3[i]= (N1[i]+lleva+10)-N2[i];
cout<<endl; lleva=-1;
} }
void suma(int N1[],int n1, else
int N2[],int n2, {N3[i]= (N1[i]+lleva)-N2[i];
int N3[],int &n3) lleva=0;
}
}

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


68
Problema: Aprendizaje de la tabla de multiplicación.

Desarrolle un programa que permita el aprendizaje de la tabla de


multiplicación en el menor tiempo posible en un niño.

Solución:

#include<iostream>
#include<conio.h>
#include<math.h>
#include<time.h>
using namespace std;
#define NF 81
#define NC 3

void generar_combinaciones(int T[NF][NC]);


void ejecutar_test(int T[NF][NC]);
void mezclar_combinaciones(int T[NF][NC]);
void intercambiar(int T[NF][NC], int i, int p);
int main()
{
int T[NF][NC];
generar_combinaciones(T);
ejecutar_test(T);

mezclar_combinaciones(T);
ejecutar_test(T);
//ejecutar_aprendizaje;
return 0;
}
void generar_combinaciones(int T[NF][NC])
{
int f = 0;
for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
{
T[f][0] = i + 1;
T[f][1] = j + 1;
T[f][2] = 0;
f++;
}
}
void ejecutar_test(int T[NF][NC])
{

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]


69
int r;
for(int i=0;i<NF;i++)
{
cout <<i+1<<") "<< T[i][0] << "x" << T[i][1]
<< "=";
cin >> r;
if (r == T[i][0] * T[i][1])
{
(T[i][2])++;
cout << "\tRespuesta correcta\n";
}
else
cout << "\tRespuesta INCORRECTA, la
respuesta es " << T[i][0] * T[i][1] << "\n";

}
}
void mezclar_combinaciones(int T[NF][NC])
{
int p;
for(int i=0;i<NF;i++)
{
p = rand() % NF;
intercambiar(T, i, p);
}
}

void intercambiar(int T[NF][NC], int f1, int f2)


{
int tem;
for(int j=0;j<NC;j++)
{
tem = T[f1][j];
T[f1][j]= T[f2][j];
T[f2][j]=tem;
}
}

Autor: Ing. Máximo Obregón R. (+51) 951629294 / [email protected]

También podría gustarte