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: