Databac

Cours de première NSI

Publié le 19/03/2024

Extrait du document

« NSI première None None None Table of contents Table of contents 1.

Partie 1 4 1.1 C1 : Python les base 4 1.2 C2 : Les séquences 26 1.3 C3 : Les dictionnaires 35 2.

Projet 1 40 2.1 1) la fonction input 40 2.2 2) Écrire et lire dans un fichier externe 40 2.3 3) projet 42 3.

Partie 2 44 3.1 C4 : entier positif 44 3.2 C5 : texte 51 3.3 C6 : entier relatif 55 3.4 C7 : nombre flottant 59 4.

Partie 3 65 4.1 C8 : archi de von Neumann 65 4.2 C9 : simulation CPU 80 5.

Projet 2 84 6.

Partie 4 85 6.1 C10 : intro à l'algorithmique 85 6.2 C11 : tri par insertion et sélection 94 6.3 C12 : invariants de boucle 103 7.

Partie 5 107 7.1 C13 : Systèmes d'exploitation 107 7.2 C14 : Commandes Linux 111 7.3 C15 : langages de programmation 122 8.

Projet 3 132 9.

Partie 6 134 9.1 C16 : introduction réseau 134 9.2 C17 : TCP et IP 143 9.3 C18 : Modèle TCP/IP 150 9.4 C19 : simulation réseau (I) 156 9.5 C20 : bit alterné 157 10.

Partie 7 162 10.1 C21 : introduction au web 162 10.2 C22 : les URL 165 - 2/231 - Table of contents 10.3 C23 : HTML et CSS 169 10.4 C24 : interaction avec l'utilisateur 176 10.5 C25 : modèle client/serveur 182 10.6 C26 : protocole HTTP 186 10.7 C27 : simulation réseau (II) 191 10.8 C28 : formulaire d'une page web 192 11.

Projet 4 199 12.

Partie 8 201 12.1 C29 : Données en tables 201 13.

Partie 9 210 13.1 C30 : recherche dichotomique 210 13.2 C31 : algo gloutons 216 13.3 C32 : algo des k plus proches voisins 220 14.

Projet 5 228 15.

Partie 10 230 15.1 C33: interface Homme - Machine 230 - 3/231 - 1.

Partie 1 1.

Partie 1 1.1 C1 : Python les base 1.1.1 Cours 1) Programmer un ordinateur, c'est quoi ? Programmer un ordinateur, c'est quoi ? Programmer, c'est créer des programmes (suite d'instructions données à l'ordinateur) ! Un ordinateur sans programme ne sait rien faire.

Il existe différents langages qui permettent de programmer un ordinateur, mais le seul directement utilisable par le processeur est le langage machine (suite de 1 et de 0).

Aujourd'hui (presque) plus personne ne programme en langage machine (trop compliqué). Les informaticiens utilisent des instructions (mots souvent en anglais) en lieu et place de la suite de 0 et de 1.

Ces instructions, une fois écrites par le programmeur, sont "traduites" en langage machine.

Un programme spécialisé assure cette traduction.

Ce système de traduction s'appellera interpréteur ou bien compilateur, suivant la méthode utilisée pour effectuer la traduction. Il existe 2 grandes familles de langages de programmation : • Les langages de bas niveau sont très complexes à utiliser, car très éloignés du langage naturel, on dit que ce sont des langages « proches de la machine », en contrepartie ils permettent de faire des programmes très rapides à l'exécution.

L'assembleur est le langage de bas niveau.

Certains "morceaux" de programmes sont écrits en assembleur encore aujourd'hui. • Les langages de haut niveau sont eux plus "faciles" à utiliser, car plus proches du langage naturel (exemple : si a=3 alors b=c). Exemples de langages de haut niveau : C, C++ , Java, Python... En NSI, notre langage de prédilection sera Python. 2) Notion de variable Définition du mot ordinateur d'après "Le Petit Larousse" : "Machine automatique de traitement de l'information, obéissant à des programmes formés par des suites d'opérations arithmétiques et logiques." Qui dit "traitement de l'information", dit donc données à manipuler.

Un programme "passe" donc son temps à traiter des données.

Pour pouvoir traiter ces données, l'ordinateur doit les ranger dans sa mémoire (RAM - Random Access Memory).

La RAM se compose de cases dans lesquelles nous allons ranger ces données (une donnée dans une case).

Chaque case a une adresse (ce qui permet au processeur de savoir où sont rangées les données). Alors, qu'est-ce qu'une variable ? Eh bien, c'est une petite information (une donnée) temporaire que l'on stocke dans une case de la RAM.

On dit qu'elle est "variable", car c'est une valeur qui peut changer pendant le déroulement du programme. Une variable est constituée de 2 choses : • une valeur présente en mémoire (par exemple le nombre entier 5) • un nom On dira donc qu'une variable est l'association d'un nom et d'une valeur i = 12 Grâce à cette ligne, nous avons défini une variable qui porte le nom i.

Ce nom i est associé à la valeur 12. Il est aussi possible d'associer un nom à un nombre à virgule : - 4/231 - 1.1.1 Cours i = 5.2 J'attire votre attention que nous utilisons un point à la place d'une virgule (convention anglo-saxonne). Un nom peut donc être associé à plusieurs types d'entités (pour l'instant nous n'en avons vu que deux, mais nous en verrons d'autres plus loin) : les nombres entiers ("integer" en anglais, abrégé en "int") et les nombres à virgule ("float" en anglais).

Il est possible de connaitre le type de l'entité à l'aide de l'instruction "type". a = 5 b = 5.4 un type(a) donnera comme résultat int alors qu'un type(b) donnera float 3) un peu de calculs Un ordinateur est bien évidemment capable d'effectuer des opérations mathématiques (arithmétiques). Les signes utilisés sont classiques : +, - , * (multiplication), / (division), // (division euclidienne) ou encore % (modulo : reste d'une division euclidienne). Il est tout à fait possible d'effectuer des opérations directement avec des nombres, mais il est aussi possible d'utiliser des variables. a b c d e f g h = = = = = = = = 5 16 3.14 / 2 b / a b // a b % a a + b a Considérons maintenant le programme suivant : a = 11 a = a + 1 D'après vous, quelle est la valeur de la variable a après l'exécution du programme ci-dessus ? La réponse est 12. Détaillons ce qui se passe dans ce programme : Nous créons une variable : le nom a est associé à l'entier 11.

La suite est un peu plus complexe, mais très importante à comprendre.

Il va falloir lire la ligne a = a + 1 de droite à gauche, décortiquons cette ligne : • a + 1 : nous prenons la valeur actuelle associée au nom a (c'est-à-dire 11) et nous ajoutons 1 à 11, à droite de l'égalité nous avons donc maintenant la valeur 12 • nous associons la valeur qui vient d'être calculée au nom a Donc la valeur de a est bien 12 Ce raisonnement peut être généralisé pour éviter des erreurs parfois difficiles à corriger : dans une égalité, commencer toujours par évaluer l'expression se trouvant à droite du signe égal. L'opération a = a + 1 se nomme une incrémentation. 4) chaînes de caractères A) NOTION DE CHAÎNE DE CARACTÈRES On peut aussi associer des noms à des suites de caractères que l'on appelle "chaîne de caractères". - 5/231 - 1.1.1 Cours ma_chaine = "Bonjour le monde !" Le contenu de la variable ma_chaine est de type string et donc un type(ma_chaine) donnera un str (abréviation de string en Python) B) LE SIGNE + ET LES CHAÎNES DE CARACTÈRES L'utilisation du signe + ne se limite pas à l'addition.

Il est aussi utilisé pour la concaténation. D'après Wikipédia : « Le terme concaténation (substantif féminin), du latin cum («avec») et catena(«chaîne, liaison»), désigne l'action de mettre bout à bout au moins deux chaînes.

» Si on considère le programme suivant : a = "Hello" b = "World" mon_expression = a + b après l'exécution de ce programme, la variable mon_expression aura pour valeur HelloWorld Il est aussi possible de concaténer une chaîne de caractères et une ou plusieurs variables : ma_chaine_1 = "Bonjour " ma_chaine_2 = "le " res = ma_chaine_1 + ma_chaine_2 + "monde!" Après l'exécution de ce programme, la variable res aura pour valeur Bonjour le monde! Les 2 noms ma_chaine_1 et ma_chaine_2 sont associés à 2 chaînes de caractères, nous avons donc bien ici une concaténation. Que se passe-t-il si nous avons ce cas de figure : a = "Nombre de pommes : " b = 4 c = a + b a est de type str alors que b est de type int.

Le signe plus représente une addition ou une concaténation ? Ni l'un, ni l'autre, puisque Python vous renverra une erreur : il ne peut pas concaténer un entier et une chaîne de caractère. La solution : transformer le nombre 4 en caractère 4 à l'aide du mot clé str: a = "Nombre de pommes : " b = 4 c = a + str(b) nous avons maintenant une concaténation, car str(4) est de type string. Autre solution pour faire cohabiter des variables de type int ou float avec des.... »

↓↓↓ APERÇU DU DOCUMENT ↓↓↓

Liens utiles