Java tehtäviä konsoli ratkaisu1
Mureakuha
Tehtävä:
Jos Maasta ammutaan raketti tarpeeksi suurella nopeudella, kulkee raketin ohjaajan mielestä aika hitaammin kuin Maahan jääneiden mielestä. Kaavan muodossa Maassa kuluva aika voidaan laskea seuraavasti; X = t/sqrt(1 - v*v / c*c), jossa t on raketin ohjaajan mittaama aika, v raketin nopeus ja c valonnopeus. Kirjoita ohjelma, joka laskee Maassa kuluneen ajan ja raketissa kuluneen ajan kun raketti käy mutkan seuraavissa tähdissä nopeudella, joka kysytään ohjelmassa:
- Alpha Centauri, etäisyys 4,3 valovuotta.
- Sirius, etäisyys 8,7 valovuotta.
- Tau Ceti, etäisyys 11,8 valovuotta.
import java.io.*; import java.text.*; public class Aikadilataatio { public static void main (String[] args) { double v = 0; // nopeus byte bTemp[] = new byte[10]; // taulukko DecimalFormat muotoilu = new DecimalFormat("0.00"); // muotoilu System.out.print("Anna raketin nopeus osana valonnopeudesta (0-1): "); try { System.in.read(bTemp); String strTemp = new String(bTemp); v = Double.parseDouble(strTemp); if (v > 0 && v < 1) { System.out.println("\nAlpha Centauri, etäisyys 4.3 valovuotta"); System.out.println("Maassa kulunut aika vuosissa: " + muotoilu.parse(muotoilu.format(4.3/v))); System.out.println("Raketissa kulunut aika vuosissa: " + muotoilu.parse(muotoilu.format(4.3/v*Math.sqrt(1 - v*v)))); System.out.println("\nSirius, etäisyys 8.7 valovuotta"); System.out.println("Maassa kulunut aika vuosissa: " + muotoilu.parse(muotoilu.format(8.7/v))); System.out.println("Raketissa kulunut aika vuosissa: " + muotoilu.parse(muotoilu.format(8.7/v*Math.sqrt(1 - v*v)))); System.out.println("\nTau Ceti, etäisyys 11.8 valovuotta"); System.out.println("Maassa kulunut aika vuosissa: " + muotoilu.parse(muotoilu.format(11.8/v))); System.out.println("Raketissa kulunut aika vuosissa: " + muotoilu.parse(muotoilu.format(11.8/v*Math.sqrt(1 - v*v)))); } } catch(Exception e) { System.out.println("Virhe!!"); } } }
Tämän dokumentin kopiointi, levittäminen sekä muokkaaminen on sallittua GNU Free Documentation Licensen version 1.2 tai uudemman Free Software Foundationin julkaiseman version mukaisesti, ilman muuttumattomuuslauseketta tai kansitekstejä. Tätä koskee vastuuvapaus.
Kopio lisenssistä (englanniksi) löytyy täältä.
Kopio lisenssistä (englanniksi) löytyy täältä.
Alkuperäinen (c) Petteri Hämäläinen
