Prisijungti

ienančių duomenų sumavimas

  • 4 Grd '12

Laba, kaip teisingai python sintakse sumuoti įeinančius duomenis?
Kiekvieną sekundę, iš išorinio įrenginio, programa gauna nepastovia reikšmę pvz.
6.25684
kitą sekunde
4.25
kita
3.65982456
Kaip programoje reiktu sumuoti tokias įeinančias reikšmes ir jas suapvalinti iki 0.00?

  • 4 Grd '12

O toks sumavimo ir apvalinimo principas netinka?

#pradine skaiciu suma
currentSum = 0.0

#prieaugis..
#čia magicNumber(String?) tavo minėta nepastovi reikšmė
currentSum += float(magicNumber)

#apvalinam ir spausdinam
print round(currentSum, 2)
  • 4 Grd '12

Apvalina gerai, bet nesumuoja, atiduoda tą pačią reikšmę kuria gavo. Manau, "neįsimena" prieš tai buvusios reikšmės
Rezultatas:
0.28
0.72
3.94
4.99
1.8
0.65
2.64
3.8

  • 4 Grd '12

Mano pateiktas kodo pavyzdys yra labiau principas, o ne sprendimas. Sumavimą reiktų atlikti kokiam nors cikle (pvz. while). O jei nori, kad tavo skriptas "prisimintų" reikšmes ir po uždarymo, tuomet reikšmę reikės saugoti atskiram faile (Failų skaitymas ir rašymas).

  • 4 Grd '12

Laba vakara,
Ne, ne manęs nedomina įrašymas į failus.
Programos ciklas pasiima iš išorinio įrenginio reikšmę "R", sekančiame cikle ta "R" reikšmė jau būna kita. Kaip man susumuoti buvusio ciklo reikšmę ir esamo ciklo reikšmes. Rezultatas turėtu būti didėjantis.
Jei gali plačiau su while, kaip tai realizuoti.
p.s.
Su programavimu pas mane skistokai.

  • 5 Grd '12

Būtų paprasčiau jei pateiktum dabartinį savo kodo gabalą (kad ir kreivą).
Šiaip gan dažna naujokų klaida būną jog tokius pradinius kintamuosius kaip "visaSuma = 0.0" apsirašo ciklo viduje kartu su sumavimu, ko pasėkoje gauna ciklą kuris kartoja: sumos nunulinimas; sumos padidėjimas veiksmus kaskart ciklui besisukant. Taip suma ir neauga (tokiais atvejais reiktų "visaSuma = 0.0" iškelti prieš ciklą). Bet nematant dabartinio tavo sprendimo galima tik spėlioti, kodėl nesigauna.

P.S. čia kažkaip susije su anksčiau minėtu Liberlab projektu?

  • 5 Grd '12

@apocalipso rašė:
P.S. čia kažkaip susije su anksčiau minėtu Liberlab projektu?

Taip.
"while" ciklą bandžiau aprašyti "measure" funkcijoje, nelabai sekasi su sintakse , įėjimo reikšmę naudoju "V1"

Atsakyti