Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: Kahden luvun summa (MOOC-tehtävä)

lolleri100 [04.10.2016 23:58:01]

#

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"

TapaniS [05.10.2016 11:30:35]

#

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 ... (?)

HTML5 [05.10.2016 16:54:18]

#

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);

Metabolix [05.10.2016 17:12:44]

#

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ä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta