diff --git a/Pile_File/Cours/README.md b/Pile_File/Cours/README.md deleted file mode 100644 index 65b21b2..0000000 --- a/Pile_File/Cours/README.md +++ /dev/null @@ -1,103 +0,0 @@ -# Structure de données : Pile et File - -> Structures essentielles pour résoudre des problèmes où l’ordre de traitement des données est crucial, comme la gestion des processus ou la navigation dans des graphes, les piles et files permettent de stocker et manipuler des données selon des règles spécifiques. La pile suit un principe **LIFO** (Last In, First Out), tandis que la file suit un principe **FIFO** (First In, First Out). - -## Le programme - -BO_Pile & File - - - - - -BO_Pile&File_2 - - - - - -## 1. Rappel : - -**Structure de données** : Collection d'information dans laquelle il est possible de stocker, traiter, organiser, extraire des données. - -Les structures de données connues à ce jour sont : Les tableaux, les dictionnaires, les chaînes de caractères, les n-uplets. Chacune de ces structures possèdent des caractéristiques propres qui créent des avantages et des inconvénients selon la situation. - -De plus, ces types sont natifs à python, et aux autres langages selon les cas. Nous n'avons donc ici aucune idée de comment le type *dict* ou *tuple* est crée par exemple. - -Les structures de données Pile et File ne sont pas natives à python et nous aurons donc besoin de les implémenter. - -## 2. Interface et implémentation : - -Ces deux termes sont particulier et très important pour ce chapitre. Alors un petit rappel n'est pas de trop. - -**Interface :** L'interface d'un type est définie par les méthodes qui lui sont associées. - -**Implémentation :** L'implémentation d'un type est la manière dont on va le coder. - -Il faut bien faire la distinction entre les deux termes. - -## 3. Pile - -### 3. 1. Définition - -Une pile est une structure de données dans la quelle les derniers éléments entrant dans la structure seront les premiers à en sortir, nous appelons ce principe **LIFO (Last In First Out)**. Afin d'imager cette structure nous pouvons penser à un pile d'assiettes par exemple. - -![image-20220729234146926](../Images/Pile.png) - -Ici seul le premier élément est accessible. - -### 3. 2. Interface - -Méthodes associées à la pile : - -- Empile : Méthode permettant d'empiler un élément. - - L'élément sera positionné au haut de la pile -- Depile : Méthode permettant d'enlever un élément. - - L'élément enlever sera celui en haut de la pile. - -- Est_vide : Permet de savoir si la pile est vide ou non - -On peut ajouter d'autres méthodes : - -- Taille : Permet de savoir le nombre d'élément de la pile -- Top : Permet de connaître l'élément au dessus de la pile. - -## 3. File - -### 3. 1. Définition - -Une file est une structure de données dans la quelle les derniers éléments entrant dans la structure seront les dernier à en sortir, nous appelons ce principe **FIFO (First In First Out)**. Afin d'imager cette structure nous pouvons penser à un file de voiture sur une route par exemple. - -![File](../Images/File.png) - -Ici seul le premier élément peut sortir de la structure. - -### 3. 2. Interface - -Méthodes associées à la pile : - -- Enfile: Méthode permettant d'enfile un élément. - - L'élément sera positionné au haut de la file -- Defile: Méthode permettant d'enlever un élément. - - L'élément enlever sera celui en bas de la file. - -- Est_vide : Permet de savoir si la file est vide ou non - -On peut ajouter d'autres méthodes : - -- Taille : Permet de savoir le nombre d'élément de la file -- Top : Permet de connaître l'élément au dessus de la file. - -## 4. Conclusion - -Les deux structures ont une interface très semblable. Seul le principe FIFO / LIFO peut les différencier. - -La suite du chapitre se concentrera sur l'utilisation de ses structures et leurs implémentations. - ---------- - -Auteurs : Florian Mathieu, Timothée Decoster, Enzo Frémaux - -Licence CC BY NC - -Licence Creative Commons
Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International. \ No newline at end of file diff --git a/Routage/animation_dijkstra.py b/Routage/animation_dijkstra.py deleted file mode 100644 index 83df4e9..0000000 --- a/Routage/animation_dijkstra.py +++ /dev/null @@ -1,55 +0,0 @@ -import networkx as nx -import matplotlib.pyplot as plt -import matplotlib.animation as animation - -# Création du graphe -G = nx.DiGraph() -edges = [ - (0, 1, 4), (0, 2, 1), - (2, 1, 2), (1, 3, 1), - (2, 3, 5), (3, 4, 3) -] -G.add_weighted_edges_from(edges) - -# Position des nœuds pour affichage -pos = nx.spring_layout(G, seed=42) -labels = {n: str(n) for n in G.nodes()} - -# Initialisation de la figure -fig, ax = plt.subplots(figsize=(6, 6)) - -# Algorithme de Dijkstra avec animation -def dijkstra_animation(start_node=0): - distances = {node: float('inf') for node in G.nodes()} - distances[start_node] = 0 - visited = set() - steps = [] - - while len(visited) < len(G.nodes()): - min_node = min((node for node in distances if node not in visited), key=lambda x: distances[x]) - visited.add(min_node) - - for neighbor in G.neighbors(min_node): - new_distance = distances[min_node] + G[min_node][neighbor]["weight"] - if new_distance < distances[neighbor]: - distances[neighbor] = new_distance - - steps.append((visited.copy(), [(min_node, v) for v in G.neighbors(min_node)])) - - return steps - -steps = dijkstra_animation() - -def update(frame): - ax.clear() - visited, edges = steps[frame] - node_colors = ["green" if n in visited else "lightblue" for n in G.nodes()] - edge_colors = ["red" if (u, v) in edges else "black" for u, v in G.edges()] - - nx.draw(G, pos, with_labels=True, labels=labels, node_size=800, - node_color=node_colors, edge_color=edge_colors, font_size=14, font_weight="bold", ax=ax) - edge_labels = {(u, v): G[u][v]["weight"] for u, v in G.edges()} - nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, font_size=12, ax=ax) - -ani = animation.FuncAnimation(fig, update, frames=len(steps), repeat=False, interval=1000) -plt.show() diff --git a/Sujet_bac/Pratique/BNS_2025.zip b/Sujet_bac/Pratique/BNS_2025.zip new file mode 100644 index 0000000..995164d Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025.zip differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-1/25-NSI-1.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-1/25-NSI-1.pdf new file mode 100644 index 0000000..39c788c Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-1/25-NSI-1.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-1/25-NSI-1.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-1/25-NSI-1.py new file mode 100644 index 0000000..5166f92 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-1/25-NSI-1.py @@ -0,0 +1,18 @@ +def nombre_suivant(s): + '''Renvoie le nombre suivant de celui representé par s + en appliquant le procédé de lecture.''' + resultat = '' + chiffre = s[0] + compte = 1 + for i in range(...): + if s[i] == chiffre: + compte = ... + else: + resultat += ... + ... + chiffre = ... + ... + lecture_... = ... + ... + resultat += lecture_chiffre + return resultat + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-10/25-NSI-10.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-10/25-NSI-10.pdf new file mode 100644 index 0000000..d8ca305 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-10/25-NSI-10.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-10/sujet-10.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-10/sujet-10.py new file mode 100644 index 0000000..295de0f --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-10/sujet-10.py @@ -0,0 +1,19 @@ +alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + +def position_alphabet(lettre): + '''Renvoie la position de la lettre dans l'alphabet''' + return ord(lettre) - ord('A') + +def cesar(message, decalage): + '''Renvoie le message codé par la méthode de César + pour le decalage donné''' + resultat = '' + for ... in message: + if 'A' <= c and c <= 'Z': + indice = (...) % 26 + resultat = resultat + alphabet[indice] + else: + resultat = ... + return resultat + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-11/25-NSI-11.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-11/25-NSI-11.pdf new file mode 100644 index 0000000..88dbe82 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-11/25-NSI-11.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-11/25-NSI-11.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-11/25-NSI-11.py new file mode 100644 index 0000000..8c351b1 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-11/25-NSI-11.py @@ -0,0 +1,19 @@ +def somme_max(tab): + n = len(tab) + sommes_max = [0]*n + sommes_max[0] = tab[0] + # on calcule la plus grande somme se terminant en i + for i in range(1,n): + if ... + ... > ...: + sommes_max[i] = ... + else: + sommes_max[i] = ... + # on en déduit la plus grande somme de celles-ci + maximum = 0 + for i in range(1, n): + if ... > ...: + maximum = i + + return sommes_max[...] + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-12/25-NSI-12.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-12/25-NSI-12.pdf new file mode 100644 index 0000000..55b0267 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-12/25-NSI-12.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-12/25-NSI-12.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-12/25-NSI-12.py new file mode 100644 index 0000000..76b2c3c --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-12/25-NSI-12.py @@ -0,0 +1,11 @@ +def traduire_romain(nombre): + """ Renvoie l'écriture décimale du nombre donné en chiffres + romains """ + if len(nombre) == 1: + return ... + elif romains[nombre[0]] >= ...: + return romains[nombre[0]] + ... + else: + return ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-13/25-NSI-13.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-13/25-NSI-13.pdf new file mode 100644 index 0000000..0034074 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-13/25-NSI-13.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-13/25-NSI-13.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-13/25-NSI-13.py new file mode 100644 index 0000000..9c83b64 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-13/25-NSI-13.py @@ -0,0 +1,16 @@ +def insere(tab, a): + """ + Insère l'élément a (int) dans le tableau tab (list) + trié par ordre croissant à sa place et renvoie le + nouveau tableau. + """ + tab_a = [ a ] + tab # nouveau tableau contenant a + # suivi des éléments de tab + i = 0 + while i < ... and a > ...: + tab_a[i] = ... + tab_a[i+1] = a + i = ... + return tab_a + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-14/25-NSI-14.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-14/25-NSI-14.pdf new file mode 100644 index 0000000..8a9067f Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-14/25-NSI-14.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-14/25-NSI-14.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-14/25-NSI-14.py new file mode 100644 index 0000000..0191d41 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-14/25-NSI-14.py @@ -0,0 +1,37 @@ +def nombre_lignes(image): + '''renvoie le nombre de lignes de l'image''' + return ... + +def nombre_colonnes(image): + '''renvoie la largeur de l'image''' + return ... + +def negatif(image): + '''renvoie le negatif de l'image sous la forme + d'une liste de listes''' + # on cree une image de 0 aux memes dimensions + # que le parametre image + nouvelle_image = [[0 for k in range(nombre_colonnes(image))] + for i in range(nombre_lignes(image))] + + for i in range(nombre_lignes(image)): + for j in range(...): + nouvelle_image[i][j] = ... + return nouvelle_image + +def binaire(image, seuil): + '''renvoie une image binarisee de l'image sous la forme + d'une liste de listes contenant des 0 si la valeur + du pixel est strictement inferieure au seuil et 255 sinon''' + nouvelle_image = [[0] * nombre_colonnes(image) + for i in range(nombre_lignes(image))] + + for i in range(nombre_lignes(image)): + for j in range(...): + if image[i][j] < ... : + nouvelle_image[i][j] = ... + else: + nouvelle_image[i][j] = ... + return nouvelle_image + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-15/25-NSI-15.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-15/25-NSI-15.pdf new file mode 100644 index 0000000..d3c647a Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-15/25-NSI-15.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-15/25-NSI-15.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-15/25-NSI-15.py new file mode 100644 index 0000000..9725b8c --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-15/25-NSI-15.py @@ -0,0 +1,15 @@ +def chercher(tab, x, i, j): + '''Renvoie l'indice de x dans tab, si x est dans tab, + None sinon. + On suppose que tab est trié dans l'ordre croissant.''' + if i > j: + return None + m = (i + j) // ... + if ... < x: + return chercher(tab, x, ... , ...) + elif tab[m] > x: + return chercher(tab, x, ... , ...) + else: + return ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-16/25-NSI-16.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-16/25-NSI-16.pdf new file mode 100644 index 0000000..7597bf8 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-16/25-NSI-16.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-16/25-NSI-16.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-16/25-NSI-16.py new file mode 100644 index 0000000..fdadb44 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-16/25-NSI-16.py @@ -0,0 +1,17 @@ +def ligne_suivante(ligne): + '''Renvoie la ligne suivant ligne du triangle de Pascal''' + ligne_suiv = [...] + for i in range(...): + ligne_suiv.append(...) + ligne_suiv.append(...) + return ligne_suiv + +def pascal(n): + '''Renvoie le triangle de Pascal de hauteur n''' + triangle = [ [1] ] + for k in range(...): + ligne_k = ... + triangle.append(ligne_k) + return triangle + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-17/25-NSI-17.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-17/25-NSI-17.pdf new file mode 100644 index 0000000..dc24822 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-17/25-NSI-17.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-17/sujet-17.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-17/sujet-17.py new file mode 100644 index 0000000..8aa9691 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-17/sujet-17.py @@ -0,0 +1,13 @@ +def ajoute(indice, element, tab): + '''Renvoie un nouveau tableau obtenu en insérant + element à l'indice indice dans le tableau tab.''' + nbre_elts = len(tab) + tab_ins = [0] * (nbre_elts + 1) + for i in range(indice): + tab_ins[i] = ... + tab_ins[...] = ... + for i in range(indice + 1, nbre_elts + 1): + tab_ins[i] = ... + return tab_ins + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-18/25-NSI-18.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-18/25-NSI-18.pdf new file mode 100644 index 0000000..614946b Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-18/25-NSI-18.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-18/sujet-18.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-18/sujet-18.py new file mode 100644 index 0000000..fbbef11 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-18/sujet-18.py @@ -0,0 +1,18 @@ +def dichotomie(tab, x): + """applique une recherche dichotomique pour déterminer + si x est dans le tableau trié tab. + La fonction renvoie True si tab contient x et False sinon""" + + debut = 0 + fin = ... + while debut <= fin: + m = ... + if x == tab[m]: + return ... + if x > tab[m]: + debut = ... + else: + fin = ... + return False + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-19/25-NSI-19.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-19/25-NSI-19.pdf new file mode 100644 index 0000000..cff4380 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-19/25-NSI-19.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-19/sujet-19.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-19/sujet-19.py new file mode 100644 index 0000000..e56f3ee --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-19/sujet-19.py @@ -0,0 +1,14 @@ +def separe(tab): + '''Separe les 0 et les 1 dans le tableau tab''' + gauche = 0 + droite = ... + while gauche < droite: + if tab[gauche] == 0 : + gauche = ... + else : + tab[gauche] = ... + tab[droite] = ... + droite = ... + return tab + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-2/25-NSI-2.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-2/25-NSI-2.pdf new file mode 100644 index 0000000..a80fe32 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-2/25-NSI-2.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-2/sujet-2.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-2/sujet-2.py new file mode 100644 index 0000000..75207fe --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-2/sujet-2.py @@ -0,0 +1,36 @@ +def est_un_ordre(tab): + ''' + Renvoie True si tab est de longueur n et contient tous les + entiers de 1 à n, False sinon + ''' + n = len(tab) + # les entiers vus lors du parcours + vus = ... + + for x in tab: + if x < ... or x >... or ...: + return False + ... .append(...) + return True + +def nombre_points_rupture(ordre): + ''' + Renvoie le nombre de point de rupture de ordre qui représente + un ordre de gènes de chromosome + ''' + # on vérifie que ordre est un ordre de gènes + assert ... + n = len(ordre) + nb = 0 + if ordre[...] != 1: # le premier n'est pas 1 + nb = nb + 1 + i = 0 + while i < ...: + if ... not in [-1, 1]: # l'écart n'est pas 1 + nb = nb + 1 + i = i + 1 + if ordre[i] != ...: # le dernier n'est pas n + nb = nb + 1 + return nb + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-20/25-NSI-20.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-20/25-NSI-20.pdf new file mode 100644 index 0000000..3399bc3 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-20/25-NSI-20.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-20/sujet-20.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-20/sujet-20.py new file mode 100644 index 0000000..ef86387 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-20/sujet-20.py @@ -0,0 +1,37 @@ +class Carte: + def __init__(self, c, v): + """Initialise les attributs couleur (entre 1 et 4), + et valeur (entre 1 et 13). """ + self.couleur = c + self.valeur = v + + def recuperer_valeur(self): + """ Renvoie la valeur de la carte : + As, 2, ..., 10, Valet, Dame, Roi """ + valeurs = ['As','2', '3', '4', '5', '6', '7', '8', + '9', '10', 'Valet', 'Dame', 'Roi'] + return valeurs[self.valeur - 1] + + def recuperer_couleur(self): + """ Renvoie la couleur de la carte + (parmi pique, coeur, carreau, trèfle). """ + couleurs = ['pique', 'coeur', 'carreau', 'trèfle'] + return couleurs[self.couleur - 1] + +class Paquet_de_cartes: + def __init__(self): + """ Initialise l'attribut contenu avec une liste des 52 + objets Carte possibles rangés par valeurs croissantes en + commençant par pique, puis cœur, carreau et trèfle. """ + ... + ... + ... + ... + + def recuperer_carte(self, pos): + """ Renvoie la carte qui se trouve à la position pos + (entier compris entre 0 et 51). """ + ... + ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-21/25-NSI-21.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-21/25-NSI-21.pdf new file mode 100644 index 0000000..7efa3d6 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-21/25-NSI-21.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-21/sujet-21.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-21/sujet-21.py new file mode 100644 index 0000000..1d41e16 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-21/sujet-21.py @@ -0,0 +1,21 @@ +def renverse(pile): + '''renvoie une pile contenant les mêmes éléments que pile, + mais dans l'ordre inverse. + Cette fonction détruit pile.''' + pile_inverse = ... + while pile != []: + ... .append(...) + return ... + + +def positifs(pile): + '''renvoie une pile contenant les éléments positifs de pile, + dans le même ordre. Cette fonction détruit pile.''' + pile_positifs = ... + while pile != []: + ... = pile.pop() + if ... >= 0: + ... + return ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-22/25-NSI-22.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-22/25-NSI-22.pdf new file mode 100644 index 0000000..dcf33de Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-22/25-NSI-22.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-22/sujet-22.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-22/sujet-22.py new file mode 100644 index 0000000..35bd67a --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-22/sujet-22.py @@ -0,0 +1,26 @@ +class AdresseIP: + def __init__(self, adresse): + self.adresse =... + + def liste_octets(self): + """renvoie une liste de nombres entiers, + la liste des octets de l'adresse IP""" + # Note : split découpe la chaine de caractères + # en fonction du séparateur + return [int(i) for i in self.adresse.split(".")] + + def est_reservee(self): + """renvoie True si l'adresse IP est une adresse + réservée, False sinon""" + reservees = [ ... ] + return ... + + def adresse_suivante(self): + """renvoie un objet de AdresseIP avec l'adresse + IP qui suit l'adresse self si elle existe et None sinon""" + octets = ... + if ... == 254: + return None + octet_nouveau = ... + ... + return AdresseIP('192.168.0.' + ...) + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-23/25-NSI-23.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-23/25-NSI-23.pdf new file mode 100644 index 0000000..1ef740a Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-23/25-NSI-23.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-23/25-NSI-23.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-23/25-NSI-23.py new file mode 100644 index 0000000..b0f3c72 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-23/25-NSI-23.py @@ -0,0 +1,21 @@ +def dec_to_bin(nb_dec): + q, r = nb_dec // 2, nb_dec % 2 + if q == ...: + return ... + else: + return dec_to_bin(...) + ... + +def bin_to_dec(nb_bin): + if len(nb_bin) == 1: + if ... == '0': + return 0 + else: + return ... + else: + if nb_bin[-1] == '0': + bit_droit = 0 + else: + ... + return ... * bin_to_dec(nb_bin[:-1]) + ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-24/25-NSI-24.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-24/25-NSI-24.pdf new file mode 100644 index 0000000..78285fd Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-24/25-NSI-24.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-24/sujet-24.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-24/sujet-24.py new file mode 100644 index 0000000..73c0a84 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-24/sujet-24.py @@ -0,0 +1,32 @@ +class Noeud: + """Classe représentant un noeud d'un arbre binaire""" + def __init__(self, etiquette, gauche, droit): + """Crée un noeud de valeur etiquette avec + gauche et droit comme fils.""" + self.etiquette = etiquette + self.gauche = gauche + self.droit = droit + +def parcours(arbre, liste): + """parcours récursivement l'arbre en ajoutant les étiquettes + de ses noeuds à la liste passée en argument en ordre infixe.""" + if arbre != None: + parcours(arbre.gauche, liste) + liste.append(arbre.etiquette) + parcours(arbre.droit, liste) + return liste + +def insere(arbre, cle): + """insere la cle dans l'arbre binaire de recherche + représenté par arbre. + Retourne l'arbre modifié.""" + if arbre == None: + return Noeud(cle, None, None) # creation d'une feuille + else: + if ...: + arbre.gauche = insere(arbre.gauche, cle) + else: + arbre.droit = ... + return arbre + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-25/25-NSI-25.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-25/25-NSI-25.pdf new file mode 100644 index 0000000..05cf669 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-25/25-NSI-25.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-25/sujet-25.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-25/sujet-25.py new file mode 100644 index 0000000..e4dd2b6 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-25/sujet-25.py @@ -0,0 +1,21 @@ +def inverse_chaine(chaine): + '''Retourne la chaine inversée''' + resultat = ... + for caractere in chaine: + resultat = ... + return resultat + +def est_palindrome(chaine): + '''Renvoie un booléen indiquant si la chaine ch + est un palindrome''' + inverse = inverse_chaine(chaine) + return ... + +def est_nbre_palindrome(nbre): + '''Renvoie un booléen indiquant si le nombre nbre + est un palindrome''' + chaine = ... + return est_palindrome(chaine) + + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-26/25-NSI-26.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-26/25-NSI-26.pdf new file mode 100644 index 0000000..5ffc7b6 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-26/25-NSI-26.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-26/25-NSI-26.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-26/25-NSI-26.py new file mode 100644 index 0000000..5ae11b9 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-26/25-NSI-26.py @@ -0,0 +1,21 @@ +from random import randint + +def nombre_coups(): + '''Simule un jeu de plateau avec 12 cases et renvoie le nombre + nécessaire de coups pour visiter toutes les cases.''' + nombre_cases = 12 + # indique si une case a été vue + cases_vues = [ False ] * nombre_cases + nombre_cases_vues = 1 + cases_vues[0] = True + case_en_cours = 0 + n = ... + while ... < ...: + x = randint(1, 6) + case_en_cours = (case_en_cours + ...) % ... + if ...: + cases_vues[case_en_cours] = True + nombre_cases_vues = ... + n = ... + return n + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-27/25-NSI-27.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-27/25-NSI-27.pdf new file mode 100644 index 0000000..3c5fa2f Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-27/25-NSI-27.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-27/25-NSI-27.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-27/25-NSI-27.py new file mode 100644 index 0000000..06e71a8 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-27/25-NSI-27.py @@ -0,0 +1,22 @@ +def depouille(urne): + '''prend en paramètre une liste de suffrages et renvoie un + dictionnaire avec le nombre de voix pour chaque candidat''' + resultat = ... + for bulletin in urne: + if ...: + resultat[bulletin] = resultat[bulletin] + 1 + else: + ... + return resultat + +def vainqueurs(election): + '''prend en paramètre un dictionnaire non vide avec le nombre de voix + pour chaque candidat et renvoie la liste des vainqueurs''' + nmax = 0 + for candidat in election: + if ... > ... : + nmax = ... + liste_finale = [ nom for nom in election if ... ] + return ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-28/25-NSI-28.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-28/25-NSI-28.pdf new file mode 100644 index 0000000..e41d751 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-28/25-NSI-28.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-28/sujet-28.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-28/sujet-28.py new file mode 100644 index 0000000..8765a19 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-28/sujet-28.py @@ -0,0 +1,36 @@ +def voisinage(n, ligne, colonne): + """ Renvoie la liste des coordonnées des voisins de la case + (ligne, colonne) dans un grille de taille n x n, + en tenant compte des cases sur les bords. """ + voisins = [] + for dl in range(-1, 2): + for dc in range(-1, 2): + l = ligne + dl + c = colonne + dc + if (l, c) != (ligne, colonne) \ + and 0 <= l < n and 0 <= c < n: + voisins.append((l,c)) + return voisins + +def incremente_voisins(grille, ligne, colonne): + """ Incrémente de 1 toutes les cases voisines d'une bombe.""" + voisins = ... + for l, c in voisins: + if grille[l][c] != ...: # si ce n'est pas une bombe + ... # on ajoute 1 à sa valeur + +def genere_grille(bombes): + """ Renvoie une grille de démineur de taille nxn où n est + le nombre de bombes, en plaçant les bombes à l'aide de + la liste bombes de coordonnées (tuples) passée en + paramètre. """ + n = len(bombes) + # Initialisation d'une grille nxn remplie de 0 + grille = [[0 for colonne in range(n)] for ligne in range(n)] + # Place les bombes et calcule les valeurs des autres cases + for ligne, colonne in bombes: + grille[ligne][colonne] = ... # place la bombe + ... # incrémente ses voisins + return grille + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-29/25-NSI-29.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-29/25-NSI-29.pdf new file mode 100644 index 0000000..62deb85 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-29/25-NSI-29.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-29/sujet-29.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-29/sujet-29.py new file mode 100644 index 0000000..3d781c6 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-29/sujet-29.py @@ -0,0 +1,16 @@ +def trouver_intrus(tab, g, d): + """Renvoie la valeur de l'intrus situé entre les indices g et d + dans le tableau tab où : + tab vérifie les conditions de l'exercice, + g et d sont des multiples de 3.""" + if g == d: + return ... + else: + nombre_de_triplets = (d - g) // ... + indice = g + 3 * (nombre_de_triplets // 2) + if ...: + return ... + else: + return ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-3/25-NSI-3.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-3/25-NSI-3.pdf new file mode 100644 index 0000000..aff424b Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-3/25-NSI-3.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-3/sujet-3.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-3/sujet-3.py new file mode 100644 index 0000000..291cd0f --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-3/sujet-3.py @@ -0,0 +1,14 @@ +def eleves_du_mois(eleves, notes): + note_maxi = 0 + meilleurs_eleves = ... + + for i in range(...): + if notes[i] == ...: + meilleurs_eleves.append(...) + elif notes[i] > note_maxi: + note_maxi = ... + meilleurs_eleves = [...] + + return (note_maxi, meilleurs_eleves) + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-30/25-NSI-30.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-30/25-NSI-30.pdf new file mode 100644 index 0000000..46e35c8 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-30/25-NSI-30.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-30/sujet-30.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-30/sujet-30.py new file mode 100644 index 0000000..d5863cc --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-30/sujet-30.py @@ -0,0 +1,29 @@ +class Expr: + """Classe implémentant un arbre d'expression.""" + + def __init__(self, g, v, d): + """un objet Expr possède 3 attributs : + - gauche : la sous-expression gauche ; + - valeur : la valeur de l'étiquette, opérateur ou nombre ; + - droite : la sous-expression droite.""" + self.gauche = g + self.valeur = v + self.droite = d + + def est_une_feuille(self): + """renvoie True si et seulement + si le noeud est une feuille""" + return self.gauche is None and self.droite is None + + def infixe(self): + """renvoie la représentation infixe de l'expression en + chaine de caractères""" + s = ... + if self.gauche is not None: + s = s + '(' + ... .infixe() + s = s + ... + if ... is not None: + s = s + ... + ... + return s + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-31/25-NSI-31.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-31/25-NSI-31.pdf new file mode 100644 index 0000000..3edc7b2 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-31/25-NSI-31.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-31/sujet-31.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-31/sujet-31.py new file mode 100644 index 0000000..03cefeb --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-31/sujet-31.py @@ -0,0 +1,19 @@ +def parcours(adj, x, acc): + '''Réalise un parcours en profondeur récursif + du graphe donné par les listes d'adjacence adj + depuis le sommet x en accumulant les sommets + rencontrés dans acc''' + if x ...: + acc.append(x) + for y in ...: + parcours(adj, ...) + +def accessibles(adj, x): + '''Renvoie la liste des sommets accessibles dans le + graphe donné par les listes d'adjacence adj depuis + le sommet x.''' + acc = [] + parcours(adj, ...) + return acc + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-32/25-NSI-32.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-32/25-NSI-32.pdf new file mode 100644 index 0000000..6cc5bd3 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-32/25-NSI-32.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-32/sujet-32.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-32/sujet-32.py new file mode 100644 index 0000000..01a31b5 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-32/sujet-32.py @@ -0,0 +1,12 @@ +valeurs = [100, 50, 20, 10, 5, 2, 1] + +def rendu_glouton(a_rendre, rang): + if a_rendre == 0: + return ... + v = valeurs[rang] + if v <= ...: + return ... + rendu_glouton(a_rendre - v, rang) + else: + return rendu_glouton(a_rendre, ...) + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-33/25-NSI-33.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-33/25-NSI-33.pdf new file mode 100644 index 0000000..8a50a0b Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-33/25-NSI-33.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-33/25-NSI-33.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-33/25-NSI-33.py new file mode 100644 index 0000000..794a47f --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-33/25-NSI-33.py @@ -0,0 +1,17 @@ +def empaqueter(liste_masses, c): + """Renvoie le nombre minimal de boîtes nécessaires pour + empaqueter les objets de la liste liste_masses, sachant + que chaque boîte peut contenir au maximum c kilogrammes""" + n = len(liste_masses) + nb_boites = 0 + boites = [ 0 for _ in range(n) ] + for masse in ...: + i = 0 + while i < nb_boites and boites[i] + ... > c: + i = i + 1 + if i == nb_boites: + ... + boites[i] = ... + return ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-34/25-NSI-34.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-34/25-NSI-34.pdf new file mode 100644 index 0000000..8949c96 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-34/25-NSI-34.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-34/sujet-34.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-34/sujet-34.py new file mode 100644 index 0000000..de8e5ee --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-34/sujet-34.py @@ -0,0 +1,20 @@ +from random import randint + +def plus_ou_moins(): + nb_mystere = randint(1, ...) + nb_test = int(input("Proposez un nombre entre 1 et 99 : ")) + compteur = ... + + while nb_mystere != ... and compteur < ...: + compteur = compteur + 1 + if nb_mystere ... nb_test: + nb_test = int(input("Trop petit ! Testez encore : ")) + else: + nb_test = int(input("Trop grand ! Testez encore : ")) + + if nb_mystere == nb_test: + print ("Bravo ! Le nombre était ", ...) + print("Nombre d'essais: ", ...) + else: + print ("Perdu ! Le nombre était ", ...) + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-35/25-NSI-35.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-35/25-NSI-35.pdf new file mode 100644 index 0000000..230f3b3 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-35/25-NSI-35.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-35/25-NSI-35.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-35/25-NSI-35.py new file mode 100644 index 0000000..902135d --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-35/25-NSI-35.py @@ -0,0 +1,35 @@ +class Pile: + """Classe définissant une structure de pile.""" + def __init__(self): + self.contenu = [] + + def est_vide(self): + """Renvoie un booléen indiquant si la pile est vide.""" + return self.contenu == [] + + def empiler(self, v): + """Place l'élément v au sommet de la pile""" + self.contenu.append(v) + + def depiler(self): + """ + Retire et renvoie l'élément placé au sommet de la pile, + si la pile n’est pas vide. Produit une erreur sinon. + """ + assert not self.est_vide() + return self.contenu.pop() + +def eval_expression(tab): + p = Pile() + for ... in tab: + if element != '+' ... element != '*': + p.empiler(...) + else: + if element == ...: + resultat = ... + ... + else: + resultat = ... + p.empiler(...) + return ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-36/25-NSI-36.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-36/25-NSI-36.pdf new file mode 100644 index 0000000..69aea92 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-36/25-NSI-36.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-36/25-NSI-36.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-36/25-NSI-36.py new file mode 100644 index 0000000..25401ee --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-36/25-NSI-36.py @@ -0,0 +1,23 @@ +class Noeud: + def __init__(self, etiquette): + '''Méthode constructeur pour la classe Noeud. + Crée une feuille d'étiquette donnée.''' + self.etiquette = etiquette + self.gauche = None + self.droit = None + + def inserer(self, cle): + '''Insère la clé dans l'arbre binaire de recherche + en préservant sa structure.''' + if cle < self.etiquette: + if self.gauche != None: + ... + else: + self.gauche = ... + else: + ... + ... + else: + ... = Noeud(cle) + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-37/25-NSI-37.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-37/25-NSI-37.pdf new file mode 100644 index 0000000..2adc607 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-37/25-NSI-37.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-37/25-NSI-37.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-37/25-NSI-37.py new file mode 100644 index 0000000..1b2623b --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-37/25-NSI-37.py @@ -0,0 +1,17 @@ +def tri_insertion(tab): + '''Trie le tableau tab par ordre croissant + en appliquant l'algorithme de tri par insertion''' + n = len(tab) + for i in range(1, n): + valeur_insertion = ... + # la variable j sert à déterminer + # où placer la valeur à ranger + j = ... + # tant qu'on n'a pas trouvé la place de l'élément à + # insérer on décale les valeurs du tableau vers la droite + while j > ... and valeur_insertion < tab[...]: + tab[j] = tab[j-1] + j = ... + tab[j] = ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-38/25-NSI-38.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-38/25-NSI-38.pdf new file mode 100644 index 0000000..c695926 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-38/25-NSI-38.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-38/25-NSI-38.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-38/25-NSI-38.py new file mode 100644 index 0000000..5f5c368 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-38/25-NSI-38.py @@ -0,0 +1,12 @@ +def binaire(a): + '''convertit un nombre entier a en sa representation + binaire sous forme de chaine de caractères.''' + if a == 0: + return ... + bin_a = ... + while ... : + bin_a = ... + bin_a + a = ... + return bin_a + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-39/25-NSI-39.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-39/25-NSI-39.pdf new file mode 100644 index 0000000..af6a8b8 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-39/25-NSI-39.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-39/25-NSI-39.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-39/25-NSI-39.py new file mode 100644 index 0000000..68fdb9f --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-39/25-NSI-39.py @@ -0,0 +1,15 @@ +def tri(tab): + '''tab est un tableau d'entiers contenant des 0 et des 1. + La fonction trie ce tableau en plaçant tous les 0 à gauche''' + i = ... # premier indice de la zone non triée + j = ... # dernier indice de la zone non triée + while i < j: + if tab[i] == 0: + i = ... + else: + valeur = ... + tab[j] = ... + ... + j = ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-4/25-NSI-4.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-4/25-NSI-4.pdf new file mode 100644 index 0000000..9968dbd Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-4/25-NSI-4.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-4/sujet-4.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-4/sujet-4.py new file mode 100644 index 0000000..ff099b2 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-4/sujet-4.py @@ -0,0 +1,16 @@ +def echange(tab, i, j): + '''Echange les éléments d'indice i et j dans le tableau tab.''' + temp = ... + tab[i] = ... + tab[j] = ... + +def tri_bulles(tab): + '''Trie le tableau tab dans l'ordre croissant + par la méthode du tri à bulles.''' + n = len(tab) + for i in range(...): + for j in range(...): + if ... > ...: + echange(tab, j, ...) + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-40/25-NSI-40.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-40/25-NSI-40.pdf new file mode 100644 index 0000000..c5f4f63 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-40/25-NSI-40.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-40/25-NSI-40.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-40/25-NSI-40.py new file mode 100644 index 0000000..92d9aa0 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-40/25-NSI-40.py @@ -0,0 +1,36 @@ +resultats = { + 'Dupont': { + 'DS1': [15.5, 4], + 'DM1': [14.5, 1], + 'DS2': [13, 4], + 'PROJET1': [16, 3], + 'DS3': [14, 4] + }, + 'Durand': { + 'DS1': [6 , 4], + 'DS2': [8, 4], + 'PROJET1': [9, 3], + 'IE1': [7, 2], + 'DS3': [12, 4] + } +} + +def moyenne(nom, resultats): + '''Renvoie la moyenne de l'élève nom, selon le dictionnaire + resultats. Si nom n'est pas dans le dictionnaire, + la fonction renvoie None.''' + if nom in ...: + notes = resultats[nom] + if ...: # pas de notes + return 0 + total_points = ... + total_coefficients = ... + for ... in notes.values(): + note, coefficient = valeurs + total_points = total_points + ... * coefficient + ... = ... + coefficient + return round( ... / total_coefficients, 1 ) + else: + return None + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-41/25-NSI-41.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-41/25-NSI-41.pdf new file mode 100644 index 0000000..7b90bf3 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-41/25-NSI-41.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-41/25-NSI-41.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-41/25-NSI-41.py new file mode 100644 index 0000000..452e356 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-41/25-NSI-41.py @@ -0,0 +1,43 @@ +class Carre: + def __init__(self, liste, n): + self.ordre = n + self.tableau = [[liste[i + j * n] for i in range(n)] + for j in range(n)] + + def affiche(self): + '''Affiche un carré''' + for i in range(self.ordre): + print(self.tableau[i]) + + def somme_ligne(self, i): + '''Calcule la somme des valeurs de la ligne i''' + somme = 0 + + for j in range(self.ordre): + somme = somme + self.tableau[i][j] + return somme + + def somme_col(self, j): + '''Calcule la somme des valeurs de la colonne j''' + somme = 0 + + for i in range(self.ordre): + somme = somme + self.tableau[i][j] + return somme + + + def est_semimagique(self): + s = self.somme_ligne(0) + #test de la somme de chaque ligne + for i in range(...): + if ... != s: + return ... + + #test de la somme de chaque colonne + for j in range(...): + if ... != s: + return ... + + return ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-42/25-NSI-42.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-42/25-NSI-42.pdf new file mode 100644 index 0000000..4ab1aab Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-42/25-NSI-42.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-42/25-NSI-42.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-42/25-NSI-42.py new file mode 100644 index 0000000..6035c16 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-42/25-NSI-42.py @@ -0,0 +1,13 @@ +def binaire(a): + '''convertit un nombre entier a en sa representation + binaire sous forme de chaine de caractères.''' + if a == 0: + return '0' + bin_a = ... + while ...: + bin_a = ... + bin_a + a = ... + return bin_a + + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-43/25-NSI-43.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-43/25-NSI-43.pdf new file mode 100644 index 0000000..23509a7 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-43/25-NSI-43.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-43/sujet-43.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-43/sujet-43.py new file mode 100644 index 0000000..e3d0579 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-43/sujet-43.py @@ -0,0 +1,16 @@ +def colore_comp1(M, i, j, val): + if M[i][j] != 1: + return + + M[i][j] = val + + if i-1 >= 0: # propage en haut + colore_comp1(M, i-1, j, val) + if ... < len(M): # propage en bas + colore_comp1(M, ..., j, val) + if ...: # propage à gauche + colore_comp1(M, ..., ..., val) + if ...: # propage à droite + ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-44/25-NSI-44.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-44/25-NSI-44.pdf new file mode 100644 index 0000000..4ad853c Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-44/25-NSI-44.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-44/sujet-44.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-44/sujet-44.py new file mode 100644 index 0000000..3ee824f --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-44/sujet-44.py @@ -0,0 +1,44 @@ +coeur = [[0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0], + [0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0], + [0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0], + [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], + [0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], + [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0], + [0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0], + [0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0], + [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0]] + +def affiche(dessin): + ''' affichage d'une grille : les 1 sont représentés par + un "*" , les 0 par une espace " " ''' + for ligne in dessin: + affichage = '' + for col in ligne: + if col == 1: + affichage = affichage + "*" + else: + affichage = affichage + " " + print(affichage) + + +def liste_zoom(liste_depart,k): + '''renvoie une liste contenant k fois chaque élément de + liste_depart''' + liste_zoomee = ... + for elt in ... : + for i in range(k): + ... + return liste_zoomee + +def dessin_zoom(grille,k): + '''renvoie une grille où les lignes sont zoomées k fois + ET répétées k fois''' + grille_zoomee=[] + for ligne in grille: + ligne_zoomee = ... + for i in range(k): + ... .append(...) + return grille_zoomee + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-45/25-NSI-45.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-45/25-NSI-45.pdf new file mode 100644 index 0000000..4e0d634 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-45/25-NSI-45.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-45/sujet-45.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-45/sujet-45.py new file mode 100644 index 0000000..59a3591 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-45/sujet-45.py @@ -0,0 +1,17 @@ +def est_cyclique(plan): + '''Prend en paramètre un dictionnaire `plan` correspondant à + un plan d'envoi de messages (ici entre les personnes A, B, C, + D, E, F). + Renvoie True si le plan d'envoi de messages est cyclique et + False sinon.''' + expediteur = 'A' + destinataire = plan[...] + nb_destinataires = 1 + + while destinataire != expediteur: + destinataire = ... + nb_destinataires = ... + + return nb_destinataires == ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-46/25-NSI-46.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-46/25-NSI-46.pdf new file mode 100644 index 0000000..e39c4b4 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-46/25-NSI-46.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-46/25-NSI-46.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-46/25-NSI-46.py new file mode 100644 index 0000000..8e338d8 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-46/25-NSI-46.py @@ -0,0 +1,16 @@ +pieces = [1, 2, 5, 10, 20, 50, 100, 200] + +def rendu_monnaie(somme_due, somme_versee): + '''Renvoie la liste des pièces à rendre pour rendre la monnaie + lorsqu'on doit rendre somme_versee - somme_due''' + rendu = ... + a_rendre = ... + i = len(pieces) - 1 + while a_rendre > ...: + while pieces[i] > a_rendre: + i = i - 1 + rendu.append(...) + a_rendre = ... + return rendu + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-47/25-NSI-47.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-47/25-NSI-47.pdf new file mode 100644 index 0000000..77be3aa Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-47/25-NSI-47.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-47/25-NSI-47.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-47/25-NSI-47.py new file mode 100644 index 0000000..4b530d5 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-47/25-NSI-47.py @@ -0,0 +1,18 @@ +def echange(tab, i, j): + '''Echange les éléments d'indice i et j dans le tableau tab.''' + temp = ... + tab[i] = ... + tab[j] = ... + +def tri_selection(tab): + '''Trie le tableau tab dans l'ordre croissant + par la méthode du tri par sélection.''' + N = len(tab) + for k in range(...): + imin = ... + for i in range(..., N): + if tab[i] < ...: + imin = i + echange(tab, ..., ...) + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-48/25-NSI-48.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-48/25-NSI-48.pdf new file mode 100644 index 0000000..814bb7a Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-48/25-NSI-48.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-48/25-NSI-48.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-48/25-NSI-48.py new file mode 100644 index 0000000..22e6b63 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-48/25-NSI-48.py @@ -0,0 +1,17 @@ +def distance_carre(point1, point2): + """ Calcule et renvoie la distance au carre entre + deux points.""" + return (...)**2 + (...)**2 + +def point_le_plus_proche(depart, tab): + """ Renvoie les coordonnées du premier point du tableau tab se + trouvant à la plus courte distance du point depart.""" + min_point = tab[0] + min_dist = ... + for i in range(1, len(tab)): + if distance_carre(tab[i], depart) < ...: + min_point = ... + min_dist = ... + return min_point + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-5/25-NSI-5.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-5/25-NSI-5.pdf new file mode 100644 index 0000000..b358e41 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-5/25-NSI-5.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-5/sujet-5.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-5/sujet-5.py new file mode 100644 index 0000000..120b5be --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-5/sujet-5.py @@ -0,0 +1,16 @@ +def crible(n): + """Renvoie un tableau contenant tous les nombres premiers + plus petits que n.""" + premiers = [] + tab = [True] * n + tab[0], tab[1] = False, False + for i in range(n): + if tab[i]: + premiers.... + multiple = ... + while multiple < n: + tab[multiple] = ... + multiple = ... + return premiers + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-6/25-NSI-6.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-6/25-NSI-6.pdf new file mode 100644 index 0000000..da3c387 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-6/25-NSI-6.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-6/sujet-6.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-6/sujet-6.py new file mode 100644 index 0000000..ee6c6f5 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-6/sujet-6.py @@ -0,0 +1,22 @@ +dico = {"A": 1, "B": 2, "C": 3, "D": 4, "E": 5, "F": 6, + "G": 7, "H": 8, "I": 9, "J": 10, "K": 11, "L": 12, + "M": 13, "N": 14, "O": 15, "P": 16, "Q": 17, + "R": 18, "S": 19, "T": 20, "U": 21, "V": 22, + "W": 23, "X": 24, "Y": 25, "Z": 26} + +def codes_parfait(mot): + """Renvoie un triplet + (code_additionne, code_concatene, mot_est_parfait) où : + - code_additionne est la somme des codes des lettres du mot ; + - code_concatene est le code des lettres du mot concaténées ; + - mot_est_parfait est un booléen indiquant si le mot est parfait.""" + code_concatene = "" + code_additionne = ... + for c in mot: + code_concatene = code_concatene + ... + code_additionne = code_additionne + ... + code_concatene = int(code_concatene) + mot_est_parfait = ... + return code_additionne, code_concatene, mot_est_parfait + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-7/25-NSI-7.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-7/25-NSI-7.pdf new file mode 100644 index 0000000..457cc05 Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-7/25-NSI-7.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-7/sujet-7.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-7/sujet-7.py new file mode 100644 index 0000000..5004960 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-7/sujet-7.py @@ -0,0 +1,28 @@ +def fusion(tab1,tab2): + '''Fusionne deux tableaux triés et renvoie + le nouveau tableau trié.''' + n1 = len(tab1) + n2 = len(tab2) + tab12 = [0] * (n1 + n2) + i1 = 0 + i2 = 0 + i = 0 + while i1 < n1 and ...: + if tab1[i1] < tab2[i2]: + tab12[i] = ... + i1 = ... + else: + tab12[i] = tab2[i2] + i2 = ... + i += 1 + while i1 < n1: + tab12[i] = ... + i1 = i1 + 1 + i = ... + while i2 < n2: + tab12[i] = ... + i2 = i2 + 1 + i = ... + return tab12 + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-8/25-NSI-8.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-8/25-NSI-8.pdf new file mode 100644 index 0000000..6f73bac Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-8/25-NSI-8.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-8/sujet-8.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-8/sujet-8.py new file mode 100644 index 0000000..0415870 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-8/sujet-8.py @@ -0,0 +1,36 @@ +class Pile: + """Classe définissant une structure de pile.""" + def __init__(self): + self.contenu = [] + + def est_vide(self): + """Renvoie un booléen indiquant si la pile est vide.""" + return self.contenu == [] + + def empiler(self, v): + """Place l'élément v au sommet de la pile""" + self.contenu.append(v) + + def depiler(self): + """ + Retire et renvoie l'élément placé au sommet de la pile, + si la pile n’est pas vide. Produit une erreur sinon. + """ + assert not self.est_vide() + return self.contenu.pop() + +def bon_parenthesage(ch): + """Renvoie un booléen indiquant si la chaîne ch + est bien parenthésée""" + p = Pile() + for c in ch: + if c == ...: + p.empiler(c) + elif c == ...: + if p.est_vide(): + ... + else: + ... + return ... + + diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-9/25-NSI-9.pdf b/Sujet_bac/Pratique/BNS_2025/25-NSI-9/25-NSI-9.pdf new file mode 100644 index 0000000..4bba12f Binary files /dev/null and b/Sujet_bac/Pratique/BNS_2025/25-NSI-9/25-NSI-9.pdf differ diff --git a/Sujet_bac/Pratique/BNS_2025/25-NSI-9/sujet-9.py b/Sujet_bac/Pratique/BNS_2025/25-NSI-9/sujet-9.py new file mode 100644 index 0000000..abcd845 --- /dev/null +++ b/Sujet_bac/Pratique/BNS_2025/25-NSI-9/sujet-9.py @@ -0,0 +1,19 @@ +def dichotomie(tab, x): + """ + tab : tableau d'entiers trié dans l'ordre croissant + x : nombre entier + La fonction renvoie True si tab contient x et False sinon + """ + debut = 0 + fin = len(tab) - 1 + while debut <= fin: + m = ... + if x == tab[m]: + return ... + if x > tab[m]: + debut = m + 1 + else: + fin = ... + return ... + + diff --git a/Sujet_bac/Pratique/corrigé/sujet_28.py b/Sujet_bac/Pratique/corrigé/sujet_28.py new file mode 100644 index 0000000..0bb28cc --- /dev/null +++ b/Sujet_bac/Pratique/corrigé/sujet_28.py @@ -0,0 +1,47 @@ +def a_doublon(tab): + + for i in range (len(tab) -1): + if tab[i] == tab [i+1]: + return True + return False + + +########## + +def voisinage(n, ligne, colonne): + """ Renvoie la liste des coordonnées des voisins de la case + (ligne, colonne) dans un grille de taille n x n, + en tenant compte des cases sur les bords. """ + voisins = [] + for dl in range(-1, 2): + for dc in range(-1, 2): + l = ligne + dl + c = colonne + dc + if (l, c) != (ligne, colonne) \ + and 0 <= l < n and 0 <= c < n: + voisins.append((l,c)) + return voisins + +def incremente_voisins(grille, ligne, colonne): + """ Incrémente de 1 toutes les cases voisines d'une bombe.""" + voisins = ... + for l, c in voisins: + if grille[l][c] != ...: # si ce n'est pas une bombe + ... # on ajoute 1 à sa valeur + +def genere_grille(bombes): + """ Renvoie une grille de démineur de taille nxn où n est + le nombre de bombes, en plaçant les bombes à l'aide de + la liste bombes de coordonnées (tuples) passée en + paramètre. """ + n = len(bombes) + # Initialisation d'une grille nxn remplie de 0 + grille = [[0 for colonne in range(n)] for ligne in range(n)] + # Place les bombes et calcule les valeurs des autres cases + for ligne, colonne in bombes: + grille[ligne][colonne] = ... # place la bombe + ... # incrémente ses voisins + return grille + + + diff --git a/Sujet_bac/Théorique/2021/terminale-2021-amerique-nord-sujet-1.pdf b/Sujet_bac/Théorique/2021/terminale-2021-amerique-nord-sujet-1.pdf new file mode 100644 index 0000000..014511d Binary files /dev/null and b/Sujet_bac/Théorique/2021/terminale-2021-amerique-nord-sujet-1.pdf differ diff --git a/Sujet_bac/Théorique/2021/terminale-2021-centres-etrangers-sujet-1.pdf b/Sujet_bac/Théorique/2021/terminale-2021-centres-etrangers-sujet-1.pdf new file mode 100644 index 0000000..6e08c9c Binary files /dev/null and b/Sujet_bac/Théorique/2021/terminale-2021-centres-etrangers-sujet-1.pdf differ diff --git a/Sujet_bac/Théorique/2021/terminale-2021-centres-etrangers-sujet-2.pdf b/Sujet_bac/Théorique/2021/terminale-2021-centres-etrangers-sujet-2.pdf new file mode 100644 index 0000000..9879977 Binary files /dev/null and b/Sujet_bac/Théorique/2021/terminale-2021-centres-etrangers-sujet-2.pdf differ diff --git a/Sujet_bac/Théorique/2021/terminale-2021-metropole-candidat-libre-sujet-1.pdf b/Sujet_bac/Théorique/2021/terminale-2021-metropole-candidat-libre-sujet-1.pdf new file mode 100644 index 0000000..1aed548 Binary files /dev/null and b/Sujet_bac/Théorique/2021/terminale-2021-metropole-candidat-libre-sujet-1.pdf differ diff --git a/Sujet_bac/Théorique/2021/terminale-2021-metropole-candidat-libre-sujet-2.pdf b/Sujet_bac/Théorique/2021/terminale-2021-metropole-candidat-libre-sujet-2.pdf new file mode 100644 index 0000000..2067c25 Binary files /dev/null and b/Sujet_bac/Théorique/2021/terminale-2021-metropole-candidat-libre-sujet-2.pdf differ diff --git a/Sujet_bac/Théorique/2021/terminale-2021-metropole-septembre-sujet-1.pdf b/Sujet_bac/Théorique/2021/terminale-2021-metropole-septembre-sujet-1.pdf new file mode 100644 index 0000000..4949012 Binary files /dev/null and b/Sujet_bac/Théorique/2021/terminale-2021-metropole-septembre-sujet-1.pdf differ diff --git a/Sujet_bac/Théorique/2021/terminale-2021-metropole-septembre-sujet-2.pdf b/Sujet_bac/Théorique/2021/terminale-2021-metropole-septembre-sujet-2.pdf new file mode 100644 index 0000000..367c54e Binary files /dev/null and b/Sujet_bac/Théorique/2021/terminale-2021-metropole-septembre-sujet-2.pdf differ diff --git a/Sujet_bac/Théorique/2021/terminale-2021-metropole-sujet-1.pdf b/Sujet_bac/Théorique/2021/terminale-2021-metropole-sujet-1.pdf new file mode 100644 index 0000000..bf9e840 Binary files /dev/null and b/Sujet_bac/Théorique/2021/terminale-2021-metropole-sujet-1.pdf differ diff --git a/Sujet_bac/Théorique/2021/terminale-2021-metropole-sujet-2.pdf b/Sujet_bac/Théorique/2021/terminale-2021-metropole-sujet-2.pdf new file mode 100644 index 0000000..00ad406 Binary files /dev/null and b/Sujet_bac/Théorique/2021/terminale-2021-metropole-sujet-2.pdf differ diff --git a/Sujet_bac/Théorique/2021/terminale-2021-polynesie-sujet-2.pdf b/Sujet_bac/Théorique/2021/terminale-2021-polynesie-sujet-2.pdf new file mode 100644 index 0000000..8fae898 Binary files /dev/null and b/Sujet_bac/Théorique/2021/terminale-2021-polynesie-sujet-2.pdf differ diff --git a/Sujet_bac/Théorique/2021/terminale-2021-sujet-0.pdf b/Sujet_bac/Théorique/2021/terminale-2021-sujet-0.pdf new file mode 100644 index 0000000..4aea136 Binary files /dev/null and b/Sujet_bac/Théorique/2021/terminale-2021-sujet-0.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-amerique-nord-jour-1.pdf b/Sujet_bac/Théorique/2022/terminale-2022-amerique-nord-jour-1.pdf new file mode 100644 index 0000000..2aed3eb Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-amerique-nord-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-amerique-nord-jour-2.pdf b/Sujet_bac/Théorique/2022/terminale-2022-amerique-nord-jour-2.pdf new file mode 100644 index 0000000..e687e12 Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-amerique-nord-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-amerique-sud-jour-1.pdf b/Sujet_bac/Théorique/2022/terminale-2022-amerique-sud-jour-1.pdf new file mode 100644 index 0000000..4115c14 Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-amerique-sud-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-amerique-sud-jour-2.pdf b/Sujet_bac/Théorique/2022/terminale-2022-amerique-sud-jour-2.pdf new file mode 100644 index 0000000..98349a1 Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-amerique-sud-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-asie-jour-1.pdf b/Sujet_bac/Théorique/2022/terminale-2022-asie-jour-1.pdf new file mode 100644 index 0000000..adfc4a8 Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-asie-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-asie-jour-2.pdf b/Sujet_bac/Théorique/2022/terminale-2022-asie-jour-2.pdf new file mode 100644 index 0000000..9c30440 Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-asie-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-centres-etrangers-jour-1.pdf b/Sujet_bac/Théorique/2022/terminale-2022-centres-etrangers-jour-1.pdf new file mode 100644 index 0000000..ce2dd39 Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-centres-etrangers-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-centres-etrangers-jour-2.pdf b/Sujet_bac/Théorique/2022/terminale-2022-centres-etrangers-jour-2.pdf new file mode 100644 index 0000000..937d7ee Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-centres-etrangers-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-centres-etrangers-sujet-1.pdf b/Sujet_bac/Théorique/2022/terminale-2022-centres-etrangers-sujet-1.pdf new file mode 100644 index 0000000..ce2dd39 Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-centres-etrangers-sujet-1.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-mayotte-jour-1.pdf b/Sujet_bac/Théorique/2022/terminale-2022-mayotte-jour-1.pdf new file mode 100644 index 0000000..54fe343 Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-mayotte-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-mayotte-jour-2.pdf b/Sujet_bac/Théorique/2022/terminale-2022-mayotte-jour-2.pdf new file mode 100644 index 0000000..4ea92ff Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-mayotte-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-metropole-sujet-1.pdf b/Sujet_bac/Théorique/2022/terminale-2022-metropole-sujet-1.pdf new file mode 100644 index 0000000..f30bd4f Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-metropole-sujet-1.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-metropole-sujet-2.pdf b/Sujet_bac/Théorique/2022/terminale-2022-metropole-sujet-2.pdf new file mode 100644 index 0000000..a41b2db Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-metropole-sujet-2.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-polynesie-jour-1.pdf b/Sujet_bac/Théorique/2022/terminale-2022-polynesie-jour-1.pdf new file mode 100644 index 0000000..ffceec6 Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-polynesie-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-polynesie-sujet-1.pdf b/Sujet_bac/Théorique/2022/terminale-2022-polynesie-sujet-1.pdf new file mode 100644 index 0000000..ffceec6 Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-polynesie-sujet-1.pdf differ diff --git a/Sujet_bac/Théorique/2022/terminale-2022-rattrapage-jour-1.pdf b/Sujet_bac/Théorique/2022/terminale-2022-rattrapage-jour-1.pdf new file mode 100644 index 0000000..39c9189 Binary files /dev/null and b/Sujet_bac/Théorique/2022/terminale-2022-rattrapage-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-amerique-du-nord-jour-1.pdf b/Sujet_bac/Théorique/2023/terminale-2023-amerique-du-nord-jour-1.pdf new file mode 100644 index 0000000..ed42dc7 Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-amerique-du-nord-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-amerique-du-nord-jour-2.pdf b/Sujet_bac/Théorique/2023/terminale-2023-amerique-du-nord-jour-2.pdf new file mode 100644 index 0000000..f008ada Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-amerique-du-nord-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-amerique-du-sud-jour-1.pdf b/Sujet_bac/Théorique/2023/terminale-2023-amerique-du-sud-jour-1.pdf new file mode 100644 index 0000000..a4a201b Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-amerique-du-sud-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-amerique-du-sud-jour-2.pdf b/Sujet_bac/Théorique/2023/terminale-2023-amerique-du-sud-jour-2.pdf new file mode 100644 index 0000000..9cf9418 Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-amerique-du-sud-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-centres-etrangers-jour-1.pdf b/Sujet_bac/Théorique/2023/terminale-2023-centres-etrangers-jour-1.pdf new file mode 100644 index 0000000..6e1b119 Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-centres-etrangers-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-centres-etrangers-jour-2.pdf b/Sujet_bac/Théorique/2023/terminale-2023-centres-etrangers-jour-2.pdf new file mode 100644 index 0000000..afc8654 Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-centres-etrangers-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-liban-jour-1.pdf b/Sujet_bac/Théorique/2023/terminale-2023-liban-jour-1.pdf new file mode 100644 index 0000000..bcdcb33 Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-liban-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-liban-jour-2.pdf b/Sujet_bac/Théorique/2023/terminale-2023-liban-jour-2.pdf new file mode 100644 index 0000000..46f2893 Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-liban-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-metropole-juin-jour-1.pdf b/Sujet_bac/Théorique/2023/terminale-2023-metropole-juin-jour-1.pdf new file mode 100644 index 0000000..4c6e2b6 Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-metropole-juin-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-metropole-juin-jour-2.pdf b/Sujet_bac/Théorique/2023/terminale-2023-metropole-juin-jour-2.pdf new file mode 100644 index 0000000..ba81259 Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-metropole-juin-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-polynesie-jour-1.pdf b/Sujet_bac/Théorique/2023/terminale-2023-polynesie-jour-1.pdf new file mode 100644 index 0000000..02d1361 Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-polynesie-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-polynesie-jour-2.pdf b/Sujet_bac/Théorique/2023/terminale-2023-polynesie-jour-2.pdf new file mode 100644 index 0000000..060447f Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-polynesie-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-reunion-jour-1.pdf b/Sujet_bac/Théorique/2023/terminale-2023-reunion-jour-1.pdf new file mode 100644 index 0000000..7c47524 Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-reunion-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-reunion-jour-2.pdf b/Sujet_bac/Théorique/2023/terminale-2023-reunion-jour-2.pdf new file mode 100644 index 0000000..bd79a01 Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-reunion-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-sujet-zero-A.pdf b/Sujet_bac/Théorique/2023/terminale-2023-sujet-zero-A.pdf new file mode 100644 index 0000000..202acf1 Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-sujet-zero-A.pdf differ diff --git a/Sujet_bac/Théorique/2023/terminale-2023-sujet-zero-B.pdf b/Sujet_bac/Théorique/2023/terminale-2023-sujet-zero-B.pdf new file mode 100644 index 0000000..7f3b7f7 Binary files /dev/null and b/Sujet_bac/Théorique/2023/terminale-2023-sujet-zero-B.pdf differ diff --git a/Sujet_bac/Théorique/2024/terminale-2024-amerique-nord-jour-1.pdf b/Sujet_bac/Théorique/2024/terminale-2024-amerique-nord-jour-1.pdf new file mode 100644 index 0000000..2f9cf1b Binary files /dev/null and b/Sujet_bac/Théorique/2024/terminale-2024-amerique-nord-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2024/terminale-2024-amerique-nord-jour-2.pdf b/Sujet_bac/Théorique/2024/terminale-2024-amerique-nord-jour-2.pdf new file mode 100644 index 0000000..42bdfc0 Binary files /dev/null and b/Sujet_bac/Théorique/2024/terminale-2024-amerique-nord-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2024/terminale-2024-asie-jour-1.pdf b/Sujet_bac/Théorique/2024/terminale-2024-asie-jour-1.pdf new file mode 100644 index 0000000..85481c8 Binary files /dev/null and b/Sujet_bac/Théorique/2024/terminale-2024-asie-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2024/terminale-2024-asie-jour-2.pdf b/Sujet_bac/Théorique/2024/terminale-2024-asie-jour-2.pdf new file mode 100644 index 0000000..41e00cb Binary files /dev/null and b/Sujet_bac/Théorique/2024/terminale-2024-asie-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2024/terminale-2024-centres-etrangers-groupe-1-jour-1.pdf b/Sujet_bac/Théorique/2024/terminale-2024-centres-etrangers-groupe-1-jour-1.pdf new file mode 100644 index 0000000..86fe927 Binary files /dev/null and b/Sujet_bac/Théorique/2024/terminale-2024-centres-etrangers-groupe-1-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2024/terminale-2024-centres-etrangers-groupe-1-jour-2.pdf b/Sujet_bac/Théorique/2024/terminale-2024-centres-etrangers-groupe-1-jour-2.pdf new file mode 100644 index 0000000..dd9a0d0 Binary files /dev/null and b/Sujet_bac/Théorique/2024/terminale-2024-centres-etrangers-groupe-1-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2024/terminale-2024-metropole-juin-sujet-1.pdf b/Sujet_bac/Théorique/2024/terminale-2024-metropole-juin-sujet-1.pdf new file mode 100644 index 0000000..00f0f1e Binary files /dev/null and b/Sujet_bac/Théorique/2024/terminale-2024-metropole-juin-sujet-1.pdf differ diff --git a/Sujet_bac/Théorique/2024/terminale-2024-metropole-juin-sujet-2.pdf b/Sujet_bac/Théorique/2024/terminale-2024-metropole-juin-sujet-2.pdf new file mode 100644 index 0000000..3670965 Binary files /dev/null and b/Sujet_bac/Théorique/2024/terminale-2024-metropole-juin-sujet-2.pdf differ diff --git a/Sujet_bac/Théorique/2024/terminale-2024-metropole-septembre-sujet-1.pdf b/Sujet_bac/Théorique/2024/terminale-2024-metropole-septembre-sujet-1.pdf new file mode 100644 index 0000000..8cb5671 Binary files /dev/null and b/Sujet_bac/Théorique/2024/terminale-2024-metropole-septembre-sujet-1.pdf differ diff --git a/Sujet_bac/Théorique/2024/terminale-2024-metropole-septembre-sujet-2.pdf b/Sujet_bac/Théorique/2024/terminale-2024-metropole-septembre-sujet-2.pdf new file mode 100644 index 0000000..6863a00 Binary files /dev/null and b/Sujet_bac/Théorique/2024/terminale-2024-metropole-septembre-sujet-2.pdf differ diff --git a/Sujet_bac/Théorique/2024/terminale-2024-polynesie-jour-1.pdf b/Sujet_bac/Théorique/2024/terminale-2024-polynesie-jour-1.pdf new file mode 100644 index 0000000..1c86544 Binary files /dev/null and b/Sujet_bac/Théorique/2024/terminale-2024-polynesie-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2024/terminale-2024-polynesie-jour-2.pdf b/Sujet_bac/Théorique/2024/terminale-2024-polynesie-jour-2.pdf new file mode 100644 index 0000000..b6de207 Binary files /dev/null and b/Sujet_bac/Théorique/2024/terminale-2024-polynesie-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2024/terminale-2024-sujet-zero-A.pdf b/Sujet_bac/Théorique/2024/terminale-2024-sujet-zero-A.pdf new file mode 100644 index 0000000..f8f28b0 Binary files /dev/null and b/Sujet_bac/Théorique/2024/terminale-2024-sujet-zero-A.pdf differ diff --git a/Sujet_bac/Théorique/2024/terminale-2024-sujet-zero-B.pdf b/Sujet_bac/Théorique/2024/terminale-2024-sujet-zero-B.pdf new file mode 100644 index 0000000..e3837ca Binary files /dev/null and b/Sujet_bac/Théorique/2024/terminale-2024-sujet-zero-B.pdf differ diff --git a/Sujet_bac/Théorique/2025/terminale-2025-amerique-nord-jour-1.pdf b/Sujet_bac/Théorique/2025/terminale-2025-amerique-nord-jour-1.pdf new file mode 100644 index 0000000..467f8bc Binary files /dev/null and b/Sujet_bac/Théorique/2025/terminale-2025-amerique-nord-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2025/terminale-2025-amerique-nord-jour-2-bis.pdf b/Sujet_bac/Théorique/2025/terminale-2025-amerique-nord-jour-2-bis.pdf new file mode 100644 index 0000000..bcbc47f Binary files /dev/null and b/Sujet_bac/Théorique/2025/terminale-2025-amerique-nord-jour-2-bis.pdf differ diff --git a/Sujet_bac/Théorique/2025/terminale-2025-amerique-nord-jour-2.pdf b/Sujet_bac/Théorique/2025/terminale-2025-amerique-nord-jour-2.pdf new file mode 100644 index 0000000..103dd16 Binary files /dev/null and b/Sujet_bac/Théorique/2025/terminale-2025-amerique-nord-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2025/terminale-2025-asie-jour-1.pdf b/Sujet_bac/Théorique/2025/terminale-2025-asie-jour-1.pdf new file mode 100644 index 0000000..365d0aa Binary files /dev/null and b/Sujet_bac/Théorique/2025/terminale-2025-asie-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/2025/terminale-2025-asie-jour-2.pdf b/Sujet_bac/Théorique/2025/terminale-2025-asie-jour-2.pdf new file mode 100644 index 0000000..15d5487 Binary files /dev/null and b/Sujet_bac/Théorique/2025/terminale-2025-asie-jour-2.pdf differ diff --git a/Sujet_bac/Théorique/2025/terminale-2025-metropole-jour-1.pdf b/Sujet_bac/Théorique/2025/terminale-2025-metropole-jour-1.pdf new file mode 100644 index 0000000..bb0a30e Binary files /dev/null and b/Sujet_bac/Théorique/2025/terminale-2025-metropole-jour-1.pdf differ diff --git a/Sujet_bac/Théorique/AN_2024_J1.pdf b/Sujet_bac/Théorique/AN_2024_J1.pdf new file mode 100644 index 0000000..2567281 Binary files /dev/null and b/Sujet_bac/Théorique/AN_2024_J1.pdf differ diff --git a/Sujet_bac/Théorique/AN_2024_J2.pdf b/Sujet_bac/Théorique/AN_2024_J2.pdf new file mode 100644 index 0000000..42bdfc0 Binary files /dev/null and b/Sujet_bac/Théorique/AN_2024_J2.pdf differ diff --git a/Sujet_bac/Théorique/correction_AN_2024_J1.pdf b/Sujet_bac/Théorique/correction_AN_2024_J1.pdf new file mode 100644 index 0000000..7772c04 Binary files /dev/null and b/Sujet_bac/Théorique/correction_AN_2024_J1.pdf differ diff --git a/Sujet_bac/Théorique/correction_AN_2024_J2.pdf b/Sujet_bac/Théorique/correction_AN_2024_J2.pdf new file mode 100644 index 0000000..55109e2 Binary files /dev/null and b/Sujet_bac/Théorique/correction_AN_2024_J2.pdf differ