Lukujen syöttäminen hiiren avulla

Tehdään ohjelma, jossa lukuja voidaan syöttää painonappien avulla. Se on seuraavanlainen.

//Ohjelman tehnyt: e-Oppi Oy
// 3.1.2018
String merkki ="0"; // Oletus merkki on 0 boolean n1 = false; // Oletuksena luvun syöttö salittu void setup() { size(600,300); // Ikkunan koko
textSize(20); // Tekstin koko } void draw () { background(255); // Tyhjennä tausta float luku; text("Anna luku: ",10,100); luku = syota_luku(); text(luku,120,100); text("Luvun neliö on "+pow(luku,2),10,150); text("Luvun neliöjuuri on "+sqrt(luku),10,200); } float syota_luku () { int x = mouseX; // Lue hiiren paikka int y = mouseY; fill(50,200,200); // Lisää väri rect(5,5,40,40,10); // Luodaan painonapit rect(55,5,40,40,10); rect(105,5,40,40,10); rect(155,5,40,40,10); rect(205,5,40,40,10); rect(255,5,40,40,10); rect(305,5,40,40,10); rect(355,5,40,40,10); rect(405,5,40,40,10); rect(455,5,40,40,10); rect(505,5,40,40,10); rect(555,5,40,40,10); textSize(30); // Tekstin koko 30 fill(0); // Tekstin väri musta text("1",15,40); // Tulosta painonapeille tekstit text("2",65,40); text("3",115,40); text("4",165,40); text("5",215,40); text("6",265,40); text("7",315,40); text("8",365,40); text("9",415,40); text("0",465,40); text(",",515,40); text("C",565,40); if (mousePressed == true) { // Jos hiiren painike pohjassa if ((y > 5) && (y < 45)) { // Jos pystysuuntainen paikka on välillä 5 < y < 45 if ((x > 5) && (x < 45)) { // Jos vaakasuuntainen paikka on välillä 5 < x < 45 fill(255,0,0); // Väritä punaisella rect(5,5,40,40,10); if (n1 == false) { // Jos n1:n arvo false, niin lisää yksi merkki merkki = merkki+"1"; } } if ((x > 55) && (x < 95)) { // Jos vaakasuuntainen paikka on välillä 55 < x < 95 fill(255,0,0); rect(55,5,40,40,10); if (n1 == false) { merkki = merkki+"2"; } } if ((x > 105) && (x < 145)) { // Jos vaakasuuntainen paikka on välillä 105 < x < 145 fill(255,0,0); rect(105,5,40,40,10); if (n1 == false) { merkki = merkki+"3"; } } if ((x > 155) && (x < 195)) { // Jos vaakasuuntainen paikka on välillä 155 < x < 195 fill(255,0,0); rect(155,5,40,40,10); if (n1 == false) { merkki = merkki+"4"; } } if ((x > 205) && (x < 245)) { // Jos vaakasuuntainen paikka on välillä 205 < x < 245 fill(255,0,0); rect(205,5,40,40,10); if (n1 == false) { merkki = merkki+"5"; } } if ((x > 255) && (x < 295)) { // Jos vaakasuuntainen paikka on välillä 255 < x < 295 fill(255,0,0); rect(355,5,40,40,10); rect(255,5,40,40,10); if (n1 == false) { merkki = merkki+"6"; } } if ((x > 305) && (x < 345)) { // Jos vaakasuuntainen paikka on välillä 305 < x < 345 fill(255,0,0); rect(305,5,40,40,10); if (n1 == false) { merkki = merkki+"7"; } } if ((x > 355) && (x < 395)) { // Jos vaakasuuntainen paikka on välillä 355 < x < 395 fill(255,0,0); rect(355,5,40,40,10); if (n1 == false) { merkki = merkki+"8"; } } if ((x > 405) && (x < 445)) { // Jos vaakasuuntainen paikka on välillä 405 < x < 455 fill(255,0,0); rect(405,5,40,40,10); if (n1 == false) { merkki = merkki+"9"; } } if ((x > 455) && (x < 495)) { // Jos vaakasuuntainen paikka on välillä 455 < x < 495 fill(255,0,0); rect(455,5,40,40,10); if (n1 == false) { merkki = merkki+"0"; } } if ((x > 505) && (x < 545)) { // Jos vaakasuuntainen paikka on välillä 505 < x < 545 fill(255,0,0); rect(505,5,40,40,10); if (n1 == false) { merkki = merkki+"."; } } if ((x > 555) && (x < 595)) { // Jos vaakasuuntainen paikka on välillä 555 < x < 595 fill(255,0,0); rect(555,5,40,40,10); if (n1 == false) { merkki = "0"; } } n1 = true; // Tämä on nyt true, kunnes vapautat hiiren painikkeen } } else { n1 = false; // Kun vapautat hiiren painikkeen, niin salli merkkien syöttö } fill(0); // Oletus tekstin väri on musta textSize(20); // Oletus tekstin koko on 20 float luku = float(merkki); // Muuta syötetty merkkijono luvuksi return luku; // Palauta syötetty luku }


Ohjelman suoritus näyttää nyt tältä. Tässä C (= clear) painike on nollauspainike.




Jos siis haluat syöttää lukuja hiiren avulla, niin sinun on ensin ohjelmoitava jokaista numeroa varten oma painike. Painikkeista kannattaa tehdä oma aliohjelmansa eli arvon palauttava funktio, sillä se selkeyttää koodia.