Kan iemand mij helpen met deze PHP opdracht voor school?



Voer drie cijfers in van een vak. De cijfers tellen voor 30%, 30% en 40% mee.
Bereken het periodecijfer.Je mag het laagste cijfer herkansen.

Bereken wat je moet halen om gemiddeld een 6 te staan.

Vervang in een ingevoerde string alle klinkers door medeklinkers
En waar loop je op vast? Het spreekt voor sich dat we niet je huiswerk gaan doen. Dus als je een concrete vraag hebt, stel die dan gewoon.
Het is trouwens grotendeels elementaire wiskunde van het lager onderwijs of groep <= 8! :)
Ik raad aan om eerst even de berekening zelf uit te schrijven. De vertaling naar een PHP-script is de volgende stap.
een cijfer is in mijn beleving (niet scholier meer) een integer tussen 0 en 9.

Maar toen ik je iets op weg wilde helpen, realiseerde ik me dat de invoer "568" en dan 5*0.3 + 6*0.3 + 8*0.4

niet gaat voldoen: een 10 is mogelijk ook een "cijfer".
En is zo'n "cijfer" wel een integer (geheel getal)?
Ik had even tijd over.

Cijferen:
<?php
$cijfers = [4, 5, 6];
$wegingprocent = [30, 30, 40];
$herkans = 2;  // index van te herkansen cijfer
$minimaal = 6;
function numfmt($cijfer) {return str_replace('.', ',', round($cijfer, 2));}
foreach ($cijfers as $index => $cijfer)
  print 'Je ' . ($index + 1) . 'e cijfer is een ' . numfmt($cijfer) . PHP_EOL; 
$periodecijfer = 0;
foreach ($cijfers as $index => $cijfer)
  $periodecijfer += $cijfer * ($wegingprocent[$index] / 100);
print 'Je periodecijfer is ' . numfmt($periodecijfer) . '.' . PHP_EOL;
if ($periodecijfer >= $minimaal) die('Je hoeft niet te herkansen.');
$basis = 0;
foreach ($cijfers as $index => $cijfer) {
  if ($herkans == $index) continue;
  $basis += $cijfer * ($wegingprocent[$index] / 100);
}
$nodig = ($minimaal - $basis) / ($wegingprocent[$herkans] / 100);
print 'In de herkansing moet je een ' . numfmt($nodig) . ' halen om een '
  . numfmt($minimaal) . ' te staan.';
?>

Vervangen:
<?php
$string = 'hallo wereld!';
$klinkers = ['a', 'e', 'i', 'o', 'u'];
$medeklinkers = ['b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l',
  'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'];
$vervang = str_replace($klinkers, $medeklinkers, $string);
print $vervang;
?>

Eigenlijk is de tweede opdracht veel moeilijker dan de eerste. Want: wat doe je met hoofdletters? Voor welke encoding moet het werken? Wat te doen met diakritische tekens?
En het ingewikkeldste: wat doe je met de Nederlandse letter 'ij' (https://nl.wikipedia.org/wiki/IJ_(digraaf))?

De eerste drie kan ik nog wel verzinnen, maar die laatste is lastig (het voorbeeld is eigenlijk incompleet). Het hangt er vanaf in welk jaar de tekst is geschreven of IJ een letter is of niet. Zelfs nu is het lastig: de IJ wordt vermeden in officiële documenten, maar als het slechts een ligatuur is, dan is het toch vreemd dat bij namen, zowel de I als de J in hoofdletter wordt. Bijvoorbeeld in IJmeer
@Ad Fundum,

Je reactie is goed bedoeld, maar je zit hier iemand anders z'n huiswerk te maken die daarop dient te worden beoordeeld. Lijkt me niet de bedoeling dat jij een volledig antwoord gaat voorschotelen. Daar leert hij/zij helemaal niks van.
Zullen we hier geen complete huiswerkopdrachten gaan delen?
Het is uiteraard de taak van de topicstarter om de opdracht te maken.

Misschien dat Ad Fundum bereid is om zijn bericht aan te passen?
Ts mag ook wel eens antwoorden. Maar het is heel "stil" langst die kant.
@Ozzie @Ariën

Ik denk dat je je geen zorgen hoeft te maken, de oplossing die Ad heeft gebouwd zal bij de leraar vragen oproepen en Ts zal uit moeten leggen hoe hij waar gekomen is.....
Dat gaat hem niet worden met deze oplossing, briljant van Ad. :-)

[size=xsmall]Toevoeging op 22/02/2021 22:28:28:[/size]

** knip **
** wat hier stond was iets wat jullie niet konden zien, excuus **

Het ligt er een beetje aan hoeveel praktijkvoer je aan iemand geeft. ;-)
Uit ervaring van vroeger weet ik dat niet elke leraar om uitleg van de code vraagt. En ook al is de code niet compleet, toch is het veel voorgekauwde praktijk.







Reageren