Popular Post

Posted by : Unknown martes, 17 de junio de 2014

Crear una matriz de n * m filas (cargar n y m por teclado) Imprimir la matriz completa y la última fila.

Programa:

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

namespace Matriz5
{
    class Matriz5
    {
        private int[,] mat;

        public void Cargar() 
        {
            Console.Write("Cuantas fila tiene la matriz:");
            string linea;
            linea=Console.ReadLine();
            int filas=int.Parse(linea);
            Console.Write("Cuantas columnas tiene la matriz:");
            linea=Console.ReadLine();
            int columnas=int.Parse(linea);
            mat=new int[filas,columnas];
            for(int f = 0; f < mat.GetLength(0); f++) 
            {
                for (int c = 0; c < mat.GetLength(1); c++)
                {
                    Console.Write("Ingrese componente:");
                    linea = Console.ReadLine();
                    mat[f,c] = int.Parse(linea);
                }
            }
        }

        public void Imprimir() 
        {
            for(int f = 0; f < mat.GetLength(0); f++)
            {
                for(int c = 0; c < mat.GetLength(1); c++)
                {
                    Console.Write(mat[f,c]+" ");
                }
                Console.WriteLine();
            }
        }

        public void ImprimirUltimaFila() 
        {
         Console.WriteLine("Ultima fila");
            for(int c = 0; c < mat.GetLength(1); c++)
            {
                 Console.Write(mat[mat.GetLength(0)-1,c]+" ");
            }
        }

        static void Main(string[] args)
        {
            Matriz5 ma = new Matriz5();
            ma.Cargar();
            ma.Imprimir();
            ma.ImprimirUltimaFila();
            Console.ReadKey();
        }
    }
}
En este ejemplo cada vez que se ejecute el programa el tamaño de la matriz lo define el usuario, para ello ingresamos por teclado dos enteros y seguidamente procedemos a crear la matriz con dichos valores:
            Console.Write("Cuantas fila tiene la matriz:");
            string linea;
            linea=Console.ReadLine();
            int filas=int.Parse(linea);
            Console.Write("Cuantas columnas tiene la matriz:");
            linea=Console.ReadLine();
            int columnas=int.Parse(linea);
            mat=new int[filas,columnas];
Ahora las estructuras repetitivas las acotamos preguntando a la misma matriz la cantidad de filas y la cantidad de columnas:
            for(int f = 0; f < mat.GetLength(0); f++) 
            {
                for (int c = 0; c < mat.GetLength(1); c++)
                {
                    Console.Write("Ingrese componente:");
                    linea = Console.ReadLine();
                    mat[f,c] = int.Parse(linea);
                }
            }
El algoritmo de impresión es idéntico al visto anteriormente con la modificación de las condiciones de los for:
            for(int f = 0; f < mat.GetLength(0); f++)
            {
                for(int c = 0; c < mat.GetLength(1); c++)
                {
                    Console.Write(mat[f,c]+" ");
                }
                Console.WriteLine();
            }
Para imprimir la última fila debemos disponer un valor fijo en el subíndice de la fila (en este caso no podemos disponer un número fijo sino preguntarle a la misma matriz la cantidad de filas y restarle uno ya que las filas comienzan a numerarse a partir de cero: mat[mat.GetLength(0)-1,c]
También la condición del for debemos preguntar a la matriz la cantidad de columnas mat.GetLength(1):
         Console.WriteLine("Ultima fila");
            for(int c = 0; c < mat.GetLength(1); c++)
            {
                 Console.Write(mat[mat.GetLength(0)-1,c]+" ");
            } 

Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Programación #5 - Date A Live - Powered by Blogger - Designed by Johanes Djogan -