• Zadání: Deklarujte symetrické dvourozměrné pole s názvem matice. Toto pole bude obsahovat celočíselné hodnoty. Pomocí statické metody VytvorMatici, kde matice je výstupním parametrem, automaticky naplňte matici příslušnými hodnotami, které budou vzrůstat po sloupcích v každém řádku, tzn. první prvek první řádky, tj. vlevo nahoře, obsahuje hodnotu 1, další prvek v sousedním sloupci vpravo bude obsahovat 2, atd. Přiřazení hodnoty aktuálnímu prvku proveďte pomocí proměnné hodnotaPrvku. Plnění proveďte pomocí dvou cyklů s krokem - cyklus pro procházení řádek a další vnořený cyklus pro procházení sloupců. V metodě VytvorMatici také načtěte rozměry matice - proměnná m bude obsahovat počet řádků matice, proměnná n bude obsahovat počet sloupců matice. Pro výpis hodnot prvků na vedlejší diagonále použijte statickou metodu VedlejsiDiagonala do níž matici předejte. U výpisu každého prvku na vedlejší diagonále uveďte v hranaté závorce index řádku a index sloupce oddělené čárkou. Obě metody jsou volány v hlavní metodě Main
  • Řešení:
    • Podprogramy:
      • VytvorMatici
//Deklarace metody, kde dvourozměrné pole je deklarováno jako výstupní parametr metody
public static void VytvorMatici(out int[ , ] matice)
{
    // Deklarace proměnné: 'hodnota' - hodnota v prvku
    int hodnotaPrvku = 1;
 
    //Výpis textu pro zadání počtu řádků matice
    Console.Write("Zadejte počet řádků matice: ");
    /* Deklarace proměnné 'm' - počet řádků matice
     * + konverze zadaného textu na číslo */
    int m = int.Parse(Console.ReadLine());
 
    // Deklarace proměnné: 'n' - celkový počet sloupců matice
    int n;
    do
    {            
        //Výpis textu pro zadání počtu sloupců matice
        Console.Write("Zadejte počet sloupců matice: ");
        /* Deklarace proměnné 'n' - počet sloupců matice
           * + konverze zadaného textu na číslo */
         n = int.Parse(Console.ReadLine());
    }
    //Prováděj cyklus pokud n je různé od m
    while (n != m);
 
 
    //Vytvoření instance dvourozměrného pole o specifikované velikosti
    matice = new int[m, n];
 
    //Cyklus procházející jednotlivé řádky matice
    for (int i = 0; i < m; i++)
    {
        //Cyklus procházející jednotlivé sloupce matice
        for (int j = 0; j < n; j++)
        {
            //Přiřazení hodnoty prvku matice
            matice[i, j] = hodnotaPrvku++;
        }
    }
}
      • VedlejsiDiagonala
//Deklarace metody vypisující obsah všech prvků na vedlejší diagonále dvourozměrného pole
public static void VedlejsiDiagonala(int[ , ] matice)
{
    //Cyklus procházející jednotlivé řádky matice
    for (int i = 0; i < matice.GetLength(0); i++)
    {
        //Cyklus procházející jednotlivé sloupce matice
        for (int j = 0; j < matice.GetLength(1); j++)
        {
            //Pokud se prvek nachází na vedlejší diagonále
            if (j == matice.GetLength(1) - i - 1)                    
                //Výpis textu s obsahem prvku včetně pozice prvku
                Console.WriteLine("Hodnota prvku matice[{0}, {1}]: {2}", i, j, matice[i, j]);
        }
    }
}
    • Hlavní program - Main:

static void Main(string[] args)
{
    //Zavolání metody s výstupním parametrem matice
    VytvorMatici(out int[,] matice);
 
    //Zavolání metody pro vypsání prvků na vedlejší diagonále matice
    VedlejsiDiagonala(matice);
 
    //Čekání na stisk klávesy -> ukončení programu
    Console.ReadKey();
}
  • Výstup programu:
Zadejte počet řádků matice: 4
Zadejte počet sloupců matice: 4
Hodnota prvku matice[0, 3]: 4
Hodnota prvku matice[1, 2]: 7
Hodnota prvku matice[2, 1]: 10
Hodnota prvku matice[3, 0]: 13

Última modificación: jueves, 13 de febrero de 2020, 00:48