Tietotekniikka (ohjelmallinen toteutus)

Tämä hypertekstisivusto on käytännön esimerkki siitä, miten oppimateriaalia voidaan tehdä monella tavalla. Yhdistämällä Fermat'n pisteen opettamisen digitaaliseen ympäristöön voimme parantaa havainnollisuutta, vuorovaikutteisuutta ja moniaistisuutta hauskalla tavalla. Selaamalla sivustoa saat käsityksen, kuinka videota, ääntä, kuvia ja tekstiä yhdistelemällä voidaan saada aikaan mielekäs oppimisympäristö.

Lähdekoodi (Java-ohjelmointikielellä)

               1 /*
 	       2 Ohjelma selvittää yksinkertaisella (mutta erittäin tehottomalla) tavalla kahden desimaalin tarkkuudella pisteen,
	       3 jonka etäisyyksien summa mielivaltaisen kolmion kulmista on mahdollisimman pieni.
  	       4 
 	       5 Toisin sanottuna koodi ratkaisee esimerkinomaisesti yhden eksaktin tapauksen.
 	       6  */
 	       7 public class Main {
 	       8 
 	       9     public static void main(String[] args) {
	      10         System.out.println("**PEDA1 – Projektityö**");
	      11 
	      12         //mielivaltaisesti valitut kolmion kulmien kordinaatit
	      13         double ax = 0;
	      14         double ay = 0;
	      15         double bx = 4;
	      16         double by = 0;
	      17         double cx = 1;
	      18         double cy = 2;
	      19         //selvitettävä piste
	      20         double fx = 0;
	      21         double fy = 0;
	      22         //vertailua varten tarvittavat muuttujat
	      23         double pieninPituus = 0;
	      24         double pituus = 0;
	      25 
	      26         //selvitetään piste kahdella sisäkkäisellä luupilla (vrt. kaksiulotteinen taso)
	      27         //ulompi luuppi käy läpi kaikki "mielekkäät" x-kordinaatit ja sisempi y-kordinaatit
	      28         for (double x = 0; x < 4; x = x + 0.01) {
	      29             for (double y = 0; y < 2; y = y + 0.01) {
	      30 
	      31                 //tutkittavan pisteen etäisyys mielivaltaisesti valituista kolmion kulmista
	      32                 double pituusA = Math.sqrt(Math.pow((x - ax), 2) + Math.pow((y - ay), 2));
	      33                 double pituusB = Math.sqrt(Math.pow((x - bx), 2) + Math.pow((y - by), 2));
	      34                 double pituusC = Math.sqrt(Math.pow((x - cx), 2) + Math.pow((y - cy), 2));
	      35 
	      36                 //etäisyyksien summa
	      37                 pituus = pituusA + pituusB + pituusC;
	      38 
	      39                 //jos löytyy aiempaa parempi ratkaisu, otetaan sen arvot talteen
	      40                 if ((x == 0 && y == 0) || pituus < pieninPituus) {
	      41                     pieninPituus = pituus;
	      42                     fx = x;
	      43                     fy = y;
	      44                 }
	      45             }
	      46         }
	      47         System.out.println("Pienin pituus: " + pieninPituus);
	      48         System.out.println("Pituus: " + pituus);
	      49         System.out.println("Fx: " + fx);
 	      50         System.out.println("Fy: " + fy);
	      51     }
	      52 }
	      53 
            

Tuloste (ohjelman tulos)

**PEDA1 – Projektityö**
              Pienin pituus: 5.554865516955028
              Pituus: 9.457689438881038
              Fx: 1.1800000000000008
              Fy: 1.0000000000000007

Suoritus (ohjelman simulointi)

Voit testata ja havainnoida ohjelman toimintaa ilmiöpohjaisesti siirtymällä ajosivustolle. Kopioi ohjelman lähdekoodi "Näytä lähdekoodi" painikkeen jälkeen avautuvasta ikkunasta ja liitä se ajomoottoriin, jonka löydät "Siirry ajosivustolle" painikkeesta painamalla. Aja ohjelma nähdäksesi ilmiöpohjaisesti sen toiminnan.

Näytä lähdekoodi » Siirry ajosivustolle »