Največji, najmanjši in povprečje
Sestavi metodo, ki sprejme tabelo števil in vrne:
največje število najmanjše število povprečje števil v tabeli
Metode preizkusi tako, da izpišeš povprečje, največji ter najmanši element tabele
20 generiranih števil z intervala $[-50,50]$ - seveda tako, da kličeš tvoje metode.
public static double vrniMax(double[] tabela)
public static double vrniMin(double[] tabela)
public static double vrniPovprecje(double[] tabela)
Namig
Napišemo metode in jih preiskusimo tako, da napolnimo tabelo 20 števil, izpišemo ta števila in poskrbimo za izpis vseh metod. Tako lahko preverimo in prikažemo delovanje metode.
- metoda vrniMax: v zanki pogledamo,če je element večji od predhodnika. Če je, potem postane največji (na začetku je največji 1. element).
- metoda vrniMin; identično kot vrniMax, le da iščemo manjše elemente.
- metoda vrniPovprecje: sešteje vse elemente tabele in vsoto deli z dolžino tabele.
Namig
Metoda vrniMax
- Uporabimo zanko s katero se sprehodimo čez tabelo. Uporabimo spremenljivko max, v katero si vedno zapomnimo trenutno največji element.
- Za trenutno največji element na začetku vzamemo prvi element tabele.
- Za vsak ostali element tabele preverimo, če je večji od trenutno največjega, in če je to res, tak element postane trenutno največji.
- Na koncu vrnemo trenutno največji element oz. vrednost spremenljivke max.
Metoda vrniMin
Ravnamo podobno, le da namesto trenutno največjega elementa si vedno zapomnimo trenutno najmanjšega.Metoda vrniPovprecje
- Z zanko se sprehodimo preko tabele in seštevamo vrednosti v tabeli. Za ta namen uporabimo spremenljivko vsota, ki jo na začetku nastavimo na 0, potem pa v zanki vsak element tabele prištejemo spremenljivki vsota.
- Po koncu zanke je v spremenljivki vsota ravno vsota vseh števil v tabeli.
- Vsoto delimo s številom elementov v tabeli. Rezultat zaokrožimo na dve decimalki.
Rešitev (Java)
public class MinMaxPovprecje {
public static void main(String[] args) {
// sestavimo tabelo 20 nakljucnih stevil med -50 in 50 in jo izpisemo
double[] tab = new double[20];
for (int i = 0; i < 20; i++) {
tab[i] = ((int) (Math.random() * 101) - 50) / 10.0;
System.out.print(tab[i] + ", ");
}
// preizkusimo metode
System.out.println();
System.out.println();
System.out.println("Najvecje stevilo je " + vrniMax(tab));
System.out.println("Najmanjse stevilo je " + vrniMin(tab));
System.out.println("Povprecje stevil je " + vrniPovprecje(tab));
}
public static double vrniMax(double[] tabela) {
int n = tabela.length;
double max = tabela[0];
// v zanki iscemo element vecji od trenutno najvecjega elementa
for (int i = 0; i < n; ++i) {
if (max < tabela[i])
max = tabela[i];
}
return max;
}
public static double vrniMin(double[] tabela) {
int n = tabela.length;
double min = tabela[0];
// v zanki iscemo element manjsi od trenutno najmanjsega elementa
for (int i = 0; i < n; ++i) {
if (min > tabela[i])
min = tabela[i];
}
return min;
}
public static double vrniPovprecje(double[] tabela) {
int n = tabela.length;
double vsota = 0;
// vsota vseh stevil v tabeli
for (int i = 0; i < n; ++i) {
vsota += tabela[i];
}
// zaokrozimo na dve decimalki
double povprecje = (int) (100 * vsota / n + 0.5) / 100.0;
return povprecje;
}
}
Rešitev (C#)
using System;
using System.Collections.Generic;
using System.Text;
namespace MinMaxPovprecje {
class MinMaxPovprecje {
static void Main(string[] args) {
// sestavimo tabelo 20 nakljucnih stevil med -50 in 50 in jo izpisemo
double[] tab = new double[20];
Random random = new Random();
for (int i = 0; i < 20; i++) {
tab[i] = ((int)(random.Next() * 101) - 50) / 10.0;
Console.Write(tab[i] + ", ");
}
// preizkusimo metode
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Najvecje stevilo je " + vrniMax(tab));
Console.WriteLine("Najmanjse stevilo je " + vrniMin(tab));
Console.WriteLine("Povprecje stevil je " + vrniPovprecje(tab));
Console.ReadKey();
}
public static double vrniMax(double[] tabela) {
int n = tabela.Length;
double max = tabela[0];
// v zanki iscemo element vecji od trenutno najvecjega elementa
for (int i = 0; i < n; ++i) {
if (max < tabela[i])
max = tabela[i];
}
return max;
}
public static double vrniMin(double[] tabela) {
int n = tabela.Length;
double min = tabela[0];
// v zanki iscemo element manjsi od trenutno najmanjsega elementa
for (int i = 0; i < n; ++i) {
if (min > tabela[i])
min = tabela[i];
}
return min;
}
public static double vrniPovprecje(double[] tabela) {
int n = tabela.Length;
double vsota = 0;
// vsota vseh stevil v tabeli
for (int i = 0; i < n; ++i) {
vsota += tabela[i];
}
// zaokrozimo na dve decimalki
double povprecje = (int)(100 * vsota / n + 0.5) / 100.0;
return povprecje;
}
}
}
Rešitev (Python)
#!C:/Python30/python
#-*-encoding: utf-8 -*-
# -*- coding: latin-1 -*-
import random
def vrniMax(tabela):
n = len(tabela)
max = tabela[0]
# v zanki iscemo element vecji od trenutno najvecjega elementa
for i in range(n):
if max < tabela[i]:
max = tabela[i]
return max
def vrniMin(tabela):
n = len(tabela)
min = tabela[0];
# v zanki iscemo element manjsi od trenutno najmanjsega elementa
for i in range(n):
if min > tabela[i]:
min = tabela[i]
return min
def vrniPovprecje(tabela):
n = len(tabela);
vsota = 0
# vsota vseh stevil v tabeli
for i in range(n):
vsota += tabela[i]
return vsota/n
# sestavimo tabelo 20 nakljucnih stevil med -50 in 50 in jo izpisemo
# preizkusimo metode
tabela=[]
for i in range(20):
tabela.append(random.randint(-50,50))
print(tabela, ", ")
print ("Najvecje stevilo je ",vrniMax(tabela))
print ("Najmanjse stevilo je ",vrniMin(tabela))
print ("Povprecje stevil je ",vrniPovprecje(tabela))