FestivAlgo/exemples.php

169 lines
6.9 KiB
PHP

<?php
require_once('includes/config.php');
$db_examples = [
[
'titre' => 'Algorithme d\'Euclide',
'auteur' => 'Nitrosax',
'description' => 'Calcule le Plus Grand Commun Diviseur entre deux nombres entiers.',
'programme' => '<div>Lire A</div>
<div>Lire B</div>
<div>Tant_que B ≠ 0</div>
<div>R Prend_la_valeur B * Partie_d&eacute;cimale(A/B)</div>
<div>A Prend_la_valeur B</div>
<div>B prend_la_valeur R</div>
<div>Fin_Tant_que</div>
<div>Afficher "PGCD :"</div>
<div>Afficher A</div>'
],
[
'titre' => 'Plus ou moins',
'auteur' => 'Paul',
'description' => 'Petit jeu où il faut deviner un nombre.',
'programme' => '<div>Afficher "Nombre maximal ?"</div>
<div>Lire A</div>
<div>A Prend_la_valeur Partie_entière (Hasard (a))</div>
<div>B Prend_la_valeur -1</div>
<div>Tant_que B ≠ A</div>
<div>Lire B</div>
<div>Si B = A</div>
<div>Alors Afficher "Well done"</div>
<div>Sinon Si B ≤ A</div>
<div>Alors Afficher " +"</div>
<div>Sinon Afficher "-"</div>
<div>Fin_si</div>
<div>Fin_si</div>
<div>Fin_Tant_que</div>',
],
[
'titre' => 'Suite de Syracuse',
'auteur' => 'Nitrosax',
'description' => 'Affiche les termes de la suite de Syracuse en fonction du nombre de départ choisi par l\'utilisateur.',
'programme' => '<div>Lire A</div>
<div>Tant_que A &gt; 1</div>
<div>Si Partie_d&eacute;cimale (A/2) = 0</div>
<div>Alors A Prend_la_valeur A/2</div>
<div>Sinon A Prend_la_valeur 3*A+1</div>
<div>Fin_si</div>
<div>Afficher A</div>
<div>Fin_Tant_que</div>
<div>Afficher A</div>',
],
[
'titre' => 'Suite de Fibonacci',
'auteur' => 'Dark-Storm',
'description' => 'Cet algorithme calcule les N premiers termes de la suite de Fibonacci. N est rentré par l\'utilisateur.
La suite de Fibonacci sert à déterminer une approximation du nombre d\'Or en divisant un terme par le terme précédent.',
'programme' => '<div>A Prend_la_valeur 0</div>
<div>B Prend_la_valeur 1</div>
<div>C Prend_la_valeur 0</div>
<div>Lire N</div>
<div>Pour D Allant_de 1 à N</div>
<div>C Prend_la_valeur A+B</div>
<div>A Prend_la_valeur B</div>
<div>B Prend_la_valeur C</div>
<div>Afficher C</div>
<div>Fin_Pour</div>',
],
[
'titre' => 'Suite géométrique',
'auteur' => 'domPayeur',
'description' => 'Une toute petite contribution pour essayer Festiv\'Algo.
Le programme génère les termes u_1, u_2 ... u_n d\'une suite géométrique avec un rappel de cours.',
'programme' => '<div>Afficher " Programme suite géométrique"</div>
<div>Afficher " Un+1=q* Un"</div>
<div>Afficher " Un=Uo*q^n"</div>
<div>Afficher " ce programme calcule Un quand Uo et q sont connus "</div>
<div>Afficher "Saisir N"</div>
<div>Lire N</div>
<div>Afficher "Saisir Uo"</div>
<div>Lire U</div>
<div>Afficher "Saisir Q"</div>
<div>Lire Q</div>
<div>Pour I Allant_de 1 à n</div>
<div>U Prend_la_valeur u*q</div>
<div>Afficher "U="</div>
<div>Afficher U</div>
<div>Fin_Pour</div>',
], [
'titre' => 'Méthode de Monte Carlo ',
'auteur' => 'domPayeur',
'description' => 'Le hasard et la loi des grands nombres (ou stabilisation de la fréquence) pour déterminer une valeur approchée de PI.
Le principe:
Un point est généré de manière aléatoire dans un carré de côté 1.
On calcule la distance séparant ce point de l\'un des sommets du carré.
Si cette distance est inférieure à 1, le point est alors à l\'intérieur du quart de disque de rayon 1 ayant pour centre ce sommet.
L\'aire du quart de disque est Pi/4 et la fréquence d\'apparition du point dans ce quart de disque se stabilise pour un grand nombre de lancers autour de la valeur théorique qui est la probabilité de cet événement: ici le rapport aire du quart de disque / aire du carré soit ( Pi/4)/1 donc Pi/4; il ne reste plus qu\'à multiplier par 4 pour obtenir une valeur approchée de Pi.',
'programme' => '<div>Afficher "Méthode de Monte-Carlo"</div>
<div>Afficher "Valeur approchée de pi"</div>
<div>Afficher "Grâce au rand !"</div>
<div>D Prend_la_valeur 0</div>
<div>Pour I Allant_de 1 à 10000</div>
<div>X Prend_la_valeur Hasard (1)</div>
<div>Y Prend_la_valeur Hasard (1)</div>
<div>L Prend_la_valeur X*X+Y*Y</div>
<div>Si (L < 1)</div>
<div>Alors D Prend_la_valeur D+1</div>
<div>Fin_si</div>
<div>V Prend_la_valeur 4*D/I</div>
<div>Afficher V</div>
<div>Fin_Pour</div>
<div>Fin_programme</div>',
],
[
'titre' => 'R.O.C. du Bac S',
'auteur' => 'Nitrosax',
'description' => 'Une restitution organisée de connaissance que les candidats du Bac S doivent connaître par coeur. Elle permet de montrer que pour tout nombre A rentré par l\'utilisateur, il existe un rang N tel que Un > A. L\'exemple utilise la suite : Un = 3^N.',
'programme' => '<div>Lire A</div>
<div>N Prend_la_valeur 0</div>
<div>Tant_que 3^n ≤ A</div>
<div>N Prend_la_valeur N+1</div>
<div>Fin_Tant_que</div>
<div>Afficher N</div>'
]
];
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="assets/css/stylesheet.css" />
<link rel="stylesheet" type="text/css" href="assets/css/exemples.css" />
<script type="text/javascript" src="assets/js/jquery/jquery.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="assets/img/theme/favicon_ie.ico">
<title>Festiv'Algo - Exemples d'algorithmes</title>
<meta name="keywords" content="festivalgo, algobox, exemples, algorithme, algorithmique, programmation, Casio, TI, HP, tester des algorithmes, bac, mathématiques, ROC, nouveaux programmes, réformes" />
<meta name="description" content="De nombreux exemples d'algorithmes pour s'entrainer en mathématiques et pour le bac." />
</head>
<body>
<div id="content">
<?php require_once("includes/menu.php"); ?>
<div id="contenu">
<?php
foreach ($db_examples as $key => $dnn)
{
?>
<article>
<div class="exemples">
<h2 class="titre"><?php echo htmlentities($dnn['titre'], ENT_QUOTES, 'UTF-8'); ?></h2>
<h4>Auteur :</h4><p class="auteur"><?php echo htmlentities($dnn['auteur'], ENT_QUOTES, 'UTF-8'); ?></p>
<h4>Description :</h4><p class="description"><?php echo htmlentities($dnn['description'], ENT_QUOTES, 'UTF-8'); ?></p><br />
<form method="POST" action="<?= $base_url ?>/index.php">
<textarea style="display:none;" name="programme"><?= $dnn['programme'] ?></textarea>
<input type="image" src="assets/img/examples/tester.png" border="0" alt="Submit" />
</form>
</div>
</article>
<?php
}
?>
<aside>
<p id="annonces" style="top: 281px; height: 634px; width: 162px;">Annonces</p>
</aside>
</div>
</div>
<?php require_once("includes/bas_de_page.php"); ?>
</body>
</html>