Programación en C: Arreglos/ Arrays: suma y multiplicación Parte 2


arreglos: sumas y multiplicación


En el post anterior, trabajamos el siguiente enunciado: dado dos arreglos de números enteros, el primero con una dimensión de 5 y el segundo de 10, se desea imprimir la multiplicación de ellos. Para que el arreglo de 10 dimensiones tenga el mismo tamaño que el primero, es decir, 5 posiciones, se modificará de la siguiente manera: sume cada 2 posiciones continuas para que se obtengan sólo 5 resultados y así poderlo multiplicar con el primer arreglo. Pero ahora bien, en el caso en que los arreglos sean ingresados por el usuario, ¿cómo haríamos para resolver el ejercicio? Hoy, paso a paso mencionaré los cambios en los métodos y lo que debemos agregarle al programa que ya habíamos realizado (si deseas ver el programa anterior clic aqui)

Primero, los arreglos deben ir sin información, por lo que, quedarían expresados así:


int arre1[5]= {0,0,0,0,0}; //arreglo 1 con valores dados
int arre2[10] = {0,0,0,0,0,0,0,0,0,0}; //arreglo 2 con valores dados
Vamos a crear dos variables nuevas, que indicarán la posición, se utilizarán al momento de sumar el primer elemento con el segundo elemento del arreglo dos.
int a; //variable posicion para el segundo arreglo
int b; //variable posicion para el segundo arreglo
Evidentemente vamos a crear dos métodos para pedir el llenado de los arreglos.
void pedirdatosarre1();
void pedirdatosarre2();
El orden del main, se alterará, puesto que vamos a solicitar los datos al usuario antes de ejecutar la suma y multiplicación.

main()
{
clrscr();
pedirdatosarre1();
pedirdatosarre2();
sum();
multiplicacion();
imprimir();
getch();
return 0;
}

Los métodos para pedir los datos del arreglo se hacen con un for, para evitar confundir al usuario, así sabrá cuantos elementos lleva cada arreglo y su posición:
void pedirdatosarre1()
{
clrscr();
for (e =0; e<=4; e++)
{
printf("Inserte el elemento nro %d del primer arreglo: \n", e);
scanf("%d",&arre1[e]);
}
}

void pedirdatosarre2()
{
clrscr();
for (j =0; j<=9; j++)
{
printf("Inserte el elemento nro %d del segundo arreglo: \n", j);
scanf("%d",&arre2[j]);
}
}


Y por último, las variables que habíamos declarado al principio, servirán para indicar la posición a la que deseamos accesar en la suma, la variable a es para los números impares y la variable b es para los números pares:


void sum()
{
for (j=0; j<=4; j++)
{
a = j + j + 1;
b = j + j;
suma[j] =(arre2[a] + arre2[b]);
}
}


Si ejecutan el programa y le dan unos valores de prueba, verán como efectivamente cumple con los requerimientos. Así que, a practicar!
Éxitos.


Anuncio

Comentarios