Even & Oneven getallen scriptje
ik heb dit jaar voor het eerst php met informatica, zelf kan ik wel beetje overweg met html maar nu kregen wij de volgende opdracht:
Maak een pagina in php waarbij de even getallen 1 tm 20 en de oneven
getallen van 21 tm 40 bij elkaar worden geteld.
Ik zou dus echt geen idee hebben hoe ik hieraan moet beginnen,
meestal kan ik wel scripts bewerken die ik van internet haal..
maar nu gaat om zelf coderen.
Kan mij op weg helpen?
Mvg Tjerk Muller
Tjerk Muller op 18/11/2010 18:36:13:
(...)
Ik zou dus echt geen idee hebben hoe ik hieraan moet beginnen,
meestal kan ik wel scripts bewerken die ik van internet haal..
maar nu gaat om zelf coderen.
(...)
Ik zou dus echt geen idee hebben hoe ik hieraan moet beginnen,
meestal kan ik wel scripts bewerken die ik van internet haal..
maar nu gaat om zelf coderen.
(...)
Nu moet je zelf denken.
Vast en zeker heb je al les gehad in php.
Kijk naar de dingen die je al gehad hebt. Daar kan je vast wat uithalen.
Beste Karl dat is dus niet het geval want we zijn pas sinds vorige week begonnen.. ik zou het echt op prijs stellen als iemand alvast een beginnetje of iets dergelijks kan opzetten? Gr.
Wat heb je al geprobeerd?
Tjerk Muller op 18/11/2010 18:39:52:
Beste Karl dat is dus niet het geval want we zijn pas sinds vorige week begonnen.. ik zou het echt op prijs stellen als iemand alvast een beginnetje of iets dergelijks kan opzetten? Gr.
We zijn nu al een paar maand bezig met dit schooljaar (kwart voorbij), dus je zou in ieder geval iets moeten kunnen bedenken van wat er moet gebeuren. Je moet je kennis die je al geleerd hebt kunnen toepassen (je zult vast wel wat geleerd hebben).
Zou je je niveau kunnen vertellen? Dan kan ik daar ook wat op inspelen.
@ jordi ik heb mar iets geprobeerd.. niet lachen a.u.b :P
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$even = 2;
$oneven = 3;
$rekenen = 2 + 3; // = 5
$rekenen = $even + $oneven; //
?>
$even = 2;
$oneven = 3;
$rekenen = 2 + 3; // = 5
$rekenen = $even + $oneven; //
?>
Maar hoe zorg ik ervoor dat ik een reeks getallen krijg?
Gr.
Gewijzigd op 18/11/2010 18:46:44 door Tjerk Muller
Je kunt kijken of een getal even of oneven is met % oftewel modulo.
Weet je hoe je met arrays werkt?
Maar goed. Je moet dus de even getallen van 1 t/m 20 optellen met de oneven van 21 t/m 40.
Ik neem aan dat je weet hoe je met operators kan kijken of een geval even of oneven is.
Door die rij moet je dan natuurlijk doorheen lopen (loopen), dus dan kan je het beste met een control-structures.for (for) loop doen.
Voordat je aan zo'n project begint kijk je wat het gevraagde is, en welke functies e.d. je wellicht nodig hebt. Eventuele valkuilen of moeilijkheden kan je ook van te voren bedenken. En dan pas ga je aan het scripten.
Mark Coenen op 18/11/2010 18:52:20:
Die even en oneven vars zijn niet nodig.
Je kunt kijken of een getal even of oneven is met % oftewel modulo.
Weet je hoe je met arrays werkt?
Je kunt kijken of een getal even of oneven is met % oftewel modulo.
Weet je hoe je met arrays werkt?
Als je gelijk moeilijk wilt doen (modulo is niet echt basis ofzo), verwijs dan ook naar php.net: modulo.
En waarvoor array's? Laat php lekker denken.
waarom zou ik lachen?
je zit niet voor niks op school
en waarom gebruik je eerst deze variable:
$rekenen = 2 + 3; // = 5
en dan
$rekenen = $even + $oneven; //
dit is precies hetzelfde
range() dacht. Leek me wel handig voor hem.
@Karl Ik vroeg of hij wist wat arrays waren omdat ik aan Mark Coenen op 18/11/2010 19:07:36:
@Karl Ik vroeg of hij wist wat arrays waren omdat ik aan range() dacht. Leek me wel handig voor hem.
Mij lijkt basiskennis belangrijker.
- SanThe - op 18/11/2010 19:11:35:
Leuk. En als je nog steeds niet weet hoe je er doorheen moet lopen?
het is zijn huiswerk wat wij maken
we kunnen hem wel helpen maar niet maken
Ik ben ook nog een redelijke leek op het gebied van PHP, maar heb deze oefening toch op een klein kwartier opgelost. Ik heb mij niet in verwarring laten brengen door arrays, ondanks dat ik deze in theorie wel ken. Het lijkt mij aangewezen voor u om deze aanvankelijk niet te gebruiken. Als de oefening gelukt is kan je ze (als je gemotiveerd bent) ze altijd nog proberen te herschrijven met arrays.
Het belangrijkste in het oplossen van dit probleem is om even na te denken en best op papier even uit te schrijven wat er moet gebeuren. Hiervoor heb je geen letter code nodig, enkel logica. Iets wat ze u niet kunnen leren volgens mij.
Hieronder leg ik even de logica en stappen uit die ik gevolgd heb, maar ik raad u aan om hier eerst zelf over na te denken.
----
Ik ben er van uitgegaan dat ik eerst alle getallen van 1 tot en met 40 moest genereren. Daarom heb ik een FOR loop geschreven die de getallen van 1 tot en met 40 op het scherm schreef. De volgende stap was om de getallen onder de 20 te scheiden van de getallen boven de twintig maar kleiner dan 40. Hiervoor heb ik een IF functie gebruikt. Ik had ook nog nooit met modulo gewerkt, maar dit is niet zo moeilijk. Een geneste IF (een IF in de vorige IF functie) hielp me om te bepalen wat even was in de getallen onder de twintig en wat oneven was in de getallen vanaf 21. Dan is het een kwestie van deze telkens weg te schrijven d.m.v. bijvoorbeeld += en op te tellen.
Toevoeging op 19/11/2010 12:00:08:
Ik heb ondertussen wel zelf een vraag voor de meer gevorderde leden hier. Ik wou in mijn eerste geneste if bepalen wat de even getallen waren m.b.v. ($counter % 2). Uiteraard moest dit in dit geval (!$counter % 2) zijn, maar dit werkt niet. Ik heb nu gebruik gemaakt van een ELSE om dit probleem te omzeilen, maar had graag geweten hoe ik hier kan zeggen NIET($counter % 2).
% berekend hoe vaak het getal achter de % in het getal er voor kan en geeft de rest waarde als return
1 % 2 = 1
2 % 2 = 0
en bijv 8 % 3 zal je 2 geven en 14 % 5 => 4
Gewijzigd op 19/11/2010 12:06:30 door Jacco Engel
@ewergreen Kun je een eigen topic aanmaken? en daar relevante code in plaatsen zodat we kunnen zien wat je nu precies doet. Het wordt anders straks een warboel als we het over meerdere dingen in 1 topic gaan hebben.
En dat vereist wat meer technische kennis :-)
@Mark, het overgrote deel was on topic en bedoeld om Tjerk te helpen. Ik had een probleem waar hij misschien ook tegenaan zou lopen, dus besloot om het hier maar snel te vragen.
Ewergreen none op 19/11/2010 11:59:38:
NIET($counter % 2).
Gewoon letterlijk. Dus NIET wordt een uitroepteken.
if(!($counter % 2))
Thanks SanThe, die werkt inderdaad ook.