Slak klimt in de put
ik hoef geen oplossingen, maar ik wil alleen weten of dit een beetje klopt (hij werkt nog niet helemaal)
<FORM METHOD="post" ACTION="opdracht4.php">
hoogte van de put: <INPUT TYPE="text" NAME="put_hoogte"><br>
<input type="submit">
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
ik had hem zelf al opgelost, maar bedankt =3
Mijn variant:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<form method="post" action="">
<form method="post" action="">
Hoogte van de put: <input type="text" name="puthoogte"><br>
<input type="submit">
</form>
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
function klimmen($puthoogte, $slakhoogte, $dag)
{
$slakhoogte += 3;
$dag += 1;
if ($slakhoogte >= $puthoogte)
{
return 'Op de ' . $dag . 'e dag is de slak boven uit de ' . $puthoogte . ' meter diepe put.';
}
else
{
$slakhoogte -=2;
$klimmen = klimmen ($puthoogte, $slakhoogte, $dag);
return $klimmen;
}
}
$dag = 0;
$puthoogte = !empty($_POST['puthoogte']) ? (int) $_POST['puthoogte'] : 0;
echo klimmen($puthoogte, 0, 0);
?>
<form method="post" action="">
Hoogte van de put: <input type="text" name="puthoogte"><br>
<input type="submit">
</form>
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
function klimmen($puthoogte, $slakhoogte, $dag)
{
$slakhoogte += 3;
$dag += 1;
if ($slakhoogte >= $puthoogte)
{
return 'Op de ' . $dag . 'e dag is de slak boven uit de ' . $puthoogte . ' meter diepe put.';
}
else
{
$slakhoogte -=2;
$klimmen = klimmen ($puthoogte, $slakhoogte, $dag);
return $klimmen;
}
}
$dag = 0;
$puthoogte = !empty($_POST['puthoogte']) ? (int) $_POST['puthoogte'] : 0;
echo klimmen($puthoogte, 0, 0);
?>
Gewijzigd op 23/09/2010 18:25:06 door - SanThe -
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Pim de Haan op 23/09/2010 15:17:09:
Wel kort, maar werkt alleen niet.
SanThe Nvt op 23/09/2010 15:25:23:
touché
Pieter M op 23/09/2010 15:25:59:
touché
SanThe Nvt op 23/09/2010 15:25:23:
Wel kort, maar werkt alleen niet.
Pim de Haan op 23/09/2010 15:17:09:
...
Nog korter ;)
Nog korter ;)
Wel kort, maar werkt alleen niet.
touché
Tsja...
Code (php)
Nu wel, functienaam vergeten... Toch korter ;)
Helaas, heb je het wel getest?
Dit:
Code (php)
Geeft
Of bedoel je met 'niet werken' dat er bij het copy pasten niks wordt weergegeven?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?PHP
function klimmen($put_hoogte, $min_dag, $slakhoogte, $dag, $verhoogd)
{
while ($slakhoogte < $put_hoogte)
{
$slakhoogte += 3;
$dag += 1;
if ($slakhoogte >= $put_hoogte)
{
if ($dag >= $min_dag)
{
return 'aantal dagen: '. ($dag-1) . '<br>' . 'minimaal aantal keer verhogen: ' . $verhoogd;
}
else
{
$put_hoogte *= 1.25;
$verhoogd +=1;
$slakhoogte -=2;
}
}
else
{
$slakhoogte -=2;
}
}
}
$puthoogte = $_POST['put_hoogte'];
$min_dag = $_POST['min_dag'];
echo klimmen ($puthoogte,$min_dag,0,0,0);
?>
function klimmen($put_hoogte, $min_dag, $slakhoogte, $dag, $verhoogd)
{
while ($slakhoogte < $put_hoogte)
{
$slakhoogte += 3;
$dag += 1;
if ($slakhoogte >= $put_hoogte)
{
if ($dag >= $min_dag)
{
return 'aantal dagen: '. ($dag-1) . '<br>' . 'minimaal aantal keer verhogen: ' . $verhoogd;
}
else
{
$put_hoogte *= 1.25;
$verhoogd +=1;
$slakhoogte -=2;
}
}
else
{
$slakhoogte -=2;
}
}
}
$puthoogte = $_POST['put_hoogte'];
$min_dag = $_POST['min_dag'];
echo klimmen ($puthoogte,$min_dag,0,0,0);
?>
Gewijzigd op 23/09/2010 16:04:47 door Pieter M
Pim de Haan op 23/09/2010 15:42:31:
var_dump(slak(20, 3,2));
Geeft int(20)
Geeft int(20)
En dat antwoord is fout.
De code werkt wel, maar de antwoorden kloppen niet.
Dus hij werkt niet, 20 is niet het juiste antwoord.
Zonder te rekenen, zeg ik dat het logischer wijs 17 of 18 is.
Hij klimt iedere hele dag een meter.
Maar het laatste stukje klimt hij er 3 achter elkaar, dus als je 17 hebt bereikt, dan ben je die dag erna uit.
Dus in totaal heb je 34 + 1 itteraties nodig om er doorheen te gaan, dus ik zeg dat je er de 18e dag uit bent. (is dit juist??)
Gewijzigd op 23/09/2010 16:05:45 door Pim -
SanThe Nvt op 23/09/2010 15:59:12:
En dat antwoord is fout.
De code werkt wel, maar de antwoorden kloppen niet.
Pim de Haan op 23/09/2010 15:42:31:
var_dump(slak(20, 3,2));
Geeft int(20)
Geeft int(20)
En dat antwoord is fout.
De code werkt wel, maar de antwoorden kloppen niet.
hij zou er 17 dagen over doen
Nico Kaag op 23/09/2010 16:00:10:
@Pim,
Dus hij werkt niet, 20 is niet het juiste antwoord.
Zonder te rekenen, zeg ik dat het logischer wijs 17 of 18 is.
Hij klimt iedere hele dag een meter.
Maar het laatste stukje klimt hij er 3 achter elkaar, dus als je 17 hebt bereikt, dan ben je die dag erna uit.
Dus in totaal heb je 34 + 1 itteraties nodig om er doorheen te gaan, dus ik zeg dat je er de 18e dag uit bent. (is dit juist??)
Dus hij werkt niet, 20 is niet het juiste antwoord.
Zonder te rekenen, zeg ik dat het logischer wijs 17 of 18 is.
Hij klimt iedere hele dag een meter.
Maar het laatste stukje klimt hij er 3 achter elkaar, dus als je 17 hebt bereikt, dan ben je die dag erna uit.
Dus in totaal heb je 34 + 1 itteraties nodig om er doorheen te gaan, dus ik zeg dat je er de 18e dag uit bent. (is dit juist??)
Ja, achttien is juist. Net zoals dat zeven niet juist is, maar acht moet zijn. Je begint namelijk bij nul. SanThe's oplossing hierboven is dus niet correct.
Verder hoef je helemaal niet ingewikkeld te doen met loops. Het is gewoon een formule:
Hoogte = 3*aantal-dagen - 2*aantal-nachten
h = 3*x - 2*(x-1) // Je begin met een dag, dus de nacht komt één stap later
h = 3*x - 2*x + 2 (-*-=+)
h = x + 2
x = h - 2
je kan toch ook gewoon +1 alleen doen, 3-2=1
Vincent Huisman op 23/09/2010 16:09:30:
je kan toch ook gewoon +1 alleen doen, 3-2=1
Geef eens aan waar en hoe of wat.
Jij denkt dus van, hij gaat drie omhoog overdag, en dan gaat er 's nachts weer één vanaf. Wat dan volgens jou zou betekenen dat hij dan +1 aflegt in het totaal.
Volgens mij klopt dat niet. Kijk maar naar mijn formule.
Ha!
(Er staat nergens dat die snelheid omhoog en laag aangepast moeten kunnen worden. Want als dat wel het geval is, dan zou de formule moeten worden aangepast...)