Hei,
Yritän tehdä yhtä Java ohjelmointi tehtävää tällä sivulla:
http://2016-ohjelmointi.mooc.fi/viikko1/#12summaaja
Eli Viikko 1 Tehtävä: 12
”Tee ohjelma, joka kysyy käyttäjältä kaksi kokonaislukua ja tulostaa niiden summan.”
import java.util.Scanner; public class Summaaja { public static void main(String[] args) { Scanner lukija = new Scanner(System.in); int luku = Integer.parseInt(lukija.nextLine()); int eka = (6); int toka = (2); int luvut = eka + toka; System.out.println("Anna ensimmäinen luku: " + eka ); System.out.println("Anna toinen luku: " + toka ); System.out.println("Lukujen summa" + luvut);
Mielestäni tein tehtävän oikein eli sain vastaukseksi: 8
Mutta ohjelma antaa virheeksi: "Laskun -10 + -5 summan pitäisi olla -15, ehdotit: 8"
Sinun pitää lukea vastaus kysymyksiin. Nyt ohjelma ei odota vastauksia, vaan laskee vastauksen aina samoille luvuille (6+2).
Itse olen ainakin omissa koodeissa lukenut tietoja ohjelmaan seuraavasti:
String input1 = System.console().readLine(); int eka = Integer.parseInt(input1);
Toinen tapa voisi olla esim:
Scanner input = new Scanner(System.in); int eka = input.nextInt(); int toka = input.nextInt(); input.close();
Tämä toinen on ollut käytössä, jos tarkastusohjelma antaa jotakin lähtöarvoja ilman kysymyksiä ja syötteen formaatti tiedetään tarkasti. En ole kokeillut, toimiiko se myös, jos kysymykseen odotetaan vastausta käyttäjältä. Ehkä joku voisi tästä kertoa jotakin enemmänkin ... (?)
Lukujen −10 ja −5 summa on −15, ei 8.
Ohjelmassa täytyy kysyä lukuja käyttäjältä. Se tapahtuu kummankin luvun kohdalla niin, että ensin tulostetaan kehotus luvun antamiseen ja sitten luetaan käyttäjän syöte muuttujaan.
Tässä tapauksessa Scanner-rivin jälkeisen osan tulee olla jokseenkin seuraavanlainen:
// pyydetään luku ja tallennetaan se muuttujaan System.out.print("Anna ensimmäinen luku: "); int eka = Integer.parseInt(lukija.nextLine()); // sama toiselle luvulle System.out.print("Anna toinen luku: "); int toka = Integer.parseInt(lukija.nextLine()); // lasketaan summa ja tulostetaan se int summa = eka + toka; System.out.println("Lukujen summa: " + summa);
MOOCissa hauskasti tehtävät käsittelevät juuri sitä, mitä tekstissä ennen tehtävää käsitellään, joten kannattaa lukea sitä oppimateriaalia. Esimerkiksi juuri ennen tuota tehtävää näyttää olevan malli käyttäjän syötteen pyytämisestä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.