Dvourozměrné pole - konzole
3. C#
3.7. Průměr pole
Další aritmetickou operací prováděnou nad prvky dvourozměrného pole, je výpočet aritmetického průměru ze všech prvků pole. Na následujícím obrázku vidíme, že se jedná o součet hodnot všech prvků pole podělený celkovým počtem prvků v poli, tj. m x n - viz Obrázek 1.

Obrázek 1: Průměr prvků dvourozměrného pole
Metoda PrumerPole, která je deklarována v regionu Operace s polem, navrací reálné číslo reprezentující vypočtený průměr. Metoda pro výpočet potřebuje tři parametry ve formě počtu řádků a sloupců matice a také samotnou matici obsahující jednotlivé prvky. Ve funkci jsou deklarovány následující lokální proměnné:
- prumer - průměrná reálná hodnota ze všech prvků vektoru
- suma - suma hodnot všech prvků vektoru
- i - index řádku matice (deklarace přímo v cyklu)
- j - index sloupce matice (deklarace přímo v cyklu)
Počátečním krokem metody je inicializace lokální celočíselné proměnné suma, která nám slouží pro uložení součtu všech dosud procházených prvků. Pro průchod všemi prvky matice jsou použity dva cykly s krokem - první pro procházení řádků a druhý pro sloupce. Po ukončení průchodu všemi prvky matice je tato suma přetypována na reálné číslo (na typ double), abychom mohli provést podíl sumy a počtu prvků matice, který je vyjádřen součinem počtu řádků a sloupců matice (jinak bychom prováděli celočíselné dělení). Výsledek této operace je přiřazen výstupu metody - viz Kód 1.
/// <summary> /// Návrat aritmetického průměru prvků matice /// </summary> /// <param name="m"> počet řádků matice </param> /// <param name="n"> počet sloupců matice </param> /// <param name="pole"> matice </param> /// <returns> Průměr matice </returns> static double PrumerPole(int m, int n, int[,] pole) { /* Deklarace: 'prumer' ... průměrná reálná hodnota ze všech prvků matice; * 'suma' ... suma hodnot všech prvků matice; i' ... index řádku matice; * 'j' ... index sloupce matice */ double prumer; int suma; // Inicializace - suma prvků je 0 suma = 0; // Pro všechny řádky matice for (int i = 0; i < m; i++) { // Pro všechny sloupce matice for (int j = 0; j < n; j++) { // Přičtení dalšího prvku vektoru do sumy suma += pole[i, j]; } } // Výpočet reálného průměru včetně přetypování prumer = (double)suma / (m * n); // Přiřazení vypočteného průměru návratu metody return prumer; }
Kód 1: Deklarace statické metody s reálným návratem s názvem PrumerPole