-
Notifications
You must be signed in to change notification settings - Fork 0
/
functions-and-scope.js
204 lines (118 loc) · 6.32 KB
/
functions-and-scope.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
// Je gaat functies schrijven die we kunnen hergebruiken om een lijst met eindcijfers van studenten te checken.
// Je zult over de cijfers heen moeten itereren (hoe pak je dat aan?),
// maar ook een manier moeten vinden om hetgeen dat je verzamelt ergens te bundelen. Op deze manier zul je ontdekken hoe je omgaat met scope. Pak vooral het hoofdstuk op EdHub over for-loops er nog eens bij!
// Tip: je mag hier geen ingebouwde object methoden gebruiken, dus daar hoef je niet naar te kijken.
const grades = [6, 8, 5, 7, 7, 4, 6, 8, 8, 3, 6, 8, 5, 6];
/* Opdracht 1: Cum Laude */
/* 1a: Script schrijven */
// De administratie moet weten hoeveel studenten er dit blok cum laude zijn afgestudeerd (8 of hoger). Daar moeten namelijk speciale diploma's voor besteld worden.
// Schrijf de stapjes om dit te kunnen checken eerst uit en vraag jezelf de volgende dingen af:
// * Hoe kan ik iedere waarde van de array checken op deze conditie?
// * Hoe zorg ik ervoor dat dit ook werkt wanneer de array 100 entries bevat?
// * Hoe zorg ik ervoor dat wanneer ik een cijfer tegenkom die aan de conditie voldoet, ik dit ergens kan bijhouden?
// Log het antwoord in de terminal.
// STAP 1: VASTSTELLEN OF WAARDE IN [i] GROTER OF GELIJK IS AAN WAARDE 8. UITKOMST: TRUE OF FALSE
//ALS TRUE DAN 1 OPTELLEN BIJ VARIABLE 'highGrades'
//ALS FALSE DAN VERDER GAAN MET VASTSTELLEN
// STAP 2: DE VALUE VAN VARIABELE 'highGrades' TERUGGEVEN AAN GLOBAL SCOPE
// STAP 3: VALUE UIT FUNCTION LOGGEN NAAR CONSOLE
let highGradesCount = 0
for (let i = 0; i < grades.length; i++) {
if (grades[i] >= 8) {
highGradesCount = highGradesCount + 1}
}
console.log(highGradesCount)
// ---- Verwachte uitkomst: 6
/* 1b: Omschrijven tot een herbruikbare functie */
// Schrijf een functie genaamd cumLaude, die een array van cijfers verwacht (zoals grades) en het aantal Cum laude studenten teruggeeft. Gebruik hiervoor jouw antwoord van 1a.
// Zorg ervoor dat jouw functie ook werkt als we een andere array met eindcijfers willen checken, zoals bijvoorbeeld: [6, 4, 5] of [8, 9, 4, 6, 10].
// Log het antwoord in de terminal.
function cumLaude(gradesArray) {
let highGradesCount = 0
for (let i = 0; i < gradesArray.length; i++) {
if (gradesArray[i] >= 8) {
highGradesCount = highGradesCount + 1}
}
console.log(highGradesCount)
}
cumLaude(grades)
cumLaude([6, 4, 5])
cumLaude([8, 9, 4, 6, 10])
console.log('end of script')
// ---- Verwachte uitkomsten:
// cumLaude(grades) geeft 6
// cumLaude([6, 4, 5]) geeft 0
// cumLaude([8, 9, 4, 6, 10]) geeft 3
/* Opdracht 2: Gemiddeld cijfer */
/* 2a: Script schrijven */
// De studenten-administratie moet ieder blok opnieuw berekenen wat het gemiddelde eindcijfer is, maar we beginnen met de grades array van hierboven.
// Schrijf de stapjes om dit te kunnen berekenen eerst uit en vraag jezelf de volgende dingen af:
// * Hoe wordt een gemiddelde berekend?
// * Wat moet ik verzamelen uit de array van cijfers om uiteindelijk een gemiddelde te kunnen berekenen?
// * Hoe zorg ik ervoor dat ik alle waardes uit de array kan langslopen, ook als de array wel 100 entries zou bevatten?
// Log het antwoord in de terminal.
// ---- Verwachte uitkomst: 6.642857142857143
let sum = 0
for (let i = 0; i < grades.length; i++) {
sum = sum + grades[i]
average = sum / grades.length
}
console.log(average)
console.log('end of script')
/* 2b: Omschrijven tot een herbruikbare functie */
// Schrijf een functie genaamd averageGrade, die een array van cijfers verwacht (zoals grades) en het gemiddelde cijfer teruggeeft. Gebruik hiervoor jouw antwoord van 2a.
// Zorg ervoor dat jouw functie ook werkt als we een andere array willen checken, zoals bijvoorbeeld: [6, 4, 5] of [8, 9, 4, 6, 10].
// Log het antwoord in de terminal.
// ---- Verwachte uitkomsten:
// averageGrade(grades) geeft 6.642857142857143
// averageGrade([6, 4, 5]) geeft xxxx
// averageGrade([8, 9, 4, 6, 10]) geeft xxxx
function calculateAverage(arrayGrade) {
let sumOffArray = 0
for (let i = 0; i < arrayGrade.length; i++) {
sumOffArray = sumOffArray + arrayGrade[i]
// averageOfArray = totalOffArray / arrayGrade.length
}
const hetResultaat = sumOffArray / arrayGrade.length
console.log('lengte van array is ' + arrayGrade.length + ' getallen groot')
console.log(hetResultaat.toFixed(2))
console.log('Totaal van de array is ' + sumOffArray)
console.log('en dat delen door het aantal is ' + sumOffArray / arrayGrade.length)
}
calculateAverage([1,2,9,1,5,7,7,8,9,10,4,4,3,4,6,7,8,3])
/* 2c: Afronden op twee decimalen */
// Zorg ervoor dat het gemiddelde cijfer dat wordt teruggegeven uit de functie netjes wordt afgerond op twee decimalen.
// Tip: Google is your best friend!
/* Bonusopdracht: hoogste cijfer */
/* 3a: Script schrijven */
// Schrijf een script die op basis van de grades array (hierboven) checkt wat het hoogst behaalde cijfer is. Je mag hier geen bestaande methoden voor gebruiken. Schrijf de stapjes eerst uit en vraag jezelf de volgende dingen af:
// * Hoe kan ik iedere waarde van de array langsgaan?
// * Op welke conditie moet ik checken?
// * Hoe zorgt ik ervoor dat wanneer ik een cijfer tegenkom die aan de conditie voldoet, ik dit ergens kan opslaan?
// Log het antwoord in de terminal.
// ---- Verwachte uitkomst: 9
let highestRank = 0
for (let i = 0; i < grades.length; i++) {
if (grades[i] >= highestRank) {
highestRank = grades[i]
}
}
console.log('Het hoogste cijfer uit de array is een ' + highestRank)
/* 3b: Omschrijven tot een herbruikbare functie */
// Schrijf een functie genaamd highestGrade, die een array van cijfers verwacht (zoals grades) en het hoogste cijfer teruggeeft. Gebruik hiervoor jouw antwoord van 3a.
// Zorg ervoor dat jouw functie ook werkt als we een andere array willen checken, zoals bijvoorbeeld: [6, 4, 5] of [8, 9, 4, 6, 10].
// Log het antwoord in de terminal.
// ---- Verwachte uitkomsten:
// highestGrade(grades) geeft 9
// highestGrade([6, 4, 5]) geeft 6
// highestGrade([8, 9, 4, 6, 10]) geeft 10
function highestGrade(cijfers) {
let highestRank = 0
for (let i = 0; i < cijfers.length; i++) {
if (cijfers[i] >= highestRank) {
highestRank = cijfers[i]
}
}
console.log('Dit is een functie. Het hoogste cijfer uit de array is een ' + highestRank)
}
highestGrade([1,1,2,1000])