From 4effbb0e28f2e90b9a0aa0dadcfb9cb33cd5e049 Mon Sep 17 00:00:00 2001 From: Mstrdav Date: Wed, 1 Sep 2021 19:35:09 +0200 Subject: [PATCH] ptite maj --- Y/Ada-S1/tps.html | 450 ++++++++++++++++++++++++++++++++++++----- Y/Images/car0.png | Bin 0 -> 17464 bytes Y/Images/important.png | Bin 0 -> 3819 bytes Y/ystyle.css | 357 ++++++++++++++++++++++++++++---- 4 files changed, 724 insertions(+), 83 deletions(-) create mode 100644 Y/Images/car0.png create mode 100644 Y/Images/important.png diff --git a/Y/Ada-S1/tps.html b/Y/Ada-S1/tps.html index e1a63bb..4355c9a 100644 --- a/Y/Ada-S1/tps.html +++ b/Y/Ada-S1/tps.html @@ -1,48 +1,408 @@ -TP Ada S1 - premier semestre

Sujets des séances de TP

Configuration

À effectuer obligatoirement une fois en début d'année.

Nous allons configurer une fois pour toutes l'installation emacs/Ada de votre compte personnel. Pour cela, effectuer les opérations suivantes avant de commencer le premier TP (vous n'aurez pas à le refaire aux TPs suivants).

  • Trouvez le dossier COMMETUD : il devrait y avoir un lien sur votre bureau.
  • Allez dans Commetud, 1ere Année, Ada, puis Setup.
  • Lancer le programme setup-exe en cliquant dessus.
  • Répondez aux questions et attendez le message indiquant que l'installation s'est bien passée.En cas de doute, demandez à vos voisins ou à l'encadrant.

Les sujets

Vous avez cinq séances de TP pour effectuer les missions suivantes :

Acteurs utilisés

Acteurs utilisés au premier semestre :

INSA-Air


Tous les acteurs GAda (vous n'en avez pas besoin au premier semestre)

GAda

Problèmes techniques

Si emacs plante, voici la marche à suivre :

  • Cacher la fenêtre emacs ayant planté (minimiser la fenêtre en cliquant sur le 'moins' en haut à droite).
  • Rouvrir le fichier mission1.adb (par exemple)
  • Lorsque vous tentez de modifier le fichier, emacs se plaint de ne pas pouvoir l'éditer, dans ce cas, appuyer sur la touche 's' (comme steal ou comme c'est moi le chef ).

Facultatif : si vous voulez aussi détruire la fenêtre emacs ayant planté

  • Ouvrir un TERMINAL (à trouver dans le menu Système, ouvrir une console ou un terminal).
  • Dans le terminal, écrire : xkill (puis entrée)
  • Cliquer sur la fenêtre que vous voulez détruire (la fenêtre du emacs ayant planté).

Exercices complémentaires

Tous ces exercices sont faisables sur tech-io. Vous devriez être capables d'effectuer les exercices suivants seuls :Cet ensemble d'exercices correspond exactement au niveau attendu à l'examen :

Compétences et évaluation

Compétences Algorithmiques du semestre 1

Le domaine UF Maths-Algo est évaluée par compétences. Les compétences d'algo sont classées dans trois macro-compétences, de difficulté croissante :

StarBases de programmation

(le minimum vital à acquérir)
  • Traduire une spécification de sous-programme (boîte) en une déclaration de procédure ou de fonction Ada.
  • Distinguer les structures de contrôle while, if, et for.
  • Dans une procédure ou fonction, savoir utiliser les arguments.
  • Écrire une procédure de test qui invoque une fonction, affiche ses arguments et son résultat.
  • Respecter les conventions de présentation (indentation, espacements, commentaires, nommage des variables).

StarStarÉléments d'algorithmique

(l'objet principal du cours)
  • Appliquer toutes les règles de construction d'un programme (typage).
  • Les programmes sont cohérents et compilent sans erreur.
  • Prévoir le résultat d'un programme (sémantique).
  • Manipuler les types articles
  • Essentiel : les algorithmes classiques (min, max, moyenne).

StarStarStarAlgorithmique fine

(pour obtenir le niveau A+)
  • Pour le niveau A+ : algorithmes classiques avec un traitement supplémentaire, par exemple filtrage.

Ces compétences seront évaluées partiellement lors du contrôle Moodle, puis plus complètement lors du contrôle de TP début novembre. Un échec au contrôle Moodle peut être rattrapé par une bonne prestation lors du contrôle de TP.

Toutes les compétences n'ont pas le même poids. Par exemple, la distinction des blocs IF, WHILE, FOR est a priori plus importante que le respect des conventions de présentation. Un correcteur examinera votre contrôle pour estimer si chaque macro-compétence est acquise.

Évaluations

  • Un contrôle Moodle, début octobre. Durée 45 min.
  • Évaluation principale : un contrôle de TP sur ordi, début novembre. Durée 1H30.

Pendant les évaluations, le seul document autorisé est l'aide-mémoire, possiblement annoté.

Bibliographie et conseils sur la méthode de travail

Biblio

  • L'algorithmique (votre passeport informatique pour la programmation). Bruno Warin, Ellipses (ISBN 2729811400).
  • Initiation à l'Informatique (Programmation, Algorithmique, Architectures). Henri-Pierre Charles, Eyrolles (ISBN 2212090498)
  • Apprendre à programmer (Algorithmes et conception objet), Partie I. Christophe Dabancourt, Eyrolles (ISBN 9782212123500)

Conseils

  • Garder un exemplaire propre de votre travail de TD (les TDs sont effectués en équipe de 4, vous devriez avoir quatre exemplaires présentables à l'issue des séances).
  • Pendant les séances de TP, reportez à la fin de votre aide-mémoire les erreurs de compilation qui vous posent problème. Elles risquent de se reproduire à l'avenir, y compris en contrôle. Une page est déjà prévue pour cela.
  • D'une manière générale (ceci est vrai pour toutes les matières), quand vous avez résolu un problème qui vous semble difficile, écrivez une synthèse de ce qu'il faut en retenir. Le simple fait de rédiger cette synthèse vous aidera à mieux appréhender le problème et à vous en rappeler.
  • Entre deux séances de TP, relisez les algorithmes et programmes que vous avez effectué à la séance précédente, en comprenant bien chaque étape. Identifiez dans votre aide-mémoire ce que vous avez appris.
  • Rappel : vous pouvez librement contacter vos enseignants de TD, TP ou de cours pour poser des questions.

Ada en dehors des heures de TP

Pour travailler Ada à l'INSA

Des salles informatiques sont en accès libre : la salle du CSN (au centre informatique), et les salles du sous-sol si vous parvenez à y accéder.

Pour travailler Ada depuis chez soi, en se connectant sur un serveur de l'INSA (avec connexion VPN)

  1. Avoir une connexion VPN qui fonctionne : le client VPN de l'INSA
    ou le VPN expliqué par WikEtud.
  2. Puis visiter : //montp.insa-toulouse.fr et choisir une session linux.
  3. En cas de problème technique, envoyez un email à infrastructure-csn à insa-toulouse.fr.

Pour travailler Ada directement sur son propre ordi, chez soi (sans connexion internet)

Grâce aux efforts du club info, il est possible d'installer sur son ordinateur personnel un environnement semblable à l'environnement des TP Ada à l'INSA.

Aucune connaissance technique n'est nécessaire. Il suffit de suivre les consignes indiquées pour installer une machine virtuelle.

Tech.io (connexion internet, pas de VPN)

Alternative : vous pouvez travailler directement sur tech.io :

Enfin, notez que le club INFO vous aide à installer l'environnement - contactez-les.

+ + + + TP Ada S1 - premier semestre + + + + + + + + +
+
+

Sujets des séances de TP

+
+
+

Configuration

+
+
À effectuer obligatoirement une fois en début d'année.
+

Nous allons configurer une fois pour toutes l'installation emacs/Ada de votre compte personnel. Pour cela, effectuer les + opérations suivantes avant de commencer le premier TP (vous n'aurez pas à le refaire aux TPs + suivants).

+
    +
  • Trouvez le dossier COMMETUD : il devrait y avoir un lien sur + votre bureau.
  • +
  • Allez dans Commetud, 1ere Année, + Ada, puis Setup.
  • +
  • Lancer le programme setup-exe en cliquant dessus.
  • +
  • Répondez aux questions et attendez le message indiquant que l'installation s'est bien + passée.En cas de doute, demandez à vos voisins ou à l'encadrant.
  • +
+
+ +
+
+

Les sujets

+ + +
+
+

Acteurs utilisés

+
Acteurs utilisés au + premier semestre : +
+

INSA-Air

+
+ +
+ +

Tous les acteurs GAda (vous n'en avez pas besoin + au premier semestre) +
+

GAda

+ + +
+
+ +
+
+

Problèmes techniques

+
+
+

Si emacs plante, voici la marche à suivre :

+
    +
  • Cacher la fenêtre emacs ayant planté (minimiser la fenêtre en cliquant sur le + 'moins' en haut à droite).
  • +
  • Rouvrir le fichier mission1.adb (par + exemple)
  • +
  • Lorsque vous tentez de modifier le fichier, emacs se plaint de ne pas pouvoir + l'éditer, dans ce cas, appuyer sur la touche 's' (comme steal ou comme c'est moi le chef ).
  • +
+
+
+

Facultatif : si vous voulez aussi détruire la fenêtre emacs ayant planté

+
    +
  • Ouvrir un TERMINAL (à trouver dans le menu Système, ouvrir une console ou un + terminal).
  • +
  • Dans le terminal, écrire : xkill + (puis entrée)
  • +
  • Cliquer sur la fenêtre que vous voulez détruire (la fenêtre du emacs ayant planté). +
  • +
+
+
+ +
+
+ +
+
+

Exercices complémentaires

+
Tous ces exercices sont faisables + sur tech-io. + Vous devriez être capables d'effectuer les exercices suivants seuls :Cet ensemble d'exercices correspond exactement au niveau attendu à l'examen : +
+ +
+
+

Compétences et évaluation

+
+
+

Compétences Algorithmiques du semestre 1

+

Le domaine UF Maths-Algo est évaluée par compétences. Les compétences d'algo sont classées + dans trois macro-compétences, de difficulté croissante :

+

StarBases de programmation

(le + minimum vital à acquérir) +
    +
  • Traduire une spécification de sous-programme (boîte) en une déclaration de procédure ou de + fonction Ada.
  • +
  • Distinguer les structures de contrôle while, if, et for.
  • +
  • Dans une procédure ou fonction, savoir utiliser les arguments.
  • +
  • Écrire une procédure de test qui invoque une fonction, affiche ses arguments et son + résultat.
  • +
  • Respecter les conventions de présentation (indentation, espacements, commentaires, nommage + des variables).
  • +

+

StarStarÉléments d'algorithmique

(l'objet principal du cours) +
    +
  • Appliquer toutes les règles de construction d'un programme (typage).
  • +
  • Les programmes sont cohérents et compilent sans erreur.
  • +
  • Prévoir le résultat d'un programme (sémantique).
  • +
  • Manipuler les types articles
  • +
  • Essentiel : les algorithmes classiques (min, max, moyenne).
  • +

+

StarStarStarAlgorithmique fine

(pour + obtenir le niveau A+) +
    +
  • Pour le niveau A+ : algorithmes classiques avec un traitement supplémentaire, par exemple + filtrage.
  • +

+

Ces compétences seront évaluées partiellement lors du contrôle Moodle, puis plus complètement + lors du contrôle de TP début novembre. Un échec au contrôle Moodle peut être rattrapé par une + bonne prestation lors du contrôle de TP.

+

Toutes les compétences n'ont pas le même poids. Par exemple, la distinction des blocs IF, WHILE, FOR est a + priori plus importante que le respect des conventions de présentation. Un correcteur examinera + votre contrôle pour estimer si chaque macro-compétence est acquise.

+

Évaluations

+
    +
  • Un contrôle Moodle, début octobre. Durée 45 min.
  • +
  • Évaluation principale : un contrôle de TP sur ordi, début novembre. Durée 1H30. +
  • +
+

Pendant les évaluations, le seul document autorisé est l'aide-mémoire, possiblement annoté.

+
+
+ +
+
+

Bibliographie et conseils sur la méthode de travail

+
+

Biblio

+
    +
  • L'algorithmique (votre passeport informatique pour la programmation). Bruno Warin, Ellipses (ISBN 2729811400). +
  • +
  • Initiation à l'Informatique (Programmation, Algorithmique, Architectures). Henri-Pierre Charles, Eyrolles (ISBN + 2212090498)
  • +
  • Apprendre à programmer (Algorithmes et conception objet), Partie I. Christophe Dabancourt, Eyrolles (ISBN + 9782212123500)
  • +
+

Conseils

+
    +
  • Garder un exemplaire propre de votre travail de TD (les TDs sont effectués en équipe de 4, vous + devriez avoir quatre exemplaires présentables à l'issue des séances).
  • +
  • Pendant les séances de TP, reportez à la fin de votre aide-mémoire les erreurs de + compilation qui vous posent problème. Elles risquent de se reproduire à l'avenir, y + compris en contrôle. Une page est déjà prévue pour cela.
  • +
  • D'une manière générale (ceci est vrai pour toutes les matières), quand vous avez résolu un + problème qui vous semble difficile, écrivez une synthèse de ce qu'il faut en retenir. Le simple + fait de rédiger cette synthèse vous aidera à mieux appréhender le problème et à vous en + rappeler.
  • +
  • Entre deux séances de TP, relisez les algorithmes et programmes que vous avez effectué à la + séance précédente, en comprenant bien chaque étape. Identifiez dans votre aide-mémoire ce + que vous avez appris.
  • +
  • Rappel : vous pouvez librement contacter vos enseignants de TD, TP ou de cours pour poser des + questions.
  • +
+
+ +
+
+

Ada en dehors des heures de TP

+
+
+

Pour travailler Ada à l'INSA

+

Des salles informatiques sont en accès libre : la salle du CSN (au centre informatique), + et les salles du sous-sol si vous parvenez à y accéder.

+
+
+

Pour travailler Ada depuis chez soi, en se connectant sur un serveur de l'INSA (avec connexion + VPN)

+
    +
  1. Avoir une connexion VPN qui fonctionne : le + client VPN de l'INSA
    ou le VPN expliqué + par WikEtud.
  2. +
  3. Puis visiter : //montp.insa-toulouse.fr et choisir une + session linux.
  4. +
  5. En cas de problème technique, envoyez un email à infrastructure-csn à + insa-toulouse.fr.
  6. +
+
+
+

Pour travailler Ada directement sur son propre ordi, chez soi (sans connexion internet)

+

Grâce aux efforts du club info, il est possible d'installer sur son ordinateur personnel un + environnement semblable à l'environnement des TP Ada à l'INSA.

+

Aucune connaissance technique n'est nécessaire. Il suffit de suivre les consignes indiquées pour + installer une machine virtuelle.

+
+
+

Tech.io (connexion internet, pas de VPN)

+

Alternative : vous pouvez travailler directement sur tech.io :

+ +
+

Enfin, notez que le club INFO vous aide à installer l'environnement - contactez-les.

+
+ +

Un ex-étudiant de 1A avait commencé à proposer un style + alternatif à ces pages de TP.
Voici donc : TP Ada semestre 1, avec un style au + choix
+
+ + + + \ No newline at end of file diff --git a/Y/Images/car0.png b/Y/Images/car0.png new file mode 100644 index 0000000000000000000000000000000000000000..c7c34cc5baf1a93ebe4a56e500c175d42edd92f0 GIT binary patch literal 17464 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 literal 0 HcmV?d00001 diff --git a/Y/ystyle.css b/Y/ystyle.css index 5ccfd17..079cb19 100644 --- a/Y/ystyle.css +++ b/Y/ystyle.css @@ -1,7 +1,7 @@ /* POLICES */ @font-face { - font-family: 'Poppins'; - src: url('/Y/Poppins-Light.ttf') format('truetype'); + font-family: "Poppins"; + src: url("/Y/Poppins-Light.ttf") format("truetype"); } /* règles generéales */ @@ -23,9 +23,218 @@ body { position: relative; } -body:after, body:before { - -webkit-clip-path: polygon(100% 0, 0 0, 0 77.5%, 1% 77.4%, 2% 77.1%, 3% 76.6%, 4% 75.9%, 5% 75.05%, 6% 74.05%, 7% 72.95%, 8% 71.75%, 9% 70.55%, 10% 69.3%, 11% 68.05%, 12% 66.9%, 13% 65.8%, 14% 64.8%, 15% 64%, 16% 63.35%, 17% 62.85%, 18% 62.6%, 19% 62.5%, 20% 62.65%, 21% 63%, 22% 63.5%, 23% 64.2%, 24% 65.1%, 25% 66.1%, 26% 67.2%, 27% 68.4%, 28% 69.65%, 29% 70.9%, 30% 72.15%, 31% 73.3%, 32% 74.35%, 33% 75.3%, 34% 76.1%, 35% 76.75%, 36% 77.2%, 37% 77.45%, 38% 77.5%, 39% 77.3%, 40% 76.95%, 41% 76.4%, 42% 75.65%, 43% 74.75%, 44% 73.75%, 45% 72.6%, 46% 71.4%, 47% 70.15%, 48% 68.9%, 49% 67.7%, 50% 66.55%, 51% 65.5%, 52% 64.55%, 53% 63.75%, 54% 63.15%, 55% 62.75%, 56% 62.55%, 57% 62.5%, 58% 62.7%, 59% 63.1%, 60% 63.7%, 61% 64.45%, 62% 65.4%, 63% 66.45%, 64% 67.6%, 65% 68.8%, 66% 70.05%, 67% 71.3%, 68% 72.5%, 69% 73.6%, 70% 74.65%, 71% 75.55%, 72% 76.35%, 73% 76.9%, 74% 77.3%, 75% 77.5%, 76% 77.45%, 77% 77.25%, 78% 76.8%, 79% 76.2%, 80% 75.4%, 81% 74.45%, 82% 73.4%, 83% 72.25%, 84% 71.05%, 85% 69.8%, 86% 68.55%, 87% 67.35%, 88% 66.2%, 89% 65.2%, 90% 64.3%, 91% 63.55%, 92% 63%, 93% 62.65%, 94% 62.5%, 95% 62.55%, 96% 62.8%, 97% 63.3%, 98% 63.9%, 99% 64.75%, 100% 65.7%); - clip-path: polygon(100% 0, 0 0, 0 77.5%, 1% 77.4%, 2% 77.1%, 3% 76.6%, 4% 75.9%, 5% 75.05%, 6% 74.05%, 7% 72.95%, 8% 71.75%, 9% 70.55%, 10% 69.3%, 11% 68.05%, 12% 66.9%, 13% 65.8%, 14% 64.8%, 15% 64%, 16% 63.35%, 17% 62.85%, 18% 62.6%, 19% 62.5%, 20% 62.65%, 21% 63%, 22% 63.5%, 23% 64.2%, 24% 65.1%, 25% 66.1%, 26% 67.2%, 27% 68.4%, 28% 69.65%, 29% 70.9%, 30% 72.15%, 31% 73.3%, 32% 74.35%, 33% 75.3%, 34% 76.1%, 35% 76.75%, 36% 77.2%, 37% 77.45%, 38% 77.5%, 39% 77.3%, 40% 76.95%, 41% 76.4%, 42% 75.65%, 43% 74.75%, 44% 73.75%, 45% 72.6%, 46% 71.4%, 47% 70.15%, 48% 68.9%, 49% 67.7%, 50% 66.55%, 51% 65.5%, 52% 64.55%, 53% 63.75%, 54% 63.15%, 55% 62.75%, 56% 62.55%, 57% 62.5%, 58% 62.7%, 59% 63.1%, 60% 63.7%, 61% 64.45%, 62% 65.4%, 63% 66.45%, 64% 67.6%, 65% 68.8%, 66% 70.05%, 67% 71.3%, 68% 72.5%, 69% 73.6%, 70% 74.65%, 71% 75.55%, 72% 76.35%, 73% 76.9%, 74% 77.3%, 75% 77.5%, 76% 77.45%, 77% 77.25%, 78% 76.8%, 79% 76.2%, 80% 75.4%, 81% 74.45%, 82% 73.4%, 83% 72.25%, 84% 71.05%, 85% 69.8%, 86% 68.55%, 87% 67.35%, 88% 66.2%, 89% 65.2%, 90% 64.3%, 91% 63.55%, 92% 63%, 93% 62.65%, 94% 62.5%, 95% 62.55%, 96% 62.8%, 97% 63.3%, 98% 63.9%, 99% 64.75%, 100% 65.7%); +body:after, +body:before { + -webkit-clip-path: polygon( + 100% 0, + 0 0, + 0 77.5%, + 1% 77.4%, + 2% 77.1%, + 3% 76.6%, + 4% 75.9%, + 5% 75.05%, + 6% 74.05%, + 7% 72.95%, + 8% 71.75%, + 9% 70.55%, + 10% 69.3%, + 11% 68.05%, + 12% 66.9%, + 13% 65.8%, + 14% 64.8%, + 15% 64%, + 16% 63.35%, + 17% 62.85%, + 18% 62.6%, + 19% 62.5%, + 20% 62.65%, + 21% 63%, + 22% 63.5%, + 23% 64.2%, + 24% 65.1%, + 25% 66.1%, + 26% 67.2%, + 27% 68.4%, + 28% 69.65%, + 29% 70.9%, + 30% 72.15%, + 31% 73.3%, + 32% 74.35%, + 33% 75.3%, + 34% 76.1%, + 35% 76.75%, + 36% 77.2%, + 37% 77.45%, + 38% 77.5%, + 39% 77.3%, + 40% 76.95%, + 41% 76.4%, + 42% 75.65%, + 43% 74.75%, + 44% 73.75%, + 45% 72.6%, + 46% 71.4%, + 47% 70.15%, + 48% 68.9%, + 49% 67.7%, + 50% 66.55%, + 51% 65.5%, + 52% 64.55%, + 53% 63.75%, + 54% 63.15%, + 55% 62.75%, + 56% 62.55%, + 57% 62.5%, + 58% 62.7%, + 59% 63.1%, + 60% 63.7%, + 61% 64.45%, + 62% 65.4%, + 63% 66.45%, + 64% 67.6%, + 65% 68.8%, + 66% 70.05%, + 67% 71.3%, + 68% 72.5%, + 69% 73.6%, + 70% 74.65%, + 71% 75.55%, + 72% 76.35%, + 73% 76.9%, + 74% 77.3%, + 75% 77.5%, + 76% 77.45%, + 77% 77.25%, + 78% 76.8%, + 79% 76.2%, + 80% 75.4%, + 81% 74.45%, + 82% 73.4%, + 83% 72.25%, + 84% 71.05%, + 85% 69.8%, + 86% 68.55%, + 87% 67.35%, + 88% 66.2%, + 89% 65.2%, + 90% 64.3%, + 91% 63.55%, + 92% 63%, + 93% 62.65%, + 94% 62.5%, + 95% 62.55%, + 96% 62.8%, + 97% 63.3%, + 98% 63.9%, + 99% 64.75%, + 100% 65.7% + ); + clip-path: polygon( + 100% 0, + 0 0, + 0 77.5%, + 1% 77.4%, + 2% 77.1%, + 3% 76.6%, + 4% 75.9%, + 5% 75.05%, + 6% 74.05%, + 7% 72.95%, + 8% 71.75%, + 9% 70.55%, + 10% 69.3%, + 11% 68.05%, + 12% 66.9%, + 13% 65.8%, + 14% 64.8%, + 15% 64%, + 16% 63.35%, + 17% 62.85%, + 18% 62.6%, + 19% 62.5%, + 20% 62.65%, + 21% 63%, + 22% 63.5%, + 23% 64.2%, + 24% 65.1%, + 25% 66.1%, + 26% 67.2%, + 27% 68.4%, + 28% 69.65%, + 29% 70.9%, + 30% 72.15%, + 31% 73.3%, + 32% 74.35%, + 33% 75.3%, + 34% 76.1%, + 35% 76.75%, + 36% 77.2%, + 37% 77.45%, + 38% 77.5%, + 39% 77.3%, + 40% 76.95%, + 41% 76.4%, + 42% 75.65%, + 43% 74.75%, + 44% 73.75%, + 45% 72.6%, + 46% 71.4%, + 47% 70.15%, + 48% 68.9%, + 49% 67.7%, + 50% 66.55%, + 51% 65.5%, + 52% 64.55%, + 53% 63.75%, + 54% 63.15%, + 55% 62.75%, + 56% 62.55%, + 57% 62.5%, + 58% 62.7%, + 59% 63.1%, + 60% 63.7%, + 61% 64.45%, + 62% 65.4%, + 63% 66.45%, + 64% 67.6%, + 65% 68.8%, + 66% 70.05%, + 67% 71.3%, + 68% 72.5%, + 69% 73.6%, + 70% 74.65%, + 71% 75.55%, + 72% 76.35%, + 73% 76.9%, + 74% 77.3%, + 75% 77.5%, + 76% 77.45%, + 77% 77.25%, + 78% 76.8%, + 79% 76.2%, + 80% 75.4%, + 81% 74.45%, + 82% 73.4%, + 83% 72.25%, + 84% 71.05%, + 85% 69.8%, + 86% 68.55%, + 87% 67.35%, + 88% 66.2%, + 89% 65.2%, + 90% 64.3%, + 91% 63.55%, + 92% 63%, + 93% 62.65%, + 94% 62.5%, + 95% 62.55%, + 96% 62.8%, + 97% 63.3%, + 98% 63.9%, + 99% 64.75%, + 100% 65.7% + ); display: block; height: 200px; position: absolute; @@ -81,7 +290,8 @@ main { margin-left: 3vw; margin-right: 3vw; border-radius: 12px; - width: clamp(10px, 94vw, 900px); + max-width: 900px; + color: black; } /* couleurs modulo 3 */ @@ -98,13 +308,70 @@ main { } .yfold-title { - color: white; padding: 10px 12px 5px 15px; cursor: pointer; } +h1.yfold-title, +h2.yfold-title { + color: white; +} + +div.warning { + background-color: yellow; + padding: 15px; + border-radius: 12px; + min-height: 70px; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + width: 60%; + margin-bottom: 20px; +} + +.file { + font-family: sans; + font-size: 96%; + color: #660033; +} + +div.warning:before { + content: url(Images/important.png); + float: left; + margin-right: 12px; +} + .arrow { - margin-right: 10px + margin-right: 10px; +} + +.menu { + margin: 0.25ex 0; + padding: 0.1ex 0.75ex 0.1ex 0.75ex; + background: rgba(130, 170, 250, 0.5); + border: thin solid #37f; + border-radius: 4px; + box-shadow: 3px 3px 2px #844; + font-family: sans; + font-variant: small-caps; + font-size: 88%; + display: inline-block; +} + +.lbutton { + vertical-align: top; + padding: 2px 5px; + color: black; + border-radius: 6px; + box-shadow: 1px 2px 2px grey; + font-size: 90%; + background: #72e0d1; +} + +.nice-inline { + vertical-align: top; + max-height: 5ex; } /* le fond d'écran d'opacité 0.8 permet d'attraper un peu de la couleur de l'élément parent */ @@ -122,37 +389,43 @@ aside.yfold { border-radius: 12px; } -aside .yfold-title, .card .yfold-title { +aside .yfold-title, +.card .yfold-title { color: black; - font-family: 'Poppins', sans-serif; + font-family: "Poppins", sans-serif; font-weight: 100; padding: 0px; } -aside .yfold-content, .card .yfold-content { +aside .yfold-content, +.card .yfold-content { padding: min(40px, 3vw); } -h1, h2, h3 { +h1, +h2, +h3 { font-family: "Poppins", sans-serif; font-weight: lighter; } -h4, h5 { +h4, +h5 { font-size: 110%; margin-bottom: 5px; margin-top: 5px; } /* Elements qui s'animent, se plient et se déplient */ -.anim-hide, aside .anim-hide { +.anim-hide, +aside .anim-hide { padding-top: 0 !important; padding-bottom: 0 !important; animation-name: disappear; animation-duration: 0.75s; max-height: 0; margin: 0; - transition: padding 0.75s ease .3s; + transition: padding 0.75s ease 0.3s; } .hidden { @@ -167,7 +440,7 @@ h4, h5 { animation-duration: 0.75s; max-height: initial; margin: 0 0 3ex 0; - transition: padding 0.75s ease .1s; + transition: padding 0.75s ease 0.1s; } /* style des éléments a l'intérieur des cartes */ @@ -197,7 +470,7 @@ footer { bottom: 0px; width: 100%; min-height: 150px; - background: rgba(19, 19, 19, .8); + background: rgba(19, 19, 19, 0.8); padding: 30px 50px; display: flex; z-index: 2; @@ -229,7 +502,7 @@ footer .pcom a { /* PAGE DE CODE */ code { - background: rgba(19, 19, 19, .8); + background: rgba(19, 19, 19, 0.8); font-family: monospace; color: #ffffcc; display: inline; @@ -239,9 +512,10 @@ code { font-style: normal; } -.output, samp { +.output, +samp { display: block; - background: rgba(19, 19, 19, .8); + background: rgba(19, 19, 19, 0.8); margin: 20px 0; font-family: monospace; color: #ccffcc; @@ -255,7 +529,7 @@ code { padding: 20px 50px 22px 25px; border-left: 10px solid #494; line-height: 1.55; - transition: all .3s; + transition: all 0.3s; } code.block { @@ -268,7 +542,7 @@ code.block { padding: 20px 50px 22px 25px; border-left: 10px solid #944; line-height: 1.55; - transition: all .3s; + transition: all 0.3s; margin: 20px 0; } @@ -276,7 +550,7 @@ code.page { border-radius: 12px; position: relative; z-index: 2; - background: rgba(19, 19, 19, .8); + background: rgba(19, 19, 19, 0.8); width: min(94vw, 900px); border-radius: 12px; margin-left: 3vw; @@ -291,7 +565,7 @@ code.page { padding: 20px 50px 22px 25px; border-left: 10px solid #884; line-height: 1.55; - transition: all .3s; + transition: all 0.3s; } code * { @@ -300,6 +574,10 @@ code * { display: inline; } +code.kw { + vertical-align: middle; +} + code div { overflow: hidden; position: absolute; @@ -332,9 +610,11 @@ code div.not-valid { background: #811; } -code div.valid, code div.not-valid, code div.darken { +code div.valid, +code div.not-valid, +code div.darken { animation-name: shake; - animation-duration: .6s; + animation-duration: 0.6s; } span.comment { @@ -371,12 +651,12 @@ code:not(.inline).light { background: rgba(250, 250, 250, 0.8); color: black; border-color: #aaa; - transition: all .3s; + transition: all 0.3s; } .light div { background: #aaa; - transition: all .3s; + transition: all 0.3s; } code * { @@ -470,7 +750,8 @@ img:hover { border-radius: 12px; } -ul li, ol li { +ul li, +ol li { list-style: circle; margin-left: 25px; margin-top: 5px; @@ -516,43 +797,43 @@ small { /* ANIMATION */ @-webkit-keyframes bgMove { 0% { - background-position: 0% 50% + background-position: 0% 50%; } 50% { - background-position: 100% 50% + background-position: 100% 50%; } 100% { - background-position: 0% 50% + background-position: 0% 50%; } } @-moz-keyframes bgMove { 0% { - background-position: 0% 50% + background-position: 0% 50%; } 50% { - background-position: 100% 50% + background-position: 100% 50%; } 100% { - background-position: 0% 50% + background-position: 0% 50%; } } @keyframes bgMove { 0% { - background-position: 0% 50% + background-position: 0% 50%; } 50% { - background-position: 100% 50% + background-position: 100% 50%; } 100% { - background-position: 0% 50% + background-position: 0% 50%; } }