newbiefråga summan och pos och neg tal i en array

Permalänk
Medlem
Skrivet av appmas:

Om det är så att genomsnittet ska räknas när du gett input 5 gånger så ska du bara räkna det i sista iterationen. Men det blir nog bättre om du gör som @Ostbullen skrev, att du låter summan nollställas varje gång den räknar genomsnittet och visa det efter varje input. Jag skulle också lagt in ett break, så att den slutar processen om du skriver 9999.

if (number === 9999) { document.write("Error"+"<br>"+"<br>") break }

Tack lägger in det!

Permalänk
Medlem
Skrivet av Ostbullen:

Nemas problemas, lycka till i hackandet!

du kan kanske även sortera positiva och negativa tal i en array och plussa dem?

Permalänk
Medlem

Finns flera fel i koden
Men det som gör att du fastnar är:
while (number != 0) {

Så länge du skriver in vad som helst förutom 0 är du fast där. Men vad du egentligen vill är väl att loopa medan number == 0?

Sen behöver du ändra en del innan while-loopen för att detta skall funka som du vill.
for (let i = 1; i <= 5; i++) { //Du ville väl ha 5 tal inte 4?
let number = parseInt(prompt("Input nr"))
//numbers.push(number) //Du vill göra detta först efter du kollat att du inte skrivit in 0
//document.write("Your input nr was: " + number + "<br>" + "<br>") //Gör du efter koll att du inte fått in en nolla

while (number != 0) {
number = parseInt(prompt("Input nr"))
}

//NU vet du att du inte fått in en nolla och lagrar den samt skriver in vad du lagrat.
numbers.push(number)
document.write("Your input nr was: " + number + "<br>" + "<br>")

För övrigt. Du kanske skall gen en instruktion till användaren att 0 inte är accepterat värde.

Edit:
Du kommer nog få fler problem sen, men börja här och felsök lite sen på egen hand. Bra om du försöker lösa så mycket som möjligt och ber om hjälp när du fastnat. Så man lär sig

Permalänk
Medlem
Skrivet av Youjimbo:

Finns flera fel i koden
Men det som gör att du fastnar är:
while (number != 0) {

Så länge du skriver in vad som helst förutom 0 är du fast där. Men vad du egentligen vill är väl att loopa medan number == 0?

Sen behöver du ändra en del innan while-loopen för att detta skall funka som du vill.
for (let i = 1; i <= 5; i++) { //Du ville väl ha 5 tal inte 4?
let number = parseInt(prompt("Input nr"))
//numbers.push(number) //Du vill göra detta först efter du kollat att du inte skrivit in 0
//document.write("Your input nr was: " + number + "<br>" + "<br>") //Gör du efter koll att du inte fått in en nolla

while (number != 0) {
number = parseInt(prompt("Input nr"))
}

//NU vet du att du inte fått in en nolla och lagrar den samt skriver in vad du lagrat.
numbers.push(number)
document.write("Your input nr was: " + number + "<br>" + "<br>")

För övrigt. Du kanske skall gen en instruktion till användaren att 0 inte är accepterat värde.

Edit:
Du kommer nog få fler problem sen, men börja här och felsök lite sen på egen hand. Bra om du försöker lösa så mycket som möjligt och ber om hjälp när du fastnat. Så man lär sig

tack! jag ändrade till ==0 men då blev det undefindistället. ändrade jag tillbaka till !=
skrivs talen ut precis som de ska man inte avslutas efter 89 då jag vill att den ska sortera de positiva och negativa talen och sen räkna. jag vet ju heller inte vad riktigt som är fel. jag vill med 0an att den ska sortera pos och neg tal inte lagra 0an.

jag försöker verkligen satt hela dagen igår med men känner bara att jag gräver kanske åt fel håll och det blir ännu mera fel.

Permalänk
Medlem

Testa denna koden och om den gör det du vill.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>pos and neg nr array</h1>

<script>
let numbers = []
let pos = 0
let neg = 0

for (let i = 1; i <= 5; i++) {
let number = parseInt(prompt("Input nr"))
//numbers.push(number)
//document.write("Your input nr was: " + number + "<br>" + "<br>")

while (number == 0) {
number = parseInt(prompt("Input nr"))
}
numbers.push(number)
document.write("Your input nr was: " + number + "<br>" + "<br>")

}

numbers.forEach(number => {
if (number < 0) {
neg += number
} else {
pos += number
}})

document.write("sum pos: " + pos + "<br>" + "<br>")
document.write("sum neg: " + neg)

</script>
</body>
</html>

Edit: Detta är baserat på din kod. Modifierat lite. Det som saknas i den är skydd om användaren inte skriver in ett nummer alls. Skall du nog lägga till

Permalänk
Medlem
Skrivet av Youjimbo:

Testa denna koden och om den gör det du vill.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>pos and neg nr array</h1>

<script>
let numbers = []
let pos = 0
let neg = 0

for (let i = 1; i <= 5; i++) {
let number = parseInt(prompt("Input nr"))
//numbers.push(number)
//document.write("Your input nr was: " + number + "<br>" + "<br>")

while (number == 0) {
number = parseInt(prompt("Input nr"))
}
numbers.push(number)
document.write("Your input nr was: " + number + "<br>" + "<br>")

}

numbers.forEach(number => {
if (number < 0) {
neg += number
} else {
pos += number
}})

document.write("sum pos: " + pos + "<br>" + "<br>")
document.write("sum neg: " + neg)

</script>
</body>
</html>

Edit: Detta är baserat på din kod. Modifierat lite. Det som saknas i den är skydd om användaren inte skriver in ett nummer alls. Skall du nog lägga till

wow!! tack tack tack!! du räddade precis min helg.:)

Permalänk
Medlem
Skrivet av linn_123:

tack! jag ändrade till ==0 men då blev det undefindistället. ändrade jag tillbaka till !=
skrivs talen ut precis som de ska man inte avslutas efter 89 då jag vill att den ska sortera de positiva och negativa talen och sen räkna. jag vet ju heller inte vad riktigt som är fel. jag vill med 0an att den ska sortera pos och neg tal inte lagra 0an.

jag försöker verkligen satt hela dagen igår med men känner bara att jag gräver kanske åt fel håll och det blir ännu mera fel.

Sitt inte och ändra saker på måfå, om du inte förstår vad du gör kommer du inte att lära dig något.
Bryt ner koden i delar och se till att du förstår vad varje del gör.

Du vill att användaren ska få mata in heltal som är skilda från 0 och avsluta inmatningen om användaren skriver 0.
Hur kan du åstadkomma detta?

När du löst den biten kan du fundera på hur du lägger till det inmatade värdet i din array.
Efter att loopen är avslutad kan du sortera din array (låter inte nödvändigt för ändamålet, men visst) och sedan gå igenom den och summera de negativa talen för sig och de positiva talen för sig.

Om tal är mindre än 0: SummaNegativa += tal Annars: SummaPositiva += tal

Permalänk
Medlem
Skrivet av linn_123:

jag sitter i visual studios. hur menar du med highlightning?

kolla här:
https://imgur.com/a/zx7X7Wy

Permalänk
Medlem
Skrivet av linn_123:

wow!! tack tack tack!! du räddade precis min helg.:)

Skicka PM om det är nån ändring i koden som är oklar som du inte förstår. Jag modifierade en del i logiken så du får hojta till om något i logiken är oklart

Permalänk
Medlem
Skrivet av Youjimbo:

Skicka PM om det är nån ändring i koden som är oklar som du inte förstår. Jag modifierade en del i logiken så du får hojta till om något i logiken är oklart

jag förstår logiken absolut. jag har mycket lättare att läsa kod än att skriva från scratch. men det blir väl bättre ju mer tid man lägger på det och studerar.
Åter igen tack.

Permalänk
Festpilot 2020, Antiallo

@linn_123: Välkommen till Sweclockers.

För att alla ska få samma chans att få hjälp så är det en tråd per ämne som gäller.
Således har jag sammanfogat dina två trådar till en.

/DavidtheDoom, - Moderator

Permalänk
Medlem
Skrivet av DavidtheDoom:

@linn_123: Välkommen till Sweclockers.

För att alla ska få samma chans att få hjälp så är det en tråd per ämne som gäller.
Således har jag sammanfogat dina två trådar till en.

/DavidtheDoom, - Moderator

Hej absolut. Det visste jagvtyvärr inte. Men mina trådar är lösta för mig ska dw tas bort då? Eller ska de ligga kvR att hjälpa andra?

Permalänk
Festpilot 2020, Antiallo
Skrivet av linn_123:

Hej absolut. Det visste jagvtyvärr inte. Men mina trådar är lösta för mig ska dw tas bort då? Eller ska de ligga kvR att hjälpa andra?

Att trådar raderas när problemet är "löst" gör att informationen inte finns kvar för andra användare med samma frågeställning eller fundering. Det blir dessutom väldigt orättvist för de som lagt ner tid på tråden och får allt sitt arbete utraderat när tråden tas bort. Således tar vi inte bort trådar när de är "lösta". Det motarbetar hela syftet med forumet som en kunskapsbank och ett utbyte.

/DavidtheDoom, - Moderator