gånger med loop (5*6*7*8*9*10=?)
Skriv ett program som frågar efter start värde, och sedan frågar efter slut värde.
Tex : start : 5
slut : 10
uträkning : 5*6*7*8*9*10
summa : 151200
Har hållt på med denna länge nu o fattar noll, det ska vara en for eller while loop är allt jag vet.
behöver en väldigt simpel lösning pls.
For loop är mest passande här, men det går att lösa men en while loop.
.
Dracaena skrev:For loop är mest passande här, men det går att lösa men en while loop.
hur då? :,)
Läs här:
https://www.w3schools.com/js/js_loop_for.asp
Där finns allt information du behöver för att lösa uppgiften.
Dracaena skrev:Läs här:
https://www.w3schools.com/js/js_loop_for.asp
Där finns allt information du behöver för att lösa uppgiften.
fattar noll fortfarande :,)
Kan du skriva en for-loop som skriver ut talen 1-10?
Dracaena skrev:Kan du skriva en for-loop som skriver ut talen 1-10?
Japp, jag fastnar när jag har en ändrande variabel och jag kan ta 5*6 och sedan 5*7 men att kunna spara den förra uträkningen och ta det gånger den nya variablen vet jag inte hur jag gör. Alltså 5*6*7
tal = tal*i
Eller tal *= i
Dracaena skrev:tal = tal*i
Eller tal *= i
kan jag snälla få hela svaret? har grubblat på detta väldigt länge nu och kan fortfarande inte och ingen hjälper mig
äsch skrev:Dracaena skrev:tal = tal*i
Eller tal *= i
kan jag snälla få hela svaret? har grubblat på detta väldigt länge nu och kan fortfarande inte och ingen hjälper mig
sum=1;for(var i=5;i<=10;i++){sum*=i;}
summan börjar på 1 och multipliceras varje gång med index (i), index börjar på 5 och slutar på 10. Den totala summan blir alltså 151200.
Som jag tolkade uppgiften såsom den presenterades så ska programmet fråga efter input för start och slutvärde, därefter dynamiskt lösa produkten av alla talen däremellan (inkl. start och slut)?
Vet inte om du lyckats "samla in" input-värde för start och slut än @äsch?
Om vi antar du gjort det så kan du skapa en variabel med var eller let utanför en for-loop likt @startkodder föreslog.
Använd i som iterationsvariabel kan du göra, sätt den till startvärdet det första du gör, villkoret för for-loopen ska gå så länge <= slutvärdet. i-variabeln ska inkrementeras efter varje iteration med ++.
let product = 1;
for(let i = start; i <= end; i++) {
product *= i;
}
// output product som håller ditt svar.
Om detta programmet ska "köras löpande" så kan du "wrappa" det inuti en while loop där du har en boolesk variabel som avgör när programmet ska avslutas, då kan du t ex. koda så ifall input för startvärde är negativt eller något annat så kan den din booleska variabeln (true/false) sättas till false (detta görs inuti while-loopen), och när while-loopen sen då kontrollerar booleska variabeln för while-loopen i slutet av en iteration (efter for-loopen körts klart) så stoppar exekveringen.
Kan isf. se ut likt någotsånär som följer:
let run = true;
while(run) { // as long as run is true this program will keep running over and over collecting new start and end values until you enter negative start value
// print instructions to collect start value
// collect start value and store in variable
// check if start value was not negative, only run if BIGGER than 0 (positive)
if(start > 0) {
// print instructions to collect end value
// collect end value
let product = 1;
for(let i = start; i <= end; i++) {
product *= i;
}
// print instructions to display product
// output product value
}else {
// in here we can print instructions for when start value was negative and loop should stop
//also set run to false to stop execution
run = false;
}
}
Tror det borde kunna funka.
En extra grej för detta programmet hade kunnat vara att lägga in "validering" för att säkerställa att start inputvärde samt end inputvärde verkligen går att köra programmet med (så endvärdet är större än startvärdet d.v.s.).