Introduction à la science informatique

Documents pareils
Représentation d un entier en base b

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Algorithme. Table des matières

Codage d information. Codage d information : -Définition-

Conversion d un entier. Méthode par soustraction

Licence Sciences et Technologies Examen janvier 2010


Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

1 Recherche en table par balayage

1 Introduction au codage

Le codage informatique

Représentation des Nombres

Programmation C. Apprendre à développer des programmes simples dans le langage C

ALGORITHMIQUE ET PROGRAMMATION En C

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Informatique Générale

Bases de programmation. Cours 5. Structurer les données

Théorie et codage de l information

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

Cours Informatique Master STEP

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cours d Informatique

Cours d Algorithmique et de Langage C v 3.0

Logiciel de Base. I. Représentation des nombres

nom : Collège Ste Clotilde

Une version javascript sera disponible directement dans le cours prochainement.

V- Manipulations de nombres en binaire

Corrigé des TD 1 à 5

Préparation à l examen EFA en Macro

Fonctions homographiques

Introduction à l algorithmique et à la programmation (Info 2)

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

MapReduce. Nicolas Dugué M2 MIAGE Systèmes d information répartis

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

Structure du format BMP, sa lecture, sa construction et son écriture

Présentation du cours

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Bases de données documentaires et distribuées Cours NFE04

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Jeux de caracte res et encodage (par Michel Michaud 2014)

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Introduction à NetCDF

Introduction à l étude des Corps Finis

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

M Études et développement informatique

Plan du cours. Historique du langage Nouveautés de Java 7

Programmation avec Xcas ou Python

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Programmes des classes préparatoires aux Grandes Ecoles

Systèmes informatiques

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

UE Programmation Impérative Licence 2ème Année

Quelques tests de primalité

Cours 1 : La compilation

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Algorithmique I. Algorithmique I p.1/??

Rappels sur les suites - Algorithme

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Cryptographie et fonctions à sens unique

Architecture de l ordinateur

Projet de Semestre. Page Web Didactique de Visualisation d Algorithme. Université de Genève - semestre de printemps 2012

Gestion de gros fichiers binaires (images) en APL*PLUS III

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Éléments de programmation et introduction à Java

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

ASR1 TD7 : Un microprocesseur RISC 16 bits

UFR de Mathématiques et Informatique Année 2009/2010. Réseaux Locaux TP 04 : ICMP, ARP, IP

IFT2880 Organisation des ordinateurs et systèmes

Chap17 - CORRECTİON DES EXERCİCES

Transmission de données. A) Principaux éléments intervenant dans la transmission

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

L3 informatique TP n o 2 : Les applications réseau

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Conventions d écriture et outils de mise au point

TD 1 - Transmission en bande de passe

M Études et développement informatique

Définition : On obtient les nombres entiers en ajoutant ou retranchant des unités à zéro.

Cours d arithmétique Première partie

INTRODUCTION A L ELECTRONIQUE NUMERIQUE ECHANTILLONNAGE ET QUANTIFICATION I. ARCHITECTURE DE L ELECRONIQUE NUMERIQUE

Le format OpenPGP. Traduit par : Sébastien Person. personseb@yahoo.fr. Matthieu Hautreux. matthieu.hautreux@insa-rouen.fr.

Calculabilité Cours 3 : Problèmes non-calculables.

108y= 1 où x et y sont des entiers

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique

TP 2 : Chiffrement par blocs

Formats d images. 1 Introduction

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

TO4T Technologie des ordinateurs. Séance 1 Introduction aux technologies des ordinateurs

Introduction à l Informatique licence 1 ère année Notes de Cours

Évaluation et implémentation des langages

0x700. Cryptologie Pearson France Techniques de hacking, 2e éd. Jon Erickson

Algorithmique et Programmation, IMA

TS 35 Numériser. Activité introductive - Exercice et démarche expérimentale en fin d activité Notions et contenus du programme de Terminale S

Introduction à l algorithmique et à Java

Transcription:

Introduction à la science informatique MPSI-Lycée La Merci 2016-2017 (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 1 / 16

Les quatre piliers de l informatique la machine (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 2 / 16

Les quatre piliers de l informatique la machine l information (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 2 / 16

Les quatre piliers de l informatique la machine l information l algorithmique (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 2 / 16

Les quatre piliers de l informatique la machine l information l algorithmique le langage et la programmation (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 2 / 16

Les quatre piliers de l informatique la machine l information l algorithmique le langage et la programmation (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 2 / 16

Quelques questions soulevées Qu est-ce qu un ordinateur? Un réseau? Un robot? (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 3 / 16

Quelques questions soulevées Qu est-ce qu un ordinateur? Un réseau? Un robot? Comment représente-t-on un nombre, un texte, une image ou un son dans un ordinateur? (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 3 / 16

Quelques questions soulevées Qu est-ce qu un ordinateur? Un réseau? Un robot? Comment représente-t-on un nombre, un texte, une image ou un son dans un ordinateur? Comment gère-t-on de grandes quantités de données? (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 3 / 16

Quelques questions soulevées Qu est-ce qu un ordinateur? Un réseau? Un robot? Comment représente-t-on un nombre, un texte, une image ou un son dans un ordinateur? Comment gère-t-on de grandes quantités de données? Comment trier une liste de manière efficace? Comment mesurer cette efficacité? (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 3 / 16

Quelques questions soulevées Qu est-ce qu un ordinateur? Un réseau? Un robot? Comment représente-t-on un nombre, un texte, une image ou un son dans un ordinateur? Comment gère-t-on de grandes quantités de données? Comment trier une liste de manière efficace? Comment mesurer cette efficacité? Quel temps pour décomposer un entier en facteurs premiers avec un ordinateur? (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 3 / 16

Quelques questions soulevées Qu est-ce qu un ordinateur? Un réseau? Un robot? Comment représente-t-on un nombre, un texte, une image ou un son dans un ordinateur? Comment gère-t-on de grandes quantités de données? Comment trier une liste de manière efficace? Comment mesurer cette efficacité? Quel temps pour décomposer un entier en facteurs premiers avec un ordinateur? Comment dialoguer avec un ordinateur? Quelles sont les instructions fondamentales des langages? (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 3 / 16

Un peu d histoire Premières automatisations : machine à calculer, la pascaline 1645 machine à tisser, Jacquard 1801, avec des cartes perforées Premiers ordinateurs : ENIAC 1943 Premiers ordinareurs connectés en réseau (arpanet) : 1970 Début de la démocratisation de l Internet avec le World Wide Web et le html : 1990 (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 4 / 16

Le codage des entiers naturels Le principe En base 10, on a 523 = 5 10 2 + 2 10 1 + 3 10 0. (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 5 / 16

Le codage des entiers naturels Le principe En base 10, on a 523 = 5 10 2 + 2 10 1 + 3 10 0. En base 7, on a (523) 7 = 5 7 2 + 2 7 1 + 3 7 0 = (262) 10. (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 5 / 16

Le codage des entiers naturels Le principe En base 10, on a 523 = 5 10 2 + 2 10 1 + 3 10 0. En base 7, on a (523) 7 = 5 7 2 + 2 7 1 + 3 7 0 = (262) 10. Écriture binaire : deux chiffres 0 et 1 On a (1011) 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 = 11. (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 5 / 16

Le codage des entiers naturels Le principe En base 10, on a 523 = 5 10 2 + 2 10 1 + 3 10 0. En base 7, on a (523) 7 = 5 7 2 + 2 7 1 + 3 7 0 = (262) 10. Écriture binaire : deux chiffres 0 et 1 On a (1011) 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 = 11. Le prédécesseur de (1011) 2 est (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 5 / 16

Le codage des entiers naturels Le principe En base 10, on a 523 = 5 10 2 + 2 10 1 + 3 10 0. En base 7, on a (523) 7 = 5 7 2 + 2 7 1 + 3 7 0 = (262) 10. Écriture binaire : deux chiffres 0 et 1 On a (1011) 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 = 11. Le prédécesseur de (1011) 2 est (1010) 2. (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 5 / 16

Le codage des entiers naturels Le principe En base 10, on a 523 = 5 10 2 + 2 10 1 + 3 10 0. En base 7, on a (523) 7 = 5 7 2 + 2 7 1 + 3 7 0 = (262) 10. Écriture binaire : deux chiffres 0 et 1 On a (1011) 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 = 11. Le prédécesseur de (1011) 2 est (1010) 2. Le successeur de (1011) 2 est (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 5 / 16

Le codage des entiers naturels Le principe En base 10, on a 523 = 5 10 2 + 2 10 1 + 3 10 0. En base 7, on a (523) 7 = 5 7 2 + 2 7 1 + 3 7 0 = (262) 10. Écriture binaire : deux chiffres 0 et 1 On a (1011) 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 = 11. Le prédécesseur de (1011) 2 est (1010) 2. Le successeur de (1011) 2 est (1100) 2. (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 5 / 16

Le codage des entiers naturels Le principe En base 10, on a 523 = 5 10 2 + 2 10 1 + 3 10 0. En base 7, on a (523) 7 = 5 7 2 + 2 7 1 + 3 7 0 = (262) 10. Écriture binaire : deux chiffres 0 et 1 On a (1011) 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 = 11. Le prédécesseur de (1011) 2 est (1010) 2. Le successeur de (1011) 2 est (1100) 2. Le produit 2 2 (1011) 2 vaut (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 5 / 16

Le codage des entiers naturels Le principe En base 10, on a 523 = 5 10 2 + 2 10 1 + 3 10 0. En base 7, on a (523) 7 = 5 7 2 + 2 7 1 + 3 7 0 = (262) 10. Écriture binaire : deux chiffres 0 et 1 On a (1011) 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 = 11. Le prédécesseur de (1011) 2 est (1010) 2. Le successeur de (1011) 2 est (1100) 2. Le produit 2 2 (1011) 2 vaut (101100) 2. (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 5 / 16

Le codage des entiers naturels Le principe En base 10, on a 523 = 5 10 2 + 2 10 1 + 3 10 0. En base 7, on a (523) 7 = 5 7 2 + 2 7 1 + 3 7 0 = (262) 10. Écriture binaire : deux chiffres 0 et 1 On a (1011) 2 = 1 2 3 + 0 2 2 + 1 2 1 + 1 2 0 = 11. Le prédécesseur de (1011) 2 est (1010) 2. Le successeur de (1011) 2 est (1100) 2. Le produit 2 2 (1011) 2 vaut (101100) 2. Multiplier par 2 n «rajoute n zéros sur la droite» (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 5 / 16

Écriture binaire Le plus grand entier naturel codé sur un octet (8 bits) est : (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 6 / 16

Écriture binaire Le plus grand entier naturel codé sur un octet (8 bits) est : (1111 1111) 2 = 2 8 1 car son successeur est (1 0000 0000) 2 = 2 8. (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 6 / 16

Écriture binaire Le plus grand entier naturel codé sur un octet (8 bits) est : (1111 1111) 2 = 2 8 1 car son successeur est (1 0000 0000) 2 = 2 8. Par exemple, en Java, le plus grand entier non signé sur 64 bits est 2 64 1 = 18446744073709551615. En Python, les entiers n ont pas de restriction de taille, au détriment du temps d exécution. (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 6 / 16

Écriture hexadécimale On utilise 16 chiffres {0, 1,..., 9, A, B,..., F }. (5B3F ) 16 = 5 16 3 + 11 16 2 + 3 16 1 + 15 16 0. En regroupant par paquets de 4 bits à partir de la droite, on obtient une correspondance facile entre base 2 et base 16. (5B3F ) 16 = (0101 }{{} 5 1011 }{{} 11 0011 }{{} 3 1111 }{{}) 2. 15 L avantage de la base 16 est qu elle est plus lisible pour un humain. (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 7 / 16

Approximation des puissances de deux On peut retenir l approximation suivante Approximation On a 2 10 = 1024 10 3. Ainsi 2 64 = 2 4 2 60 = 2 4 (2 10 ) 6 16 (10 3 ) 6 = 16 10 18. On a donc montré «à la main que» 2 64 1.6 10 19. C est pas mal du tout puisque 2 64 = 18446744073709551614 1.84 10 19. (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 8 / 16

Coder un texte La fonction ord («ordinal»)de Python permet d obtenir ces index : On attribue à chaque caractère un nombre appelé index, qui permet de le repérer. La norme d encodage que l on utilisera est UTF 8, qui est rétrocompatible avec les codages ASCII et unicode qui sont plus anciens. Par exemple, les lettres majuscules A, B,..., Z ont pour index 65, 66,..., 90. >>> ord( A ) 65 for lettre in "bonjour": print(lettre, ord(lettre)) b 98 o 111 n 110 j 106 o 111 u 117 r 114 (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 9 / 16

Coder une image En noir et blanc 0 1 0 1 0 1 0 1 0 En niveau de gris sur 8 bits : intensité de gris de 0 à 255 98 250 130 169 50 147 23 126 193 185 133 96 83 7 131 104 27 35 116 190 247 208 80 245 190 (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 10 / 16

Efficacité d un algorithme : calcul de pgcd Algo 1 : pour calculer le pgcd de a et b (avec a b), on cherche quels sont les entiers qui divisent à la fois a et b, puis on renvoie le plus grand de ces diviseurs communs d = 1 Pour k de 2 à b Si k divise a et b d = k Fin Si Fin Pour Affiche d Complexité : (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 11 / 16

Efficacité d un algorithme : calcul de pgcd Algo 1 : pour calculer le pgcd de a et b (avec a b), on cherche quels sont les entiers qui divisent à la fois a et b, puis on renvoie le plus grand de ces diviseurs communs d = 1 Pour k de 2 à b Si k divise a et b d = k Fin Si Fin Pour Affiche d Complexité : on effectue b 1 itérations, et donc 2(b 1) divisions. On parle de complexité linéaire. (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 11 / 16

Efficacité d un algorithme : calcul de pgcd Algo 2 : l algorithme d Euclide u = a v = b Tant que v non nul r = u modulo v u = v v = r Fin Tant que Affiche u Complexité : (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 12 / 16

Efficacité d un algorithme : calcul de pgcd Algo 2 : l algorithme d Euclide u = a v = b Tant que v non nul r = u modulo v u = v v = r Fin Tant que Affiche u Complexité : on peut démontrer (théorème de Lamé) que le nombre de divisions est inférieur à 5(log(b) + 1). On parle de complexité logarithmique, c est beaucoup mieux qu une complexité linéaire. (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 12 / 16

Implémentation de l algorithme d Euclide En Python : def euclide(a,b): while b!=0: r = a % b a = b b = r return a print(euclide(18459,3809))) Out[1]: 293 En JavaScript function euclide(a,b){ var u = a, v = b, r; while (v!=0){ } r = u = v v = r } return u u % v alert(euclide(18459,3809)) (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 13 / 16

Quelques exemples de langage Citons par ordre chronologique : Assembleur, Fortran (1954), Lisp (1958), Cobol (1960) (applications gestions), Basic (1964), C (1970), SQL (1978) (langage de requêtes), C++ (1985), Python (1990), Java (1995), JavaScript (1995), PHP (1995), C (2000). (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 14 / 16

Un classement 2014 sur l utilisation des langages (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 15 / 16

The End Thanks for your attention. (MPSI-Lycée La Merci) Introduction à la science informatique 2016-2017 16 / 16