hei toivottavasti täällä joku pystyy auttamaan eli en osaa tehdä tättä olen yritänyt etsiä neuvoja eli jos joku voisi avustaa tämän kanssa
Kirjoita ohjelma, joka kysyy käyttäjältä lompakossa olevan rahamäärän ja lihapiirakan hinnan. Ohjelma tutkii, onko käyttäjällä varaa ostaa lihapiirakka. Jos on, ohjelma ilmoittaa, kuinka paljon lompakkoon jää vielä rahaa. Muuten ohjelma kehottaa
menemään töihin. Käytä vain kahta muuttujaa. Älä vähennä lompakon sisältöä,
ellet voi ostaa lihapiirakkaa.
eli tässä mitä olen yrittänyt voi olla päin jotain
package javaharj; import java.util.Scanner; public class java10 { static Scanner lukija = new Scanner(System.in); public static void main(String[] args) { int rahamaara, hinta; System.out.print("Anna rahamaara:"); rahamaara = lukija.nextInt(); System.out.print("Anna lihapiirakan hinta hinta:"); hinta = lukija.nextInt(); double erotus = rahamaara-hinta; System.out.println(" " + (rahamaara-hinta)); if (erotus > hinta) System.out.println("mene töihin"); } }
Mod. lisäsi kooditagit!
Mietipä nyt. Mistä itse kaupassa tiedät, onko varaa ostaa lihapiirakka? Tähän tarvitset vain rahamäärän ja hinnan, et erotusta. Tee tarkistuksesta if-else-lause, jossa tulostat joko ”on varaa” tai ”ei ole varaa”. Kun pääset tähän asti, voit laskea – edelleen ala-asteen matematiikalla, ei ole vaikeaa –, paljonko rahaa ostoksesta jää. Jos ohjelmointi jotenkin pehmittää pään, kirjoita laskut vaikka ensin paperille symbolisesti ja tarkista ne muutamilla luvuilla (esim. 10 > 2 ja 10 - 2 = 8 taikka 7 > 3 ja 7 - 3 = 4) ja siirrä vasta sitten kaavat ohjelmaan.
if ( rahamaara > hinta ) { System.out.println(" ”on varaa" ); } else if ( rahamaara < hinta ) { System.out.println(" ei ole varaa"); }
näyttääkö nyt paremmalta?
miten tämä kohta tehdää?
Ohjelma tutkii, onko käyttäjällä varaa ostaa lihapiirakka. Jos on, ohjelma ilmoittaa, kuinka paljon lompakkoon jää vielä rahaa. Muuten ohjelma kehottaa
menemään töihin.
Mod. huom: Älä muuta vanhan viestin koodia, laita uusi!
println("Fyrkkaa jää " + rahamaara-hinta);
package javaharj; import java.util.Scanner; public class java110 { static Scanner lukija = new Scanner (System.in); public static void main(String[] args) { int rahamaara,hinta; System.out.print("Anna rahamaara:"); rahamaara = lukija.nextInt(); System.out.print("Anna hinta:"); hinta = lukija.nextInt(); if ( rahamaara > hinta ) { System.out.println(" ”on varaa" ); }else if ( rahamaara == hinta ) { System.out.println(" ”on varaa" ); } else if ( rahamaara < hinta ) { System.out.println(" ei ole varaa"); } } }
Tuo keskimmäinen else IF on turha.
package javaharj; import java.util.Scanner; public class java110 { static Scanner lukija = new Scanner (System.in); public static void main(String[] args) { int rahamaara,hinta; System.out.print("Anna rahamaara:"); rahamaara = lukija.nextInt(); System.out.print("Anna hinta:"); hinta = lukija.nextInt(); println("Fyrkkaa jää " + rahamaara-hinta); if ( rahamaara > hinta ) { System.out.println(" ”on varaa" ); }else if ( rahamaara == hinta ) { System.out.println(" ”on varaa" ); } else if ( rahamaara < hinta ) { System.out.println(" ei ole varaa"); } } }
mitä tässä on vielä pielessä
tämä tehtävä tökkii jostain syystä pahasti olen saanut muita tehtyä paljon paremin
Lisäys:
Oskuz kirjoitti:
Tuo keskimmäinen else IF on turha.
onko koska jos rahaa on 5€ ja hinta 5€
miten olisi rahamäärä >= hinta (suurempi tai yhtäsuuri)
En ymmärrä, miten tuo voi olla noin vaikeaa. Otetaan nyt suoraan tehtävänannosta teksti:
Ohjelma tutkii, onko käyttäjällä varaa ostaa lihapiirakka. Jos on ohjelma ilmoittaa, kuinka paljon lompakkoon jää vielä rahaa. Muuten ohjelma kehottaa menemään töihin.
Lisätään sulkuja, jotta saadaan vähän Javaa muistuttava rakenne:
(Ohjelma tutkii, onko käyttäjällä varaa ostaa lihapiirakka. Jos on) { ohjelma ilmoittaa, kuinka paljon lompakkoon jää vielä rahaa. } Muuten { ohjelma kehottaa menemään töihin. }
Muutetaan sanalliset selitykset Javaksi:
// Ohjelma tutkii, onko käyttäjällä varaa ostaa lihapiirakka. Jos on if (varaaOstaaLihapiirakka) { // ohjelma ilmoittaa, kuinka paljon lompakkoon jää vielä rahaa. System.out.println("Lompakkoon jää rahaa " + (rahaaJäljellä)); // Muuten } else { // ohjelma kehottaa menemään töihin. System.out.println("Mene töihin!"); }
Nyt ohjelmasta puuttuu enää kaksi aivan yksinkertaista kohtaa: milloin raha riittää (tulee kohtaan varaaOstaaLihapiirakka) ja paljonko sitä jää (tulee kohtaan rahaaJäljellä). Vihje: tarvitset merkintöjä ”<=” (tai ”>=”) ja ”-”.
package javaharj; import java.util.Scanner; public class java110 { static Scanner lukija = new Scanner (System.in); public static void main(String[] args) { int rahamaara,hinta; System.out.print("Anna rahamaara:"); rahamaara = lukija.nextInt(); System.out.print("Anna hinta:"); hinta = lukija.nextInt(); println("Fyrkkaa jää " + rahamaara-hinta); if ( rahamaara >= hinta ) { System.out.println(" ”on varaa" ); } else if ( rahamaara < hinta ) { System.out.println(" ei ole varaa"); } } }
Tehtävänannossa lukee erikseen: ”Älä vähennä lompakon sisältöä, ellet voi ostaa lihapiirakkaa.” Sinun pitäisi siis tulostaa uusi summa vain, jos on varaa. Lisäksi laskulausekkeessa pitää olla sulut, koska lausekkeet käsitellään vasemmalta oikealle, joten et voi laskea toimitusta "a"+b-c eli ("a"+b)-c vaan täytyy kirjoittaa "a"+(b-c).
Toivottavasti luit myös edellisen viestini.
mikä on vielä pielessä
joo tiedän itseäkin hävetää
eikö tässä nyt ole kaikki muu kunnossa paitsi tämä
System.out.println("Lompakkoon jää rahaa " + (rahamaara-hinta.));
package javaharj; import java.util.Scanner; public class liha { static Scanner lukija = new Scanner (System.in); public static void main(String[] args) { int rahamaara,hinta; System.out.print("Anna rahamaara:"); rahamaara = lukija.nextInt(); System.out.print("Anna hinta:"); hinta = lukija.nextInt(); if ( rahamaara >= hinta) { System.out.println("Lompakkoon jää rahaa " + (rahamaara-hinta.)); } else { System.out.println("Mene töihin!"); } } }
Poista tuo ylimääräinen piste. Kai nyt kehitysympäristösi osaa osoittaa, missä kohti se virhe suunnilleen on, joten ei liene kovin monta kohtaa, jossa virhe voisi olla.
Metabolix kirjoitti:
Poista tuo ylimääräinen piste. Kai nyt kehitysympäristösi osaa osoittaa, missä kohti se virhe suunnilleen on, joten ei liene kovin monta kohtaa, jossa virhe voisi olla.
joo kiitos paljon avusta! rupesi vaan silmät olevaan vähän väsymään kun koko päivän on näitä tehnyt.
Aihe on jo aika vanha, joten et voi enää vastata siihen.