10 diciembre 2006

Solución a los problemas del examen (B)

/*
Crear un programa que contenga un menú el cual permita realizar diferentes operaciones. (Suma, Resta)
a) El programa tendrá dos vectores inicializados de n elementos y un vector puntero de n elementos también.
b) Si presionan sumar el programa solo realizará la suma de números pares
c) Si se presiona Resta, el programa solo realizará la resta de números impares.
b) Al presionar cualquiera de las opciones (operaciones) se guardará el resultado de la operación en el vector puntero.
d) También mostrará la dirección en memoria donde se almacenó el valor.
e) La operación la realizará una función la cual recibirá dos valores del tipo puntero y ahí mismo se desplegará el resultado, como también mostrará la dirección de memoria que le fue asignada a la variable tipo puntero.

…. MENU……..
1.-… Suma
2.-…. Resta
3.- … Salir
*/

using System;
using System.Collections.Generic;
using System.Text;

namespace III_Parcial_Examen1
{


class Program
{

unsafe static void Operacion1(int* v1, int* v2)
{
int x, y = 0;
int* presultado = stackalloc int[10];
int* direccion;
direccion = presultado;
for (x = 0; x < 10; x++)
{
if (v1[x] % 2 == 0 && v2[x] % 2 == 0)//verificando que sea par
{
presultado[y] = v1[x] + v2[x];
Console.WriteLine("solo son valores pares {0} y {1}, el resultado {2}", v1[x], v2[x], presultado[y]);

Console.WriteLine("Direccion {0}", (int)direccion);
direccion++;
y++;
}

}
}
unsafe static void Operacion2(int* v1, int* v2)
{
int x, y = 0;
int* presultado = stackalloc int[10];
int* direccion;
direccion = presultado;
for (x = 0; x < 10; x++)
{
if (v1[x] % 2 != 0 && v2[x] % 2 != 0) //verificando que sea impar
{
presultado[y] = v1[x] - v2[x];
Console.WriteLine("solo son valores pares {0} y {1}, el resultado {2}", v1[x], v2[x], presultado[y]);
Console.WriteLine("Direccion {0}", (int)direccion);
direccion++;
y++;
}

}
}
unsafe static void Main(string[] args)
{
int[] vector1 = new int[] { 13, 22, 53, 4, 5, 46, 7, 8, 9, 150 }; //INICIALIZACION DE VECTORES
int[] vector2 = new int[] { 1, 58, 4, 47, 8, 6, 79, 78, 69, 10 };
int* pvector = stackalloc int[10]; //DECLARACION DEL VECTOR PUNTERO
int* pvector2 = stackalloc int[10];
int opc = 0;
int x = 0;
do
{
Console.WriteLine("...Menu...");
Console.WriteLine("1.- ....Suma");
Console.WriteLine("2.- ... Resta");
Console.WriteLine("3.- ... Salir");
opc = int.Parse(Console.ReadLine());
switch (opc)
{
case 1:
Console.WriteLine("....Suma....");
for (x = 0; x < 10; x++)
{
pvector[x] = vector1[x];
pvector2[x] = vector2[x];

}
Operacion1(pvector, pvector2);

break;

case 2:

Console.WriteLine("....Resta....");
for (x = 0; x < 10; x++)
{
pvector[x] = vector1[x];
pvector2[x] = vector2[x];

}
Operacion2(pvector, pvector2);

break;

case 3:
Console.WriteLine("....Salida....");
break;
default:
break;

}

} while (opc < 3);

}
}
}

No hay comentarios.: