INF311 : Introduction à l Informatique



Documents pareils
INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Programmer en JAVA. par Tama

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

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

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

Algorithmique et Programmation, IMA

Cours 1: Java et les objets

Java Licence Professionnelle CISII,

Introduction au langage C

TD3: tableaux avancées, première classe et chaînes

INF 321 : mémento de la syntaxe de Java

Tp 1 correction. Structures de données (IF2)

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

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


Cours 1 : La compilation

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

TP, première séquence d exercices.

Programmation en Java IUT GEII (MC-II1) 1

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

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

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Cours 1 : Qu est-ce que la programmation?

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Notions fondamentales du langage C# Version 1.0

Java Licence Professionnelle CISII,

TP1 : Initiation à Java et Eclipse

Algorithmes récursifs

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Généralités sur le Langage Java et éléments syntaxiques.

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Les bases de l informatique et de la programmation. École polytechnique

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Rappels Entrées -Sorties

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

ALGORITHMIQUE ET PROGRAMMATION En C

Cours d Algorithmique et de Langage C v 3.0

Premiers Pas en Programmation Objet : les Classes et les Objets

Programmation Objet Java Correction

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

as Architecture des Systèmes d Information

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Cours d initiation à la programmation en C++ Johann Cuenin

Utilisation d objets : String et ArrayList

Machines virtuelles Cours 1 : Introduction

Une introduction à Java

Programmation par les Objets en Java

UE C avancé cours 1: introduction et révisions

TP 1. Prise en main du langage Python

Solutions du chapitre 4

Compilation (INF 564)

STAGE IREM 0- Premiers pas en Python

Chapitre I Notions de base et outils de travail

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Conception de circuits numériques et architecture des ordinateurs

IV- Comment fonctionne un ordinateur?

Évaluation et implémentation des langages

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

ACTIVITÉ DE PROGRAMMATION

La technologie Java Card TM

Java c est quoi? Java pourquoi?

Algorithme. Table des matières

Langage Java. Classe de première SI

Algorithmique I. Algorithmique I p.1/??

COMPARAISONDESLANGAGESC, C++, JAVA ET

M1101a Cours 4. Réseaux IP, Travail à distance. Département Informatique IUT2, UPMF 2014/2015

Objets et Programmation. origine des langages orientés-objet

Le langage C. Séance n 4

PROGRAMMATION PAR OBJETS

Structurer ses données : les tableaux. Introduction à la programmation

Rappels d architecture

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

LES TYPES DE DONNÉES DU LANGAGE PASCAL

4. Groupement d objets

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)

Algorithmique et programmation : les bases (VBA) Corrigé

Chapitre 10. Les interfaces Comparable et Comparator 1

Bases Java - Eclipse / Netbeans

Conventions d écriture et outils de mise au point

Initiation au HPC - Généralités

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Exercices sur les interfaces

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

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

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

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

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Traduction des Langages : Le Compilateur Micro Java

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

La mémoire. Un ordinateur. L'octet. Le bit

Transcription:

F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 3/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 4/49 Tronc Commun X2005 INF311 : Introduction à l Informatique F. Morain morain@lix.polytechnique.fr Amphi 1 : introduction à Java I. Organisation générale du cours. II. Un ordinateur, comment ça marche? III. La programmation en Java. ECOLE POLYTECHNIQUE IV. Au travail! V. Derniers mots. DÉPARTEMENT D INFORMATIQUE F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 1/49 I. Organisation générale du cours F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 2/49 Quels moyens? Cours fait pour les débutants en informatique Faire connaissance avec l informatique (science + techniques). Se familiariser avec un système d exploitation (Unix), quelques outils (kde, mozilla, mail, nedit, etc.). Apprendre la programmation, vérifier la correction des programmes, les valider par des tests. Le langage support est Java. 10 blocs : 1 bloc = 1 amphi de 1h30 suivi de TP de 2h le jour même ou le lendemain ; à compléter par deux heures de travail personnel. Tutorat: encadrement disponible pour les 2h de travail perso pour aider à régler les bloquages éventuels. Tout est sur le web: poly, exercices, etc. Matériel : stations de travail PC sous GNU/Linux (kde).

F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 7/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 8/49 Les participants Notation L équipe enseignante: 1 Chargé d enseignement + 1 vacataire + 1 pour aider pendant les trois premiers blocs. Délégués : 1-7 T. Clausen + M. Cluzeau + C.-P. Gwiggner 2-8 É. Duris + T. Houtmann + O. Bouissou 3-9 A. Enge + Q. Thai + F. Kirchner 4-10 F. Magniez + S. Ben Mokhtar + C. Lauradoux 5-11 E. Waller + A. Ziegler + J.-R. Reinhard 6-12 P. Chassignet + M. Quisquater + B. Cautis Un délégué(e) pour chaque groupe avec parité; un délégué et une déléguée pour le niveau élu(e)s parmi ceux-ci. Pour quoi faire? Faire remonter les problèmes; sondage; réunions de département; déjeuner de temps en temps. Je veux les noms mardi prochain... bloc 5 : annotation des programmes par les enseignants ; bloc?? : composition sur machines ; composition Hors Classement le mardi 11 juillet sur papier. La notation du module se fait sur ces deux notes + une note de participation. F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 5/49 II. Un ordinateur, comment ça marche? F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 6/49 Les pionniers Entrée 1001 Processeur 1110 Sortie Mémoire Un ordinateur est une machine qui exécute des programmes qui résolvent un problème. À un très bas niveau, le processeur transforme des 0 et des 1 en d autres 0 et d autres 1. Leur interprétation se fait suivant des conventions précises (1011000 = X ). Alan Turing John von Neumann 1912 1954 1903 1957

F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 11/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 12/49 Une carte PC Réponse à Claude Allègre Le langage binaire est longtemps resté l apanage de quelques mathématiciens, le commun des mortels préférant le calcul à base dix, plus économe de chiffres et qui permet d utiliser ses doigts pour compter. Comment a-t-il fait pour s imposer comme langage universel des ordinateurs, alors qu il est si encombrant? LA DÉFAITE DE PLATON OU LA SCIENCE DU XXÈME SIÈCLE, Fayard 1995. Chapitre "0-1...et l infini" F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 9/49 La machine la plus rapide du moment F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 10/49 La loi de Moore On mesure la puissance d un ordinateur par le nombre d instructions qu il peut exécuter par seconde (Mips, flop/s). Cf. la page des top 500. La plus grosse machine: IBM BlueGene/L (131072 processeurs, 280.6 Teraflop/s sur le benchmark LINPACK factorisation LU avec pivot partiel d un système linéaire dense).

F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 15/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 16/49 Le système d exploitation Unix Un intermédiaire nécessaire entre le processeur et l utilisateur. Un système multi-utilisateurs en temps partagé. Bienvenue dans un monde dans lequel les ordinateurs ne s arrêtent jamais et... ne doivent jamais être arrêtés. matériel noyau programmes mémoire, temps de calcul : plusieurs programmes tournent en même temps ; la mémoire est protégée : impossible de planter l ordinateur! découpage des disques en zones séparées par compagnie, puis utilisateur (structure arborescente) ; un élève toto a comme répertoire (homedir) /users/a1/toto ; ce répertoire est protégé. F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 13/49 Des ordinateurs reliés entre eux F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 14/49 Nombre de machines routables : via Internet (réseaux locaux ou globaux). Domaine.fr : au 23 mars 2006, 456918 sous-domaines répertoriés par l AFNIC (resp. 346126 au 25 mars 2005). Comment ça marche? chaque ordinateur dispose d un numéro IP qui permet de le localiser de par le vaste monde (sil a pour adresse IP 129.104.247.3).

F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 19/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 20/49 L environnement réseau à l X Comment parle-t-on à un ordinateur? RENATER 3 www poly sil Java a+b langage assembleur add A, B langage machine 1000110010100000 S31, caserts, binets moned Historiquement: apparition des langages dans l ordre inverse. Étape ultime : l ordinateur qui comprend le langage humain directement... ou inversement? polytechnique.fr F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 17/49 Qu est-ce qu un calcul? F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 18/49 III. La programmation en Java Modèle de base : séquentiel les instructions sont exécutées l une après l autre), calculs internes sur des entiers: 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 Algorithmes: déterministes (311/421) ou non (431/majeures) ; probabilistes/randomisés. Autres modèles : vectoriels, parallèles (SIMD, MIMD), distribués. A) Qu est-ce qu un programme? C est la traduction dans un langage compréhensible pour l ordinateur d un ensemble d algorithmes qui permettent de résoudre des problèmes. Pourquoi programmer? point commun à tous les informaticiens ; résoudre des problèmes toujours nouveaux (e.g., réseaux) ; informatique expérimentale. Modèles du futur : quantique, biologique, etc.

F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 23/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 24/49 Pourquoi Java? À quoi ressemble un programme Java? relativement simple, très répandu, conçu pour le WWW ; typé, avec des objets (object oriented), gestion mémoire ; quand on connaît un langage, il est facile d en apprendre d autres. Pierre François Xavier Bouchard (X96) public class Wagon{ final static int WMAX = 100; // constante static int n; // variable de classe String nom; // champ d un objet // une fonction (méthode de classe) public static void print(wagon w){ System.out.println(w.nom); // fonction principale Wagon w = new Wagon(); w.nom = "Thalis"; print(w); F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 21/49 Le premier programme F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 22/49 Le premier programme (suite) public class Bonjour{ System.out.println("Salut!"); Mots en bleu : mots-clefs de Java public class Bonjour{ System.out.println("Salut!"); fonction d affichage nom de la classe pour sortir de la fonction main point d entrée dans la classe argument de la fonction

F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 27/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 28/49 Compilation, interprétation B) Constituants de base du langage On écrit le programme dans un fichier Bonjour.java, puis on le compile par : unix% javac Bonjour.java et on l exécute avec : unix% java Bonjour En vrai : javac vérifie la syntaxe et le typage, puis traduit le programme dans un langage intermédiaire (byte-code portable) qui est ensuite traduit pour l ordinateur par java. Identificateurs : séquences de lettres et de chiffres commençant par une lettre, séparées par des espaces, caractères de tabulation, retours à la ligne ou des caractères spéciaux (+, -, *, etc.). mots-clefs : class, public, static, etc. types primitifs: entiers (int), réels (double), caractères (char). Opérations arithmétiques: +, -, *, /, % (modulo). Bibliothèque mathématique : Math.sqrt(), Math.PI, etc. F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 25/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 26/49 Variables public class Calculs{ System.out.println(2 + 2); System.out.println((13 * 2) % 5); System.out.println(2. * Math.PI * 1.5); unix% java Calculs 4 1 9.4247779607693793 Une variable est représentée par un identificateur, elle a un type (c est-à-dire qu on doit savoir dans quel ensemble elle prend ses valeurs). On peut utiliser sa valeur, lui en affecter une (nouvelle). Une variable doit toujours être déclarée : int x; double u;

F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 31/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 32/49 C) Affectation On peut condenser déclaration et initialisation : u = e; u est une variable et e une expression ; les deux ont même type ; l expression e est évaluée, puis la variable u prend pour valeur le résultat de cette évaluation : on a affecté la valeur de e à u. x = -155; z = x + 3; int x = -155; Une instruction idiomatique : avec le mécanisme d affection, les instructions : int i = 3; i = i + 1; sont valides, car on calcule d abord i+1 et le résultat 4 est mis dans i à la place de 3. Une variable doit toujours être initialisée. F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 29/49 D) Un peu de convivialité F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 30/49 Intéractions avec le programme Chaînes de caractères : pour rendre un programme plus convivial, on affiche des chaînes de caractères, comme "Bonjour". public class Calculs2{ int n = 10, b; b = n*(n-1)/2; System.out.print("résultat="); System.out.println(b); Ex: demander un entier à l utilisateur et afficher le carré de l entier à l écran. public class Calculs{ System.out.print("Entrer n="); int n = TC.lireInt(); System.out.print("n^2="); System.out.println(n * n); La classe TC: écrite spécialement pour le Tronc Commun. C est une classe comme System. Documentation: poly ou web.

F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 35/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 36/49 E) Quelques types primitifs Arithmétique signée a) les entiers Un entier n 0 s écrit en binaire sous la forme: avec p 0, b i {0,1. n = b p 2 p + b p 1 2 p 1 + + b 0 Ex. 29 = 1 2 4 + 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 = 11101 2. Les entiers en Java: int (le plus courant, 32 bits), long (64 bits), short (16 bits). On choisit en fonction du problème. Le type int permet de coder les entiers de [ 2 31,2 31 1] = [ 2147483648,2147483647]. 2 31 x < 2 31 b 31 b 30...b 0 avec b i {0,1, et le bit b 31 est interprété comme bit de signe: si 0 x < 2 31, b 31 = 0 et si 2 31 x < 0, b 31 = 1 et x = b 30 2 30 + b 29 2 29 + + b 0. x + 2 31 = b 30 2 30 + b 29 2 29 + + b 0. F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 33/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 34/49 Opérations classiques + + Mathématiquement: si x et y sont de type int, donc éléments de [ 2 31,2 31 1], alors x+y déf = x + y mod 2 32. Donc: 2000000000+2000000000 = -294967296. Pas très grave pour des indices de boucle, etc. En cas de besoin, utiliser des long [ 2 63,2 63 1] = [ 9223372036854775808,9223372036854775807]. +, -, *, /, % (modulo). Ex. int q = 5 / 2; int r = 5 % 2;. Décalages: n «e multiplie n par 2 e, n» e divise n par 2 e : 0b 30...b 0 << e b 31 e b 30 e...b 0 0...0 {{ e zéros 0b 30...b 0 >> e 0...0 {{ 0b 30...b e e zéros et (-n) «e = - (n «e), etc.

F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 39/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 40/49 Instructions compactes b) Booléens i = i+1; ou i += 1; (idem pour -, *, /). i++; ou ++i; (idem avec ). Post-incrémentation n = 5; m = n++; m = n; n += 1; Pré-incrémentation n = 5; m = ++n; n += 1; m = n; Déf. un boolean a pour valeur true ou false. Expressions logiques: évaluées à true ou false, combinaisons d opérateurs de comparaison arithmétiques: <, <=, >, >=, ==,!= et d opérateurs logiques:! (négation), && (et), (ou). x > 8; x == 7; y!= ((x == 1) && (z > 9)); Attention à la différence entre = affectation, et == comparaison. F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 37/49 Tables de vérité F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 38/49 NOT V F F V!x ET V F V V F F F F x && y OU V F V V V F V F x y Rem. prolongation aux entiers, en opérant bit à bit: 11&10 = 10, 01 00 = 01 XOR V F V F V F V F x ˆ y Règles d évaluation: soient C1 et C2 deux expressions booléennes, dans l instruction boolean b = (C1 C2); Java évalue C1; si C1 est vraie, C2 n est pas évaluée et b vaut true. De même, dans: boolean b = (C1 && C2); si C1 est faux, C2 n est pas évaluée, et b vaut false.

F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 43/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 44/49 F) Instructions conditionnelles But: faire prendre des décisions simples par l ordinateur. Syntaxe: if(e) I else J I et J sont des blocs d instructions, E une expression logique. J peut ne pas être présente, on écrit alors simplement: if(e) I public class Ifelse{ int devinette = 3, n; n = 4; if(n == devinette){ System.out.println("Gagné"); else{ System.out.println("Perdu"); F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 41/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 42/49 public class Ifelse{ int devinette = 3, n; n = 4; if(n == devinette) System.out.println("Gagné"); else System.out.println("Perdu"); Vivement recommandé quand il y a une seule instruction dans le bloc. Plus intéressant: public class Ifelse{ int devinette = 3, n; System.out.print("Entrer un entier : "); n = TC.lireInt(); if(n == devinette) System.out.println("Gagné"); else System.out.println("Perdu");

F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 47/49 F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 48/49 Comment ça marche dans le processeur? IV. Au travail! Chaque élève a trois comptes : 011 012 si n == 3 aller à la ligne 20 013 020 suite des instructions 011 012 si n == 3 aller à la ligne 20 013 020 suite des instructions moned : serveur de fichiers contenant les répertoires utilisateur ; poly : courrier électronique ; sil : entrer ou sortir du campus (par slogin). À quoi servent ces comptes? travailler pour l informatique et les autres matières, depuis les salles info ou sa chambre ; web, email. Mots de passe ne pas oublier la feuille pour aller en TP. Ne jamais oublier ses mots de passe ou les donner à quelqu un. F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 45/49 V. Derniers mots F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 46/49 Prochains rendez-vous Ordinateur, etc. Résumé de l introduction à Java : identificateurs, variables ; types primitifs : int, boolean; premiers programmes. Élection des délégué(e)s. Groupes TD 1 1 6 10h15 12h15 7 12 13h30 15h30 Prochain amphi: mardi 2 mai à 10h30. Tutorat: en salles info le mercredi 3 mai. Inscription à la scola à la sortie des urnes.

Où sont les salles info? Au rdc, à côté du couloir des langues. Pour y aller : passer à côté de la scola, prendre le couloir d accès aux laboratoires ; descendre le premier escalier sur votre gauche ; arrivé(e) en bas, passer dessous, c est la première porte à droite après les portes vitrées ; elle s ouvre avec le badge ; les noms des élèves sont affichés sur les portes des salles. F. Morain École polytechnique Introduction à l Informatique (INF 311) Promo X2005 49/49