diff --git a/.gitignore b/.gitignore index 757fee3..b30bc63 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -/.idea \ No newline at end of file +/.idea +/README.md \ No newline at end of file diff --git a/functions-and-scope.js b/functions-and-scope.js index 3cdd4b5..fdb6764 100644 --- a/functions-and-scope.js +++ b/functions-and-scope.js @@ -1,25 +1,59 @@ -// 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: @@ -27,13 +61,30 @@ const grades = [9, 8, 5, 7, 7, 4, 9, 8, 8, 3, 6, 8, 5, 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? @@ -42,10 +93,22 @@ 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: @@ -53,18 +116,31 @@ const grades = [9, 8, 5, 7, 7, 4, 9, 8, 8, 3, 6, 8, 5, 6]; // 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? @@ -72,9 +148,19 @@ const grades = [9, 8, 5, 7, 7, 4, 9, 8, 8, 3, 6, 8, 5, 6]; // ---- 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. @@ -82,3 +168,19 @@ const grades = [9, 8, 5, 7, 7, 4, 9, 8, 8, 3, 6, 8, 5, 6]; // 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])); \ No newline at end of file diff --git a/functions-methods.js b/functions-methods.js index 89db6c7..8f45559 100644 --- a/functions-methods.js +++ b/functions-methods.js @@ -1,19 +1,33 @@ -// 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" @@ -21,9 +35,33 @@ // 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 @@ -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 \ No newline at end of file +// 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); \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..ae28443 --- /dev/null +++ b/index.html @@ -0,0 +1,11 @@ + + + + + Title + + + + + + \ No newline at end of file