Damas y caballeros, este es mi primer aporte. Se trata de un programa que me habían dejado en la universidad como tarea. El enunciado de la tarea dice así: Realice un programa que llene dos arreglos unidimensionales de 10 elementos con valores aleatorios enteros de 1 a 15. En cada arreglo no puede existir el mismo número repetido, pero si puede existir en el otro arreglo. Cuando termina de llenar los arreglos debe mostrar su contenido uno a la par del otro, como se muestra a continuación:
Posicion Arreglo 1 Arreglo 2
1 10 8
2 15 7
3 1 6
4 6 4
5 12 9
6 9 11
....
Luego deberá sumar los resultados en un tercer arreglo tomando el primer elemento del arreglo 1 y sumarlo con el último elemento del arreglo 2, valore que irá en la posición 1 del arreglo 3.
Al finalizar la suma de los elementos debe mostrar el resultado del tercer vector como se muestra a continuación:
Posicion Arreglo 3
1 21
2 24
3 5
4 12
5 19
6 17
A cada les dejo el código fuente del programa. Me gustaría que opinen, den sugerencias. Yo apenas estoy empezando en el mundo de la programación. Así que todas sus sugerencias serán bienvenidas
//Suma de arreglos.
#include <iostream>
using std::cout;
using std::endl;
#include <iomanip>
using std::setw;
#include <cstdlib>
#include <ctime>
// la función main comienza la ejecución del programa
int main()
{
// se declara los arreglos
int x[ 11 ] ;
int y[ 11 ] ;
int z[ 11 ] ;
// se declara las variables
int a1 = 0;
int a2 = 0;
srand( time( 0 ) ); // semilla generadora de números aleatorios
cout << "Posicion" << setw( 17 ) << "Arreglo 1"
<< setw( 17 ) << "Arreglo 2" << "\n" << endl;
for ( int i = 1; i < 11; i++ )
{
a1 = (1 + rand() % 15);
a2 = (1 + rand() % 15);
int h = 0;
int p = 0;
// se declara estructuras de control para evitar que los números aleatorios se repitan
while (h < i)
{
if (a1 != x[h])
{
h++;
}
else
{
a1 =(1 + rand() % 15);
h = 0;
}
}
while (p < i)
{
if (a2 != y[p])
{
p++;
}
else
{
a2 =(1 + rand() % 15);
p = 0;
}
}
//los arreglos se les asigna las varables
x = a1;
y = a2;
cout << setw ( 9 ) << i
<< setw ( 16 ) << x[ i ]
<< setw ( 18 ) << y[ i ] << endl;
}
cout << "\n La suma de los Arreglos es:\n ";
int haciaAdelante = 1;
int haciaAtras = 11;
// se declara una estructura de control para hacer la suma de los arreglos de forma diagonal
for (haciaAdelante = 0; haciaAdelante < 11; haciaAdelante++)
{
z [haciaAdelante] = x[haciaAdelante] + y[haciaAtras];
haciaAtras--;
}
cout << "\nPosicion" << setw( 17 ) << "Arreglo 3" << "\n" << endl;
for ( int n = 1; n <= 10; n++ )
cout << setw ( 9 ) << n << setw ( 16 ) << z[ n ] << endl;
system("PAUSE");
return 0;
} //fin de la función main
Posicion Arreglo 1 Arreglo 2
1 10 8
2 15 7
3 1 6
4 6 4
5 12 9
6 9 11
....
Luego deberá sumar los resultados en un tercer arreglo tomando el primer elemento del arreglo 1 y sumarlo con el último elemento del arreglo 2, valore que irá en la posición 1 del arreglo 3.
Al finalizar la suma de los elementos debe mostrar el resultado del tercer vector como se muestra a continuación:
Posicion Arreglo 3
1 21
2 24
3 5
4 12
5 19
6 17
A cada les dejo el código fuente del programa. Me gustaría que opinen, den sugerencias. Yo apenas estoy empezando en el mundo de la programación. Así que todas sus sugerencias serán bienvenidas
//Suma de arreglos.
#include <iostream>
using std::cout;
using std::endl;
#include <iomanip>
using std::setw;
#include <cstdlib>
#include <ctime>
// la función main comienza la ejecución del programa
int main()
{
// se declara los arreglos
int x[ 11 ] ;
int y[ 11 ] ;
int z[ 11 ] ;
// se declara las variables
int a1 = 0;
int a2 = 0;
srand( time( 0 ) ); // semilla generadora de números aleatorios
cout << "Posicion" << setw( 17 ) << "Arreglo 1"
<< setw( 17 ) << "Arreglo 2" << "\n" << endl;
for ( int i = 1; i < 11; i++ )
{
a1 = (1 + rand() % 15);
a2 = (1 + rand() % 15);
int h = 0;
int p = 0;
// se declara estructuras de control para evitar que los números aleatorios se repitan
while (h < i)
{
if (a1 != x[h])
{
h++;
}
else
{
a1 =(1 + rand() % 15);
h = 0;
}
}
while (p < i)
{
if (a2 != y[p])
{
p++;
}
else
{
a2 =(1 + rand() % 15);
p = 0;
}
}
//los arreglos se les asigna las varables
x = a1;
y = a2;
cout << setw ( 9 ) << i
<< setw ( 16 ) << x[ i ]
<< setw ( 18 ) << y[ i ] << endl;
}
cout << "\n La suma de los Arreglos es:\n ";
int haciaAdelante = 1;
int haciaAtras = 11;
// se declara una estructura de control para hacer la suma de los arreglos de forma diagonal
for (haciaAdelante = 0; haciaAdelante < 11; haciaAdelante++)
{
z [haciaAdelante] = x[haciaAdelante] + y[haciaAtras];
haciaAtras--;
}
cout << "\nPosicion" << setw( 17 ) << "Arreglo 3" << "\n" << endl;
for ( int n = 1; n <= 10; n++ )
cout << setw ( 9 ) << n << setw ( 16 ) << z[ n ] << endl;
system("PAUSE");
return 0;
} //fin de la función main