Risipa de key_press | Programare

Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Risipa de key_press | Programare - Programare .Net | Tehnici de programare | Tutoriale | Lectii si exemple

Parcurgerea diagonalei secundare

Sa se afiseze elementele de pe diagonala secundara dintr-o matrice pătratică de elemente întregi.

Analiza Programului

Conform definitiei, o matrice este reprezentata de un tablou (vector) cu m linii si n coloane, ale carui elemente pot fi reprezentate de numere complexe.
Un vector poate avea mai mult de o dimensiune. De exemplu, declararea unui vector int[,] m = new int[m,n] inseamna crearea unui vector cu m linii si n coloane.
O matrice se numeste patratica daca numarul de linii este egal cu numarul de coloane ale matricei. O matrice patratica are doua diagonale: diagonala principala (care uneste primul element al matricei, m[0][0], cu ultimul element, m[n-1][n-1]) si diagonala secundara (care uneste ultimul element de pe prima linie, m[0][n-1], cu primul element de pe ultima linie, m[0][n-1]).
Elementele de pe diagonala secundara sunt:m[0][n-1], m[1][n-2], m[2][n-3], …, m[n-1][0]. Observam ca pe diagonala secundara cand indicele liniei creste cu 1, indicele coloanei scade cu 1.

using System;

namespace _46
{
    class Program
    {
        static void Main(string[] args)
        {
            int l, c;

            Console.WriteLine("Ordinul matricii patratice:");
            int n = int.Parse(Console.ReadLine());
            int [,] m = new int [n,n];

            Console.WriteLine("Introduceti elementele matricii:");
            for (l = 0; l < n; l++)
            {

                for (c = 0; c < n; c++)
                {
                    Console.Write("M[{0}][{1}]= ", l + 1 , c + 1);
                    m[l,c] = int.Parse(Console.ReadLine());
                }
            }

            Console.WriteLine("Matricea are elementele:");
            //afiseaza elementele matricii
            for (l = 0; l < n; l++)
            {
                for (c = 0; c < n; c++)
                {
                    Console.Write(m[l,c] + " ");
                }
                Console.WriteLine();
            }

            Console.WriteLine("Elementele de pe diagonala secundara:");
            //indicele linie creste cu 1, indicele coloanei scade cu 1
            for (int i = 0; i < n; i++)
            {
                Console.Write(m[i, n - i - 1].ToString() + " ");
            }
            
            Console.ReadLine();
        }
    }
}
Category: Uncategorized

Your email address will not be published. Required fields are marked *

*