diff --git a/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_alert.html b/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_alert.html
new file mode 100644
index 0000000..46b1a14
--- /dev/null
+++ b/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_alert.html
@@ -0,0 +1,7 @@
+
+
Les auteurs de ce site
+
+
+
+
+
diff --git a/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_cpt.py b/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_cpt.py
new file mode 100644
index 0000000..c0369f4
--- /dev/null
+++ b/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_cpt.py
@@ -0,0 +1,5 @@
+a = 1
+cpt = 1
+while cpt < 8:
+ a = 2*a
+ cpt = cpt+1
diff --git a/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_maxi.py b/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_maxi.py
new file mode 100644
index 0000000..2d20ed7
--- /dev/null
+++ b/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_maxi.py
@@ -0,0 +1,9 @@
+def maxi(L):
+ dernier_indice = len(L) - 1
+ valeur_max = L[0]
+
+ for i in range(1,dernier_indice):
+ if L[i] > valeur_max:
+ valeur_max = liste[i]
+
+ return valeur_max
diff --git a/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_mini.py b/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_mini.py
new file mode 100644
index 0000000..075e912
--- /dev/null
+++ b/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_mini.py
@@ -0,0 +1,6 @@
+def minimum(L):
+ mini = 0
+ for e in L:
+ if e < mini:
+ mini = e
+ return mini
diff --git a/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_moyenne.py b/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_moyenne.py
new file mode 100644
index 0000000..90237cd
--- /dev/null
+++ b/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_moyenne.py
@@ -0,0 +1,7 @@
+liste = [17, 12, 5, 18, 2, 7, 9, 15, 14, 20]
+somme = 0
+i = 0
+while i < len(liste):
+ somme = somme + liste[i]
+ i = i + 1
+resultat = somme / len(liste)
diff --git a/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_produit.py b/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_produit.py
new file mode 100644
index 0000000..ba4fa50
--- /dev/null
+++ b/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_produit.py
@@ -0,0 +1,5 @@
+def produit (L):
+ p = ...
+ for elt in L:
+ .......
+ return p
diff --git a/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_somme.py b/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_somme.py
new file mode 100644
index 0000000..55e8be8
--- /dev/null
+++ b/1NSI/Evaluations/DS_2023-03-31/annexes/QCM_somme.py
@@ -0,0 +1,6 @@
+def mystere(T):
+ s = 0
+ for k in T:
+ if k % 2 == 0:
+ s = s+k
+ return s
diff --git a/1NSI/Evaluations/DS_2023-03-31/annexes/sous_liste1.py b/1NSI/Evaluations/DS_2023-03-31/annexes/sous_liste1.py
new file mode 100644
index 0000000..025891c
--- /dev/null
+++ b/1NSI/Evaluations/DS_2023-03-31/annexes/sous_liste1.py
@@ -0,0 +1,9 @@
+def pgsp(lst:list):
+ n = len(lst)
+ somme_max = lst[0]
+ for i in range(n):
+ for j in range(i, n):
+ s = somme_sous_sequence(lst, i, j)
+ if s > somme_max :
+ somme_max = s
+ return somme_max
diff --git a/1NSI/Evaluations/DS_2023-03-31/annexes/sous_liste2.py b/1NSI/Evaluations/DS_2023-03-31/annexes/sous_liste2.py
new file mode 100644
index 0000000..a3388bc
--- /dev/null
+++ b/1NSI/Evaluations/DS_2023-03-31/annexes/sous_liste2.py
@@ -0,0 +1,8 @@
+def pgsp2(lst:list):
+ sommes_max = [lst[0]]
+ for i in range(1, len(lst)):
+ if lst[i] > (sommes_max[-1] + lst[i]):
+ sommes_max.append(lst[i])
+ else:
+ sommes_max.append(sommes_max[-1] + lst[i])
+ return maximum(sommes_max)
diff --git a/1NSI/Evaluations/DS_2023-03-31/codes/script.js b/1NSI/Evaluations/DS_2023-03-31/codes/script.js
new file mode 100644
index 0000000..dc7998c
--- /dev/null
+++ b/1NSI/Evaluations/DS_2023-03-31/codes/script.js
@@ -0,0 +1,19 @@
+function affiche_menu() {
+ let menu = document.getElementById("menu")
+ if (menu.style.display == "block") {
+ menu.style.display = "none"
+ } else {
+ menu.style.display = "block"
+ }
+}
+
+let titreMenu = document.getElementById("titreMenu")
+titreMenu.addEventListener("click", affiche_menu)
+
+function preview() {
+ let prev = document.getElementById("preview")
+ prev.style.width = "200px"
+}
+
+let prev = document.getElementById("preview")
+prev.addEventListener("click", preview)
diff --git a/1NSI/Evaluations/DS_2023-03-31/codes/site.html b/1NSI/Evaluations/DS_2023-03-31/codes/site.html
new file mode 100644
index 0000000..798d756
--- /dev/null
+++ b/1NSI/Evaluations/DS_2023-03-31/codes/site.html
@@ -0,0 +1,45 @@
+
+
+
+
+ Compteur de clics
+
+
+
+
+
+
+
Mon beau site
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/1NSI/Evaluations/DS_2023-03-31/codes/style.css b/1NSI/Evaluations/DS_2023-03-31/codes/style.css
new file mode 100644
index 0000000..81c2515
--- /dev/null
+++ b/1NSI/Evaluations/DS_2023-03-31/codes/style.css
@@ -0,0 +1,9 @@
+#preview {
+ width: 100px;
+ height: 100px;
+ background-color: coral;
+}
+
+#menu {
+ display: None;
+}
diff --git a/1NSI/Evaluations/DS_2023-03-31/exercises.tex b/1NSI/Evaluations/DS_2023-03-31/exercises.tex
new file mode 100644
index 0000000..f1b376d
--- /dev/null
+++ b/1NSI/Evaluations/DS_2023-03-31/exercises.tex
@@ -0,0 +1,187 @@
+\begin{exercise}[subtitle={QCM}, step={1}, origin={Annales}, topics={ }, tags={ }]
+ \begin{multicols}{2}
+ \begin{enumerate}[leftmargin=*, wide]
+ \item En voulant programmer une fonction qui calcule la valeur minimale d'une liste d'entiers, on a écrit :
+ \begin{center}
+ \begin{minipage}{0.5\linewidth}
+ \inputminted[bgcolor=base3]{python}{./annexes/QCM_mini.py}
+ \end{minipage}
+ \end{center}
+ Cette fonction a été mal programmée. Pour quelle liste ne donnera-t-elle pas le résultat attendu, c'est-à-dire son minimum ?
+ \begin{tasks}(1)
+ \task \mintinline{python}{[-1,-8,12,2,23]}
+ \task \mintinline{python}{[0,18,12,2,3]}
+ \task \mintinline{python}{[-1,-1,12,12,23]}
+ \task \mintinline{python}{[1,8,12,2,23]}
+ \end{tasks}
+
+ \item La fonction maxi ci-dessous a pour but de renvoyer la valeur maximale présente dans la liste qui lui est passée
+ en argument.
+ \begin{center}
+ \begin{minipage}{\linewidth}
+ \inputminted[bgcolor=base3]{python}{./annexes/QCM_maxi.py}
+ \end{minipage}
+ \end{center}
+ Cette fonction a été mal programmée. On souhaite réaliser un test pour le démontrer. Parmi les propositions suivantes, laquelle mettra la fonction maxi en défaut ?
+ \begin{tasks}(1)
+ \task \mintinline{python}{assert maxi([1, 2, 3, 4]) == 4}
+ \task \mintinline{python}{assert maxi([4, 3, 2, 1]) == 4}
+ \task \mintinline{python}{assert maxi([1, 3, 3, 2]) == 3}
+ \task \mintinline{python}{assert maxi([1, 1, 1, 1]) == 1}
+ \end{tasks}
+
+ \item On exécute le script suivant :
+ \begin{center}
+ \begin{minipage}{\linewidth}
+ \inputminted[bgcolor=base3]{python}{./annexes/QCM_moyenne.py}
+ \end{minipage}
+ \end{center}
+ Quelle affirmation est \textbf{fausse} parmi les suivantes ?
+ \begin{tasks}(1)
+ \task le corps de la boucle a été exécuté 10 fois
+ \task à la fin de l'exécution la valeur de i est 9
+ \task resultat contient la moyenne des éléments de liste
+ \task len est une fonction
+ \end{tasks}
+
+ \item T est un tableau de nombres entiers non vide. Que représente la valeur de s renvoyée par cette fonction ?
+
+ \begin{center}
+ \begin{minipage}{0.5\linewidth}
+ \inputminted[bgcolor=base3]{python}{./annexes/QCM_somme.py}
+ \end{minipage}
+ \end{center}
+
+ \begin{tasks}(1)
+ \task la somme des valeurs du tableau T
+ \task la somme des valeurs positives du tableau T
+ \task la somme des valeurs impaires du tableau T
+ \task la somme des valeurs paires du tableau T
+ \end{tasks}
+
+ \item Lors de l'exécution du code suivant, combien de fois l'opération \mintinline{python}{a = 2*a} sera-t-elle effectuée ?
+
+ \begin{center}
+ \begin{minipage}{0.5\linewidth}
+ \inputminted[bgcolor=base3]{python}{./annexes/QCM_cpt.py}
+ \end{minipage}
+ \end{center}
+ \begin{tasks}(4)
+ \task 0
+ \task 1
+ \task 7
+ \task 8
+ \end{tasks}
+
+ \item La fonction suivante doit calculer le produit de tous les éléments de la liste passée en paramètre. Avec quelles expressions doit-on la compléter pour que cette fonction soit correcte ?
+ \begin{center}
+ \begin{minipage}{0.5\linewidth}
+ \inputminted[bgcolor=base3]{python}{./annexes/QCM_produit.py}
+ \end{minipage}
+ \end{center}
+ \begin{tasks}(1)
+ \task 1 puis \mintinline{python}{p = p * elt}
+ \task 0 puis \mintinline{python}{p = p * elt}
+ \task 1 puis \mintinline{python}{p = elt}
+ \task 0 puis \mintinline{python}{p = elt}
+ \end{tasks}
+
+ \item Quelle valeur permet de compléter l’affirmation suivante : « Le nombre d’opérations nécessaires pour rechercher un élément séquentiellement (l'autre méthode que la recherche par dichotomie) dans un tableau de longueur $n$ est de l’ordre de ... » ?
+ \begin{tasks}(4)
+ \task 1
+ \task $n$
+ \task $n^2$
+ \task $n^3$
+ \end{tasks}
+
+ \end{enumerate}
+ \end{multicols}
+
+ \begin{enumerate}
+ \setcounter{enumi}{7}
+ \item Une page HTML comporte ce bout de code :
+ \begin{center}
+ \begin{minipage}{\linewidth}
+ \inputminted[bgcolor=base3]{html}{./annexes/QCM_alert.html}
+ \end{minipage}
+ \end{center}
+ Quel sera le résultat d’un clic sur le bouton "Appuyer ici" ?
+ \begin{tasks}(1)
+ \task Rien
+ \task La page du navigateur se fermera
+ \task La page affichera à la place du bouton "Appuyer ici" le message "Auteurs anonymes"
+ \task Cela provoquera l’ouverture d’une fenêtre comportant le message "Auteurs anonymes"
+ \end{tasks}
+ \item Un élément form (un formulaire) d'une page HTML contient un élément button de type submit. Un clic sur ce bouton
+ \begin{tasks}(1)
+ \task envoie les données du formulaire vers la page définie par l'attribut action de l'élément form
+ \task efface les données entrées par l'utilisateur dans le formulaire
+ \task envoie les données du formulaire vers la page définie par l'attribut method de l'élément form
+ \task ne fait rien du tout si un script javascript n'est pas associé au bouton
+ \end{tasks}
+
+ \item Dans une page HTML, lequel de ces codes permet la présence d'une div qui appelle la fonction javascript \mintinline{js}{spoil()} lorsque l'utilisateur passe la souris dessus ?
+ \begin{tasks}(1)
+ \task \mintinline{html}{
Passe ta souris
}
+ \task \mintinline{html}{
Passe ta souris
}
+ \task \mintinline{html}{
spoil()
}
+ \task \mintinline{html}{
Passe ta souris ici
}
+ \end{tasks}
+
+ \end{enumerate}
+ \pagebreak
+\end{exercise}
+
+\begin{exercise}[subtitle={Javascript}, step={1}, origin={Bac}, topics={Complexité}, tags={}, mode={}]
+ Dans le dossier partager, vous trouverez un dossier \texttt{mon beau site}. Copiez-le dans votre répertoire personnel.
+ \begin{enumerate}
+ \item Quels éléments HTML ont été associé à un évènement? Préciser le type d'évènement.
+ \item Modifier le comportement des boutons \texttt{Bleu} et \texttt{Rouge} pour que l'évènement soit activé au survole de la souris.
+ \item Ajoute un évènement au bouton \texttt{ A toi de jouer} pour que sur un click de l'utilisateur, il soit écrit \texttt{Bravo!} dans le span en dessous.
+ \end{enumerate}
+\end{exercise}
+
+\begin{exercise}[subtitle={Sous liste}, step={1}, origin={Bac}, topics={Complexité}, tags={}, mode={}]
+ Étant donné un tableau non vide de nombres entiers relatifs, on appelle sous-séquence une suite non vide d’éléments voisins de ce tableau. On cherche dans cet exercice à déterminer la plus grande somme possible obtenue en additionnant les éléments d’une sous-séquence.
+
+ Par exemple, pour le tableau ci-dessous, la somme maximale vaut 18. Elle est obtenue en additionnant les éléments de la sous-séquence encadrée en gras ci- dessous (6;8;−6;10).
+
+ \begin{center}
+ \includegraphics[scale=0.5]{./fig/sous_suite}
+ \end{center}
+
+ \begin{enumerate}
+ \item
+ \begin{enumerate}
+ \item Quelle est la solution du problème si les éléments du tableau sont tous positifs?
+ \item Quelle est la solution du problème si tous les éléments sont négatifs?
+ \end{enumerate}
+ \item Dans cette question, on examine toutes les sous-séquences possibles
+ \begin{enumerate}
+ \item Écrire le code Python d’une fonction \mintinline{python}{somme_sous_sequence(lst,i, j)} qui prend en argument une liste et deux entiers i, j et renvoie la somme de la sous-séquence délimitée par les indices i et j (inclus).
+ \item La fonction \mintinline{python}{pgsp} ci-dessous permet de déterminer la plus grande des sommes obtenues en additionnant les éléments de toutes les sous-séquences possibles du tableau lst
+ \begin{center}
+ \begin{minipage}{\linewidth}
+ \inputminted[bgcolor=base3]{python}{./annexes/sous_liste1.py}
+ \end{minipage}
+ \end{center}
+ Parmi les quatre choix suivants, quel est le nombre de comparaisons effectuées par cette fonction si le tableau lst passé en paramètre contient 10 éléments? Vous justifierez votre réponse.
+ \begin{center}
+ 10 \qquad 55 \qquad 100 \qquad 1055
+ \end{center}
+ \item (dure) Quelle est la complexité d'un tel algorithme?
+ \item Recopier et modifier la fonction pgsp pour qu’elle renvoie un tuple contenant la somme maximale et les indices qui délimitent la sous-séquence correspondant à cette somme maximale.
+ \end{enumerate}
+ \item Ici, on propose une solution plus astucieuse qui consiste à la liste des sommes maximales des sous séquences qui se terminent par les valeurs de la liste à étudier. On a programmé la fonction suivante
+ \begin{center}
+ \begin{minipage}{\linewidth}
+ \inputminted[bgcolor=base3]{python}{./annexes/sous_liste2.py}
+ \end{minipage}
+ \end{center}
+ \begin{enumerate}
+ \item Écrire la fonction \mintinline{python}{maximum} qui prend en argument une liste et qui renvoie la valeur maximal de la liste.
+ \item Quelle est la compléxité de votre fonction \mintinline{python}{maximum}?
+ \item Faire une estimation de la complexité de la fonction \mintinline{python}{pgsp2}. Que peut-on dire par rapport à la fonction \mintinline{python}{pgsp}?
+ \end{enumerate}
+ \end{enumerate}
+\end{exercise}
diff --git a/1NSI/Evaluations/DS_2023-03-31/fig/sous_suite.png b/1NSI/Evaluations/DS_2023-03-31/fig/sous_suite.png
new file mode 100644
index 0000000..22fecfd
Binary files /dev/null and b/1NSI/Evaluations/DS_2023-03-31/fig/sous_suite.png differ
diff --git a/1NSI/Evaluations/DS_2023-03-31/sujet.pdf b/1NSI/Evaluations/DS_2023-03-31/sujet.pdf
new file mode 100644
index 0000000..d9e414d
Binary files /dev/null and b/1NSI/Evaluations/DS_2023-03-31/sujet.pdf differ
diff --git a/1NSI/Evaluations/DS_2023-03-31/sujet.tex b/1NSI/Evaluations/DS_2023-03-31/sujet.tex
new file mode 100644
index 0000000..4fe6fff
--- /dev/null
+++ b/1NSI/Evaluations/DS_2023-03-31/sujet.tex
@@ -0,0 +1,26 @@
+\documentclass[a4paper,12pt]{article}
+\usepackage{myXsim}
+\usepackage{minted}
+
+
+% Title Page
+\title{ DS4 \hfill }
+\tribe{1NSI}
+\date{31 mars 2023}
+\duree{1h}
+
+\DeclareExerciseCollection[step=1]{banque}
+\xsimsetup{collect}
+
+\pagestyle{empty}
+
+\begin{document}
+\maketitle
+\input{exercises.tex}
+\printcollection{banque}
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: "master"
+%%% End: