Lukujono
Lukujono

Tämä simulaatio havainnollistaa aritmeettista ja geometrista sarjaa. Huomaa, että geometrisessa sarjassa on desimaalien kasvaessa pyöristyksestä johtuvia "virheitä", mikä johtuu tietokoneen tavasta käsitellä liukulukuja. Kopioi alla oleva koodi ja aja ohjelma. Älä tee koodiin muutoksia.
// Ohjelman tehnyt e-Oppi Oy
// 18.2.2018
float a = 300; // Laskurin alkuarvo (ikkunan keskellä)
float b = 300; // Laskurin alkuarvo (ikkunan keskellä)
float c = 300; // Laskurin alkuarvo (ikkunan keskellä)
float d = 300; // Laskurin alkuarvo (ikkunan keskellä)
void setup () {
size(600,750); // ikkunan koko
}
void draw() {
background(255); // Tyhjennä tausta
stroke(0); // Musta viivan väri
strokeWeight(3);
textSize(20);
int x1 = mouseX; // Selvitä hiiren vaakakoordinaatti
int y1 = mouseY;
if (mousePressed == true) {
if ((y1 > 0) && (y1 < 30)) {
if ((x1>a) && (a < 540)) { // Jos hiiri on oikealla puolen
a++; // niin kasvata laskuria
}
if ((x1<a) && (x1 > 0)) { // Jos hiiri on vasemmalla puolen
a--; // niin pienennä laskuria
}
}
if ((y1 > 30) && (y1 < 60)) {
if ((x1>b) && (b < 540)) { // Jos hiiri on oikealla puolen
b++; // niin kasvata laskuria
}
if ((x1<b) && (x1 > 0)) { // Jos hiiri on vasemmalla puolen
b--; // niin pienennä laskuria
}
}
if ((y1 > 60) && (y1 < 90)) {
if ((x1>c) && (c < 540)) { // Jos hiiri on oikealla puolen
c++; // niin kasvata laskuria
}
if ((x1<c) && (x1 > 0)) { // Jos hiiri on vasemmalla puolen
c--; // niin pienennä laskuria
}
}
if ((y1 > 90) && (y1 < 120)) {
if ((x1>d) && (d < 540)) { // Jos hiiri on oikealla puolen
d++; // niin kasvata laskuria
}
if ((x1<d) && (x1 >0)) { // Jos hiiri on vasemmalla puolen
d--; // niin pienennä laskuria
}
}
}
fill(0); // Musta tekstin väri
int a2 = round(map(a,0,540,-10,10));
int b2 = round(map(b,0,540,-10,10));
float c2 = round(map(c,0,540,-10,10));
float d2 = round(10.0*map(d,0,540,0,10))/10.0;
fill(255);
noStroke();
rect(0,150,600,600);
fill(0);
int ka = a2;
float kb = c2;
text(ka,80,200);
text(kb,180,200);
for (int h=1; h <28; h++) {
ka = ka+b2; // aritmeettinen lukujono
kb = kb*d2; // geometrinen lukujono
text(ka,80,200+20*h);
text(kb,180,200+20*h);
}
text("Aritmeettinen",10,170);
text("Geometrinen",160,170);
fill(0);
fill(255);
rect(0,0,600,148);
stroke(0); // Musta viivan väri
strokeWeight(3);
fill(255,255,0); // Keltainen täyttöväri
rect(0,0,599,30); // Piirrä keltainen suorakulmio
rect(0,30,599,30); // Piirrä keltainen suorakulmio
rect(0,60,599,30); // Piirrä keltainen suorakulmio
rect(0,90,599,30); // Piirrä keltainen suorakulmio
fill(255,100,100); // Punainen täyttöväri
rect(a,0,60,30); // Piirrä punainen neliö
rect(b,30,60,30); // Piirrä punainen neliö
rect(c,60,60,30); // Piirrä punainen neliö
rect(d,90,60,30); // Piirrä punainen neliö
textSize(20);
fill(0);
textSize(20);
text(""+a2,a+4,25);
text(""+b2,b+4,55);
text(""+c2,c+4,85);
text(""+d2,d+4,115);
}