Voisiko joku hieman auttaa. olen tehnyt tätä tehtävää jo pitkään ja ratkaisusta ei ole tietoakaan!
Alla olevan ohjelman on tarkoitus laskea komentorivillä annetut peruslaskutoimitukset. Sinun tehtävänäsi on kirjoittaa puuttuva Laskin luokka. Sinun tarvitsee toteuttaa ohjelmassa vain yhteen- ja vähennyslasku. Java-ohjelma suoritetaan siis esimerkiksi komennolla: java Komentorivilaskin 4 6 5 - 5. Sinun ei tarvitse käsitellä virhetilanteita, joten voit olettaa, että käyttäjä suorittaa ohjelman aina oikealla tavalla. Oikealla tavalla annetussa laskutoimituksessa joka toinen merkki on numero ja joka toinen merkki on operaattori( tai -). Numerot ja operaattorit ovat eroteltuina toisistaan välilyönneillä, joten jokainen laskussa oleva merkki tallentuu omana komentoriviparametrina. Ohjelman pitää tulostaa laskutoimitus sekä laskun tulos esimerkkitulosteen mukaisesti.
Täydennettävä ohjelma:
import java.util.Scanner;
class Komentorivilaskin {
public static void main(String [] args) {
int pituus = args.length;
if (pituus < 3)
System.out.println("Et antanut mitään laskutoimitusta!");
else if (pituus % 2 == 0)
System.out.println("Annoit virheellisen määrän komentoriviparametreja.");
else {
Laskin laskuri = new Laskin();
laskuri.laske(args);
}
}
}
// Tähän tulee luokka Laskin
Vihje: Jotta voit suorittaa laskuja komentorivillä annettuilla luvuilla, parametrit pitää tallentaa kokonaisluvuiksi komennolla: luku = Integer.parseInt(args[parametrin_indeksi]);
Huom! Tässä tehtävässä ratkaisu on osa käännösyksikköä, jossa on määritelty useita luokkia. Tästä syystä ratkaisussa luokkia ei määritellä julkiseksi public-määreellä.
Esimerkkitulostus
Laskun 4 6 5 - 5 tulos on 10
Tehtävä
2
588
Vastaukset
- tai osa sitä
itse tarvitsin apua tässä tehtävässä, onneksi ope auttoi
"minun" ratkaisu, tai osa sitä, miten lasketaan lukujen summa
for (int i=1; i < arg.length; i=i 2){
oper = arg[i].charAt(0);
luku = Integer.parseInt(arg[i 1]);
if (oper == ' ')summa = summa luku;
else if (oper == '-')summa = summa - luku;
} - Skibab
Tuhottoman vanha ketju, mutta tässä mun ratkaisu.
class Laskin {
public void laske(String[] args) {
int summa = 0;
System.out.print("Laskun");
for (int i = 0; i < args.length; i) {
if (i == args.length-1) {
System.out.print(" " args[i]);
}
else if (args[i 1].equals("-") && i == 0) {
summa = Integer.parseInt(args[0]);
System.out.print(" " args[i]);
summa -= Integer.parseInt(args[i 2]);
}
else if (args[i 1].equals(" ") && i == 0) {
summa = Integer.parseInt(args[0]);
System.out.print(" " args[i]);
summa = Integer.parseInt(args[i 2]);
}
else {
if (args[i 1].equals(" ") && !(args[i].equals(args.length))) {
summa = Integer.parseInt(args[i 2]);
System.out.print(" " args[i]);
}
else if (args[i 1].equals("-") && !(args[i].equals(args.length))) {
summa -= Integer.parseInt(args[i 2]);
System.out.print(" " args[i]);
}
else {
System.out.print(" " args[i]);
}
}
}
System.out.print(" tulos on " summa);
}
}
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa
En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod305740- 345203
- 292954
- 342424
- 372108
- 152058
- 351842
En ole koskaan kokenut
Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka191677- 121661
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons351594