public class Potenze { public static double integerPow(double b, int k) { if (k == 0) return 1; else { double x = integerPow(b, k/2); x *= x; return (k % 2 == 0 ? x : x*b); } } public static void main(String[] args) { double maxErrRelativo = 0; for (long i = 1 ; i <= 10000 ; i++) { double b = 0.5 + Math.random(); // un numero random tra 0.5 e 1.5 int k = (int)Math.round(100*Math.random()); // un intero random tra 0 e 100 double m = Math.pow(b, k); double ip = integerPow(b, k); double err = Math.abs(m - ip)/m; // errore relativo if (err > maxErrRelativo) maxErrRelativo = err; } System.out.println("Massimo errore relativo: "+maxErrRelativo); } }
import static java.lang.System.*; public class Data { private int giorno, mese, anno; public Data(int g, int m, int a) { giorno = g; mese = m; anno = a; } public void stampaInCifre() { out.printf("%02d%02d%d\n", giorno, mese, anno); } public void stampaConSlash() { out.println(giorno+"/"+mese+"/"+anno); } public void stampaInLettere() { String meseInLettere = null; switch (mese) { case 1: meseInLettere = "gennaio"; break; case 2: meseInLettere = "febbraio"; break; case 3: meseInLettere = "marzo"; break; case 4: meseInLettere = "aprile"; break; case 5: meseInLettere = "maggio"; break; case 6: meseInLettere = "giugno"; break; case 7: meseInLettere = "luglio"; break; case 8: meseInLettere = "agosto"; break; case 9: meseInLettere = "settembre"; break; case 10: meseInLettere = "ottobre"; break; case 11: meseInLettere = "novembre"; break; case 12: meseInLettere = "dicembre"; break; } out.println(giorno+" "+meseInLettere+" "+anno); } public int getGiorno() { return giorno; } public int getMese() { return mese; } public int getAnno() { return anno; } // non tiene conto degli anni bisestili public void incrementa(int gg) { int ng = nGGdaInizioAnno() + gg; int da = ng/365; int rg = ng % 365; anno += da; if (rg < 31) { mese = 1; giorno = rg + 1; } else if (rg < 59) { mese = 2; giorno = rg - 30; } else if (rg < 90) { mese = 3; giorno = rg - 58; } else if (rg < 120) { mese = 4; giorno = rg - 89; } else if (rg < 151) { mese = 5; giorno = rg - 119; } else if (rg < 181) { mese = 6; giorno = rg - 150; } else if (rg < 212) { mese = 7; giorno = rg - 180; } else if (rg < 243) { mese = 8; giorno = rg - 211; } else if (rg < 273) { mese = 9; giorno = rg - 242; } else if (rg < 304) { mese = 10; giorno = rg - 272; } else if (rg < 334) { mese = 11; giorno = rg - 303; } else { mese = 12; giorno = rg - 333; } } // numero di giorni dal primo giorno dell'anno private int nGGdaInizioAnno() { int ngm = 0; switch (mese) { case 12: ngm += 30; case 11: ngm += 31; case 10: ngm += 30; case 9: ngm += 31; case 8: ngm += 31; case 7: ngm += 30; case 6: ngm += 31; case 5: ngm += 30; case 4: ngm += 31; case 3: ngm += 28; case 2: ngm += 31; } return ngm + giorno - 1; } }
![]() |
![]() |
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica ![]() |
|
![]() |
![]() |