Navigace: Hlavní stránka -> BASIC -> 05 Jednorozměrná pole -> 05.04 Hledání maximální a minimální hodnoty v poli a jejich pozice

MENU

05.04 Hledání maximální a minimální hodnoty v poli a jejich pozice

Zadání:
Sestavte program, který v poli čísel (max. 100) nalezne maximum a minimum a jejich pozici.
Řešení:
Na začátku programu načteme počet čísel v poli. Poté pomocí prvního cyklu FOR zadáme všechna čísla do pole.
Pomocí dalších čtyř řádků prohlásíme první prvek za maximum i minimum (min=pole(0); max=pole(0);) a uložíme
jeho pozici do pozice maxima a minima (pozmin=0; pozmax=0;). Dalším cyklem FOR otestujeme všechny ostatní
prvky pole, zda nejsou menší či větší než minimum a maximum. Pokud ano, uložíme jejich hodnoty a pozice
do příslušných proměnných. Na konci programu hodnoty a jejich pozice vytiskneme.
Module Module1

    Sub Main()

        Dim pole(99), min, max As Double
        Dim n, i, pozmin, pozmax As Integer

        Console.Write("Zadejte pocet cisel: ")
        n = Console.ReadLine

        For i = 0 To n - 1
            Console.Write("Zadejte {0}.cislo: ", i + 1)
            pole(i) = Console.ReadLine
        Next

        min = pole(0)
        max = pole(0)
        pozmin = 0
        pozmax = 0

        For i = 0 To n - 1
            If min > pole(i) Then
                min = pole(i)
                pozmin = i
            End If
            If max < pole(i) Then
                max = pole(i)
                pozmax = i
            End If
        Next

        Console.WriteLine("Minimalni hodnota: {0}, pozice: {1}", min, pozmin + 1)
        Console.WriteLine("Maximalni hodnota: {0}, pozice: {1}", max, pozmax + 1)

        Console.ReadLine()

    End Sub

End Module
program ke stažení

Pro studenty
Zamyslete se nad tím, jak se bude program chovat v situaci, kdy budou v poli dvě shodné minimální nebo maximální hodnoty.