Feat(NSI): fait le DS4
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
04c90a07c2
commit
cd31d3293c
7
1NSI/Evaluations/DS_2023-03-31/annexes/QCM_alert.html
Normal file
7
1NSI/Evaluations/DS_2023-03-31/annexes/QCM_alert.html
Normal file
@ -0,0 +1,7 @@
|
||||
<article>
|
||||
<h1>Les auteurs de ce site</h1>
|
||||
<button onclick="auteurs()">Appuyer ici</button>
|
||||
</article>
|
||||
|
||||
<script src="java_script/ScriptJava.js"></script>
|
||||
<script> function auteurs() { alert("Auteurs anonymes"); } </script>
|
5
1NSI/Evaluations/DS_2023-03-31/annexes/QCM_cpt.py
Normal file
5
1NSI/Evaluations/DS_2023-03-31/annexes/QCM_cpt.py
Normal file
@ -0,0 +1,5 @@
|
||||
a = 1
|
||||
cpt = 1
|
||||
while cpt < 8:
|
||||
a = 2*a
|
||||
cpt = cpt+1
|
9
1NSI/Evaluations/DS_2023-03-31/annexes/QCM_maxi.py
Normal file
9
1NSI/Evaluations/DS_2023-03-31/annexes/QCM_maxi.py
Normal file
@ -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
|
6
1NSI/Evaluations/DS_2023-03-31/annexes/QCM_mini.py
Normal file
6
1NSI/Evaluations/DS_2023-03-31/annexes/QCM_mini.py
Normal file
@ -0,0 +1,6 @@
|
||||
def minimum(L):
|
||||
mini = 0
|
||||
for e in L:
|
||||
if e < mini:
|
||||
mini = e
|
||||
return mini
|
7
1NSI/Evaluations/DS_2023-03-31/annexes/QCM_moyenne.py
Normal file
7
1NSI/Evaluations/DS_2023-03-31/annexes/QCM_moyenne.py
Normal file
@ -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)
|
5
1NSI/Evaluations/DS_2023-03-31/annexes/QCM_produit.py
Normal file
5
1NSI/Evaluations/DS_2023-03-31/annexes/QCM_produit.py
Normal file
@ -0,0 +1,5 @@
|
||||
def produit (L):
|
||||
p = ...
|
||||
for elt in L:
|
||||
.......
|
||||
return p
|
6
1NSI/Evaluations/DS_2023-03-31/annexes/QCM_somme.py
Normal file
6
1NSI/Evaluations/DS_2023-03-31/annexes/QCM_somme.py
Normal file
@ -0,0 +1,6 @@
|
||||
def mystere(T):
|
||||
s = 0
|
||||
for k in T:
|
||||
if k % 2 == 0:
|
||||
s = s+k
|
||||
return s
|
9
1NSI/Evaluations/DS_2023-03-31/annexes/sous_liste1.py
Normal file
9
1NSI/Evaluations/DS_2023-03-31/annexes/sous_liste1.py
Normal file
@ -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
|
8
1NSI/Evaluations/DS_2023-03-31/annexes/sous_liste2.py
Normal file
8
1NSI/Evaluations/DS_2023-03-31/annexes/sous_liste2.py
Normal file
@ -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)
|
19
1NSI/Evaluations/DS_2023-03-31/codes/script.js
Normal file
19
1NSI/Evaluations/DS_2023-03-31/codes/script.js
Normal file
@ -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)
|
45
1NSI/Evaluations/DS_2023-03-31/codes/site.html
Normal file
45
1NSI/Evaluations/DS_2023-03-31/codes/site.html
Normal file
@ -0,0 +1,45 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
|
||||
<head>
|
||||
<title>Compteur de clics </title>
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="style.css">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Mon beau site </h1>
|
||||
<nav>
|
||||
<h2 id="titreMenu">Menu</h2>
|
||||
<ul id="menu">
|
||||
<li>1</li>
|
||||
<li>2</li>
|
||||
<li>3</li>
|
||||
<li>4</li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<section id="content">
|
||||
<div id="preview"></div>
|
||||
</section>
|
||||
<p>
|
||||
<button id="atoi">A toi de jouer</button>
|
||||
<span id="felicitation"></span>
|
||||
</p>
|
||||
<p>
|
||||
<button onclick="enBleu()">Bleu</button>
|
||||
<button onclick="enRouge()">Rouge</button>
|
||||
</p>
|
||||
<script>
|
||||
function enBleu(){
|
||||
document.body.style.backgroundColor = "#0000FF";
|
||||
}
|
||||
function enRouge(){
|
||||
document.body.style.backgroundColor = "#AA0000";
|
||||
}
|
||||
</script>
|
||||
<script src="script.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
9
1NSI/Evaluations/DS_2023-03-31/codes/style.css
Normal file
9
1NSI/Evaluations/DS_2023-03-31/codes/style.css
Normal file
@ -0,0 +1,9 @@
|
||||
#preview {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: coral;
|
||||
}
|
||||
|
||||
#menu {
|
||||
display: None;
|
||||
}
|
187
1NSI/Evaluations/DS_2023-03-31/exercises.tex
Normal file
187
1NSI/Evaluations/DS_2023-03-31/exercises.tex
Normal file
@ -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}{<div href="spoil()">Passe ta souris</div> }
|
||||
\task \mintinline{html}{<div if_mouseover="spoil()">Passe ta souris</div> }
|
||||
\task \mintinline{html}{<div value="Passe ta souris"><div> spoil()</div></div> }
|
||||
\task \mintinline{html}{<div oncmouseover="spoil()">Passe ta souris ici</div>}
|
||||
\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}
|
BIN
1NSI/Evaluations/DS_2023-03-31/fig/sous_suite.png
Normal file
BIN
1NSI/Evaluations/DS_2023-03-31/fig/sous_suite.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.0 KiB |
BIN
1NSI/Evaluations/DS_2023-03-31/sujet.pdf
Normal file
BIN
1NSI/Evaluations/DS_2023-03-31/sujet.pdf
Normal file
Binary file not shown.
26
1NSI/Evaluations/DS_2023-03-31/sujet.tex
Normal file
26
1NSI/Evaluations/DS_2023-03-31/sujet.tex
Normal file
@ -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:
|
Loading…
Reference in New Issue
Block a user