E3C – NSI – QCM sujet 0 – partie 5/7

E3C en première NSI

Pour les élèves qui ne conservent pas la spécialité numérique et sciences informatiques (NSI) en terminale devront passé au dernier trimestre de l’année de première la session commune de contrôle continu (E3C).

L’évaluation de type QCM aura une durée : 2 heures, avec un coefficient de 5
.

L’épreuve de spécialité numérique et sciences informatiques est un questionnaire à choix multiple en 7 parties, chacune composée de 6 questions.

La calcultarice est interdite pour cette épreuve.

QCM – NSI sujet 0

Les QCM d’entrainement E3C – NSI sujet n°0 est là pour vous permettre de vous mettre en situation et de vous préparer à l’épreuve de spécialité numérique et sciences informatiques (NSI) pour la sessioncommune de contrôle continu (E3C).

Chaque QCM correspond à une partie du programme officiel de la spécialité numérique et sciences informatiques (NSI) de première.

Les QCM vous permettront de connaître votre niveau, de mémoriser vos leçons plus facilement et de savoir sur quels points vous devez encore vous améliorer pour obtenir le diplôme sans problème.

Avantages du QCM en ligne

  • Pour réviser ou s’entrainer,
  • Corrections immédiates avec le barème officiel avec le corrigé détaillé,
  • Nombre d’essais illimité,
  • Fonctionne sur tous les appareils ordinateurs, tablette et smartphone et sur tout les système (Windows, Ios, linux)
  • Avec les QCM en ligne vous réviser quand et où vous voulez

Tester le QCM – NSI sujet 0 en ligne

Pour réviser et vous entrainer à cette épreuve, je vous propose de tester GRATUITEMENT le QCM de la première partie du sujet  n°0 officiel ; Architectures matérielles et systèmes d’exploitation

Cliquez ici pour vous inscrire:

Je m’inscris !

Pour aller plus loin

Comment insérer des éléments dans une liste chainée en Python ?

Insertion des éléments

Selon l’endroit où vous souhaitez insérer un élément, il existe différentes façons d’insérer des éléments dans une seule liste chaînée

.Insertion d’éléments au début

La façon la plus simple d’insérer un élément dans une liste chaînée est d’ajouter un élément au début de la liste. La fonction suivante permet d’insérer un élément au début de la liste. Ajoutez cette fonction à la classe LinkedList que nous avons créée précédemment.

    def insert_at_start(self, data):
        new_node = Node(data)
        new_node.ref = self.start_node
        self.start_node= new_node

Dans le script ci-dessus, nous créons une méthode insert_at_start(), la méthode accepte un paramètre, qui est essentiellement la valeur de l’élément que nous voulons insérer. À l’intérieur de la méthode, nous créons simplement un objet de la classe Node et nous fixons sa référence au start_node puisque start_node stockait auparavant le premier nœud, qui après l’insertion d’un nouveau nœud au départ deviendra le deuxième nœud.

Par conséquent, nous ajoutons la référence de start_node à la variable ref du nouveau nœud. Maintenant, puisque new_node est le premier nœud, nous fixons la valeur de la variable start_node à new_node.

Insertion d’éléments à la fin

La fonction suivante est utilisée pour ajouter un élément à la fin de la liste chaînée.

  def insert_at_end(self, data):
        new_node = Node(data)
        if self.start_node is None:
            self.start_node = new_node
            return
        n = self.start_node
        while n.ref is not None:
            n= n.ref
        n.ref = new_node;

Pour un aperçu, 👉 cliquez sur une couverture pour feuilleter le livre sur Amazon 📚.


Dans le script ci-dessus, nous créons une fonction insert_at_end(), qui insère l’élément à la fin de la liste chaînée. La valeur de l’élément que nous voulons insérer est passée en argument à la fonction. La fonction se compose de deux parties. Tout d’abord, nous vérifions si la liste chaînée est vide ou non. Si la liste chaînée est vide, il suffit de fixer la valeur de la variable start_node à l’objet new_node.

D’autre part, si la liste contient déjà quelques nœuds. Nous initialisons une variable n avec le nœud de départ. Nous itérons ensuite à travers tous les nœuds de la liste en utilisant une boucle while comme nous l’avons fait dans le cas de la fonction traverse_list. La boucle se termine lorsque nous atteignons le dernier nœud. Nous fixons alors la référence du dernier nœud au nouveau new_node nouvellement créé.

Ajoutez la fonction insert_at_end() à la classe LinkedList.

Insertion d’un élément après un autre élément

Il se peut que nous devions ajouter un élément après l’autre dans une seule liste chaînée. Pour ce faire, nous pouvons utiliser la fonction insert_after_item() telle que définie ci-dessous :

    def insert_after_item(self, x, data):

        n = self.start_node
        print(n.ref)
        while n is not None:
            if n.item == x:
                break
            n = n.ref
        if n is None:
            print("Elément dans la liste")
        else:
            new_node = Node(data)
            new_node.ref = n.ref
            n.ref = new_node

La fonction insert_after_item() accepte deux paramètres : x et data. Le premier paramètre est l’élément après lequel vous voulez insérer le nouveau noeud tandis que le second paramètre contient la valeur du nouveau noeud.

Nous commençons par créer une nouvelle variable n et lui attribuer la variable start_node. Ensuite, nous parcourons la liste liée en utilisant la boucle while. La boucle while s’exécute jusqu’à ce que n devienne None. Au cours de chaque itération, nous vérifions si la valeur stockée dans le nœud actuel est égale à la valeur passée par le paramètre x. Si la comparaison est vraie, nous rompons la boucle.

Ensuite, si l’élément est trouvé, la variable n ne sera pas None. La référence du new_node est définie comme référence stockée par n et la référence de n est définie comme new_node. Ajoutez la fonction insert_after_item() à la classe LinkesList.

Insertion d’un élément avant un autre élément

      def insert_before_item(self, x, data):
        if self.start_node is None:
            print("La liste n'a pas d'élément.")
            return

        if x == self.start_node.item:
            new_node = Node(data)
            new_node.ref = self.start_node
            self.start_node = new_node
            return

        n = self.start_node
        print(n.ref)
        while n.ref is not None:
            if n.ref.item == x:
                break
            n = n.ref
        if n.ref is None:
            print("L'élément n'est pas dans la liste.")
        else:
            new_node = Node(data)
            new_node.ref = n.ref
            n.ref = new_node

Dans le script ci-dessus, nous définissons la fonction insert_before_item(). Cette fonction comporte trois parties. Examinons chaque partie en détail.

   if self.start_node is None:
        print("La liste n'a pas d'élément.")
        return

Dans le script ci-dessus, nous vérifions si la liste est vide. Si elle est effectivement vide, nous imprimons simplement que la liste n’a pas d’élément et nous revenons de la fonction.

Ensuite, nous vérifions si l’élément se trouve dans le premier index. Regardez le script suivant :

     if x == self.start_node.item:
        new_node = Node(data)
        new_node.ref = self.start_node
        self.start_node = new_node
        return

Si l’élément après lequel on veut insérer un nouveau nœud se trouve au premier index. Nous fixons simplement la référence du nœud nouvellement inséré au start_node, puis nous fixons la valeur de start_node à new_node.

Enfin, si la liste n’est pas None et que l’élément ne se trouve pas au premier index, nous créons une nouvelle variable n et lui attribuons la variable start_node. Ensuite, nous parcourons la liste liée en utilisant la boucle while. La boucle while-loop s’exécute jusqu’à ce que n.ref devienne None. Au cours de chaque itération, nous vérifions si la valeur stockée dans la référence du nœud courant est égale à la valeur passée par le paramètre x. Si la comparaison est vraie, nous cassons la boucle.

Ensuite, si l’élément est trouvé, la variable n.ref ne sera pas None. La référence du nouveau_nœud est fixée à la référence de n et la référence de n est fixée à new_node. Regardez le script suivant :

    if n.ref is None:
        print("L'élément n'est pas dans la liste.")
    else:
        new_node = Node(data)
        new_node.ref = n.ref
        n.ref = new_node

Ajoutez la fonction insert_before_item() à la classe LinkedList.

Insertion d’un élément à un index spécifique

Parfois, nous avons besoin d’insérer un élément à un index spécifique, nous pouvons le faire à l’aide du script suivant :

    def insert_at_index (self, index, data):
        if index == 1:
            new_node = Node(data)
            new_node.ref = self.start_node
            self.start_node = new_node
        i = 1
        n = self.start_node
        while i < index-1 and n is not None:
            n = n.ref
            i = i+1
        if n is None:
            print("Index out of bound")
        else: 
            new_node = Node(data)
            new_node.ref = n.ref
            n.ref = new_node

Dans le script, nous vérifions d’abord si l’index dans lequel nous voulons stocker l’élément est 1, puis nous attribuons simplement start_node à la référence du new_node et nous fixons ensuite la valeur de start_node à new_node.

Ensuite, on exécute une boucle while qui s’exécute jusqu’à ce que le compteur i devienne supérieur ou égal à l’index-1. Par exemple, si vous voulez ajouter un nouveau nœud au troisième index. Au cours de la première itération de la boucle while, i deviendra 2 et le nœud actuellement itéré sera “2”. La boucle ne s’exécutera pas à nouveau puisque i est maintenant 2, ce qui est égal à l’index 1 (3-1=2). Par conséquent, la boucle sera interrompue. Ensuite, nous ajoutons un nouveau nœud après le nœud actuellement itéré (qui est le nœud 2), ce qui fait que le nouveau nœud est ajouté à l’index.

Il est important de mentionner que si l’index ou l’emplacement passé en argument est supérieur à la taille de la liste liée, un message sera affiché à l’utilisateur indiquant que l’index est hors de portée ou hors limite.

Il ne vous reste plus qu’à tester vos fonctions d’insertion en Python.

KIT de SURVIE : les réseaux informatiques

Kit de survie - les réseaux informatiques

Plus de 20 questions fondamentales

Cet ouvrage présente en 21 fiches de 4 ou 8 pages, les questions fondamentales à connaître sur les adresses IP et les réseaux informatiques. Chaque fiche répond à une question de manière structurée et visuelle à l’aide d’un exemple concret. La résolution détaillée est accompagnée par des conseils méthodologiques.

Cet ouvrage s’adresse aussi bien aux étudiants de bac S Sciences de l’ingénieur, et STI2D (toutes spécialités), mais aussi au BTS, DUT et licence.

Des outils GRATUITS pour vérifier vos calculs

Pour vérifier les résultats de chaque question, le livre vous propose GRATUITEMENT :

    • un logiciel ;
    • un outil de calcul en ligne ;
    • une application pour tablette ou smartphone.

Vous êtes libre de recevoir GRATUITEMENT un extrait.Recevez immédiatement un extrait dans votre boite mail.


Détails sur le produit

Format: Format pdf
Pages: 137
Taille du fichier: 8 500 KB
Editeur: Blog-STI.fr (mai 2016)
Langue: Français


Kit de survie - Les réseaux informatiques
Kit de survie - Les réseaux informatiques
21 fiches essentielles sur les réseaux informatiques
€4.99

Programmation d’une liste chaînée en Python

Introduction

Les listes chaînées sont une structure de données qui représente une collection linéaire de nœuds. Une caractéristique spécifique des listes chaînées est que l’ordre des nœuds n’est pas dicté par leur présence en mémoire, mais plutôt par les pointeurs que chaque nœud possède vers le nœud suivant dans la séquence.

Il existe plusieurs types de listes chaînées :

  • Listes chaînées simples – Une liste chaînée classique, comme celle présentée dans l’image ci-dessus. Les nœuds des listes à liens simples contiennent un pointeur vers le nœud suivant de la liste.
  • Listes doublement chaînées – Ce type de liste chaînée contient à la fois un pointeur vers le nœud suivant, mais aussi un pointeur vers le nœud précédent de la liste.
  • Listes chaînées circulaires – Au lieu de contenir un pointeur nul à la fin de la liste, le dernier nœud de ces listes contient un pointeur vers le premier nœud, ce qui les rend circulaires.

Nous aborderons ici la liste chainée simple.

Liste chaînée simple

Une seule liste chaînée est la plus simple de toutes les variantes de listes chaînées. Chaque nœud d’une liste chaînée unique contient un élément et une référence à l’élément suivant, et c’est tout.

Dans cette partie, nous verrons comment créer un nœud pour la liste chaînée unique ainsi que les fonctions pour les différents types d’insertion, de parcourt et de suppression.

Création de la classe de nœuds

La première chose à faire est de créer une classe pour les nœuds. Les objets de cette classe seront les nœuds réels que nous insérerons dans notre liste de liens. Nous savons qu’un nœud pour une seule liste chaînée contient l’objet et la référence au nœud suivant. Par conséquent, notre classe de nœuds contiendra deux variables membres : item et ref. La valeur de l’élément sera fixée par la valeur passée dans le constructeur, tandis que la référence sera initialement fixée à zéro.

Exécutez le script suivant :

class Node:
    def __init__(self, data):
        self.item = data
        self.ref = None

Pour un aperçu, 👉 cliquez sur une couverture pour feuilleter le livre sur Amazon 📚.


Création de la classe de liste chaînée simple

Ensuite, nous devons créer une classe pour la liste des liens. Cette classe contiendra les méthodes pour insérer, supprimer, parcourir et trier la liste. Au départ, la classe ne contiendra qu’un seul membre start_node qui pointera vers le nœud de départ ou le premier nœud de la liste. La valeur de start_node sera fixée à null à l’aide du constructeur puisque la liste liée sera vide au moment de sa création. Le script suivant crée une classe pour la liste chaînée.

class LinkedList:
    def __init__(self):
        self.start_node = None

 

Nous avons maintenant créé une classe pour notre liste unique. L’étape suivante consiste à ajouter une fonction d’insertion pour insérer des éléments dans la liste chaînée. Mais avant cela, nous allons ajouter une fonction pour parcourir une liste chaînée. Cette fonction nous aidera à lire les données de notre liste.

Parcourir les éléments de la liste liée

Le code Python pour la fonction de parcours est le suivant. Ajoutez la fonction ci-dessous à la classe LinkedList que nous avons créée dans la dernière section.

def traverse_list(self):
    if self.start_node is None:
        print("Pas d'élément dans la liste")
        return
    else:
        n = self.start_node
        while n is not None:
            print(n.item , " ")
            n = n.ref

 

Voyons ce qui se passe dans la fonction ci-dessus. Cette fonction comporte deux parties principales. Premièrement, elle vérifie si la liste chaînée est vide ou non. Le code suivant vérifie cela :

    if self.start_node is None:
        print("Pas d'élément dans la liste")
        return

 

Si la liste chaînée est vide, cela signifie qu’il n’y a pas d’élément à itérer. Dans ce cas, la fonction traverse_list() affiche simplement l’instruction que la liste n’a pas d’élément.

Sinon, si la liste comporte un élément, le code suivant s’exécutera :

        n = self.start_node
        while n is not None:
            print(n.item , " ")
            n = n.ref

 

Comme nous l’avons dit précédemment, la variable de départ contiendra une référence aux premiers nœuds. Par conséquent, nous initialisons une variable n avec la variable de départ. Ensuite, nous exécutons une boucle qui s’exécute jusqu’à ce que n devienne nul. À l’intérieur de la boucle, nous imprimons l’élément stocké au nœud actuel, puis nous fixons la valeur de la variable n à n.ref, qui contient la référence au nœud suivant. La référence du dernier noeud est None puisqu’il n’y a pas de noeud après cela. Par conséquent, lorsque n devient None, la boucle se termine.

Maintenant, nous avons une fonction pour parcourir une liste chaînée, nous verrons dans un prochain article  comment nous pouvons ajouter des éléments à une  liste chaînée.

 

Comment ajouter des éléments à une liste en Python?

En bref, une liste est une collection d’objets arbitraires, un peu comme un tableau dans de nombreux autres langages de programmation, mais plus flexible. Les listes sont définies en Python en mettant entre crochets ([]) une séquence d’objets séparés par des virgules, comme indiqué ci-dessous :

Les caractéristiques importantes des listes Python sont les suivantes :

  • Les listes sont ordonnées.
  • Les listes peuvent contenir n’importe quel objet arbitraire.
  • Les éléments des listes sont accessibles par index.
  • Les listes peuvent être imbriquées à une profondeur arbitraire.
  • Les listes sont modifiables.
  • Les listes sont dynamiques.

Pour ajouter des éléments ou item à une liste en Python, il existe 3 grandes méthodes.

Utilisation de la méthode append()

Les éléments peuvent être ajoutés à la liste en utilisant la fonction append() intégrée. Un seul élément à la fois peut être ajouté à la liste en utilisant la méthode append(), pour l’ajout de plusieurs éléments avec la méthode append(), des boucles sont utilisées. Les tuples peuvent également être ajoutés à la liste en utilisant la méthode append() car les tuples sont immuables. Contrairement aux Sets, les Listes peuvent également être ajoutées à la liste existante avec l’utilisation de la méthode append().

# Ajout d'éléments dans une liste  
  
# Créer une liste
List = [] 
print("Liste initiale vierge : ") 
print(List) 
  
# Ajout d'éléments dans la liste 
List.append(1) 
List.append(2) 
List.append(4) 
print("\nListe après l'ajout de trois éléments : ") 
print(List) 
  
# Ajout d'éléments à la liste en utilisant l'itérateur 
for i in range(1, 4): 
    List.append(i) 
print("\nListe après l'ajout d'éléments de 1-3: ") 
print(List) 
  
# Ajout de tuples à la liste 
List.append((5, 6)) 
print("\nListe après l'ajout d'un n-uplet : ") 
print(List) 
  
# Ajout d'une liste à une liste  
List2 = ['Pour', 'Geeks'] 
List.append(List2) 
print("\nListe après l'ajout d'une liste : ") 
print(List) 

Utilisation de la méthode insert()

La méthode append() ne fonctionne que pour l’ajout d’éléments à la fin de la liste, pour l’ajout d’un élément à la position souhaitée, la méthode insert() est utilisée. Contrairement à append() qui ne prend qu’un seul argument, la méthode insert() nécessite deux arguments (position, valeur).

# Ajout d'éléments dans une liste 
   
# Créer une liste 
List = [1,2,3,4] 
print("Liste initiale :  ") 
print(List) 
  
# Ajout d'un élément à position spécifique (en utilisant la méthode d'insertion)  
List.insert(3, 12) 
List.insert(0, 'Geeks') 
print("\nListe après avoir effectué l'opération d'insertion : ") 
print(List) 

Utilisation de la méthode extend()

Outre les méthodes append() et insert(), il existe une autre méthode pour l’ajout d’éléments, extend(), cette méthode est utilisée pour ajouter plusieurs éléments en même temps à la fin de la liste.

# Ajout d'éléments dans une liste 
    
# Créer une liste 
List = [1,2,3,4] 
print("Liste initiale : ") 
print(List) 
  
# Ajout d'éléments multiples à la liste à la fin (en utilisant la méthode Extend) 
List.extend([8, 'Geeks', 'Toujours']) 
print("\nListe après avoir effectué l'opération Extend Operation: ") 
print(List) 

Pour un aperçu, 👉 cliquez sur une couverture pour feuilleter le livre sur Amazon 📚.


Pour aller plus loin

E3C – NSI – QCM sujet 0 – partie 4/7

E3C en première NSI

Pour les élèves qui ne conservent pas la spécialité numérique et sciences informatiques (NSI) en terminale devront passé au dernier trimestre de l’année de première la session commune de contrôle continu (E3C).

L’évaluation de type QCM aura une durée : 2 heures, avec un coefficient de 5
.

L’épreuve de spécialité numérique et sciences informatiques est un questionnaire à choix multiple en 7 parties, chacune composée de 6 questions.

La calcultarice est interdite pour cette épreuve.

QCM – NSI sujet 0

Les QCM d’entrainement E3C – NSI sujet n°0 est là pour vous permettre de vous mettre en situation et de vous préparer à l’épreuve de spécialité numérique et sciences informatiques (NSI) pour la sessioncommune de contrôle continu (E3C).

Chaque QCM correspond à une partie du programme officiel de la spécialité numérique et sciences informatiques (NSI) de première.

Les QCM vous permettront de connaître votre niveau, de mémoriser vos leçons plus facilement et de savoir sur quels points vous devez encore vous améliorer pour obtenir le diplôme sans problème.

Avantages du QCM en ligne

  • Pour réviser ou s’entrainer,
  • Corrections immédiates avec le barème officiel avec le corrigé détaillé,
  • Nombre d’essais illimité,
  • Fonctionne sur tous les appareils ordinateurs, tablette et smartphone et sur tout les système (Windows, Ios, linux)
  • Avec les QCM en ligne vous réviser quand et où vous voulez

Tester le QCM – NSI sujet 0 en ligne

Pour réviser et vous entrainer à cette épreuve, je vous propose de tester GRATUITEMENT le QCM de la première partie du sujet  n°0 officiel ; Interactions entre l’homme et la machine sur le Web

Cliquez ici pour vous inscrire:

Je m’inscris !

Pour aller plus loin

Métier : Business analyst

Le business analyst est la personne qui, au sein d’une entreprise, est chargée de faire le lien entre le service informatique et les autres départements. Il travaille en étroite collaboration avec tous les services en analysant les données de l’entreprise. Il doit écouter et comprendre les points de vue des différents intervenants et savoir communiquer avec la direction ainsi que les responsables des services ou les clients.

Rencontre avec Matthieu, business analyst pour un site web de vente en ligne. Il nous explique son métier, centré sur l’analyse des données (data).

Cliquez sur le lien: Vidéo Onisep :

Les métiers de l’informatique

5G : une guerre froide sino-américaine

L’apparition de la 5G constitue une révolution technologique. Outre l’augmentation de nos débits de communication, elle inaugure surtout l’ère du “tout-connecté” : appareils électroménagers, hôpitaux, voitures automatisées, “smart cities”. La bataille pour son contrôle s’annonce acharnée entre la Chine et les États-Unis. Au milieu de cet affrontement entre les deux géants, l’Europe fait l’objet de toutes les convoitises.

Source : Le Dessous des cartes – 5G : une guerre froide sino-américaine – Regarder le documentaire complet | ARTE

E3C – NSI – QCM sujet 0 – partie 3/7

E3C en première NSI

Pour les élèves qui ne conservent pas la spécialité numérique et sciences informatiques (NSI) en terminale devront passé au dernier trimestre de l’année de première la session commune de contrôle continu (E3C).

L’évaluation de type QCM aura une durée : 2 heures, avec un coefficient de 5
.

L’épreuve de spécialité numérique et sciences informatiques est un questionnaire à choix multiple en 7 parties, chacune composée de 6 questions.

La calcultarice est interdite pour cette épreuve.

QCM – NSI sujet 0

Les QCM d’entrainement E3C – NSI sujet n°0 est là pour vous permettre de vous mettre en situation et de vous préparer à l’épreuve de spécialité numérique et sciences informatiques (NSI) pour la sessioncommune de contrôle continu (E3C).

Chaque QCM correspond à une partie du programme officiel de la spécialité numérique et sciences informatiques (NSI) de première.

Les QCM vous permettront de connaître votre niveau, de mémoriser vos leçons plus facilement et de savoir sur quels points vous devez encore vous améliorer pour obtenir le diplôme sans problème.

Avantages du QCM en ligne

  • Pour réviser ou s’entrainer,
  • Corrections immédiates avec le barème officiel avec le corrigé détaillé,
  • Nombre d’essais illimité,
  • Fonctionne sur tous les appareils ordinateurs, tablette et smartphone et sur tout les système (Windows, Ios, linux)
  • Avec les QCM en ligne vous réviser quand et où vous voulez

Tester le QCM – NSI sujet 0 en ligne

Pour réviser et vous entrainer à cette épreuve, je vous propose de tester GRATUITEMENT le QCM de la première partie du sujet  n°0 officiel; Traitement de données en tables

Cliquez ici pour vous inscrire:

Je m’inscris !

Pour aller plus loin

Show Buttons
Hide Buttons
Translate »