Analiza vremena
Janko Vremenar si že vrsto let skrbno beleži količino mesečnih padavin. Tako je zbral podatke o padavinah za vsak mesec od leta 1999 do 2005.
Da bo testiranje hitrejše, količine padavin program ne bo bral, ampak naj bo količina padavin za vsak mesec naključno število med 0 in maksimalno količino padavin.
Maksimalna količina padavin je 200 litrov na kvadratni meter.
Napiši program, ki izpiše mesec, ko je bilo sploh največ padavin (v vseh letih, za katera imamo podatke).
Podatke se splača shraniti v dvodimenzionalno tabelo: v vrsticah mesece in v stolpcih leta. Pri iskanju meseca z največ padavinami moraš pregledati vse podatke. To storiš z dvema vgnezdenima zankama. Z eno zanko greš po vrsticah dvodimenzionalne tabele, z drugo po stolpcih.
import javax.swing.*;
public class AnalizaVremena {
public static void main(String[] args) {
//upoštevaj zgoraj napisane namige in sledi komentarjem
//deklariramo tabele
int[] leta = {1999, 2000, 2001, 2002, 2003, 2004, 2005}; //tabela napolnjena z leti
int steviloLet = leta.length;
String[] mesec = {"januar", "februar", "marec", "april", "maj", "junij", "julij",
"avgust", "septemb", "oktobr", "novembr", "decembr"
};//tabela napolnjena z meseci
int steviloMesecev = mesec.length;
int[][] padavine = new int[steviloMesecev][steviloLet];//dvodimenzionalna tabela
//tabelo napolnimo z naključnimi števili med 0 in maksimalno količino padavin
final int maks_kolicina = 200;
int kateriMesec = 0, kateroLeto = 0;
while (kateriMesec < steviloMesecev) {
kateroLeto = 0;
while (kateroLeto < steviloLet) {
padavine[kateriMesec][kateroLeto] = (int)(Math.random() * maks_kolicina);
kateroLeto = kateroLeto + 1;
}
kateriMesec = kateriMesec + 1;
}
//za kontrolo si izpišemo napolnjeno tabelo
kateriMesec = 0;
kateroLeto = 0;
System.out.print("\t");
while (kateroLeto < steviloLet) {//izpišemo letnice v prvo vrstico
System.out.print(leta[kateroLeto] + "\t");
kateroLeto = kateroLeto + 1;
}
System.out.println();
while (kateriMesec < steviloMesecev) {
System.out.print(mesec[kateriMesec] + "\t");//v vsako vrstico najprej izpišemo kateri mesec
kateroLeto = 0;
while (kateroLeto < steviloLet) {
System.out.print(padavine[kateriMesec][kateroLeto] + "\t");//podatke izpisujemo po letih pri fiksnem mesecu, npr. januar 1999, 2000, 2001,...
kateroLeto = kateroLeto + 1;
}
System.out.println();
kateriMesec = kateriMesec + 1;
}
//poiščemo mesec, ko je bilo največ padavin, tako da vsak element tabele primerjamo s prvim, če je večji si ga zapomnimo
//in naslednjega primerjamo z njim, dokler ne najdemo zopet novega, ki je večji
kateriMesec = 0;
kateroLeto = 0;
int najvecja = padavine[0][0];
String maksMesec = "";
int maksLeto = 0;
while (kateriMesec < steviloMesecev) {
kateroLeto = 0;
while (kateroLeto < steviloLet) {
if (padavine[kateriMesec][kateroLeto] > najvecja) {
najvecja = padavine[kateriMesec][kateroLeto];
maksMesec = mesec[kateriMesec];
maksLeto = leta[kateroLeto];
}
kateroLeto = kateroLeto + 1;
}
kateriMesec = kateriMesec + 1;
}
//izpišemo rezultat
System.out.println("\n Največ padavin je bilo " + maksMesec + " " + maksLeto + " .");
}
}
using System;
namespace V4_vreme_I {
class Program {
public static void Main(string[] args) {
int max_padavin = 200; //maksimalna kolicina padavin na m2
Random pade_na_mes = new Random();
int[,] padavine = new int[7,12]; //dvodimenzionalna tabela za leta in mesece
int stevec_leta = 0;
int stevec_mes = 0;
while (stevec_leta < 7) {
while (stevec_mes < 12) { //za vsak mesec v letu zabeležimo količino padavin
padavine[stevec_leta, stevec_mes] = pade_na_mes.Next(0,max_padavin +1);
stevec_mes = stevec_mes + 1; //povečamo števec mesec za 1
}
stevec_leta = stevec_leta + 1; //povečamo števec let
stevec_mes = 0; //števec mesecev damo na 0, da lahko začenmo z januarjem naslednjega leta
}
int leto = 0;
int mesec = 0;
int najvec_padavin = 0;
stevec_leta = 0;
stevec_mes = 0;
while (stevec_leta < 7) {
while (stevec_mes < 12) {
if (padavine[stevec_leta, stevec_mes]>najvec_padavin) {
najvec_padavin = padavine[stevec_leta, stevec_mes];
leto = stevec_leta;
}
mesec = stevec_mes;
stevec_mes = stevec_mes + 1;
}
stevec_leta = stevec_leta + 1;
stevec_mes = 1;
}
string mes_beseda = ""; //namesto številke meseca bomo izpisali mesec z besedo
if (mesec == 0 ) {
mes_beseda = "januar";
}
if (mesec == 1 ) {
mes_beseda = "februar";
}
if (mesec == 2 ) {
mes_beseda = "marec";
}
if (mesec == 3 ) {
mes_beseda = "april";
}
if (mesec == 4 ) {
mes_beseda = "maj";
}
if (mesec == 5 ) {
mes_beseda = "junij";
}
if (mesec == 6 ) {
mes_beseda = "julij";
}
if (mesec == 7 ) {
mes_beseda = "avgust";
}
if (mesec == 8 ) {
mes_beseda = "september";
}
if (mesec == 9 ) {
mes_beseda = "oktober";
}
if (mesec == 10 ) {
mes_beseda = "november";
}
if (mesec == 11 ) {
mes_beseda = "december";
}
int letnica = 1999 + leto; //izpisali bomo pravilno letnico, ki pride na ustrezen števec let
Console.WriteLine("Najvec padavin je bilo: " + mes_beseda + " " + letnica);
Console.WriteLine("\n\nPress any key to continue . . . ");
Console.ReadKey(true);
}
}
}