SoyleDiagram.java [Last ned]

/*
 * Programmet presenterer temperaturmålinger for dagene i en uke på
 * et gitt (tenkt) sted i et søylediagram.
 *
 * Det vil si, løsningsforslaget viser kun søyler for mandag-onsdag.
 * Fortsett gjerne på egen hånd fram til søndag - så vil du oppdage
 * at du må skrive nesten samme kode flere ganger. Etter at du har lært
 * om gjentak (løkker) i kapittel 3 og tabeller i kapittel 5, kan du vende
 * tilbake til denne oppgaven og løse den på en langt mer elegant måte!
 *
 */
public class SoyleDiagram extends EasyGraphics {
 
  public static void main(String[] args) {
    launch(args);
  }
 
  public void run() {
 
    // Nederste venstre hjørne til venstre søyle
    int x = 50;
    int y = 700;
 
    // Bredden til en søyle
    int bredde = 50;
 
    // Luft mellom søylene
    int luft = bredde/2;
 
    // Omregningsfaktor fra målt temperatur til piksler
    int faktor = 50;
 
    makeWindow("Søylediagram");
    setFont("Arial", 24);
 
    // Vis søyle for mandag
    String ukedag = "man";
    int temp = 5;               // Målt temperatur
    int høyde = temp*faktor;    // Regner om til piksler
    setColor(160, 160, 160);    // Grå fyllfarge
    fillRectangle(x, y-høyde, bredde, høyde);
    setColor(0, 0, 0);          // Sort til omriss og tekst
    drawRectangle(x, y-høyde, bredde, høyde);
    drawString(ukedag, x, y+luft);
    drawString(temp+"", x+bredde/4, y-høyde-luft);
 
    // Vis søyle for tirsdag
    ukedag = "tir";
    temp = 5;
    høyde = temp*faktor;        // Må regne ut på nytt for denne dagen
    x = x + bredde + luft;      // Flytt til høyre
    setColor(160, 160, 160);
    fillRectangle(x, y-høyde, bredde, høyde);
    setColor(0, 0, 0);
    drawRectangle(x, y-høyde, bredde, høyde);
    drawString(ukedag, x, y+luft);
    drawString(temp+"", x+bredde/4, y-høyde-luft);
 
    // Vis søyle for onsdag
    ukedag = "ons";
    temp = 7;
    høyde = temp*faktor;
    x = x + bredde + luft;
    setColor(160, 160, 160);
    fillRectangle(x, y-høyde, bredde, høyde);
    setColor(0, 0, 0);
    drawRectangle(x, y-høyde, bredde, høyde);
    drawString(ukedag, x, y+luft);
    drawString(temp+"", x+bredde/4, y-høyde-luft);
 
    // Og så videre for torsdag til søndag.
 
    // Men husk: Ved hjelp av løkker (kap. 3) og tabeller (kap. 5) kan
    // denne oppgaven løses mer elegant og med adskillig færre kodelinjer!
 
  }
}
 
Kildekode blir vist ved hjelp av GeSHi.