Hjälp med 2 uppgifter i Java!

Permalänk
Medlem

Hjälp med 2 uppgifter i Java!

Hej,

Sitter och tränar inför ett prov jag har imorgon och förstår alla uppgifter utom dom 2 sista som jag inte kan hitta svar på någonstans hur jag löser. Har bara gått programmering någon vecka så förmodligen är uppgifterna jätte lätta men men.

Uppgift 1.

Gör ett program som avrundar ett inmatat tal till hela tusental och skriver ut det. En inmatning av t.ex. 76560 ska avrundas uppåt till 77000.

Uppgift 2.

Gör ett program som omvandlar ett bråktal till ett tal i blandad form. En inmatning av talet 5/3 ska resultera i talet 1½. En programkörning kan se ut så här:

Mata in täljare: 5
Mata in nämnare: 3
Talet 5/3 blir i blandad form: 1 2/3.

Har försökt jätte länge nu att göra uppgifterna så skulle uppskatta om någon kunde hjälpa mig med dom!

Permalänk
Medlem

Uppgift 1: tänk på att du kan dela upp talet i dess positioner. Sedan är det ju bara (om talet = abcde) position c som spelar roll för avrundningen.

Upggift 2: tänk på mod() operationer.

Deta är ledtrådarna jag tänker ge dig. Att jag svarar på uppgifterna åt dig tjänar du ingenting på

Visa signatur

Dator: i9 9900k @ 5,0Ghz (Vatten) | MSI GTX1080 Sea Hawk EK X | ASUS ROG XI Hero | 4x8gb 3400Mhz Corsair RGB | Corsair 760T | NZXT Hale90 1000W
Kringutrustning: Asus VG278H | 2x Samsung P2450 | Razer Ouroboros | Ducky Shine II | Razer Vespula

Permalänk
Medlem

kan tyvärr inte nått om java, men kan ju bumpa tråden

näh men blir alltid nyfiken när det gäller programering, men varför ska du göra om 5/3 till 1 1/2, när detta inte stämmer? ska den avrundas till bara hela och halva tal då eller?

Visa signatur

Citera för svar :)

Intel 3770k / Msi Mpower / 980 TI / 16gb 1600mhz Corsair Vengeance / H100i / Silverstone Strider 1000w Gold / Samsung 830 128gb / Fractal Design Arc

Permalänk
Medlem

1.
(n + 500) / 1000 * 1000

2.
tal = x/y;
heltal = x%y;
rest = y;

Permalänk
Medlem
Skrivet av magnusvmt:

1.
(n + 500) / 1000 * 1000

Måste casta den till en int oxå för att bli av med decimalerna

(int)((n + 500) / 1000) * 1000

Permalänk
Medlem
Skrivet av Wickit:

Måste casta den till en int oxå för att bli av med decimalerna

(int)((n + 500) / 1000) * 1000

Om n är int är hela uttrycket int, alltså behövs ingen cast.

Skrivet av magnusvmt:

Det där är inte hjälp, det där är en lösning.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av magnusvmt:

1.
(n + 500) / 1000 * 1000

2.
tal = x/y;
heltal = x%y;
rest = y;

Tack!

Permalänk
Medlem
Skrivet av Teknocide:

Om n är int är hela uttrycket int, alltså behövs ingen cast.

Efter division med 1000 är uttrycket med största sannolikhet inte en int längre. Och vid en cast till int utnyttjar man att en int inte tar hänsyn till decimalerna.
Därav först division med 1000 => cast till int => multiplikation med 1000.

Permalänk
Medlem
Skrivet av Wickit:

Efter division med 1000 är uttrycket med största sannolikhet inte en int längre. Och vid en cast till int utnyttjar man att en int inte tar hänsyn till decimalerna.
Därav först division med 1000 => cast till int => multiplikation med 1000.

Ingenting ändrar datatyp magiskt.

int n = 56;
System.out.println(n/10);

ger output: 5

Permalänk
Medlem
Skrivet av Wickit:

Efter division med 1000 är uttrycket med största sannolikhet inte en int längre. Och vid en cast till int utnyttjar man att en int inte tar hänsyn till decimalerna.
Därav först division med 1000 => cast till int => multiplikation med 1000.

När du delar en int med en int är resultatet en int. Svårare än så är det inte
Detta gäller för de statiskt typade språk jag känner till iaf.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Hedersmedlem

Egentligen vill vi inte att medlemmar ger färdiga lösningar till skoluppgifter av något slag. Eftersom du har prov i morgon och ändå redan har fått lösningarna låter jag inläggen vara kvar.

Detta är alltså ingen tillsägelse till dig som trådskapare, utan snarare en vädjan till er som hjälper till - att faktiskt hjälpa istället för att ge facit!