From 58e5a50e4a2787970179b4337a49cf38acdee6a6 Mon Sep 17 00:00:00 2001 From: Aurelien Labate Date: Fri, 27 Dec 2019 22:58:22 +0100 Subject: [PATCH] Avoid header duplicates, clean CSS --- a_propos.php | 53 +- aide.php | 262 ++-- assets/css/aide.css | 202 --- assets/css/exemples.css | 85 -- assets/css/stylesheet.css | 1166 +++++++---------- assets/img/help/schema_algo.png | Bin 9127 -> 18794 bytes .../img/programm/editor/onglet_deroulant.png | Bin 412 -> 0 bytes .../editor/onglet_deroulant_selection.png | Bin 1754 -> 0 bytes assets/img/programm/editor/support_menus.png | Bin 367 -> 0 bytes assets/js/compil1.js | 25 +- assets/js/execution.js | 16 +- assets/js/interface.js | 203 ++- assets/js/jquery/jquery.cleditor.js | 2 +- assets/js/traduction.js | 4 +- exemples.php | 103 +- includes/bas_de_page.php | 26 - includes/config.php | 21 +- includes/footer.php | 35 + includes/header.php | 44 + includes/init.php | 3 - includes/menu.php | 12 - index.php | 259 ++-- 22 files changed, 979 insertions(+), 1542 deletions(-) delete mode 100644 assets/css/aide.css delete mode 100644 assets/css/exemples.css delete mode 100644 assets/img/programm/editor/onglet_deroulant.png delete mode 100644 assets/img/programm/editor/onglet_deroulant_selection.png delete mode 100644 assets/img/programm/editor/support_menus.png delete mode 100644 includes/bas_de_page.php create mode 100644 includes/footer.php create mode 100644 includes/header.php delete mode 100644 includes/init.php delete mode 100644 includes/menu.php diff --git a/a_propos.php b/a_propos.php index c7f0654..5ed74f8 100644 --- a/a_propos.php +++ b/a_propos.php @@ -1,38 +1,21 @@ - - - - - - - - - Festiv'Algo - A propos - - - - - -
- -
-
- -


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é.
  • -
-
-
-
+
+ + +

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é. +

+
+ Schéma d'un algorithme +
- -
- - -
-
-

• Qu'est-ce qu'un algorithme ?

- Schéma d'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

- Schéma d'une condition -
- 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. +

+
+ Schéma d'une condition +
+ +
+
+
+ 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. +

+
+
+ 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 +
+
+
+ +
+ \ No newline at end of file diff --git a/assets/css/aide.css b/assets/css/aide.css deleted file mode 100644 index 261f35d..0000000 --- a/assets/css/aide.css +++ /dev/null @@ -1,202 +0,0 @@ -#content -{ - height: 2010px; -} - -article -{ - position: absolute; - width: 980px; - top: 285px; - left: 0px; -} - -h2 -{ - font-family: 'Crete Round', serif; - font-size: 24px; - font-style: bold; - color: black; - text-align: left; - margin-left: 70px; - margin-bottom: 20px; -} - -.partie -{ - margin-bottom: 50px; -} - -.paragraphes -{ - text-align: justify; - background-color: #FFD745; - border: solid; - border-width: 4px; - border-radius: 5px; - border-color: #FAC801; - font-family: 'Crete Round', serif; - font-size: 16px; - font-style: none; - color: black; - padding: 5px 11px 7px 11px; - margin-left: 45px; - margin-right: 45px; -} - -#par1 -{ - width: 455px; -} - -#par3 -{ - width: 515px; -} - -#schema_algo -{ - float: right; - margin-left: 45px; - margin-right: 45px; - margin-top: -44px; -} - -#schema_condition -{ - float: right; - margin-left: 45px; - margin-right: 45px; - margin-top: -44px; -} - -.exemples_code -{ - margin-left: 25px; - margin-bottom: 10px; -} - -#code_condition -{ - height: 68px; -} - -.code_algo -{ - display: inline-block; - background-color: rgb(255, 84, 84); - width: 230px; - height: 22px; - border: solid; - border-radius: 14px; - border-width: 4px; - border-color: rgb(236, 10, 10); - font-family: Verdanna, Arial; - color: rgb(173, 0, 0); - font-size: 14px; - padding-left: 8px; - padding-top: 4px; - margin: 14px -40px 12px 0px; -} - - -.type_algo -{ - font-family: 'Crete Round', serif; - position: relative; - right: 30px; - top: -6px; - font-size: 12px; - color: rgb(218, 7, 7); -} - -.code_casio -{ - display: inline-block; - background-color: rgb(145, 226, 99); - width: 230px; - height: 22px; - border: solid; - border-radius: 14px; - border-width: 4px; - border-color: rgb(66, 167, 66); - font-family: Verdanna, Arial; - color: rgb(62, 139, 10); - font-size: 14px; - padding-left: 8px; - padding-top: 4px; - margin: 14px -7px 12px 0px; -} - -#type_condition -{ - top: -54px; -} - -.type_casio -{ - font-family: 'Crete Round', serif; - position: relative; - right: 31px; - top: -6px; - font-size: 12px; - color: rgb(58, 173, 30); -} - -.code_ti -{ - display: inline-block; - background-color: rgb(155, 148, 248); - width: 230px; - height: 22px; - border: solid; - border-radius: 14px; - border-width: 4px; - border-color: rgb(60, 103, 167); - font-family: Verdanna, Arial; - color: rgb(40, 83, 175); - font-size: 14px; - padding-left: 8px; - padding-top: 4px; - margin: 14px -40px 12px 0px; -} - -.type_ti -{ - font-family: 'Crete Round', serif; - position: relative; - right: -19px; - top: -6px; - font-size: 12px; - color: rgb(12, 26, 99); -} - -.resultats_code -{ - width: 622px; - height: 45px; - background-color: #EED858; - border: solid; - border-width: 4px; - border-radius: 14px; - border-color: #D2A124; - font-family: 'Crete Round', serif; - padding: 0px 0px 8px 12px; - padding-left: 6px; -} - -.resultats_title -{ - font-size: 18px; - color: #DB7517; - margin-top: 0px; -} - -.resultats_content -{ - font-size: 15px; - color: #D29A17; - margin-top: -16px; - margin-left: 8px; -} - diff --git a/assets/css/exemples.css b/assets/css/exemples.css deleted file mode 100644 index 5f84165..0000000 --- a/assets/css/exemples.css +++ /dev/null @@ -1,85 +0,0 @@ -article -{ - margin-top: 30px; -} - -h2 -{ - font-size: 24px; - font-style: bold; - color: black; - text-align: left; - margin: 10px 10px 20px 10px; -} - -h4 -{ - font-size: 12px; - font-style: bold; - color: rgb(255, 143, 0); - text-align: left; - margin: 18px 10px 6px 10px; -} - -#contenu -{ - margin-top: 10px; -} - -.exemples -{ - text-align: justify; - background-color: #FFD745; - border: solid; - border-width: 4px; - border-radius: 5px; - border-color: #FAC801; - font-family: 'Crete Round', serif; - font-size: 16px; - font-style: none; - color: black; - padding: 5px 11px 7px 11px; - margin-left: 45px; - margin-right: 262px; -} - -.auteur -{ - font-size: 14px; - text-align: left; - margin: 0px 10px 10px 20px; -} - -.description -{ - font-size: 14px; - text-align: left; - margin: 0px 10px 10px 20px; -} - -.cleditorMain -{ - position: relative; - top: 0px; - left: 198px; -} - -.tester -{ - margin-left: 444px; -} - -#code -{ - width: 400px; - padding: 3px 0px 4px 8px; - margin-left: 198px; - font-family: 'Crete Round', serif; - color: rgb(206, 133, 4); - text-align: left; - border: solid; - border-width: 4px; - border-radius: 5px; - border-color: rgb(221, 147, 53); - background-color: rgb(247, 226, 119); -} \ No newline at end of file diff --git a/assets/css/stylesheet.css b/assets/css/stylesheet.css index 84ae766..dfe98ef 100644 --- a/assets/css/stylesheet.css +++ b/assets/css/stylesheet.css @@ -1,4 +1,6 @@ -/*---------Download fonts---------*/ +/************** +* Custom font import +***************/ @font-face { font-family: 'Crete Round'; @@ -13,7 +15,7 @@ } @font-face { - font-family: 'Crete Round'; + font-family: 'z'; src: url('../fonts/Crete_Round/CreteRound-Italic-webfont.eot'); src: url('../fonts/Crete_Round/CreteRound-Italic-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/Crete_Round/CreteRound-Italic-webfont.woff') format('woff'), @@ -24,46 +26,58 @@ } -body -{ - background-color: #FDF697; +@font-face { + font-family: 'Action Man'; + src: url('../fonts/Action_Man/Action_Man-webfont.eot'); + src: url('../fonts/Action_Man/Action_Man-webfont.eot?#iefix') format('embedded-opentype'), + url('../fonts/Action_Man/Action_Man-webfont.woff') format('woff'), + url('../fonts/Action_Man/Action_Man-webfont.ttf') format('truetype'), + url('../fonts/Action_Man/Action_Man-webfont.svg#ActionManRegular') format('svg'); + font-weight: normal; + font-style: normal; } -h1 +/************** +* General style +***************/ + +h2 { - text-align: center; - display: inline; - font-weight: normal; + font-family: 'Crete Round', serif; + font-size: 24px; + font-style: bold; + color: black; + text-align: left; + margin-top: 20px; + margin-bottom: 12px; + clear: both; +} + +h3 +{ + font-size: 16px; + font-style: bold; + color: rgb(255, 143, 0); + text-align: left; } a { font-style: normal; - text-decoration: none; - color: black; - cursor: pointer; + cursor: pointer; + color: #C51111; + text-decoration: underline; } -em +/************** +* Theme and general layout +***************/ + +body { - font-style: normal; + background-color: #FDF697; } -strong -{ - font-weight: normal; -} - -mark -{ - background-color: transparent; - color: inherit; -} - -#algorithmie -{ - position: relative; -} #content { @@ -82,684 +96,12 @@ mark text-align: center; } -.conversion -{ - position: relative; - cursor: pointer; - z-index: 1; -} - -.icone -{ - position: relative; - bottom: 180px; - right: 99px; - margin-right: 7px; - cursor: pointer; -} - -#support_menus -{ - position: absolute; - top: -187px; - left: 247px; -} - -#selection -{ - position: absolute; - top: -91px; - left: 255px; - z-index: 10; -} - -.onglet_deroulant -{ - position: absolute; - left: 255px; -} - -#onglet_deroulant1 -{ - top: -126px; - z-index: 9; -} - -#onglet_deroulant2 -{ - top: -97px; - z-index: 8; -} - -#onglet_deroulant3 -{ - top: -68px; - z-index: 7; -} - -#onglet_deroulant4 -{ - top: -39px; - z-index: 6; -} - -#onglet_deroulant5 -{ - top: -10px; - z-index: 5; -} - -#onglet_deroulant6 -{ - top: 19px; - z-index: 4; -} - -#onglet_deroulant7 -{ - top: 48px; - z-index: 3; -} - -#onglet_deroulant8 -{ - top: 77px; - z-index: 2; -} - -.instruction -{ - position: absolute; - left: 470px; - font-family: 'Crete Round', serif; - font-size: 16px; - color: #9B7606; - cursor: pointer; - width: 116px; - height: 33px; -} - -#instruction1 -{ - top: -136px; - z-index: 10; -} - -#instruction2 -{ - top: -107px; - z-index: 10; -} - -#instruction3 -{ - top: -78px; - z-index: 10; -} - -#instruction4 -{ - top: -49px; - z-index: 10; -} - -#instruction5 -{ - top: -20px; - z-index: 10; -} - -#instruction6 -{ - top: 9px; - z-index: 10; -} - -#instruction7 -{ - top: 38px; - z-index: 10; -} - -#instruction8 -{ - top: 67px; - z-index: 10; -} - -#vous_programmez_en, .langage_actuel -{ - font-family: 'Crete Round', serif; - font-size: 16px; - position: relative; - color: #D70404; -} - -#vous_programmez_en -{ - bottom: -3px; - right: 371px; -} - -.langage_actuel -{ - bottom: 2px; -} - -#langage_algo -{ - right: 407px; -} - -#langage_casio -{ - right: 407px; -} - -#langage_ti -{ - right: 420px; -} - -#infos -{ - width: 355px; - height: 44px; - background-color: #FFD745; - border: solid; - border-width: 4px; - border-radius: 5px; - border-color: #FAC801; - position: absolute; - top: -194px; - right: 43px; - font-family: 'Crete Round', serif; - color: #D70404; - font-size: 14px; - font-style: normal; - text-decoration: none; - text-align: justify; - padding: 6px 8px 0px 9px; - z-index: 1; - cursor: help; - overflow: auto; -} - -#syntaxe -{ - position: absolute; - top: 22px; - left: 8px; -} - -.mot_cle -{ - color: #D70404; - font-size: 16px; - font-family: 'Crete Round', serif; -} - -.indications -{ - - color: #C17700; - font-size: 14px; - font-family: 'Crete Round', serif; - font-style: italic; -} - -#syntaxe_titre -{ - position: absolute; - top: -8px; - left: 6px; - font-size: 11px; - color: #C17700; -} - -#annonces -{ - width: 235px; - height: 322px; - background-color: #FFE378; - border: solid; - border-width: 4px; - border-radius: 15px; - border-color: #FAC54A; - position: absolute; - top: 374px; - right: 22px; - font-family: 'Crete Round', serif; - font-size: 12px; - color: #C17700; - font-style: normal; - text-decoration: none; - text-align: left; - padding: 0px 8px 0px 9px; -} - -#texteAnnonce -{ - position: absolute; - left: 704px; - top: 450px; - text-align: center; - width: 225px; - font-family: Navig, Arial; - font-size: 20px; - color: rgb(11, 122, 196); -} - -#pub1 -{ - position: absolute; - left: 706px; - top: 408px; - z-index: 1; -} - -#pub2 -{ - position: absolute; - left: 830px; - top: 408px; - z-index: 1; -} - -#pub3 -{ - position: absolute; - left: 784px; - top: 323px; -} - -.pub4 -{ - position: relative; - margin-top: 40px; -} - -#pub_aide -{ - position: absolute; - left: 127px; - top: 2010px; -} - -.cleditorMain -{ - position: absolute; - top: -84px; - left: 263px; - z-index: 1; - margin-bottom: 0px; - border: solid; - border-width: 4px; - border-color: #FFAF22; - padding:0 1px 1px; - background-color: #FAF07A; -} - -#disable -{ - position: absolute; - z-index: 1; - left: 263px; - top: -84px; -} - -#debug -{ - position: absolute; - width: 634px; - height: 92px; - top: 285px; - left: 42px; - background-color: #DF6060; - border: solid; - border-width: 4px; - border-color: #D12424; - overflow: auto; -} - -#attention -{ - position: absolute; - left: 10px; - top: 8px; -} - -#debug_titre -{ - position: absolute; - top: 2px; - left: 55px; - font-family: 'Crete Round', serif; - font-size: 16px; - color: #AC0000; -} - -.erreurs -{ - position: relative; - top: 40px; - left: 14px; - text-align: left; - width: 315px; -} - -#description_erreur -{ - font-family: 'Crete Round', serif; - font-size: 14px; - color: #771A1A; -} - -#suggestion_erreur -{ - font-family: 'Crete Round', serif; - font-style: italic; - font-size: 14px; - color: #1B6618; -} - -.ampoule -{ - position: relative; - top: 4px; - left: 3px; - margin-right: 2px; -} - -.signes_icone -{ - position: absolute; - left: 635px; - cursor: pointer; -} - -#signe_icone1 -{ - top : -75px; -} - -#signe_icone2 -{ - top : -35px; -} - -#signe_icone3 -{ - top : 5px; -} - -#signe_icone4 -{ - top : 45px; -} - -#signe_icone5 -{ - top : 85px; -} - -#signe_icone6 -{ - top : 125px; -} - -#signe_icone7 -{ - top : 165px; -} - -#signe_icone8 -{ - top : 205px; -} - -.signes -{ - position: absolute; - left: 643px; - cursor: pointer; -} - -#signe1 -{ - top : -89px; -} - -#signe2 -{ - top : -49px; -} - -#signe3 -{ - top : -9px; -} - -#signe4 -{ - top : 34px; - left: 642px; -} - -#signe5 -{ - top : 73px; -} - -#signe6 -{ - top : 110px; -} - -#signe7 -{ - top : 150px; - left: 644px; -} - -#signe8 -{ - top : 192px; -} - -#execution -{ - width: 622px; - height: 210px; - background-color: #EED858; - border: solid; - border-width: 4px; - border-color: #D2A124; - position: absolute; - bottom: -496px; - left: 42px; - font-family: 'Crete Round', serif; - font-style: normal; - text-decoration: none; - text-align: left; - padding: 48px 0px 8px 12px; - overflow: auto; - word-wrap: break-word; -} - -#resultats_titre -{ - position: absolute; - top: -12px; - left: 10px; - font-size: 18px; - color: #DB7517; -} - -#resultats -{ - position: relative; - bottom: 19px; - font-size: 15px; - color: #D29A17; -} - -#fin_execution -{ - color: red; - font-size: 18px; - position: absolute; - right: 14px; -} - -#lire -{ - resize: none; -} - -.bouton -{ - position: absolute; - top: 285px; - right: 158px; - cursor: pointer; -} - -#reset -{ - right: 53px; -} - -#variables -{ - width: 172px; - height: 106px; - background-color: #FFD745; - border: solid; - border-width: 4px; - border-color: #FAC801; - position: absolute; - top: 383px; - right: 53px; - font-family: 'Crete Round', serif; - font-style: normal; - text-decoration: none; - text-align: left; - padding: 6px 8px 0px 9px; - overflow: auto; - word-wrap: break-word; -} - -#variable_titre -{ - position: absolute; - top: -12px; - left: 5px; - font-size: 14px; - color: #D70404; -} - -.vars -{ - position: relative; - top: 18px; - left: 4px; - margin-top: 3px; - margin-bottom: 0px; - font-size: 14px; - color: #D70404; -} - -#publier -{ - position: absolute; - bottom: -501px; - right: 53px; - cursor: pointer; -} - -footer -{ - text-align: center; - font-family: normal, Arial; -} - -#partenaires -{ - margin: auto; -} - -.espace -{ - margin-left: 9px; - margin-right: 9px; -} - -.nom_part -{ - font-size: 12px; -} - -#auteur -{ - font-size: 14px; -} - -#credits_images -{ - font-size: 12px; -} - -.lien -{ - color: #C51111; - text-decoration: underline; -} - -.publier_titres -{ - margin-left: 170px; -} - -#avertissement -{ - font-family: 'Crete Round', serif; - font-size: 14px; - text-align: left; - margin-left: 200px; -} - -#capcha -{ - margin-left: 260px; -} - -#ins -{ - color: red; -} - - -/********************** - * includes/menu.php - **********************/ #banner { text-align:center; margin: 45px 0 16px 0; } -@font-face { - font-family: 'Action Man'; - src: url('../fonts/Action_Man/Action_Man-webfont.eot'); - src: url('../fonts/Action_Man/Action_Man-webfont.eot?#iefix') format('embedded-opentype'), - url('../fonts/Action_Man/Action_Man-webfont.woff') format('woff'), - url('../fonts/Action_Man/Action_Man-webfont.ttf') format('truetype'), - url('../fonts/Action_Man/Action_Man-webfont.svg#ActionManRegular') format('svg'); - font-weight: normal; - font-style: normal; -} - #menu { width: 900px; @@ -781,10 +123,430 @@ footer line-height: 25px; margin: 0 16px 0px 16px; font-size: 1.2em; + color: black; + text-decoration: none; } #menu a:hover { background: rgb(238,0,33); background: linear-gradient(167deg, rgba(238,0,33,1) 0%, rgba(177,24,40,1) 100%); -} \ No newline at end of file +} + +#contenu { + padding: 0px 45px; +} + +article +{ + margin-top: 30px; +} + +#footer { + text-align: center; + font-family: 'Crete Round', serif; +} +#footer .partners a { + margin: 0 8px; + text-decoration: none; + color: black; + font-size: 12px; + display: inline-block; +} +#footer .partners img { + display: block; +} +#footer .copyright { + text-decoration: none; + color: black; + font-size: 14px; +} +#footer .credits_images { + text-decoration: none; + color: black; + font-size: 12px; +} + +/************** +* Help page specific layout +***************/ + +#help_page .float_block { + float: right; + margin: 0 16px; +} + +#help_page .layout_float { + display: flex; + flex-direction: row; + align-items: flex-start; +} +#help_page .layout_float > img { + height: auto; + flex-grow: 0; + flex-shrink: 0; + margin-left: 32px; + margin-top: 20px; + margin-bottom: 20px; +} + +/************** +* About page specific layout +***************/ +#about_page > iframe { + margin: 20px 0; +} + +/************** +* example page specific layout +***************/ +.example form { + text-align: right; +} + +/************** +* programm page specific layout +***************/ +#programm { + display: grid; + grid-template-columns: 220px 260px auto; +} + +#programm .current_language { + grid-column: 1; + grid-row: 1; + font-family: 'Crete Round', serif; + font-size: 16px; + position: relative; + color: #D70404; + margin-top: 8px; +} +#programm .current_language > span { + font-weight: bold; +} + +#programm .top_buttons { + grid-column: 2; + grid-row: 1; + text-align:left; +} + +#programm #infos { + grid-column: 3; + grid-row: 1; + background-color: #FFD745; + border: solid; + border-width: 4px; + border-radius: 5px; + border-color: #FAC801; + font-family: 'Crete Round', serif; + color: #D70404; + font-size: 12px; + font-style: normal; + text-decoration: none; + text-align: justify; + margin-top: 0; + min-height: 50px; + padding: 0px 3px 0px 3px; +} + +#programm #infos .mot_cle +{ + color: #D70404; + font-family: 'Crete Round', serif; + font-weight: bold; +} + +#programm #infos .indications +{ + + color: #C17700; + font-family: 'Crete Round', serif; + font-style: italic; +} + +#dropdown_menu { + position: absolute; + display: flex; + flex-direction: column; + list-style-type: none; + z-index: 1; + padding: 0; + margin: 0; +} +#dropdown_menu > li > a { + display: block; + width: 130px; + height: 33px; + background-color: white; + line-height: 33px; + font-family: 'Crete Round', serif; + font-size: 16px; + color: #9B7606; + text-decoration: none; + border-style: solid; + border-width: 4px; + margin-bottom: -4px; + border-top-color: #ffce67; + border-left-color: #ffce67; + border-bottom-color: #d69c3f; + border-right-color: #d69c3f; + padding: 0 5px; +} +#dropdown_menu > li > a:hover { + background: rgb(255,190,62); + background: linear-gradient(180deg, rgba(255,190,62,1) 0%, rgba(255,122,49,1) 100%); +} + +#programm .action_buttons { + grid-column: 1; + grid-row: 2; +} +#programm .action_buttons button { + border: 0; + cursor: pointer; + background: none; + display: inline; + margin: 0; + padding: 0; +} +#programm .editor { + grid-column: 2 / 4; + grid-row: 2; + margin-bottom: 10px; +} +#programm .editor .cleditorMain { + border: solid; + border-width: 4px; + border-color: #FFAF22; + background-color: #FAF07A; +} +#programm .editor #disable { + background-color: gray; + opacity: 0.3; + position: absolute; + cursor: not-allowed; + /* Add margin the size of the border */ + margin: 4px; + /* Same fixed size as editor */ + width: 620px; + height: 314px; +} + +#programm .signes_container { + float: right; + display: flex; + flex-direction: column; + width: 32px; +} +#programm .signes_container > button { + margin-bottom: 16px; + max-width: 25px; + max-height: 25px; + border-width: 3px; + font-size: 16px; + padding: 0; + border-left-color: #989993; + border-bottom-color: #74746f; + border-right-color: #80807b; + border-top-color: #a5a5a0; + background-color: #a19e9d; + background: linear-gradient(45deg, #a19e9d 0%, #efefef 100%); + cursor: pointer; +} + +#programm #debug { + grid-column: 2 / 4; + grid-row: 3; + background-color: #DF6060; + border: solid; + border-width: 4px; + border-color: #D12424; + overflow: auto; + max-height: 400px; + overflow: auto; + padding: 2px 5px; + font-family: 'Crete Round', serif; +} +#programm #debug .debug_title { + font-size: 16px; + color: #AC0000; + margin-bottom: 8px; +} +#programm #debug .debug_title img { + display: inline-block; + margin-top: 8px; + margin-bottom: -8px; +} +#programm #debug .debug_content { + text-align: left; + font-size: 14px; + color: #771A1A; +} +#programm #debug #suggestion_erreur +{ + font-size: 14px; + color: #1B6618; +} +#programm #debug .ampoule +{ + margin-right: 2px; +} + +#programm #execution { + grid-column: 2 / 4; + grid-row: 3; + max-height: 400px; + overflow-y: auto; + background-color: #EED858; + border: solid; + border-width: 4px; + border-color: #D2A124; + font-family: 'Crete Round', serif; + font-style: normal; + text-decoration: none; + text-align: left; + overflow: auto; + word-wrap: break-word; + padding: 2px 5px; + font-size: 12px; +} +#programm #execution p { + margin: 0; + padding: 0; +} +#programm #execution > span { + font-size: 18px; + color: #DB7517; +} +#programm #execution #fin_execution +{ + color: red; + font-size: 18px; +} + +#programm #variables { + grid-column: 1; + grid-row: 3; + max-height: 400px; + overflow-y: auto; + margin-right: 16px; + background-color: #FFD745; + border: solid; + border-width: 4px; + border-color: #FAC801; + font-family: 'Crete Round', serif; + font-style: normal; + text-decoration: none; + text-align: left; + overflow: auto; + word-wrap: break-word; + font-size: 12px; + padding: 2px 5px; +} +#programm #variables > span +{ + font-size: 18px; + color: #D70404; +} +#programm #variables .vars +{ + margin-top: 3px; + margin-bottom: 0px; + font-size: 14px; + color: #D70404; +} + + +/************** +* Text blocks +***************/ +.text_block { + text-align: justify; + background-color: #FFD745; + border: solid; + border-width: 4px; + border-radius: 5px; + border-color: #FAC801; + font-family: 'Crete Round', serif; + font-size: 16px; + color: black; + padding: 5px 11px 7px 11px; + margin-bottom: 40px; +} + +p .text_block { + margin: 0; +} + +.text_block >p:first-child { + margin-top: 0; +} + +/************** +* Code example + code result +***************/ +.code_example_container { + display: flex; + flex-direction: row; + align-items: flex-start; + width: 100%; +} +.code_example_container > * { + flex-grow: 1; + flex-basis: 0; +} + +.code_example { + border: solid; + border-radius: 14px; + border-width: 4px; + font-family: 'Verdanna', Arial; + font-size: 14px; + font-weight: bold; + position: relative; + margin: 8px 16px; + padding: 5px 6px; +} +.code_example > small { + line-height: 12px; + position: absolute; + top: 2px; + right: 5px; + font-weight: normal; + font-family: 'Crete Round', serif; +} + +.code_example.code_algo { + background-color: rgb(255, 84, 84); + border-color: rgb(236, 10, 10); + color: rgb(173, 0, 0); +} +.code_example.code_casio { + background-color: rgb(145, 226, 99); + border-color: rgb(66, 167, 66); + color: rgb(62, 139, 10); +} +.code_example.code_ti { + background-color: rgb(155, 148, 248); + border-color: rgb(60, 103, 167); + color: rgb(40, 83, 175); +} + +.code_result { + border: solid; + border-radius: 14px; + border-width: 4px; + font-family: 'Crete Round', serif; + background-color: #EED858; + border-color: #D2A124; + margin: 8px 16px; + color: #D29A17; + padding: 6px 18px; +} +.code_result > span { + font-size: 18px; + color: #DB7517; + margin: 0px 6px 3px -6px; + display: block; +} diff --git a/assets/img/help/schema_algo.png b/assets/img/help/schema_algo.png index 91cacd738858e5041fea8f4ddaa4dabc1978a5b5..de6d420418e7ef698def19bd0ba50d5df32d0ac3 100644 GIT binary patch literal 18794 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 literal 9127 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 rcW`ZVBtG{!KQCSFQ))- zmrlow01j8TU7~q}4~4mfss6JJzT-Mi@t%7Oe;y_S58K9=}~R$0q*UD2;$*fo7sxSqY&|)`JJcar{QI77Z-ZI?TP%rJmT!q z(J%mtZ0G}{W^>s_Gz(lrf`5w;eNn%-Q=vK3ld3F7@Wih_#QP&&o?5*QB}Uz^my6O3 zS01~lP1NGrB+_rIiJQ+cxRxMBPxRs9lqLj>-SZlbYuNLoi+a0?npo#p_GXr5^2@2O z(yM~u`*6jSYv)%en=HTDi6t%e80@jPNLg2U%1)eWEJeF+b1R!VHwf^-qPVIfNrw?d zAOFbCxLrPUSl#qJ{%p#&9m~G^mO1T(yh(zCuLgiti!%%Wo1zgOV=&Ki@;3ZDV9Pr7j;qe zW&_23W`(*@xnWkSZJT70GG_Dw*{!fHZ$};ws`=xb@?u(7Ud`?lLxfLZpR@49Fmb2P zwWVWO`Os}EW$Wjow#0=kymQl={o$s7pj5VpD!?$qxIMyL`t+!vF3_cioqXDMZ-75V zO+!t8KER|>bI5iZZi>F~&x$Ll6+vnfp^tgKwXv({rEe5~*C{n%B9K$cpt}p+aTAGg zW2F=o5#7T+&um3xBT}&i3?RNdKdG^h-Bd5E8~1#-fEDXKfDp$XS7<$QThJb*Y*fTe z6pHW}K9$xnK=*l`Dri)$*el2+es?SU2bPCz&Z)*uYliTXbB`~nf4CU=FamOtG&(sW z%Wo>;o0~w18C8b(V}2QT$&~L^c6Pq{o63`a|0ldAWjD4iEl;o2jb1DJf(sbC&Ct&m z9Jns~9XXrzc_Z_3`9oLs1I$jb*L*Ommw+mq7MGpGnIF&o=qX@)&$ywme@-Rv%9$^n%wQT+0h{oR0X z8jW=Dz1=kp62;-6e=8H*lUg0{ad)&L zPAKe^ok6tL)c*i)8eN za(O;AB{X0Muq!?*e_@r-u{0yyS5TVFD?~F_*IYre z1%z9*yQ@%-zN}ELsXSpYYjKj4=cGrw3KCYUJlnCS&?CHDS}@KnMJ2`Cl-s4Ra_iA< ziz?BC{A>QeKz7E>kv?jUYtDS^{9!l_vXGN>2v?i5ZoE&3{op7*bzKYAMIf%%q>JD@ zhD$k%RTY1ft6EhNXyp32&8~G98 ziyN^AkRyfI?*pw8EA7m>8uGHbT0|RmTvSrqu zZ;Axe0@oIS`V+ZHi!t-gwdE1^+THJ$Fue9g&Rs`g>^-?=L1dZSQaZF4 z3P`T3@bvz$d9iYaHHTm209>f+#@Z=#ZP2ZOJ1V#;`;F@=W*!(jf`_os76VR^1v;_h-gtj8 zM7OLT;`ZEm571nzM7g3ew&a4x*n{gl+pAciLSSQ$SS#g7I{33b83mu9LJcmlBRbTmndFX{vaH^xsEN${|{$*(F^rprrj;&wYVCAizjbKB~h=Ov{4g;4+bEya&{0~Cu93vQH3hH1ms`f6yR#&Ge=2%%|-M*Fc z=qrHMCWAF>$FTkzo6@?0_!W|LnVMmbTE$s{;~`5eq56p^AFZlgDf>V1vY>RwfOeBq zrost9A)l!CA?CwpI|7+$HW;b=6*wryx;xfRURHu_G(&JblF^zh{V4tsH6t}kp>BM& zAFA?_!~9;hX(No*M6|2>zW|SBbG`HZaxJ&onaurD|81wof9!kGsOA5YW8UF}U1L`W zsA`5SqV1!R4!LC)Vj18W0&@%Upt~O~bKf^0z}-Du1{@UrFeE_6+s_T+Aw%1Vqj3F} aKRCeMBd8n@wLuf4yL-#@X6+47%>M#)O4Bv~ diff --git a/assets/img/programm/editor/onglet_deroulant.png b/assets/img/programm/editor/onglet_deroulant.png deleted file mode 100644 index 44f78f450bbc16d481e5f0c0110dc0b257c76456..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 412 zcmeAS@N?(olHy`uVBq!ia0vp^4M42O!3HD+>lTAJjKx9jP7LeL$-D$|*pj^6T^JrR ztYI+B_5P>_6yYrJh%9Dc;1&j9Muu5)B!GhKC7!;n?02|@1X#rH7g{?3g=8~BB1)X| zb8}PkN`PDj2Ir#G#FEq$h4Rdj3(@QEx8(ljnzMU)70+PD&qV32I!abQzmp1^p5A%(#RC-+7C@6QG* zOIcoCTB{Rr+2r#_>w+51Dw};`>!%pW$1@28do5nQQm;v{mdKI;Vst0FYdmPyhe` diff --git a/assets/img/programm/editor/onglet_deroulant_selection.png b/assets/img/programm/editor/onglet_deroulant_selection.png deleted file mode 100644 index cf9a9d6606a46e7215f9010bbaf5275f53dcd7a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1754 zcmV<01||84P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyx7 z4l5?*wrvXl0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~000It zNklPqkq)-L-LdRaa(YWPDz{NDBb`^T&^`0c-&Lg!6R@*BbzvSKt0}BY*w+ z-RrBXtG56?JL~0iuG`z&I{?=g05-eb?!5V@wfR^aesggM`@7xlteMl<{KNJArTw>eI{V z)_xC&0=kSU%ipI7WEt4p8zexW1^4W5TaUG6qTQ#DvV7L@=lg0be_Ni%kiY=e%zOAO zc-AiyWpDJ%*0}e-UxX7i&tw!fm~J+J$9I7hE{pS~s>^0pZm-LtQrAP_T3L8lj8@dW zBHV54Z|S^;^}+m3l2Cvm{AsdIHTosvTjR3tPhwReMLP!Y7zkwUDTz;I7$O1OD$vt&_Kiaf6*3e?8CP979%S(6>4z!=@}BnfUIo{%xcpci1Gi$s72{^pbxh?_s9 z18`)b);l!-DdJLw8DkjE-q&QDDAZfId>Zp9uK=cC=`yj5DLqv)`sCEygJ!u($ z%pt3TR@*4t14ujr!$J9eEG@iH=Fm8J7y(qn8g1UUA=Me-Ft(Z;ZNakzdXiK$%EyJ5 zfu;9g9X`$2v{9#k$CUs)t5Mu)sZij8+B{m}F7}SDs2|1Ql1>^L<_I?FrS+>|%=_h< znU3>$lN4Y=Sxfdt0(=UMB)s|17TQ$?C=jF<6AEcPUX58K+pGdcwgx7HyEldWHK3@r z0}cXVH(p2x_K4V{WG|n|r!=?wcZ{J7&)f!B4;j4J*1k3j2PG7%Zidj#QjoY5Av`Kd zkb0Ej+Rdj$7lb4D%ftSdZZW zCi8Nol}enqsdD}MerOve9R)oYj{hCz+PF*3O(+_i;*O$$_WKu z8%brWs(`2rr2C_U-*3jcjNbQzk)Jr5x7%%$;-xTzW^4Ae_K|64nh(94wzkp?4M3ts zPe#vLi`AGq^~B4>p=;vQt~*DKh=t>Tc8=uIfCsPI$q3|u^6np_!Nrx$h*Ch_!{WiL zT?JI`iGs97gW{Btoze~+iZ~^NXu8|Hw;^7g!aKd-u6|qz>2;yWj#82bjlHt-e^f<) zcciv0Aovt6ZR9YWE$PIsgvy=h=|*WV(XAeYk?|RY%nXcC)so<$fe7>I%(vMQcTuC% zrJZz98NmLrcEX@Ihzu4(^JPVZ{o-|4a!8JJI+r8O`#|- z)d{T!X6Gr@A5nRVejcM=#hwMhpSp)t4>3HS%$ zziAnO?FOa?7LMo!wvuMqXgE@i;=N-|3%%&-9;f;*W$TuK6GchbED08&m?=*L^*rsU z1qVZvG-o8BWo`Njc?I%(0#wOqB4wppg5jB;SGszkn2Dage(c!@6@aFM%AkByV>Y zhW{YAVDIwDKoQOYkH}&M25w;xW@MN(M*=9wUgGKN%6^Aif=|)7s3kEAC?uO15>euu zpPQSSR|4cRFgO>bCYGe8D3oWGWGJ|M`Ua%vrLqIXk9oQ{hE&{odytV4$ZJygzdp~y e0mK|i;6v*12@H%&BKL0rx!Tj!&t;ucLK6Ucs59mO diff --git a/assets/js/compil1.js b/assets/js/compil1.js index 219ccb2..0e2655d 100644 --- a/assets/js/compil1.js +++ b/assets/js/compil1.js @@ -1131,6 +1131,7 @@ function affiche_erreurs(code) { var a; affiche_debug(); + let html_errors = ''; for(a = nb_erreurs - 1; a >= 0; a--) { @@ -1139,37 +1140,37 @@ function affiche_erreurs(code) { switch(erreur_syntaxe[4 * a + 2]) { case "non_reconnu": - $("#debug_titre").after("

• ligne " + erreur_syntaxe[4 * a + 3] + " : expression \"" + erreur_syntaxe[4 * a + 1] + "\" non reconnue.
Suggestion : vérifiez la syntaxe du mot.

"); + html_errors += "

• ligne " + erreur_syntaxe[4 * a + 3] + " : expression \"" + erreur_syntaxe[4 * a + 1] + "\" non reconnue.
Suggestion : vérifiez la syntaxe du mot.

"; expression = erreur_syntaxe[4 * a + 1]; break; case "manquant": - $("#debug_titre").after("

• ligne " + erreur_syntaxe[4 * a + 3] + " : élément de syntaxe manquant.
Suggestion : ajoutez " + erreur_syntaxe[4 * a] + ".

"); + html_errors += "

• ligne " + erreur_syntaxe[4 * a + 3] + " : élément de syntaxe manquant.
Suggestion : ajoutez " + erreur_syntaxe[4 * a] + ".

"; break; case "tout": - $("#debug_titre").after("

• ligne " + erreur_syntaxe[4 * a + 3] + " : élément manquant.

"); + html_errors += "

• ligne " + erreur_syntaxe[4 * a + 3] + " : élément manquant.

"; break; case "instruction_illegale": - $("#debug_titre").after("

• ligne " + erreur_syntaxe[4 * a + 3] + " : instruction \"" + erreur_syntaxe[4 * a + 1] + "\" inadaptée au contexte.
Suggestion : vérifiez vos " + erreur_syntaxe[4 * a + 4] + ".

"); + html_errors += "

• ligne " + erreur_syntaxe[4 * a + 3] + " : instruction \"" + erreur_syntaxe[4 * a + 1] + "\" inadaptée au contexte.
Suggestion : vérifiez vos " + erreur_syntaxe[4 * a + 4] + ".

"; expression = erreur_syntaxe[4 * a + 1]; break; case "erreur_conditions": - $("#debug_titre").after("

• Erreur de conditions
Suggestion : vérifiez vos conditions.

"); + html_errors += "

• Erreur de conditions
Suggestion : vérifiez vos conditions.

"; break; case "erreur_boucles": - $("#debug_titre").after("

• Erreur de boucles
Suggestion : vérifiez vos boucles.

"); + html_errors += "

• Erreur de boucles
Suggestion : vérifiez vos boucles.

"; break; case "erreur_ti": - $("#debug_titre").after("

• Erreur de structure
Suggestion : vérifiez vos conditions et vos boucles.

"); + html_errors += "

• Erreur de structure
Suggestion : vérifiez vos conditions et vos boucles.

"; break; default: - $("#debug_titre").after("

• ligne " + erreur_syntaxe[4 * a + 3] + " : " + erreur_syntaxe[4 * a + 2] + " au contexte.
Suggestion : remplacer \"" + erreur_syntaxe[4 * a + 1] + "\" par " + erreur_syntaxe[4 * a] + ".

"); + html_errors += "

• ligne " + erreur_syntaxe[4 * a + 3] + " : " + erreur_syntaxe[4 * a + 2] + " au contexte.
Suggestion : remplacer \"" + erreur_syntaxe[4 * a + 1] + "\" par " + erreur_syntaxe[4 * a] + ".

"; expression = erreur_syntaxe[4 * a + 1]; break; } @@ -1177,20 +1178,24 @@ function affiche_erreurs(code) { if(erreur_syntaxe[4 * a + 2] != "erreur_conditions" && erreur_syntaxe[4 * a + 2] != "erreur_boucles" && erreur_syntaxe[4 * a + 2] != "erreur_ti") code = surligne_erreurs(code, erreur_syntaxe[4 * a + 3], expression); } + + if(html_errors) { + $('#programm #debug .debug_content').html(html_errors); + } return code; } // affiche le "debug" function affiche_debug() { - $('#execution').css('height', '85px'); + $('#execution').hide(); $('#debug').show(); } // cache le "debug" function masque_erreurs() { + $('#execution').show(); $('#debug').hide(); - $('#execution').css('height', '210px'); } // efface le debug diff --git a/assets/js/execution.js b/assets/js/execution.js index c87ca9a..e5713bf 100644 --- a/assets/js/execution.js +++ b/assets/js/execution.js @@ -54,8 +54,8 @@ function execution(langage_source, nb) { if(result == "failed") return "failed"; - $('#executer').hide(); - $('#pause').show(); + $('#programm .action_buttons .executer').hide(); + $('#programm .action_buttons .pause').show(); reset_variables(); $("#saisie").cleditor()[0].disable(true); @@ -71,8 +71,8 @@ function instructions(nb, langage_source) { { if(pause == 1) { - $('#executer').unbind('click'); - $('#executer').click(function() { + $('#programm .action_buttons .executer').unbind('click'); + $('#programm .action_buttons .executer').click(function() { execution(langage_source, nb + 1); }); @@ -338,8 +338,8 @@ function instructions(nb, langage_source) { { display("Fin de l'exécution"); process = 0; - $('#pause').hide(); - $('#executer').show(); + $('#programm .action_buttons .pause').hide(); + $('#programm .action_buttons .executer').show(); $("#saisie").cleditor()[0].disable(false); } } @@ -365,8 +365,8 @@ function lire(myvar, langage_source, nb, id) { if(pause == 1) { - $('#executer').hide(); - $('#pause').show(); + $('#programm .action_buttons .executer').hide(); + $('#programm .action_buttons .pause').show(); } pause = 0; diff --git a/assets/js/interface.js b/assets/js/interface.js index beb6ded..a5e75b8 100644 --- a/assets/js/interface.js +++ b/assets/js/interface.js @@ -4,7 +4,16 @@ var reset = 0; var lire_pending = 0; var langage_avant_publier = 1; + $(document).ready(function() { + const btn_conversion_algo = $('#programm .action_buttons .conversion_algo'); + const btn_conversion_casio = $('#programm .action_buttons .conversion_casio'); + const btn_conversion_ti = $('#programm .action_buttons .conversion_ti'); + + const btn_action_executer = $('#programm .action_buttons .executer'); + const btn_action_pause = $('#programm .action_buttons .pause'); + const btn_action_reset = $('#programm .action_buttons .reset'); + var TIME = 600; var langage = 1; @@ -23,31 +32,29 @@ $(document).ready(function() { ]; function affiche_conversion() { - $('#conversion_algo').show(); - $('#conversion_casio').show(); - $('#conversion_ti').show(); if(langage == 1) { - $('#conversion_algo').hide(); - $('#conversion_casio').css('bottom', '-70px').css('right', '264px'); - $('#conversion_ti').css('bottom', '-216px').css('right', '450px'); + btn_conversion_algo.hide(); + btn_conversion_casio.show(); + btn_conversion_ti.show(); } else if(langage == 2) { - $('#conversion_casio').hide(); - $('#conversion_ti').css('bottom', '-70px').css('right', '450px'); - $('#conversion_algo').css('bottom', '-216px').css('right', '264px'); + btn_conversion_casio.hide(); + btn_conversion_ti.show(); + btn_conversion_algo.show(); } else if(langage == 3) { - $('#conversion_ti').hide(); - $('#conversion_algo').css('bottom', '-70px').css('right', '264px'); - $('#conversion_casio').css('bottom', '-216px').css('right', '450px'); + btn_conversion_ti.hide(); + btn_conversion_algo.show(); + btn_conversion_casio.show(); } + return false; } function hide_langage() { - $('.langage_actuel').hide(); + $('.current_language > span').hide(); } function affiche_langage() { @@ -65,10 +72,10 @@ $(document).ready(function() { function changement_langage() { var result; - $('#conversion_algo').click(function(event) { + btn_conversion_algo.click(function(event) { if(new Date().getTime() - time > TIME && process == 0) { - $('#executer').unbind('click'); + btn_action_executer.unbind('click'); time = new Date().getTime(); process = 1; result = traduction(langage, 1, 1); @@ -84,10 +91,10 @@ $(document).ready(function() { $("#saisie").cleditor()[0].disable(false); } }); - $('#conversion_casio').click(function(event) { + btn_conversion_casio.click(function(event) { if(new Date().getTime() - time > TIME && process == 0) { - $('#executer').unbind('click'); + btn_action_executer.unbind('click'); time = new Date().getTime(); process = 1; result = traduction(langage, 2, 1); @@ -103,10 +110,10 @@ $(document).ready(function() { $("#saisie").cleditor()[0].disable(false); } }); - $('#conversion_ti').click(function(event) { + btn_conversion_ti.click(function(event) { if(new Date().getTime() - time > TIME && process == 0) { - $('#executer').unbind('click'); + btn_action_executer.unbind('click'); time = new Date().getTime(); process = 1; result = traduction(langage, 3, 1); @@ -125,11 +132,11 @@ $(document).ready(function() { } function init_boutons() { - $('#pause').hide(); + btn_action_pause.hide(); } function boutons() { - $('#executer').click(function() { + btn_action_executer.click(function() { if(process == 0) { pause = 0; @@ -140,20 +147,20 @@ $(document).ready(function() { } if(lire_pending == 1 && pause == 1) { - $('#executer').hide(); - $('#pause').show(); + btn_action_executer.hide(); + btn_action_pause.show(); pause = 0; document.getElementById("lire").focus(); } }); - $('#pause').click(function() { - $('#pause').hide(); - $('#executer').show(); + btn_action_pause.click(function() { + btn_action_pause.hide(); + btn_action_executer.show(); pause = 1; }); - $('#reset').click(function() { - $('#pause').hide(); - $('#executer').show(); + btn_action_reset.click(function() { + btn_action_pause.hide(); + btn_action_executer.show(); reset = 1; process = 0; execution_init(); @@ -228,10 +235,8 @@ $(document).ready(function() { } } - function menus_deroulants_init() { - $('.onglet_deroulant').hide(); - $('.instruction').hide(); - $('#selection').hide(); + function close_dropdown_menu() { + $('#dropdown_menu').hide(); } function menus_deroulants_show() { @@ -239,8 +244,6 @@ $(document).ready(function() { var iconeNb, indice_pointeur, ongletNb; var id = $(this).attr('id'); - $('#selection').hide(); - if(id == 'entrees-sorties') iconeNb = 0; if(id == 'conditions') @@ -252,82 +255,47 @@ $(document).ready(function() { indice_pointeur = indices[(langage - 1) * 4 + iconeNb]; ongletNb = indices[(langage - 1) * 4 + iconeNb + 1] - indice_pointeur; - - menus_deroulants_init(); - affiche_menu_deroulant(iconeNb, ongletNb, indice_pointeur); - selection(iconeNb, ongletNb, id, indice_pointeur); - menus_deroulants_hide(ongletNb, id); - }); + let x = $(this).position().left; + // avoid overlapping the info box + if (iconeNb >= 3) + x = $(this).position().left + $(this).width() - 130 + let y = $(this).position().top + $(this).height(); + + close_dropdown_menu(); + show_dropdown(x, y, ongletNb, indice_pointeur); + add_instruction_events(ongletNb); + add_dropdown_close_events(); + }) } - function menus_deroulants_hide(ongletNb, id, indice_pointeur) { - $('#support_menus, .cleditorMain').mouseenter(function() { - menus_deroulants_init(); + function add_dropdown_close_events() { + $('.cleditorMain').mouseenter(function() { + close_dropdown_menu(); }); + $('.top_buttons').mouseleave(() => { + close_dropdown_menu(); + }) } - function affiche_menu_deroulant(iconeNb, ongletNb, indice_pointeur) { - var i; - - $('.onglet_deroulant').css('left', 255 + 69 * iconeNb); - + function show_dropdown(x, y, ongletNb, indice_pointeur) { + $('#dropdown_menu').hide(); + $('#dropdown_menu').empty(); + $('#dropdown_menu').css('top', y); + $('#dropdown_menu').css('left', x); for(i = 1; i <= ongletNb; i++) { - $('#onglet_deroulant' + i).show(); - $('#instruction' + i).replaceWith("

" + instructions[indice_pointeur + i - 1] + "

"); - $('#instruction' + i).css('left', 261 + 69 * iconeNb).show(); + $('#dropdown_menu').append('
  • ' + instructions[indice_pointeur + i - 1] + '
  • ') } + $('#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 @@ +
    + + + + + \ No newline at end of file diff --git a/includes/header.php b/includes/header.php new file mode 100644 index 0000000..9feab6f --- /dev/null +++ b/includes/header.php @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + Festiv'Algo - <?= $page_title ?> + + + + + + + +
    + + + + + +
    + diff --git a/includes/init.php b/includes/init.php deleted file mode 100644 index 63cbe47..0000000 --- a/includes/init.php +++ /dev/null @@ -1,3 +0,0 @@ - - - Bannière Festiv'Algo - - - - diff --git a/index.php b/index.php index 0ce5f5f..acd4e9c 100644 --- a/index.php +++ b/index.php @@ -1,156 +1,125 @@ + +
    +

    + Vous programmez en
    + algorithme + Basic Casio + Ti-Basic +

    - - - - - - - - - - - - - - - - - Festiv'Algo - Programmer, exécuter et traduire des algorithmes pour toutes les calculatrices - - - - - -
    - +
    + Entrées/Sorties + Conditions + Boucles + Autres - - - - -
    - - - - Entrées/Sorties - Conditions - Boucles - Autres - - - - - - - - - - -

    -

    -

    -

    -

    -

    -

    -

    - -

    Cliquez sur l'une des icônes, puis sélectionnez une instruction.

    - -
    -
    - -

    Erreurs de syntaxe :

    -
    - - - - - - - - - - -

    -

    -

    -

    -

    ^

    -

    π

    -

    e

    -

    ln

    - -
    -

    Exécution :

    -
    -
    -
    - - - -
    -
    -

    Variables :

    - -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -

    -
    - - -
    +
    - - - \ No newline at end of file + +

    Cliquez sur l'une des icônes, puis sélectionnez une instruction.

    + + + +
    +
    + + + + + + + + +
    +
    +
    +
    +
    + +
    +
    + + Erreurs de syntaxe : +
    +
    +
    +
    + +
    + Exécution : +
    +
    + +
    + Variables : + +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +

    +
    +
    + \ No newline at end of file