DATALOGI FÖR E, 2D1343, ÖVNING 1-2 (MÅN 15-17, SAL Q11-15,21)
1 EURO TILL KRONOR
Hur många kronor är 1999 euro? Eurokursen är 8.75.
Skriv sex programversioner:
* utan variabler,
* med variabler,
* som frågar efter antal euro,
* som klarar eurobelopp med decimaler,
* som går i slinga och bryter vid inmatat nollbelopp,
* som skriver tabell för 1..20 euro.
2 AHA, BARA 44 ÅR TILL PENSIONEN
Skriv ett program som frågar efter födelseår och
beräknar antal år till pensionen. Två versioner:
* utan att införa konstanter,
* med konstanterna now=2000 och pension=65.
3 TIDMÄTNING
Skriv ett program som mäter reaktionstid och
avger ett omdöme. Två versioner:
* utan funktionsanrop
* med funktion vars indata är reaktionstid och
vars utdata är ett ord (omdömet)
LÖSNINGAR (filerna Euro.java, Aha.java, Tid.java
finns på /info/kurser/datalogi_e99 på Elektro.
class Euro1 { // 1999 euro = 17491.25 kronor
public static void main(String[] args){
System.out.print("1999 euro = ") ;
System.out.print(1999*8.75) ;
System.out.println(" kronor") ;}}
class Euro2 { // Antal euro: 1999
public static void main(String[] args){ // kr: 17491.25
int euro=1999 ;
double kr ;
System.out.print("Antal euro: ") ;
System.out.println(euro) ;
kr=euro*8.75 ;
System.out.println("kr: "+kr) ;}}
class Euro3 { // Antal euro: 123
public static void main(String[] args){ // kr: 1076.25
int euro=1999 ;
double kr ;
System.out.print("Antal euro: ") ;
euro=Mio.GetInt() ;
kr=euro*8.75 ;
System.out.println("kr: "+kr) ;}}
class Euro4 { // Antal euro: 1234.5
public static void main(String[] args){ // kr: 10801.875
double euro,kr ;
System.out.print("Antal euro: ") ;
euro=Mio.GetReal() ;
kr=euro*8.75 ;
System.out.println("kr: "+kr) ;}}
class Euro5 {
public static void main(String[] args){ // Antal euro: 2000
int euro=1999 ; // kr: 17500.25
double kr ; // Antal euro: 123
while (euro>0) { // kr: 1076.25
System.out.print("Antal euro: ") ; // Antal euro: 0
euro=Mio.GetInt() ; // kr: 0.0
kr=euro*8.75 ;
System.out.println("kr: "+kr) ;} // Tack för idag!
System.out.println("Tack för idag!");}}
class Euro6 { // 1 euro = 8.75 kr
public static void main(String[] args){ // 2 euro = 17.5 kr
for (int i=1; i<=20; i++) { // 3 euro = 26.25 kr
System.out.print(i+" euro = ") ; // - - -
System.out.println(i*8.75+" kr") ;}}} // 20 euro = 175.0 kr
class Aha1 { // Födelseår: 1979
public static void main(String[] args) { // Aha, 21 år!
int born,age ; // Bara 44 år till pensionen...
System.out.print("Födelseår: ") ;
born=Mio.GetInt() ;
age=2000-born ;
System.out.println("Aha, "+age+" år!") ;
System.out.print("Bara "+(65-age)+" år");
System.out.println(" till pensionen...");}}
class Aha2 {
static final int now=2000, retire=65 ; // Födelseår: 1979
public static void main(String[] args) { // Aha, 21 år!
int born,age,left ; // Bara 44 år till pensionen...
System.out.print("Födelseår: ") ;
born=Mio.GetInt() ;
age=now-born ;
System.out.println("Aha, "+age+" år!") ;
left=retire-age ;
System.out.print("Bara "+left+" år") ;
System.out.println(" till pensionen...");}}
class Tid1 {
public static void main(String[] args) { // Två returtryck, tack!
long start,stopp,tid ; //
System.out.print("Två returtryck, tack!"); // 89 ms är riktigt bra!
Mio.GetLine() ;
start=System.currentTimeMillis() ;
Mio.GetLine() ;
stopp=System.currentTimeMillis() ;
tid=stopp-start ;
System.out.print(tid+" ms är riktigt ") ;
if (tid<100) System.out.println("bra!") ;
else System.out.println("uselt!") ;}}
class Tid2 {
static String betyg(long t) {
if (t<80) return "fantastiskt!" ;
if (t<90) return "riktigt bra!" ;
if (t<100) return "bra!" ;
if (t<110) return "acceptabelt!" ;
else return "dåligt!" ;}
public static void main(String[] args) { // Två returtryck, tack!
long start,stopp,tid ; //
System.out.print("Två returtryck, tack!"); // 111 ms är riktigt dåligt!
Mio.GetLine() ;
start=System.currentTimeMillis() ;
Mio.GetLine() ;
stopp=System.currentTimeMillis() ;
tid=stopp-start ;
System.out.print(tid+" ms är riktigt ") ;
System.out.println(betyg(tid)) ;}}
class Tid3 {
public static void main(String[] args) { // UNIX har nu gått i
long s,m,h,d ; // 10980 dagar, 15 h,
s=System.currentTimeMillis()/1000 ; // 58 min, 39 s
m=s/60; s=s%60 ;
h=m/60; m=m%60 ;
d=h/24; h=h%24 ;
System.out.println("UNIX har nu gått i "+
d+" dagar, "+h+" h, "+m+" min, "+s+" s") ;}}