Dart ohjelmointi apua!

Liittynyt
11.01.2021
Viestejä
41
Yrittänyt ratkaista seuraavaa tehtävää jo kohta 30 tuntia, mutta ei aukene. Olisin kiitollinen taas kerran, jos joku osaisi neuvoa miten ohjelmaa muuttaa.

Ohjelmassa on tarkoitus syöttää lukuja (pituus), jotka ohjelma laskee ja lopulta syöttää lukujen (pituuden) keskiarvon. Lukujen syöttäminen päättyy negatiivisella arvolla.
Lisäksi, jos ensimmäinen arvo (pituus) on negatiivinen, niin ohjelma tulostaa ('Ei hyppyjä').
hypyt.PNG

Nyt jokainen syötetty arvo tulostuu konsoliin ja laskee koko ajan keskiarvoa??? (Eikä tuo ('Ei hyppyjä') toteudu.
 
Liittynyt
23.10.2016
Viestejä
658
Onpas Javascriptin näköistä koodia.

Ei tuo viimeinen else voi koskaan toteutua, koska jos pituus > -1 niin listassa on aina lukuja. Laita tuo "ei hyppyjä" tulostumaan tuonne if (pituus < 0) sisään, jos listan pituus on 0.
 
Liittynyt
16.11.2016
Viestejä
313
Siirrä keskiarvon laskeminen whilen ulkopuolelle, jonka jälkeen keskiarvon laskeminen tapahtuu vasta hyppyjen laskemisen päätyttyä (break pysäyttää whilen -> koodin suorittaminen jatkuu whilen alapuolelta).
 
Liittynyt
11.01.2021
Viestejä
41
Siirrä keskiarvon laskeminen whilen ulkopuolelle, jonka jälkeen keskiarvon laskeminen tapahtuu vasta hyppyjen laskemisen päätyttyä (break pysäyttää whilen -> koodin suorittaminen jatkuu whilen alapuolelta).
Olen tätä yrittänyt, mutta nyt kun se on "while" ulkopuolella, niin se ei tunnista tuota "summa" komentoa ylempää? Ilmeisesti kun se ei ole saman "komentoketjun" alla... ?? alla kuva
1611856152104.png
 
Liittynyt
11.01.2021
Viestejä
41
Onpas Javascriptin näköistä koodia.

Ei tuo viimeinen else voi koskaan toteutua, koska jos pituus > -1 niin listassa on aina lukuja. Laita tuo "ei hyppyjä" tulostumaan tuonne if (pituus < 0) sisään, jos listan pituus on 0.
Tässä vaihtoehdossa se kirjoitti " - ei hyppyjä" myös silloin kun oli annettu "positiivisia" numeroita. Siis silloin kun päätti numeroiden syöttämisen negatiivisella numerolla.
 
Liittynyt
16.11.2016
Viestejä
313
Olen tätä yrittänyt, mutta nyt kun se on "while" ulkopuolella, niin se ei tunnista tuota "summa" komentoa ylempää? Ilmeisesti kun se ei ole saman "komentoketjun" alla... ?? alla kuva
Se johtuu siitä, että summa on alustettu whilen sisällä ja täten se ei ole olemassa sen ulkopuolella. Muuttujat ovat olemassa "samalla tasolla" ja sen alla olevissa osioissa. Katso tilanteen ratkaisemiseksi "lista"-muuttujaa esimerkkinä.

PS. laita koodit mieluun tekstinä kun kuvana tänne.
 
Liittynyt
11.01.2021
Viestejä
41
Se johtuu siitä, että summa on alustettu whilen sisällä ja täten se ei ole olemassa sen ulkopuolella. Muuttujat ovat olemassa "samalla tasolla" ja sen alla olevissa osioissa. Katso tilanteen ratkaisemiseksi "lista"-muuttujaa esimerkkinä.

PS. laita koodit mieluun tekstinä kun kuvana tänne.
Ymmärrän mitä tarkoitat, mutta en osaa sitä laittaa toimimaan :hmm: :D. Olen kyllä yrittänyt ratkaista ongelmaa jo lähes 30 tuntia (vaihdellen ratkaisu malleja;).

1. import 'dart:io';
2.
3. main() {
4. var lista = [];
5. print('Syötä hyppyjen pituudet, negatiivinen luku lopettaa.');
6.
7. while (true) {
8. var pituus = int.parse(stdin.readLineSync());
9.
10. if (pituus < 0) {
11. break;
12. }
13. if (pituus >= 0) {
14. lista.add(pituus);
15. }
16. var summa = 0;
17. for (int i = 0; i < lista.length; i++) {
18. summa = summa + lista;
19. }
20. if (lista.length > 0) {
21. var keskiarvo = summa / lista.length;
22. print('Hyppyjen keskipituus: $keskiarvo');
23. } else {
24. print('Ei hyppyjä');
25. }
26. }

27.}
 
Liittynyt
17.01.2018
Viestejä
2 081
Ehkä tähän tyyliin ideana
Koodi:
while() {
  pituus = readline()
  if pituus < 0 break
  else lista.add(pituus)
}

if lista.lenth > 0 {
  Laske tässä keskiarvo listan arvoista ja tulosta
} else {
  print ei hyppyjä
}
Pahoittelut muotoilusta ja puutteista, kirjoitin nopsaan puhelimella
 
Liittynyt
11.01.2021
Viestejä
41
Ehkä tähän tyyliin ideana
Koodi:
while() {
  pituus = readline()
  if pituus < 0 break
  else lista.add(pituus)
}

if lista.lenth > 0 {
  Laske tässä keskiarvo listan arvoista ja tulosta
} else {
  print ei hyppyjä
}
Pahoittelut muotoilusta ja puutteista, kirjoitin nopsaan puhelimella
Kiitos vain. Näinhän se menikin hienosti läpi. :thumbsup:
 
Toggle Sidebar

Statistiikka

Viestiketjut
239 685
Viestejä
4 188 864
Jäsenet
70 780
Uusin jäsen
Tauno.T

Hinta.fi

Ylös Bottom