L'organisation tabulaire des donnees est très répandue et très ancienne.
Le bulletin d'un élève est organisé en table et indique, pour chaque matière, la note de l'élève, la moyenne de la classe, la note la plus basse et la plus haute de la classe et l'appréciation du professeur.
La liste de présence » est une table indiquant pour chaque élève s'il est présent ou absent ce jour.
Les résultats d'un match de tennis sont affichés eux aussi comme une table. Les lignes de la table correspondent aux joueurs, les colonnes indiquent le nombre de jeux gagnés dans chaque set.
Le relevé de compte bancaire indique, pour chaque opération, sa date, son montant et sa nature (débit ou crédit).
Les tables documentées les plus anciennes sont d'ailleurs des livres de comptes (on trouve des mentions de telles tables dans l'Egypte ancienne).
Les données tabulées ont évidemment une place importante en informatique. Avec l'introduction du modèle relationnel, propose par Edgar F. Codd dans les années 1970 alors qu'il est employé par IBM, les tables de données, stockées dans des bases de données deviennent rapidement le principal moyen de stocker de l'information structurée. Même sans utiliser de tels systèmes, la manipulation de données en tables depuis un langage de programmation est un outil important a maitriser. En effet, elles sont utilisées dans de nombreux domaines : calcul scientifique, intelligence artificielle, programmation wen, ...","title":"Notion de table de données"}],[{"text":"https://www.data.gouv.fr/fr/territories/commune/29024@1957-01-01/Carhaix-Plouguer/
Prénom | Année | Note 1 | Note 2 | Appréciation |
Stéphane | 2000 | 12.5 | 9.4 | AB |
Paul | 2003 | 14 | 17 | B |
Régis | 2002 | 9 | 15 | TB |
Bernard | 2001 | 5.5 | 12 | B |
Franck | 1999 | 16 | 14.5 | AB |
Léon | 2004 | 14 | 16 | TB |
Les données ci-dessus sont des tables.
Les tables représentent des collections d'éléments.
Chaque ligne représente un élément de la collection.
Les colonnes représentent les attributs d'un element.
Pour un attribut donne, les valeurs sont du même type.\nPar exemple : \n- La colonne année est de type entier.\n- La colonne prénom est de type chaîne de caractère.
Le terme indexation de table désigne la création d'une table répondant aux critères ci-dessous.En bases de donnees, un index est une structure de données permettant un accès rapide aux données de la table(My Sql, Mongo Db, Firebase,...)
La première operation concernant les données en table est de charger (iire) les données.
Nous avons besoin d'un moyen simple pour échanger des données tabulées entre différents programmes.
L'un des moyens les plus simple est l'utilisation d'un fichier. Le programme créant les données les sauvegardes dans un fichier.
Un second programme charge ce fichier et travaille sur les données.
La seule contrainte est que les deux programmes utilisent le même format\n
Pour les données tabuées l'usage est d'utiliser des fichiers au format CSV (Comma Separated Values, ou données séparées par des virgules ).
Exemple :\nPrénom,Année,Note 1,Note 2,Appréciation\nStéphane,2000,12.5,9.4,AB\nPaul,2003,14,17,B\nRégis,2002,9,15,TB\nBernard,2001,5.5,12,B\nFranck,1999,16,14.5,AB\nLéon,2004,14.5,16,TB\n
Ce format est relativement simple :
• les fichiers CSV sont de simples fichiers textes ;\n• chaque ligne du fichier correspond à une ligne de la table ;\n• chaque attribut d'une ligne est séparée au moyen du caractère \" , \" ;\n• toutes les lignes du fichier ont le même nornbre de champs ;\n• la première ligne peut représenter des noms d'attributs ou commencer directement avec les données ;\n• on peut utiliser des guillemets droits \" pour délimiter le contenu des champs.\n","title":"Lire un fichier au format CSV"}],[{"text":"
Python a une bibliothèque csv contenant des fonctions pour lire et écrire des fichiers au format CSV.
Le code Python suivant permet de charger notre fichier users.csv dans une variable table.
import csv\nfichier = open(\"eleves.csv\")\ntable = list (csv.reader(fichier))\nprint(table)
Description du programme : \n- importation du module csv;\n- ouverture du fichier users.csv;\n- la fonction reader du module csv prend en argument un fichier ouvert et renvoie une valeur en tableau:\n- la fonction list convertit le tableau en list.\n- la variable table contient alors un tableau de tableaux de chaines de caractères.
Télécharger le fichier csv :
http://sciencesappliquees.com/images/nsi/eleves.csv
Ecrire et exécuter le programme.
Copier le résultat ci-dessous:","title":"Chargement d'un fichier csv"},{"input":"","place":"Ecrire le résultat ici."},{"edit":"Quel est l'inconvénient de cette méthode sur le typage des entiers?
Une alternative aux problèmes rencontrés précédemment est d'utiliser la fonction offerte par le module csv est la fonction DictReader dans le module CSV.
Le programme devient :
import csv\nfichier = open (\"eleves.csv\" )\ntable = list (csv.DictReader(fichier))\nprint(table)
","title":"Chargement d'un fichier csv (2)"},{"input":"","place":"Ecrire le résultat ici."},{"edit":"Quels sont les avantages de cette méthode?Ecrire et exécuter le programme.Copier le résultat ci-dessous:
Malgré l'utilisation de la fonction DictReader, un problème subsiste.
En effet, les nombres sont chargés comme des chaines de caractères.
On souhaiterait que ces données soit des entiers Python.
Le module csv ne propose pas de moyen pour convertir automatiquement les données.
Nous utiliserons la méthode ci-dessous pour créer une table avec des formats valides pour les attributs.
Pour ce faire il faut connaitre les types des attributs.
import csv\nfichier = open (\"eleves.csv\" )\ntable = list (csv.DictReader(fichier))\nprint(table)\n\nfor x in table :\n x[\"Année\"] = int(x[\"Année\"])\n x[\"Note 1\"] = float(x[\"Note 1\"])\n x[\"Note 2\"] = float(x[\"Note 2\"])\n#les nombres avec le bon typage\nprint(table)
Ecrire et exécuter le programme.
","title":"Validation des donnees"},{"input":"","place":"Ecrire le résultat ici."},{"edit":"Quels sont les avantages de cette méthode?Copier le résultat ci-dessous:
Le module csv de Python propose aussi des fonctions utilitaires pour ecrire le contenu d'un tableau de dictionnaires dans un fichier CSV.\n
import csv\n\nf = open(\"nouveau.csv\", \"w\")\nwriter = csv.DictWriter(\n f, [\"Prénom\", \"Année\", \"Note 1\",\"Note 2\", \"Appréciation\"])\nwriter.writeheader()\nwriter.writerow({'Prénom':'Stéphane', 'Année' : '2000' , 'Note 1': '12.5', 'Note 2': '9.4', 'Appréciation': 'AB'})\nwriter.writerows([{'Prénom':'Stéphane', 'Année' : '2000' , 'Note 1': '12.5', 'Note 2': '9.4', 'Appréciation': 'AB'},{'Prénom':'Stéphane', 'Année' : '2000' , 'Note 1': '12.5', 'Note 2': '9.4', 'Appréciation': 'AB'}])\nf.close()
Descriptions du code :\n- La fonction Di ctWrit er renvoie un objet w permettant d'ecrire des lignes dans le fichier.\n- L'instruction writer.writeheaders() dolt etre appelee en premier et ecrit la ligne d'entetes.\n- L'instruction writer.writerows(...) écrit des lignes correspondantes aux attributs dans le fichier.\n- L'instruction writer.writerow(...) écrit 1 ligne correspondantes aux attributs dans le fichier.Ecrite et exécuter le code ci-dessous.
Lire le fichier nouveau.csv avec le bloc note.
Copier son contenu ci-dessous.
","title":"Ecrire un fichier au format CSV"},{"input":"","place":"Ecrire le résultat ici."},{"edit":"Quels est le format de ce fichier?
Trouver toutes les erreurs de syntaxe dans le fichier CSV suivant :
\nTitre,Auteur,Extrait,Annee\nAir vif,tluard,J'ai regarde devant moi,1951\nJe vis...,Labe,J'ai chaud extreme en endurant froidure Heureux...,du Bellay,Heureux qui come Ulysse, a. fait..., 1552 \"La voix,Baudelaire,Mon berceau s'adossait...\",1857\n
On souhaite stocker dans une table l'inventaire d'un magasin. Ce dernier vend des biens dont il possède une certaine quantité en stock.
Les produits peuvent etre indisponibles (epuisés chez le fournisseur) et être en vente libre ou non.
Proposer des noms de colonnes et types Python\npour une telle table d'inventaire.\tSolution page 472\nExercice 182 Ecrire une fonction stats_csv(fichier) on fichier est le nom d'un fichier CSV et qui affiche le nombre de lignes et le nombre de\ncolonnes de la table stockee dans le fichier.","title":"Exercice 2"},{"input":"","place":"Ecrire le résultat ici."}],[{"text":"
Ecrire un fichier au format CSV décrivant le bon de commande suivant, dans lequel les colonnes ref et désignation contiennent des chaines de caractères, la colonne prix des nombres décimaux et la colonne qte des nombres entiers.
ref | désignation | prix | qté |
113313 | crayon | 1.30 | 3 |
212444 | gomme | 0.90 | 2 |
123366 | stylo | 2.10 | 5 |
Ecrire un programme qui lit ce fichier CSV et en extrait une table de données sous la forme d'un tableau de dictionnaires.","title":"Exercice 3"},{"input":"","place":"Ecrire le résultat ici."}]]
- Détails
- Écrit par : Richard GAUTHIER
- Clics : 1967
- Détails
- Écrit par : Richard GAUTHIER
- Clics : 1570
- Détails
- Écrit par : Richard GAUTHIER
- Clics : 1584
- Détails
- Écrit par : Richard GAUTHIER
- Clics : 1502
Vous devez réaliser les programmes suivants en html5 directement dans le navigateur.
Vous avez le droit à tout document.
Attention chaque page doit respecter la structure et les balises d'une page HTML5.
Pour des questions d'équité dans la classe, vous devez utiliser 1 seul écran.
","posi":1}],[{"chrono":480},{"text":"Ecrire une page html qui affiche dans un paragraphe, le texte suivant:
Attention, vous devez respecter les retours à la ligne.
Nous autres, mordus d'informatique, préférons par-dessus tout passer notre temps à bidouiller nos ordinateurs, plutôt que les utiliser pour faire quelque chose de productif! |
Copier ici le code de votre page html5
Ecrire un code html qui affiche exactement la page suivante dans le navigateur:
Remarques : Cette page est composée :
- d'un titre très très important;
- d'un titre important;
- d'un titre vraiment pas important;
- d'un paragraphe.
Copier ici votre code html :
"},{"htm2":[{"html":""},{},{}]}],[{"chrono":480},{"text":"Para 2
Ecrire un code html qui affiche exactement la page suivante dans le navigateur:
Remarque : Ce paragraphe est composé :
- d'un texte souligné;
- d'un texte en gras;
- d'un texte en italique;
- d'un texte mis en évidence.
Copier ici votre programme :
"},{"htm2":[{"html":""},{},{}]}],[{"chrono":480},{"text":"Listes
Ecrire un code html qui affiche exactement la page suivante dans le navigateur:
Attention, il faut utiliser les listes!
Copier ici votre code html :
"},{"htm2":[{"html":""},{},{}]}],[{"chrono":480},{"text":"Image
Ecrire un code html qui affiche exactement la page suivante dans le navigateur:
Remarque : Cette page est composée :
- d'un titre très très important;
- de l'image ci-dessous avec une taille de 300px par 200px et d'une bordure de 4px ;
Copier ici votre code html :
"},{"htm2":[{"html":""},{"css":""},{}]}],[{"chrono":480},{"text":"Liens
Réaliser la page ci-dessous avec 3 liens qui pointent vers ies sites suivants:
Lycée Sérusier
Toutatice
Onisep
Remarque : les adresses sont les suivantes :
Lycée Sérusier : http://www.lycee-serusier.fr
Toutatice : https://www.toutatice.fr/
Onisep : http://www.onisep.fr/
"},{"htm2":[{"html":""},{},{}]}],[{"chrono":480},{"text":"CSS
Ecrire un code css pour afficher la page de la manière suivante :
- un titre avec la couleur blanche, un arrière plan rouge et une taille de 50px;
- un paragraphe de couleur bleue et une taille de 20px.
- un paragraphe de couleur verte et en gras.
Attention ne pas toucher au html.
"},{"htm2":[{"html":"NSI
\n4 heures par semaine
\n1 des 3 spécialités
"},{"css":""},{}]}],[{"chrono":480},{"text":"Ecrire une variable texte avec le contenu suivant :
Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent. |
Le contenu de cette variable doit être affiché dans la div resultat.
Modifier uniquement le code javascript ci-dessouq en conséquence:
Attention : Ne pas toucher au Html.
\n
Votre programme récupère la valeur de l'input text.
Cette valeur correspond à l'intensité du courant en mA dans une ligne électrique de 230V.
Le script devra afficher dans le div resultat :
-\"pas de danger\" si le courant est inférieur à 20;
-\"danger\" si le courant est entre 20 et 30;
-\"Risque de mort\" si le courant est supérieur à 30;
Modifier uniquement le code javascript ci-dessouq en conséquence:
Attention : Ne pas toucher au Html.
\n
Votre programme a 2 variables chaine1 = \"Bonjour\" et chaine2 = \"Monde\".
Il doit afficher dans la div résultat la concaténation des 2 variables (Attention il faut des espaces).
Attention : Ne pas toucher au Html.
\n
Ecrire une fonction surfSphere qui calcule la surface d'une sphère en fonction de la valeur de l'input text.
Par exemple :
Modifier uniquement le code javascript ci-dessouq en conséquence:
Attention : Ne pas toucher au Html.
\n
Le lien ci-dessous renvoie la température d'une salle :
http://sciencesappliquees.com/templates/php/temp.php
Ecrire le programme qui affiche la valeur de la température dans le
div resultat. Il faudra utiliser la méthode get.Modifier uniquement le code javascript ci-dessouq en conséquence:
Attention : Ne pas toucher au Html.
\n
Ecrire un formulaire qui demande :
- le nom
- le prénom
- et l'age
de la personne et qui l'envoie par la méthode post au serveur suivant : http://www.sciencesappliquees.com/serveur.php
- Détails
- Écrit par : Richard GAUTHIER
- Clics : 1546