3 svar
207 visningar
MisteriosoO är nöjd med hjälpen
MisteriosoO 15 – Fd. Medlem
Postad: 4 jan 2019 18:56

Skapa program

Hej! 

 

Uppgift:

"Gör ett program där användaren matar in start- och slutvärde och antal steg. Programmet ska skriva ut alla steg i intervalet. Du behöver inte hantera fallet då slutvärdet är mindre än startvärdet.

Observera här att olika operatorer har olika prioritet. Till exempel utförs multiplikation och division innan addition och subtraktion eftersom de har högre prioritet. Du kan använda parenteser för att ange operatorordning: (x-y)/ z betyder alltså att subtraktionen utförs innan divisionen."

Fråga:

Jag förstår bara 20% av det som står där. Vad ska jag egentligen göra? Föra uppgiften var liknande och det stod:

"Användaren vill ha ett program för att mata in start- och slutvärde och stegvärde (positivt). Du ska göra ett program använder sig av flyttal och skriver ut alla steg i intervallet"

Så, var är skillnaden mellan stegvärde och "antal steg". Vad menar han med  "Du behöver inte hantera fallet då slutvärdet är mindre än startvärdet.". Jag vet inte riktigt vad jag ska göra. 

Tack för hjälpen.

Laguna Online 28587
Postad: 4 jan 2019 19:49

Det är inte så fantastiskt tydligt. Det där med prioritet är precis drt du redan vet från matte, att gånger görs före plus, osv.

Om du matar in start=4, slut=10 och antal steg=2 så ska programmet skriva ut 4, 7 och 10. De kanske menar att antalet steg är 3 då, jag är inte säker. 

MisteriosoO 15 – Fd. Medlem
Postad: 4 jan 2019 20:02 Redigerad: 4 jan 2019 21:07
Laguna skrev:

Det är inte så fantastiskt tydligt. Det där med prioritet är precis drt du redan vet från matte, att gånger görs före plus, osv.

Om du matar in start=4, slut=10 och antal steg=2 så ska programmet skriva ut 4, 7 och 10. De kanske menar att antalet steg är 3 då, jag är inte säker. 

 tack för hjälpen. jag förstår inte heller det som står i facit.

 Det står i facit: 

public static void main(String[] args) {
Sdb.createConsole();

double start = Sdb.in.nextDouble();
double stop = Sdb.in.nextDouble();
double stepCount = Sdb.in.nextDouble();
double diff = stop-start;
double step = diff/step_Count;
double x = start;
while(x<=stop){
System.out.println(x);
x = x +step;


}
Sdb.closeConsole();

med kommentaren: "Orsaken till att diff används som mellansteg är att divisionen har högre prioritet än subtraktion och vid stop-start/stepCount skulle divisionen utföras först. Då måste du i stället använda parenteser såhär: (stop-start/StepCount."

Laguna Online 28587
Postad: 4 jan 2019 20:18

Varför de är rädda för parenteser vet jag inte. Men förutom det, vad tycker du är oklart med det programmet? 

Svara Avbryt
Close