|
|
- Toteuta ohjelma Mars-planeetan lämpötilamittausten tarkasteluun. Marsin alin lämpötila (pinnalla) on -140 astetta, korkein lämpötila on 20 astetta. Ohjelmalle tulee syöttää 10 hyväksyttyä mittaustulosta, jotka ohjelma kerää int[]-tyyppiseen taulukkoon, jonka pituus on 10. Jos käyttäjä syöttää luvun, joka on pienempi kuin -140 tai suurempi kuin 20, lukua ei laiteta taulukkoon vaan se pyydetään uudelleen esimerkkisuorituksen mukaisesti.
-
- Lopuksi ohjelman tulee tulostaa lämpötilamittausten keskiarvo sekä minimi- ja maksimiarvot.
-
- HUOM! Tehtävässä on tarkoitus harjoitella taulukoiden käyttöä, joten listojen käyttäminen on tässä tehtävässä kiellettyä.
-
- Huom! Älä pyöristä lopussa tulostettavaa keskiarvoa
-
- ```
- Example output:
- Syötä mittaus 1/10: 10
- Syötä mittaus 2/10: 19
- Syötä mittaus 3/10: 18
- Syötä mittaus 4/10: 15
- Syötä mittaus 5/10: 1
- Syötä mittaus 6/10: -1
- Syötä mittaus 7/10: -12
- Syötä mittaus 8/10: -200
- Anna lämpötila väliltä -140 - +20!
-
- Syötä mittaus 8/10: -88
- Syötä mittaus 9/10: -85
- Syötä mittaus 10/10: 21
- Anna lämpötila väliltä -140 - +20!
-
- Syötä mittaus 10/10: -72
-
- Mittausten keskiarvo: -19.5
- Pienin mittaustulos: -88
- Suurin mittaustulos: 19
- ```
-
- --------------------
-
- **MarsinLampotilat.java**
-
- ```
- //import java.text.DecimalFormat;
- import java.util.InputMismatchException;
- import java.util.Scanner;
-
- public class MarsinLampotilat {
- public static void main(String[] args) {
-
- //DecimalFormat r1 = new DecimalFormat(".0");
-
- int i = 0, lampoInput = 1, max = 10;
- int minTemp = -140, maxTemp = 20;
- String minTempPrefix = "", maxTempPrefix = "";
-
- int lampoSumma = 0, currentTemp = 0, pienin = 0, suurin = 0;
-
- int[] lampotilatMars = new int[max];
-
- if (minTemp > 0) { minTempPrefix = "+"; }
- if (maxTemp > 0) { maxTempPrefix = "+"; }
-
- while (lampoInput <= max) {
- Scanner syote = new Scanner(System.in);
- System.out.printf("Syötä mittaus %d/%d: ", lampoInput, max);
- try {
- int lampotila = syote.nextInt();
-
- if (lampotila < minTemp || lampotila > maxTemp) {
- // stderr should be used, but we print to stdout
- System.out.printf(
- "Anna lämpötila väliltä %s%d - %s%d!\n",
- minTempPrefix, minTemp,
- maxTempPrefix, maxTemp
- );
- continue;
- } else {
- lampotilatMars[i] = lampoInput;
- lampoSumma += lampotila;
-
- if (lampotila < pienin) { pienin = lampotila; }
- if (lampotila > suurin) { suurin = lampotila; }
-
- }
-
- } catch (NumberFormatException | InputMismatchException e) {
- // stderr should be used, but we print to stdout
- System.out.println("Antamasi syöte ei ole kokonaisluku");
- continue;
- }
- lampoInput++; i++;
- }
-
- System.out.printf(
- "Mittausten keskiarvo: %s\n" + "Pienin mittaustulos: %d\n" + "Suurin mittaustulos: %d\n",
- (double)lampoSumma / lampotilatMars.length,
- pienin,
- suurin
- );
- }
- }
- ```
|