using System;
namespace tema5
{
class MainClass
{
//Guardo los máximos en una constante;
const int FILAS = 2;
const int COLUMNAS = 2;
//la funció menú muestra las opciones del menú y permite escoger una de ellas.
static int menu()
{
int n;
Console.WriteLine("1. Rellena la primera matriz.");
Console.WriteLine("2. Rellena la segunda matriz.");
Console.WriteLine("3. Visualiza las matrices.");
Console.WriteLine("4. Suma matrices.");
Console.WriteLine("5. Producto por un escalar.");
Console.WriteLine("6. Producto de matrices.");
Console.WriteLine("7. Transpuesta");
Console.WriteLine("8. Salir");
Console.WriteLine("Escoge opción:");
n = int.Parse(Console.ReadLine());
return n;
}
//la función primeraMatriz introduce valores en la primera matriz
static void primeraMatriz(int[ , ]matriz)
{
for(int i=0; i< FILAS; i++)
{
for(int j=0; j< COLUMNAS; j++)
{
Console.WriteLine("Introduce número:");
matriz[i,j] = int.Parse(Console.ReadLine());
}
}
}
//la función segundaMatriz introduce valores en la segunda matriz
static void segundaMatriz(int[,] matriz)
{
for (int i = 0; i < FILAS; i++)
{
for (int j = 0; j < COLUMNAS; j++)
{
Console.WriteLine("Introduce número:");
matriz[i, j] = int.Parse(Console.ReadLine());
}
}
}
//La función visualiza muestra las matrices.
static void visualiza (int [ , ] matrizUno, int [ , ] matrizDos)
{
Console.WriteLine("MATRIZ UNO");
for (int i = 0; i < FILAS; i++)
{
for (int j = 0; j < COLUMNAS; j++)
{
Console.Write(matrizUno[i,j]);
Console.Write(" ");
}
Console.Write("\n");
}
Console.Write("\n");
Console.WriteLine("MATRIZ DOS");
for (int i = 0; i < FILAS; i++)
{
for (int j = 0; j < COLUMNAS; j++)
{
Console.Write(matrizDos[i, j]);
Console.Write(" ");
}
Console.Write("\n");
}
}
//La función suma sumará dos matrices.
static void suma(int[,] matrizUno, int[,] matrizDos)
{
for (int i = 0; i < FILAS; i++)
{
for (int j = 0; j < COLUMNAS; j++)
{
Console.Write(matrizUno[i,j]+matrizDos[i, j]);
Console.Write(", ");
}
Console.Write("\n");
}
}
//La funcion productoEscalar multiplica una matriz por un entero.
static void productoEscalar (int[,] matriz, int n)
{
for (int i = 0; i < FILAS; i++)
{
for (int j = 0; j < COLUMNAS; j++)
{
Console.Write(matriz[i, j] * n);
Console.Write(", ");
}
Console.Write("\n");
}
}
//La función productoMatrices multiplica las dos matrices.
static void productoMatrices (int[,] matrizUno, int[,] matrizDos)
{
int[,] C= new int[FILAS, COLUMNAS];
for (int i = 0; i < FILAS; i++)
{
for (int j = 0; j < COLUMNAS; j++)
{
for (int k = 0; k < COLUMNAS; k++)
{
C [i, j] += matrizUno [i, k] * matrizDos [k, j];
}
}
}
for (int i = 0; i < FILAS; i++)
{
for (int j = 0; j < COLUMNAS; j++)
{
Console.Write(C[i, j]);
Console.Write(", ");
}
Console.Write("\n");
}
}
//La Función traspuesta cambia las filas por las columnas de la matriz seleccionada.
static void traspuesta(int[,] matriz, int [,] t)
{
for (int i = 0; i < FILAS; i++)
{
for (int j = 0; j < COLUMNAS; j++)
{
t[j, i] = matriz [i,j];
}
}
}
//Visualiza la matriz transpuesta
static void visualizarT(int[,] matriz)
{
for (int i = 0; i < FILAS; i++)
{
for (int j = 0; j < COLUMNAS; j++)
{
Console.Write(matriz[i,j]);
Console.Write(" ");
}
Console.Write("\n");
}
}
public static void Main(string[] args)
{
//las variables de tipo array
int[ ,] matrizUno = new int[FILAS,COLUMNAS];
int[ , ] matrizDos = new int[FILAS,COLUMNAS];
int[,] T = new int[FILAS, COLUMNAS];
int opcion = 0;
int aux, multiplica;
do
{
Console.Clear();
opcion = menu();
switch (opcion)
{
case 1:
primeraMatriz(matrizUno);
break;
case 2:
segundaMatriz(matrizDos);
break;
case 3:
visualiza(matrizUno,matrizDos);
break;
case 4:
suma(matrizUno, matrizDos);
break;
case 5:
Console.WriteLine("¿Qué matriz deseas multiplicar?(1/2)");
aux = int.Parse(Console.ReadLine());
Console.WriteLine("¿Número con el que deseas multiplicar la matriz?");
multiplica = int.Parse(Console.ReadLine());
if (aux==1)
{
productoEscalar(matrizUno, multiplica);
}
else
{
productoEscalar(matrizDos, multiplica);
}
break;
case 6:
productoMatrices(matrizUno, matrizDos);
break;
case 7:
Console.WriteLine("¿De qué matriz deseas la transpuesta?(1/2)");
aux = int.Parse(Console.ReadLine());
if (aux == 1)
{
traspuesta(matrizUno,T);
visualizarT(T);
}
else
{
traspuesta(matrizDos,T);
visualizarT(T);
}
break;
case 8:
Console.WriteLine("bye,bye...");
break;
default:
Console.WriteLine("La opción escogida no es válida, vuelva a intentarlo");
break;
}
Console.ReadKey();
} while (opcion != 8);
}
}
}
0 comentarios:
Publicar un comentario