Institute of Computer Science
  1. Courses
  2. 2018/19 fall
  3. Computer Programming (LTAT.03.001)
ET
Log in

Computer Programming 2018/19 fall

9. kodutöö

1. Andmete silumine

Tekstifailis aktsiad.txt on igal real kuupäev ning sellele kuupäevale vastav ühe ettevõtte aktsia hind.

Kirjuta funktsioon silu_andmed, mis rakendab aktsia hindadele keskmistamist ning tagastab keskmistatud andmed uue järjendina. Funktsioon peab võtma argumendiks algandmed järjendina ning täisarvu, mis näitab, mitme elemendi kaupa keskmistamist rakendatakse. Keskmistamise all mõtleme siinkohal iga järjendi elemendi asendamist eelmise n elemendi aritmeetilise keskmisega.

Näiteks järjendi [1, 3, 2, 4, 3, 5] puhul, kui n = 3, näeks arvutamine välja nii:

[1/1, (1+3)/2, (1+3+2)/3, (3+2+4)/3, (2+4+3)/3, (4+3+5)/3] = [1, 2, 2, 3, 3, 4]

Aritmeetilise keskmise leidmiseks soovitame kasutada Pythoni moodulis statistics asuvat funktsiooni mean:

>>> from statistics import mean
>>> mean([1, 2, 3, 2, 1])
1.8

Seejärel kirjuta programm, mis kuvab nii algandmeid kui ka silutud andmeid graafikul. Graafikute joonistamiseks kasuta moodulit matplotlib, mille kohta saad rohkem lugeda siit. Tulemus võiks välja näha umbes selline (n = 50, algandmed siniselt, silutud punaselt):

Vihje 1. Hoia funktsiooni sees järjendit viimase n elemendiga.

Vihje 2.

>>> a = [1, 2, 3, 4, 5]
>>> a.pop(0)
>>> 1
>>> a
[2, 3, 4, 5]
>>> a.append(6)
>>> a
[2, 3, 4, 5, 6]

2. minu_shuffle

Pythoni moodulis random on funktsioon shuffle, mis ajab argumendiks antud järjendis elementide järjekorra juhuslikult segamini:

>>> from random import shuffle
>>> a = [1, 3, 3, 4, 5, 5, 5, 6, 6]
>>> shuffle(a)
>>> a
[5, 3, 6, 5, 5, 3, 4, 1, 6]

Kirjuta ise analoogne funktsioon minu_shuffle, seejuures pole lubatud kasutada olemasolevat shuffle-funktsiooni.

  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment