Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
/.idea
/.idea
/README.md
126 changes: 114 additions & 12 deletions functions-and-scope.js
Original file line number Diff line number Diff line change
@@ -1,39 +1,90 @@
// 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!
// 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.

function verzamelCijfers(grades) {
const list = [];

for (let i = 0; i < grades.length; i++) {
list[list.length] = grades[i];
}

return list;
}

const grades = [9, 8, 5, 7, 7, 4, 9, 8, 8, 3, 6, 8, 5, 6];
const resultaat = verzamelCijfers(grades);
console.log(resultaat);


/* 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.
// 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 zorgt ik ervoor dat wanneer ik een cijfer tegenkom die aan de conditie voldoet, ik dit ergens kan bijhouden?
// Log het antwoord in de terminal.

function telHogeCijfers(grades) {
let count = 0;

for (let i = 0; i < grades.length; i++) {
if (grades[i] >= 8) {
count += 1;
}
}

return count;
}

const aantalHogeCijfers = telHogeCijfers(grades);
console.log(aantalHogeCijfers);

// ---- 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].
// 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.

// ---- Verwachte uitkomsten:
// cumLaude(grades) geeft 6
// cumLaude([6, 4, 5]) geeft 0
// cumLaude([8, 9, 4, 6, 10]) geeft 3

function cumLaude(grades) {
let count = 0;

for (let i = 0; i < grades.length; i++) {
if (grades[i] >= 8) {
count += 1;
}
}
return count;
}

const totalHighGrades = cumLaude(grades);
const checkGrades = cumLaude([6, 4, 5]);
const moreGrades = cumLaude([8, 9, 4, 6, 10]);

console.log(totalHighGrades);
console.log(checkGrades);
console.log(moreGrades);

/* 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.
// 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?
Expand All @@ -42,43 +93,94 @@ const grades = [9, 8, 5, 7, 7, 4, 9, 8, 8, 3, 6, 8, 5, 6];

// ---- Verwachte uitkomst: 6.642857142857143

function averageGradeOne() {
let sum = 0;
for (let i = 0; i < grades.length; i++) {
sum += grades[i];
}
return sum / grades.length;
}

totalAverageGrade = averageGradeOne();
console.log(totalAverageGrade);

/* 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].
// 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 5
// averageGrade([8, 9, 4, 6, 10]) geeft 7.4

function averageGrade(grades) {
let sumUp = 0;
for (let i = 0; i < grades.length; i++) {
sumUp += grades[i];
}
average = sumUp / grades.length;
return average.toFixed(0);
}

totalAverageGradeOne = averageGrade([6, 4, 5]);
totalAverageGradeTwo = averageGrade([8, 9, 4, 6, 10]);
console.log(totalAverageGradeOne);
console.log(totalAverageGradeTwo);

/* 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!



console.log(totalAverageGradeTwo);

/* 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:
// 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 highestNumber = grades[0];

for (let i = 0; i < grades.length; i++) {
if (grades[i] > highestNumber) {
highestNumber = grades[i];
}
}

console.log(highestNumber);

/* 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.
// 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(grades) {
let highestGradeCount = grades[0];{
for (let i = 0; i < grades.length; i++)
{
if (grades[i] > highestGradeCount) {
highestGradeCount = grades[i];
}
}
return highestGradeCount;
}
}

console.log(highestGrade(grades));
console.log(highestGrade([6, 4, 5]));
console.log(highestGrade([8, 9, 4, 6, 10]));
70 changes: 62 additions & 8 deletions functions-methods.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,67 @@
// Je gaat functies schrijven die we kunnen hergebruiken om sommige emailadressen te checken. Nu zul je gaan merken hoe handig functies kunnen zijn!
// Je zult hier methoden van het String Object voor nodig hebben, dus pak de paragraaf op EdHub over het String Object er even bij.
// Je gaat functies schrijven die we kunnen hergebruiken om sommige emailadressen te checken.
// Nu zul je gaan merken hoe handig functies kunnen zijn!
// Je zult hier methoden van het String Object voor nodig hebben,
// dus pak de paragraaf op EdHub over het String Object er even bij.


/* Opdracht 1 */
// Schrijf een functie genaamd getEmailDomain, die een emailadres verwacht en de domeinnaam teruggeeft. Een domeinnaam is hetgeen dat na het @ in het adres staat
// Schrijf een functie genaamd getEmailDomain, die een emailadres verwacht en de domeinnaam teruggeeft.
// Een domeinnaam is hetgeen dat na het @ in het adres staat
// ---- Verwachte uitkomsten:
// getEmailDomain("n.eeken@novi-education.nl") geeft novi-education.nl
// getEmailDomain("t.mellink@novi.nl") geeft novi.nl
// getEmailDomain("a.wiersma@outlook.com") geeft outlook.com

// // getEmailDomain("a.wiersma@outlook.com") geeft outlook.com
//

function getEmailDomain(emailaddress) {
const searchAtDomain = emailaddress.indexOf("@");
const domainAddress = emailaddress.substring(searchAtDomain + 1);
return domainAddress;
}

const domainOne = getEmailDomain("n.eeken@novi-education.nl");
const domainTwo = getEmailDomain("t.mellink@novi.nl");
const domainThree = getEmailDomain("a.wiersma@outlook.com");
console.log(domainOne,domainTwo,domainThree);

/* Opdracht 2 */
// Schrijf een functie genaamd typeOfEmail, die een emailadres verwacht. De functie checkt of het emailadres een novi domein heeft (medewerker), een novi-education domein (student), of extern domein (zoals gmail of outlook)
// Schrijf een functie genaamd typeOfEmail, die een emailadres verwacht.
// De functie checkt of het emailadres een novi domein heeft (medewerker),
// een novi-education domein (student), of extern domein (zoals gmail of outlook)
// ---- Verwachte uitkomsten:
// typeOfEmail("n.eeken@novi-education.nl") geeft "Student"
// typeOfEmail("t.mellink@novi.nl") geeft geeft "Medewerker"
// typeOfEmail("novi.nlaapjesk@outlook.com") geeft geeft "Extern" <-- deze moet het ook doen!
// typeOfEmail("a.wiersma@outlook.com") geeft "Extern"


function typeOfEmail(emailDomain) {
const searchAtDomain = emailDomain.indexOf("@");
const domainAddress = emailDomain.substring(searchAtDomain + 1);
{
if (domainAddress === "novi-education.nl") {
const novi = "Student";
return (novi);
} else if (domainAddress === "novi.nl") {
const novi = "Medewerker";
return (novi);
} else {
return ("Extern");
}
}
}

const emailOne = typeOfEmail("n.eeken@novi-education.nl");
const emailTwo = typeOfEmail("t.mellink@novi.nl");
const emailThree = typeOfEmail("novi.nlaapjesk@outlook.com");
const emailFour = typeOfEmail("a.wiersma@outlook.com");

console.log(emailOne, emailTwo, emailThree, emailFour);

/* Opdracht 3 */
// Schrijf een functie genaamd checkEmailValidity, die een emailadres verwacht en checkt of het emailadres valide is. De functie returned true of false, afhankelijk van de uitkomst.
// Schrijf een functie genaamd checkEmailValidity, die een emailadres
// verwacht en checkt of het emailadres valide is.
// De functie returned true of false, afhankelijk van de uitkomst.
// Een emailadres is valide wanneer:
// * Er een @ in voorkomt
// * Er géén , in voorkomt
Expand All @@ -33,4 +71,20 @@
// checkEmailValidity("tessmellink@novi.nl") geeft true - want @ en punt op de juiste plek
// checkEmailValidity("n.eekenanovi.nl") geeft false - want geen @
// checkEmailValidity("n.eeken@novinl.") geeft false - want de punt mag niet als laatst
// checkEmailValidity("tessmellink@novi,nl") geeft false - want er staat een komma in
// checkEmailValidity("tessmellink@novi,nl") geeft false - want er staat een komma in

function checkEmailValidity(valide) {
const conditie1 = (valide.includes("@"));
const noKomma = !valide.includes(",");
const lastPoint = !valide.endsWith(".");
const positieApenstaart = valide.indexOf("@");
const positieLaatstePunt = valide.lastIndexOf(".");
const conditie2 = positieLaatstePunt > positieApenstaart;
return conditie1 && conditie2 && noKomma && lastPoint;
}

const eeken = checkEmailValidity("n.eeken@novi.nl");
const tess = checkEmailValidity("tessmellink@novi.nl");
const eeken2 = checkEmailValidity("n.eekenanovi.nl");
const eeken3 = checkEmailValidity("n.eeken@novinl.");
console.log(eeken, tess, eeken2, eeken3);
11 changes: 11 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script src="functions-methods.js"></script>
<script src="functions-and-scope.js"></script>
</body>
</html>