Nada

Övning 1-2

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") ;}}