8 svar
120 visningar
Zorikan2017 är nöjd med hjälpen
Zorikan2017 224
Postad: 31 maj 2023 19:30

Hur kan detta vara fel?

Kan även lägga till att det står längst ner: 

anm: Uppgifter där en for-snurra kan användas kan ibland oxå lösas effektivt med vektorberäkningar, utan någon snurra. Avgör vilka av uppgifterna som lämpar sig för det, och fundera på hur det isåfall skulle kunna göras. 

Har jag kryssat i för många? Jag har tänkt vad att det är möjligt (vilket oxå står i frågan) att använda while sats och for sats även om det inte är lämpligt. 

 

Calle_K 2148
Postad: 31 maj 2023 20:35

Tänker att while-satsen även kan användas för alternativ 4.

for-satsen behöver inte användas för alternativ 2.

Hondel 1360
Postad: 31 maj 2023 22:00

for loop är bra när du vet hur många iterationer du ska köra. while loop är bra när du inte vet hur många iterationer. 

exempelvis:

Om du ska beräkna en geometrisk summa är det att summera ett fixt antal termer. Så då är en for-loop bra. 

När du ska avgöra hur många gånger ett tal är delbart med 3 kan du ju dela talet med 3 tills det inte går längre. Och det vet du inte hur många gånger du kan göra (det är ju uppgiften att avgöra) så därför är en while-loop bra

Zorikan2017 224
Postad: 1 jun 2023 18:48

Zorikan2017 224
Postad: 1 jun 2023 18:49

Vad är det som är fel nu då

Hondel 1360
Postad: 1 jun 2023 18:53

Som jag sa i mitt svar tidigare, en geometrisk summa består av ett bestämt antal termer, så eftersom du vet hur många iterationer som du ska genomföra är det lämpligt att använda en.....?

Laguna Online 29670
Postad: 1 jun 2023 19:12

Hur tar du fram det sjunde elementet i en vektor?

Zorikan2017 224
Postad: 1 jun 2023 19:15

Nej den ska det givetvis inte vara men fick en fin beskrivning förut. 

Det är nästan korrekt: While när man kör ett på förhand okänt antal varv, For när man vet antalet varv i förväg.

Fråga 1:
Alt 1: Du vet antalet element i vektorn, alltså for-loop
Alt 2: Du vet inte antalet termer i förväg, alltså while-loop
Alt 3: Du vet antalet termer i förväg, alltså for-loop
Alt 4: Du vet inte antalet gånger du kan dela i förväg, alltså while-loop
Alt 5: Ingen loop alls skulle jag säga

Fråga 2:
Alt 1: Du vet vektorernas storlekar i förväg, alltså for-loop
Alt 2: Ingen loop alls behövs för detta, bara att indexera direkt
Alt 3: Görs normalt med en "while True:"-loop, men undvik som pesten
Alt 4: Du vet inte antalet tal i förväg, alltså while-loop
Alt 5: Du vet antalet upprepningar i förväg, alltså for-loop

Fermatrix 7841 – Fd. Medlem
Postad: 1 jun 2023 21:20

"... undvik som pesten" är inte alls sant. Oändliga loopar är mycket vanliga och användbara. Visserligen brukar man ha ett sätt att bryta loopen, men inte alltid. Det rådet gäller primärt för nybörjar isf. Ett bra exempel är inbygdda system. Du måste man alltid ha en main loop. Samma sak ifall du programmerar ett spel, då kallas det game loop etc. 

Du kan istället tänka i banorna: 

Finns det en vettig anledning till varför jag skulle vilja ha en oändlig while loop? I ditt fall är svaret förmodligen Nej i 9/10 fall.

Svara
Close