Dart ohjelmointi apua!

  • Keskustelun aloittaja Keskustelun aloittaja Pasi80
  • Aloitettu Aloitettu
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.
 
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.
 
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).
 
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
 
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.
 
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.
 
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.}
 
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
 
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:
 

Statistiikka

Viestiketjuista
261 816
Viestejä
4 548 227
Jäsenet
74 849
Uusin jäsen
Pizzapäivä123

Hinta.fi

Back
Ylös Bottom