16. Тізімдерді өңдеу
•
Программалау мұғалімі семестр бойынша бірсыпыра зертхана-
лық жұмыстар қабылдады. Семестр соңында ол жұмыстардың
орташа қорытындысын шығару алдында әрбір студенттің ең
төменгі бағасын алып тастады.
•
Енді алдымен студенттер бағасын оқып, олардан ең төменгі баға-
ны алып тастап барып, орташа бағаны есептейтін программа құру
керек. Мұның алгоритмі мынадай болуы тиіс:
- Студенттердің бағаларын алу.
- Бағалардың қосындысын есептеу.
- Ең кіші бағаны табу.
- Бағалар қосындысынан ең кіші бағаны алып тастау. Бұл өзгер-
тілген қосындыны береді. Осы қосындыны бағалардың 1-ге кемі-
тілген санына бөлу. Шыққан бөлінді орташа баға болып саналады.
- Орташа бағаны көрсету.
•
Келесі программада осы есеп 3-ке бөлініп берілген, алдымен
басты функция, сонан соң екі қосымша функциялар келтірілген.
Тізімдерді өңдеу
0
# Программа 7.12. (drop_lowest_score.py) Басты функция
1
# Бұл программа зертханалық жұмыстар үшін бірсыпыра бағалар
2
# енгізіп, солардың ең кішісін алып тастайды да,
3
# орташа бағаны есептейді.
4
5
def main () :
6
# Қолданушыдан бағалар алу.
7
scores = get_scores()
8
9
# Бағалар қосындысын алу.
10
total = get_total(scores)
11
12
# Ең төменгі бағаны алу.
13
lowest = min(scores)
14
Тізімдерді өңдеу
15
# Қосындыдан ең кіші бағаны алып тастау.
16
total -= lowest
17
18
# Орташа мәнді есептеу. Қосындыны бағалар санынан
19
# 1-ді алып барып, содан шыққан санға бөлеміз, өйткені
20
# ең төменгі баға алынып тасталған болатын.
21
average = total / (len(scores) - 1)
22
23
# Орташа мәнді көрсету.
24
рrint('Ең төменгі бағаны алып тастаған соң, ',
25
'орташа баға мәні = ', average)
26
Тізімдерді өңдеу
•
7-жол қолданушыдан зертханалық жұмыстар бағасын алып,
get_scores
функциясын шақырады да, осы бағалар тізіміне сілтеме қайтарады.
Тізім
scores
айнымалысына меншіктеледі.
•
10-жол
get_total
функциясын шақырып, оған бағалар тізімін аргумент
ретінде береді. Бұл функция тізімдегі мәндер қосындысын есептеп
қайтарады да, оны
total
айнымалысына меншіктейді.
•
13-жол стандартты
min
функциясын шақырып, оған
scores
бағалар
тізімін аргумент ретінде береді. Бұл функция тізімінің ең кіші мәнін
анықтап, оны
lowest
айнымалысына меншіктейді.
•
16-жол
total
айнымалысынан ең кіші бағаны алып тастайды. Сонан соң
21-жол арифметикалық орташа мәнді, қосындыны
len (scores) -1
өрне-
гіне бөлу арқылы табады, өйткені ең төменгі баға алынып тасталған
болатын.
•
24- және 25-жолдар орташа бағаны көрсетеді. Ары қарай енді қарас-
тырылатын
get_scores
функциясы орналасады.
Тізімдерді өңдеу
27
# get_scores функциясы қолданушыдан бірсыпыра
28
# бағалар мәнін алып, соларды тізімде сақтайды.
29
# Келесі функция тізімге сілтеме қайтарады.
30
def get_scores():
31
# Бос тізім құру.
32
test_scores = []
33
34
# Циклді басқаратын айнымалы жасау.
35
again = 'и'
36
Тізімдерді өңдеу
37
# Қолданушыдан бағаларды алып,
38
# соларды тізімге қосу.
39
while again == 'и':
40
# Бағаны енгізіп, оны тізімге қосу.
41
value = float(input('Баға енгізіңіз: '))
42
test_scores.append(value)
43
44
# Бағаны тағы да енгізу/енгізбеу
45
print ('Тағы да баға енгізесіз бе?')
46
again = input('и = иә, қалғандары = жоқ: ')
47
print ()
48
49
# Тізімді қайтару.
50
return test_scores
51
•
Бұл get_scores функциясы
бірсыпыра бағаларды енгі-
зеді де, оларды тізімге қо-
сады.
•
Тізім 50-жолда қайтарылады.
•
Енді тізімді қабылдап алатын
get_total
функциясы жұмы-
сын қарастырайық.
Тізімдерді өңдеу
52
# get_total функциясы аргумент ретінде
53
# тізімді қабылдайды да, тізімдегі мәндер
54
# қосындысын қайтарады.
55
def get_total(value_list):
56
# Қосынды жинақтауышы ретіндегі айнымалыны құру.
57
total = 0.0
58
59
# Тізім элементтерінің мәндері қсындысын есептеу.
60
for num in value_list:
61
total += num
62
63
# Қосындыны қайтару.
64
return total
65
66
# Басты функцияны шақыру.
67
main ()
•
Бұл
get_total
функциясы
аргумент ретінде тізімді
қабылдайды.
•
Тізім мәндерін қосу үшін ол
цикл мен қосымша айныма-
лыны пайдаланады.
•
64-жол қосынды қайтарады.
Тізімдерді өңдеу
Программа нәтижелері:
Баға енгізіңіз: 92
Тағы да баға енгізесіз бе?
и = иә, қалғандары = жоқ: и
Баға енгізіңіз: 67
Тағы да баға енгізесіз бе?
и = иә, қалғандары = жоқ: и
Баға енгізіңіз: 75
Тағы да баға енгізесіз бе?
и = иә, қалғандары = жоқ: и
Баға енгізіңіз: 88
Тағы да баға енгізесіз бе?
и = иә, қалғандары = жоқ: ж
Ең төменгі бағаны алып тастаған соң, орташа баға мәні = 85.0
|