27/12/19 : Suppression des fonctionnalités non utilisé pour alléger le cout de maintenance.
-
20/04/13 : Mise en ligne du site.
-
9/05/13 : Correction des problèmes de position du curseur dans l'onglet principal.
-
20/05/13 : Ajout de la coloration syntaxique pour le debuggage.
-
14/12/13 : Changement de serveur et remise en ligne du site après un mois d'indisponibilité.
-
-
-
-
+
+
+
+
Evènements :
+
+
+
27/12/19 : Suppression des fonctionnalités non utilisé pour alléger le cout de maintenance.
+
20/04/13 : Mise en ligne du site.
+
9/05/13 : Correction des problèmes de position du curseur dans l'onglet principal.
+
20/05/13 : Ajout de la coloration syntaxique pour le debuggage.
+
14/12/13 : Changement de serveur et remise en ligne du site après un mois d'indisponibilité.
+
-
-
-
+
+
\ No newline at end of file
diff --git a/aide.php b/aide.php
index 3b436f8..2ba9f01 100644
--- a/aide.php
+++ b/aide.php
@@ -1,113 +1,167 @@
-
-
-
-
-
-
-
-
-
-
-
- Festiv'Algo - Aide pour la programmation d'algorithmes. Tutoriel d'algorithmique, TI Basic et Basic Casio.
-
-
-
+
+
+
+
• Qu'est-ce qu'un algorithme ?
+
+ Le mot "algorithme" vient du nom du mathématicien Persan Al-Khuwarizmi, qui inventa une méthode, au début du IXème siècle, pour résoudre des équations pas à pas.
+ Un algorithme est une suite d'opérations appliquées dans un ordre donné.
+
+
+
+
-
-
-
-
-
-
-
• Qu'est-ce qu'un algorithme ?
-
-
- Le mot "algorithme" vient du nom du mathématicien Persan Al-Khuwarizmi, qui inventa une méthode, au début du IXème siècle, pour résoudre des équations pas à pas.
- Un algorithme est une suite d'opérations appliquées dans un ordre donné.
-
+
• Variables et affectation
+
+
+ Dans un algorithme, on commence par l'entrée des données. Chacune de ces données est stockée dans la mémoire de la calculatrice ou de l'ordinateur à un emplacement nommé variable et est repérée par une lettre.
+ Les instructions que l'on peut pratiquer avec une variable sont :
+
+
+
+ - la saisie : on demande à l'utilisateur de donner une valeur à une variable.
+
+
+
+ Saisir A
+ Algorithme
-
-
-
• Variables et affectation
-
-
- Dans un algorithme, on commence par l'entrée des données. Chacune de ces données est stockée dans la mémoire de la calculatrice ou de l'ordinateur à un emplacement nommé variable et est repérée par une lettre.
- Les instructions que l'on peut pratiquer avec une variable sont :
-
- - la saisie : on demande à l'utilisateur de donner une valeur à une variable.
-
-
Saisir A
Algorithme
? → A
Casio
Input A
TI
-
Exécution :
-
-
-
-
-
-
- - l'affectation : on donne à la variable une certaine valeur ou le résultat d'un calcul.
-
-
A Prend_la_valeur 3 * 5
Algorithme
3 * 5 → A
Casio
3 * 5 → A
TI
-
-
-
- - l'affichage : on affiche le contenu de la variable.
-
-
Afficher A
Algorithme
A∠
Casio
Disp A
TI
-
Exécution :
-
- 15
-
-
-
-
+
+ ? → A
+ Casio
-
-
• Les conditions
-
-
- La résolution de certains problèmes conduit parfois à une situation dans laquelle la décision prise est soumise à condition.
- Si la condition est vérifiée, on effectue une première tâche, sinon on effectue une seconde tâche.
-
-
-
-
-
Si A = 1 Alors ... (Sinon ...) Fin_si
Algorithme
-
If A = 1 Then ... (Else ...) IfEnd
Casio
-
If A = 1 Then ... (Else ...) End
TI
-
-
- Le "Sinon" n'est pas systématique. Sans cette instruction, si la condition n'est pas vérifiée, la tâche n'est pas effectuée et l'algorithme passe à l'instruction suivante.
-
+
+ Input A
+ TI
-
-
-
• Les boucles
-
- Pendant l'exécution d'un programme, il est possible d'avoir à réaliser plusieurs fois de suites la même tâche.
- Il existe deux types de boucles :
-
- - la boucle conditionelle : on répète les mêmes instructions tant qu'une condition est remplie.
-
-
Tant_que A = 1 ... ... Fin_tant_que
Algorithme
-
While A = 1 ... ... End
Casio
-
While A = 1 ... ... WhileEnd
TI
-
- - la boucle itérative : on répète les mêmes instructions un certain nombre de fois.
-
-
Pour A Allant_de 0 à 10 ... ... Fin_pour
Algorithme
-
For 0 → A To 10 ... ... Next
Casio
-
For(A,0,10) ... ... End
TI
-
-
+
+
+ Exécution :
+
+
+
+
+
+ - l'affectation : on donne à la variable une certaine valeur ou le résultat d'un calcul.
+
+
+
+ A Prend_la_valeur 3 * 5
+ Algorithme
-
-
+
+ 3 * 5 → A
+ Casio
+
+
+ 3 * 5 → A
+ TI
+
+
+
+
+ - l'affichage : on affiche le contenu de la variable.
+
+
+
+ Afficher A
+ Algorithme
+
+
+ A∠
+ Casio
+
+
+ Disp A
+ TI
+
+
+
+ Exécution :
+ 15
-
-
-
+
+
+
+
+
• Les conditions
+
+ La résolution de certains problèmes conduit parfois à une situation dans laquelle la décision prise est soumise à condition.
+ Si la condition est vérifiée, on effectue une première tâche, sinon on effectue une seconde tâche.
+
+
+
+
+
+
+
+
+ Si A = 1 Alors ... (Sinon ...) Fin_si
+ Algorithme
+
+
+ If A = 1 Then ... (Else ...) IfEnd
+ Casio
+
+
+ If A = 1 Then ... (Else ...) End
+ TI
+
+
+
+
Le "Sinon" n'est pas systématique. Sans cette instruction, si la condition n'est pas vérifiée, la tâche n'est pas effectuée et l'algorithme passe à l'instruction suivante.
+
+
+
+
• Les boucles
+
+
+ Pendant l'exécution d'un programme, il est possible d'avoir à réaliser plusieurs fois de suites la même tâche.
+ Il existe deux types de boucles :
+
+
+ - la boucle conditionelle : on répète les mêmes instructions tant qu'une condition est remplie.
+
')
}
+ $('#dropdown_menu').show();
}
- function Valeur_top(valeur_top) {
- var onglet_click = 0;
-
- switch(valeur_top)
- {
- case '-136px':
- onglet_click = 1;
- break;
- case '-107px':
- onglet_click = 2;
- break;
- case '-78px':
- onglet_click = 3;
- break;
- case '-49px':
- onglet_click = 4;
- break;
- case '-20px':
- onglet_click = 5;
- break;
- case '9px':
- onglet_click = 6;
- break;
- case '38px':
- onglet_click = 7;
- break;
- case '67px':
- onglet_click = 8;
- break;
- }
-
- return onglet_click;
- }
-
- function selection(iconeNb, ongletNb, id, indice_pointeur) {
- var i, valeur_top, onglet_click, text, syntaxe, test;
+ function add_instruction_events(ongletNb) {
+ var i, syntaxe;
for(i = 1; i <= ongletNb; i++)
{
$('#instruction' + i).mouseenter(function() {
- valeur_top = $(this).css('top');
- onglet_click = Valeur_top(valeur_top);
-
- $('#selection').css('top', -155 + 29 * onglet_click)
- .css('left', 255 + 69 * iconeNb)
- .show();
-
- text = instructions[indice_pointeur + onglet_click - 1];
-
+ let text = instructions[$(this).data('instruction-number')]
switch(text)
{
case 'Lire':
@@ -479,19 +447,14 @@ $(document).ready(function() {
break;
}
- $('#info_contenu').replaceWith("
Syntaxe
" + "
" + syntaxe + "
");
+ $('#infos').html(syntaxe);
});
}
$('.instruction').click(function() {
- var num;
-
- valeur_top = $(this).css('top');
- menus_deroulants_init(id);
-
- onglet_click = Valeur_top(valeur_top);
-
- num = indice_pointeur + onglet_click - 1;
- text = instructions[num];
+ let num = $(this).data('instruction-number');
+ let text = instructions[num]
+ close_dropdown_menu();
+ console.log(num)
if((num >= 16 && num <= 18) || num == 13 || (num >= 35 && num <= 37) || num == 49)
text += "()";
@@ -500,12 +463,8 @@ $(document).ready(function() {
if(num == 32)
text = "()" + text;
- /*if(text == "∠")
- text = "∠";
- if(text == "→")
- text = "→";*/
-
addText(text + " ");
+ return false;
});
}
@@ -534,9 +493,11 @@ $(document).ready(function() {
}
$("#saisie").cleditor().focus(); // transforme le textarea en éditeur html
+
+ $('#execution').show();
$('#debug').hide();
$('#disable').hide();
- menus_deroulants_init('');
+ close_dropdown_menu();
affiche_langage();
changement_langage();
affiche_conversion();
@@ -544,26 +505,10 @@ $(document).ready(function() {
boutons();
signes();
menus_deroulants_show();
- copie_contenu();
default_code();
alert_mobile();
});
-function copie_contenu() {
- $('#publier').click(function() {
- var texte;
-
- if(langage_avant_publier == 1)
- texte = document.getElementById('saisie').value;
- else
- texte = traduction(langage_avant_publier, 1, 0);
-
- while(texte.indexOf(";") != -1)
- texte = texte.replace(";","@");
- createCookie("algorithme",texte,1);
- });
-}
-
function createCookie(name,value,days) {
if (days) {
var date = new Date();
diff --git a/assets/js/jquery/jquery.cleditor.js b/assets/js/jquery/jquery.cleditor.js
index 546704b..f4b325e 100644
--- a/assets/js/jquery/jquery.cleditor.js
+++ b/assets/js/jquery/jquery.cleditor.js
@@ -36,7 +36,7 @@ $.cleditor = {
// Define the defaults used for all new cleditor instances
defaultOptions: {
- width: 349, // width not including margins, borders or padding
+ width: 620, // width not including margins, borders or padding
height: 314, // height not including margins, borders or padding
controls: // controls to add to the toolbar
"undo redo | print",
diff --git a/assets/js/traduction.js b/assets/js/traduction.js
index 47092d1..5b5278b 100644
--- a/assets/js/traduction.js
+++ b/assets/js/traduction.js
@@ -9,8 +9,8 @@ function traduction(langage_source, langage_cible, remplacer) {
"Valeur_absolue", "Abs", "Abs"
];
- $('#pause').hide();
- $('#executer').show();
+ $('#programm .action_buttons .pause').hide();
+ $('#programm .action_buttons .executer').show();
reset = 1;
process = 0;
execution_init();
diff --git a/exemples.php b/exemples.php
index 9017d26..6adbaf1 100644
--- a/exemples.php
+++ b/exemples.php
@@ -1,11 +1,12 @@
'Algorithme d\'Euclide',
'auteur' => 'Nitrosax',
- 'description' => 'Calcule le Plus Grand Commun Diviseur entre deux nombres entiers.',
+ 'description' => '
Calcule le Plus Grand Commun Diviseur entre deux nombres entiers.
',
'programme' => '
Lire A
Lire B
Tant_que B ≠ 0
@@ -19,7 +20,7 @@ $db_examples = [
[
'titre' => 'Plus ou moins',
'auteur' => 'Paul',
- 'description' => 'Petit jeu où il faut deviner un nombre.',
+ 'description' => '
Petit jeu où il faut deviner un nombre.
',
'programme' => '
Afficher "Nombre maximal ?"
Lire A
A Prend_la_valeur Partie_entière (Hasard (a))
@@ -38,7 +39,7 @@ $db_examples = [
[
'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.',
+ 'description' => '
Affiche les termes de la suite de Syracuse en fonction du nombre de départ choisi par l\'utilisateur.
',
'programme' => '
Lire A
Tant_que A > 1
Si Partie_décimale (A/2) = 0
@@ -52,8 +53,8 @@ $db_examples = [
[
'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.',
+ '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' => '
A Prend_la_valeur 0
B Prend_la_valeur 1
C Prend_la_valeur 0
@@ -68,8 +69,8 @@ La suite de Fibonacci sert à déterminer une approximation du nombre d\'Or en d
[
'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.',
+ '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' => '
Afficher " Programme suite géométrique"
Afficher " Un+1=q* Un"
Afficher " Un=Uo*q^n"
@@ -88,12 +89,15 @@ Le programme génère les termes u_1, u_2 ... u_n d\'une suite géométrique ave
], [
'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.',
+ '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' => '
Afficher "Méthode de Monte-Carlo"
Afficher "Valeur approchée de pi"
Afficher "Grâce au rand !"
@@ -113,7 +117,7 @@ L\'aire du quart de disque est Pi/4 et la fréquence d\'apparition du point dans
[
'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.',
+ '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' => '
Lire A
N Prend_la_valeur 0
Tant_que 3^n ≤ A
@@ -124,46 +128,29 @@ L\'aire du quart de disque est Pi/4 et la fréquence d\'apparition du point dans
];
?>
-
-
-
-
-
-
-
-
- Festiv'Algo - Exemples d'algorithmes
-
-
-
-
-
-
-
-
- $dnn)
- {
- ?>
-
-
-
-
Auteur :
-
Description :
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+ $dnn)
+ {
+ ?>
+
+
+
+
Auteur :
+
+
+
+
+
Description :
+
+
+
+
+
+
\ No newline at end of file
diff --git a/includes/bas_de_page.php b/includes/bas_de_page.php
deleted file mode 100644
index 7ab91d9..0000000
--- a/includes/bas_de_page.php
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
diff --git a/includes/config.php b/includes/config.php
index e0233ba..ebb607d 100644
--- a/includes/config.php
+++ b/includes/config.php
@@ -1,23 +1,4 @@
+$base_url = '/FestivAlgo/';
\ No newline at end of file
diff --git a/includes/footer.php b/includes/footer.php
new file mode 100644
index 0000000..9506a91
--- /dev/null
+++ b/includes/footer.php
@@ -0,0 +1,35 @@
+