martes, 2 de octubre de 2012

programación orientada objetos trabajo con matrices


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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string r = "s";
            Matriz matriz = new Matriz();
            matriz.IniciarPrograma();
            while (r == "s")
            {
                matriz.Menu();
                if (matriz.resp == "1")
                {
                    matriz.llenar_matrices_para_multiplicar();
                    matriz.Multiplicar();

                }
                if (matriz.resp == "2")
                {
                    matriz.llenarmatriz_Para_Ordenar();
                    matriz.ordenarMatriz(matriz.matriz1);
                    matriz.print();
                }


            }
           
        }
    }
    class Matriz
    {
        public string  resp;
       
        public int aux;
        public int respuesta=0;
        public int r,c,r2,c2;
        public int[,] matriz1;
        public int[,] matriz2;
        public int[,] matrizRespuestas = new int[3, 3];
        public void Menu()
        {
            Console.WriteLine("[1]multiplicar [2]ordenar");
            resp = Console.ReadLine();
           

        }
        public void llenarmatriz_Para_Ordenar()
        {
            for (int i = 0; i < r; i++)
            {
                for (int j = 0; j < c; j++)
                {
                    Console.WriteLine("matriz 1 ingrese un valor en la posicion :{0},{1} ", i, j);
                    matriz1[i, j] = int.Parse(Console.ReadLine());

                }
            }

        }
        public void IniciarPrograma()
        {
            Console.WriteLine("----------Bienvenido a la matriz---------------");
            Console.WriteLine("-----------------------------------------------");
            Console.WriteLine("-----------------------------------------------");
            r = 3;
            c = 3;
            matriz1 = new int[3, 3];
            r2 = 3;
            c2 = 3;
            matriz2 = new int[r2, c2];
        }
        public void llenar_matrices_para_multiplicar()
        {
            if (c == r2)
            {
               
           
           

            // COMIENZA CICLO PARA LLENAR LA PRIMERA MATRIZ
            for (int i = 0; i < r; i++)
            {
                for (int j = 0; j < c; j++)
                {
                    Console.WriteLine("matriz 1 ingrese un valor en la posicion :{0},{1} ", i, j);
                    matriz1[i, j] = int.Parse(Console.ReadLine());

                }
            }
            //COMIENZA CICLO PARA LLENAR LA SEGUNDA MATRIZ
            Console.WriteLine("LISTO!! AHORA INGRESE LOS VALORES DE LA SEGUNDA MATRIZ");
            for (int i = 0; i < r2; i++)
            {
                for (int j = 0; j < c2; j++)
                {
                    Console.WriteLine("matriz 2 ingrese un valor en la posicion :{0},{1} ", i, j);
                    matriz2[i, j] = int.Parse(Console.ReadLine());

                }
            }


            }
            else
            {
                Console.WriteLine("estas matrices no se pueden multiplicar");
            }
        }
        public void Multiplicar()
        {
            for (int i = 0; i < r; i++)
            {
                for (int j = 0; j < c2; j++)
                {
                    for (int k = 0; k < c; k++)
                    {
                        respuesta += matriz1[i, k] * matriz2[k, j];
                    }
                    matrizRespuestas[i, j] = respuesta;
                    respuesta = 0;
                }

            }
            Console.WriteLine("!!!!!!LA RESPUESTA ES !!!!!!");
            string igual = "";
            for (int i = 0; i < r; i++)
            {
                for (int j = 0; j < c2; j++)
                {
                    igual = igual + (matrizRespuestas[i, j].ToString() + " ");
                }
                Console.WriteLine("[" + igual + "]\n");
                igual = "";

            }


        }
        public void print()
        {
            string igual = "";
            for (int i = 0; i < r; i++)
            {
                for (int j = 0; j < c2; j++)
                {
                    igual = igual + (matriz1[i, j].ToString() + " ");
                }
                Console.WriteLine("[" + igual + "]\n");
                igual = "";

            }
        }

        public void ordenarMatriz(int[,] A)
        {
            int posmay ;
            int posmax ;
            for (int x = 0; x < 3; x++)
            {
                for (int y = 0; y < 3; y++)
                {
                    posmax = x;
                    posmay = y;
//matriz a comparar***********************************************************
                    for (int i = 0; i < 3; i++)
                    {

                        for (int j = 0; j < 3; j++)
                        {

                            if (A[posmax,posmay] < A[i, j])
                            {
                                posmax = i;
                                posmay = j;
                                aux = A[x, y];
                                A[x, y] = A[posmax, posmay];
                                A[posmax, posmay] = aux;

                            }
                        }

                    }

///************************fin del ciclo de la matriz a comparar********************
                }
        }

            
        }
    }
}


No hay comentarios:

Publicar un comentario