Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

PHP vraag over looptijd rente

Pagina: 1
Acties:
  • 853 views

  • master111
  • Registratie: Februari 2009
  • Laatst online: 14-12-2021
Ik heb een opdracht van school gekregen, en ik ben er al een tijd mee bezig maar ik kom er maar niet uit.

Dit moet ik gebruiken (hoeft niet allemaal): controlelussen, for, if/then/else, switch
Dit is de opdracht:
Schrijf een PHP-programma dat 3 getallen inleest: een beginbedrag, een eindbedrag en een rentepercentage. Laat het programma vervolgens bepalen na hoeveel jaar het beginbedrag is uitgegroeid tot het eindbedrag, gegeven het rentepercentage.

  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

Wat heb je zelf al gevonden? Ik neem aan dat je wel iets bedacht hebt.

Zet eerst de berekening die je wilt doen eens op papier, dan weet je wat je moet doen in je script.

  • master111
  • Registratie: Februari 2009
  • Laatst online: 14-12-2021
Ik had zelf een beginbedrag van 1000 en een rentepercentage van 5% in gedachten.
Deze formule had bedacht:
1000*1,05^X=2079

  • MuddyMagical
  • Registratie: Januari 2001
  • Laatst online: 10:51
master111 schreef op woensdag 27 november 2013 @ 10:49:
Ik heb een opdracht van school gekregen, en ik ben er al een tijd mee bezig maar ik kom er maar niet uit.

Dit moet ik gebruiken (hoeft niet allemaal): controlelussen, for, if/then/else, switch
Dit is de opdracht:
Schrijf een PHP-programma dat 3 getallen inleest: een beginbedrag, een eindbedrag en een rentepercentage. Laat het programma vervolgens bepalen na hoeveel jaar het beginbedrag is uitgegroeid tot het eindbedrag, gegeven het rentepercentage.
Laat dan eens zien waar je niet uit komt. Je zegt dat je er al een tijdje mee bezig bent, dus ik ben benieuwd.

Ik kan me niet voorstellen dat je een opdracht van school zo op een forum gooit en verwacht dat deze voor je wordt uitgewerkt. Daar zou toch niemand blij van worden.
Dus ik ben blij met je inzet! :>

  • redwing
  • Registratie: Juni 1999
  • Laatst online: 11:56
Dat is toch gewoon het beginbedrag pakken, daar de rente bij optellen en vergelijken met het eindbedrag. Als het lager is moet je nog een jaar rente vangen net zo lang tot je wel het eindbedrag hebt.

[removed]


  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

Ga dan eerst bedenken hoe je X moet vinden.
Als je niet weet hoe je je probleem op moet lossen, dan is het ook heel lastig om daar een scriptje voor te schrijven. dus zet dat eerst eens op een rijtje (al dan niet in pseudo-code)

  • master111
  • Registratie: Februari 2009
  • Laatst online: 14-12-2021
Ik heb zelf geen idee hoe ik de X moet vinden, ik weet dat het algebraïsch kan (dat werd mij vertelt), maar dat heb ik nooit geleerd.

  • MuddyMagical
  • Registratie: Januari 2001
  • Laatst online: 10:51
Schrijf een PHP-programma dat 3 getallen inleest: een beginbedrag, een eindbedrag en een rentepercentage. Laat het programma vervolgens bepalen na hoeveel jaar het beginbedrag is uitgegroeid tot het eindbedrag, gegeven het rentepercentage.
Ik weet niet waar je x opeens vandaan haalt, maar maak nu eens eerst een uitwerking op papier van de stappen die je programma moet doen.
Daarna kan je dit makkelijk omzetten in een script.

  • TheOmen
  • Registratie: September 2011
  • Laatst online: 21-11 16:16
Wat denk je dat je zou moeten doen?
Je hebt een bedrag A dat ieder jaar met percentage Y wordt verhoogt totdat A groter is dan bedrag X.
Dat is toch een mooi loopje om mee te werken?

Bedrag A wordt A + Y% per jaar, herhaal tot je bij X uitkomt, aantal herhalingen is aantal jaar.

Ik vindt het vreemd dat je geen idee hebt hoe je dit moet oplossen. en benieuwd wat voor een opleiding je volgt....

[ Voor 0% gewijzigd door TheOmen op 27-11-2013 11:03 . Reden: 5 = Y ]

Running is nothing more than a series of arguments between the part of your brain that wants to stop and the part that wants to keep going.


  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

Dan heb je dus helemaal geen PHPprobleem, maar überhaupt een probleem om dit vraagstuk op te lossen.
Hoewel redwing eigenlijk al een volledige oplossing geeft (weet niet of het de mooiste en efficienste oplossing is, maar hij zal wel werken).

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

En als je een mooie oplossing zoekt is logaritme het toverwoord.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

Er zijn geen stappen het is puur een logaritme die je uit moet voeren
Wikipedia: Logaritme

dat kan met een enkele functie

Gezien de eisen van de opdracht zou ik niet de standaard log functie die in gebouwd zit. maar daar een algoritme voor schrijven

Iperf


  • master111
  • Registratie: Februari 2009
  • Laatst online: 14-12-2021
Ik volg de opleiding informatica (1e jaar), het vak PHP is geheel zelfstandig (niet geroosterd). Er is aanbevolen lessen te volgen via codecademy.com, en de huiswerk opdrachten staan op de online leeromgeving.

  • MuddyMagical
  • Registratie: Januari 2001
  • Laatst online: 10:51
master111 schreef op woensdag 27 november 2013 @ 11:06:
Ik volg de opleiding informatica (1e jaar), het vak PHP is geheel zelfstandig (niet geroosterd). Er is aanbevolen lessen te volgen via codecademy.com, en de huiswerk opdrachten staan op de online leeromgeving.
Ok en wat heb je nou al gedaan of zelf uitgezocht?

  • TheOmen
  • Registratie: September 2011
  • Laatst online: 21-11 16:16
Wat al eerder werd vermeld: dit is geen PHP probleem, dat wordt het pas als je je oplossing hebt gevonden en die gaat uitwerken in code.
Zorg eerst dat je helder hebt WAT je programma moet doen.

Running is nothing more than a series of arguments between the part of your brain that wants to stop and the part that wants to keep going.


  • master111
  • Registratie: Februari 2009
  • Laatst online: 14-12-2021
Het programma moet het aantal jaar berekenen, en dat getal weergeven op de pagina
Met de stof die ik tot nu toe heb gehad dacht ik aan iets in de trant van:
<?php
for ($x=0; $x<=10; $x++)
{
echo "The number is: $x <br>";
}
?>
(voorbeeld van W3schools.com)

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 21-11 21:44
Voordat je PHP gaat prakken, schrijf nu eerst eens een stappen plan voor het programma, bijvoorbeeld:

Stap 1: Lees het bestand in als 1 regel tekst.
Stap 2: Haal de 3 waardes uit die ene regel tekst.
Stap 3: Tel het rente percentage op bij het begin bedrag
Stap 4: Check of het bedrag groter is dan het einde bedrag.

Zo ja => doe iets (maar wat?).
Zo nee => doe iets anders (maar wat?).

Als je dit uitschrijft, kun je per stap kijken hoe je het in PHP kunt doen. Maar in ieder geval heb je dan de logica voor je programma in je hoofd zitten.


P.S. Ik geef je alleen het opzetje, de rest moet je zelf doen.

[ Voor 5% gewijzigd door Morrar op 27-11-2013 11:16 ]


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Dat is de implementatie, lees nou wat TheOmen zegt: los eerst het probleem op.

Met je formule startbedrag * rente^x = eindbedrag zat je al flink in de goede richting. Onderzoek vervolgens hoe je die x kan bepalen (die hints zijn al gegeven, zowel een makkelijke als een mooie oplossing). Ga dán pas nadenken over php-code.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

Dat komt in de verste verte niet in de buurt van een berekening, dat echoed gewoon 1 t/m 10, en niet meer dan dat.

Zet eerst die berekening eens op papier en ga dan pas denken hoe je dit precies in code kunt gaan doen.

  • master111
  • Registratie: Februari 2009
  • Laatst online: 14-12-2021
$begingetal = "1000";
$eindgetat = "2079";
$percentage = "1,05";
$eindgetal = $begingetal * $rentepercentage ^ ?;

  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

Daarmee definieer je je variabelen, maar niet veel meer dan dat.

Stop met het schrijven van script. Zet eerst op papier wat je precies wilt doen. Dat heb je namelijk nog steeds niet duidelijk.

  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

master111 schreef op woensdag 27 november 2013 @ 11:19:
$begingetal = "1000";
$eindgetat = "2079";
$percentage = "1,05";
$eindgetal = $begingetal * $rentepercentage ^ ?;
je moet even de ? rechts van de = zetten en de rest links van de =
(wiskundig he)

Iperf


  • Ypho
  • Registratie: April 2008
  • Laatst online: 06:47

Ypho

Allround Nerd

Wat hier bedoeld wordt is het volgende: Stel je wil dit gaan berekenen zonder PHP, maar gewoon op papier, hoe doe je het dan? Als je dit uitwerkt, kun je dit eenvoudig omzetten naar een code. Dit hoeft niet eens zo zeer moeilijke wiskunde te worden, want je kunt ook per jaar je bedrag berekenen en daarmee doorrekenen.

🃏 TCG Codex - Je volledige TCG verzameling in je broekzak ::: 🍏 TCG Codex for iOS ::: 🤖 TCG Codex for Android


  • redwing
  • Registratie: Juni 1999
  • Laatst online: 11:56
TERW_DAN schreef op woensdag 27 november 2013 @ 11:03:
Hoewel redwing eigenlijk al een volledige oplossing geeft (weet niet of het de mooiste en efficienste oplossing is, maar hij zal wel werken).
Klopt, gezien de vraag leek het me logisch om de makkelijkste oplossing te geven en niet de mooiste aangezien die laatste wat lastiger te snappen is :)

[removed]


  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

ach ik heb ook zat hypotheek adviseurs gezien die er excel voor nodig hebben om uit te rekenen ipv gewoon op de rekenmachine. dus ik snap dat er moeite mee is

Iperf


  • master111
  • Registratie: Februari 2009
  • Laatst online: 14-12-2021
Als ik het op papier zou moeten doen zou ik niet weten hoe. Ik weet niet hoe ik met die macht om moet gaan in de formule.
@fish Er komt een error: Parse error: syntax error, unexpected '?' on line 5

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 21-11 21:44
redwing schreef op woensdag 27 november 2013 @ 11:25:
[...]

Klopt, gezien de vraag leek het me logisch om de makkelijkste oplossing te geven en niet de mooiste aangezien die laatste wat lastiger te snappen is :)
Hangt er ook vanaf of je de nadruk wilt leggen op wiskunde leren of leren programmeren :-) De oplossing die wiskundig makkelijker is, vergt meer programmeer werk en vice versa :D

Die parse error komt doordat ? geen variabele of constante is en dus herkent de PHP parser dat teken niet. Maar als ik jou was zou ik eerst even een tutorial over basale PHP gaan lezen; syntax etc.

[ Voor 19% gewijzigd door Morrar op 27-11-2013 11:29 ]


  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

master111 schreef op woensdag 27 november 2013 @ 11:27:
Als ik het op papier zou moeten doen zou ik niet weten hoe. Ik weet niet hoe ik met die macht om moet gaan in de formule.
@fish Er komt een error: Parse error: syntax error, unexpected '?' on line 5
ja ik bedoel ook op papier he

Weet je nu wel wat een logaritme is of heb heb dat maar overgeslagen ?

[ Voor 9% gewijzigd door Fish op 27-11-2013 11:29 ]

Iperf


  • Ypho
  • Registratie: April 2008
  • Laatst online: 06:47

Ypho

Allround Nerd

master111 schreef op woensdag 27 november 2013 @ 11:27:
Als ik het op papier zou moeten doen zou ik niet weten hoe. Ik weet niet hoe ik met die macht om moet gaan in de formule.
@fish Er komt een error: Parse error: syntax error, unexpected '?' on line 5
Hoe bereken jij het bedrag incl rente na 1 jaar? Dat is je startpunt. De hele machtsverheffingen zijn voor de meest simpele oplossing niet nodig.

🃏 TCG Codex - Je volledige TCG verzameling in je broekzak ::: 🍏 TCG Codex for iOS ::: 🤖 TCG Codex for Android


  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

redwing schreef op woensdag 27 november 2013 @ 11:25:
[...]

Klopt, gezien de vraag leek het me logisch om de makkelijkste oplossing te geven en niet de mooiste aangezien die laatste wat lastiger te snappen is :)
Precies, je ziet vanzelf wel (tenminste, daar ga ik eigenlijk een beetje vanuit) wat eventueel efficiënter zou moeten kunnen. En dan kun je dat op basis van wat je al gevonden hebt uit gaan werken. Maar dan is het wel handig om eerst iets te hebben, kijken of het werkt, en vervolgens te kijken of het vervolgens nog efficienter kan.
master111 schreef op woensdag 27 november 2013 @ 11:27:
Als ik het op papier zou moeten doen zou ik niet weten hoe. Ik weet niet hoe ik met die macht om moet gaan in de formule.
@fish Er komt een error: Parse error: syntax error, unexpected '?' on line 5
Dus, ga eerst uitzoeken hoe dat moet, zonder dat je nog aan PHP denkt. Als je niet weet hoe je iets moet oplossen kun je er ook geen script voor bouwen. En als je (nog) niet met logaritmes wil gaan werken is dat natuurlijk niet erg, het kan ook zonder. Weliswaar minder efficient, maar het werkt wel, en dan heb je je eerste stap gemaakt.
Zoals ik al zei, redwing heeft je de oplossing al gegeven.

[ Voor 10% gewijzigd door TERW_DAN op 27-11-2013 11:30 ]


  • TheOmen
  • Registratie: September 2011
  • Laatst online: 21-11 16:16
master111 schreef op woensdag 27 november 2013 @ 11:27:
Als ik het op papier zou moeten doen zou ik niet weten hoe. Ik weet niet hoe ik met die macht om moet gaan in de formule.
@fish Er komt een error: Parse error: syntax error, unexpected '?' on line 5
Je blijft hengelen naar een uitgewerkt voorbeeld, maar LEES nou eens wat iedereen hierboven voorstelt.
En laat PHP even in de kast tot je WEET wat je moet coderen.

Laatste hint: er moet ergens een iteratie komen die stopt als je het doelbedrag hebt bereikt. Wat er in de iteratie moet gebeuren, en wat als ie klaar is laat ik even aan jou.

Running is nothing more than a series of arguments between the part of your brain that wants to stop and the part that wants to keep going.


  • master111
  • Registratie: Februari 2009
  • Laatst online: 14-12-2021
Het bedrag inclusief rente na 1 jaar zou ik zo doen:
1000*1,05

Dat zou ik dan wel X aantal keer kunnen doen tot het eindbedrag is bereikt, maar ik weet niet hoe je dat dan controleert en het aantal herhalingen telt.

  • Ypho
  • Registratie: April 2008
  • Laatst online: 06:47

Ypho

Allround Nerd

master111 schreef op woensdag 27 november 2013 @ 11:32:
Het bedrag inclusief rente na 1 jaar zou ik zo doen:
1000*1,05

Dat zou ik dan wel X aantal keer kunnen doen tot het eindbedrag is bereikt, maar ik weet niet hoe je dat dan controleert en het aantal herhalingen telt.
Als je dit zonder programmeren zou doen, wat doe je dan?
Bedrag na 1 jaar = Bedrag na 0 jaar * 1,05 - Dit is prima

Stap 2 zou zijn, is bedrag na 1 jaar groter of gelijk aan eindbedrag? Zo ja, doe [iets], zo nee doe [wat anders].

🃏 TCG Codex - Je volledige TCG verzameling in je broekzak ::: 🍏 TCG Codex for iOS ::: 🤖 TCG Codex for Android


  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

Pak een A4tje, en schrijf het helemaal uit. Dus iedere berekening. En kijk eens wat je dan op papier hebt staan, en wat je daarmee zou kunnen doen. Na iedere stap moet je IETS doen, WAT is dat?

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 21-11 21:44
OK, nu komen we ergens.

Je weet dat je moet doen:

$HuidigBedrag = $BeginBedrag * 1.05;

Dan wil je $Huidigbedrag checken tegen $Eindbedrag ==> zoek op php.net naar "if".

Je weet dat je die berekening moet herhalen ==> Zoek op php.net naar "while".

Tip: Je hebt er maar een van de twee nodig....

Post daarna hier weer en kijk of je verder komt.

[ Voor 14% gewijzigd door Morrar op 27-11-2013 11:36 ]


  • master111
  • Registratie: Februari 2009
  • Laatst online: 14-12-2021
Ypho schreef op woensdag 27 november 2013 @ 11:33:
[...]

Als je dit zonder programmeren zou doen, wat doe je dan?
Bedrag na 1 jaar = Bedrag na 0 jaar * 1,05 - Dit is prima

Stap 2 zou zijn, is bedrag na 1 jaar groter of gelijk aan eindbedrag? Zo ja, doe [iets], zo nee doe [wat anders].
Zoja: echo het aantal herhalingen (in dit geval 1)
Zo nee: voer nog een herhaling uit en kijk dan of er een match is

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

master111 schreef op woensdag 27 november 2013 @ 11:35:
[...]

Zoja: echo het aantal herhalingen (in dit geval 1)
Zo nee: voer nog een herhaling uit en kijk dan of er een match is
Goed bezig :)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

En daarmee ben je er als je hier een makkelijke berekening voor wilt pakken.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22-11 22:46

Creepy

Tactical Espionage Splatterer

Dit wordt wel een flink helpdesk topic zo. Je begint er al mee dat je een opdracht van school hebt gekregen en dat je er niet uitkomt zonder verder meer informatie. Een probleem voor een schoolopdracht hier posten is in principe geen probleem maar dan zul je wel moeten uitleggen wat je dan zelf al hebt geprobeerd en gedaan. Dan meld je nu helemaal niet. Als je echt niet weet waar te beginnen dan moet je in eerste instantie toch echt bij je docent zijn en niet hier.

Vervolgens krijg je tips hier om zelf er verder mee te kunnen maar blijf je wat je hebt bedacht direct hier posten om te controleren of je gedachtengang klopt. Het beetje code dat je zelf maakt geeft vervolgens een foutmelding maar i.p.v. dat eerste zelf op te lossen post je je foutmelding maar hier om het voor je te laten fixen.

Een schoolopdracht moet je in eerste instantie zelf doen. Nu laat je het doen door ons en dat kan echt niet. Babbel eerst eens met je docent hierover. Hij is de aangewezen persoon hiervoor. Hier op GoT gaan we er vanuit dat je jezelf wat basiskennis kan bijbrengen of dat je in elk geval wat moeite doet om dat te regelen. Dat lijk je nu echter helemaal niet te doen.

[ Voor 12% gewijzigd door Creepy op 27-11-2013 11:39 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.