1 / 202

Programmation

Programmation. Avant-propos. Programmation / Avant-propos. Programmation Ensemble des activités permettant l'écriture de programmes informatiques On parle de Conception logicielle. Programmation / Avant-propos.

odeda
Download Presentation

Programmation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programmation Avant-propos

  2. Programmation / Avant-propos • ProgrammationEnsemble des activités permettant l'écriture de programmes informatiquesOn parle de Conception logicielle

  3. Programmation / Avant-propos • De l'architecture machine aux langages de haut niveauxUn ordinateur est une machine permettant de traiter des informations selon des procéduresIl est doté, entre autre, • d'un processeur • d'une mémoire centrale qui interagissent CPU Mémoire

  4. Algorithme Procédure 1 Procédure 2 Procédure 3 Procédure 4 Procédure 5 Procédure n Programmation / Avant-propos • Les procéduresUne procédure est une opération à effectuer • AlgorithmeUn algorithme est une suite de procédures à réaliser

  5. Programmation / Avant-propos • ImplémentationLa mise en œuvre d'un algorithme consiste en la traduction en langage de programmationOn parle d'implémentation • Langage de bas / haut niveau Principe:Une recette de cuisine doit être plus ou moins détaillée en fonction de l'expérience du cuisinier

  6. Programmation / Avant-propos • Langage de bas / haut niveau (suite)Le niveau de détail d'un algorithme est proportionnel à celui du langage de programmation: • Utilisation d'un langage de bas niveau: Nécessité de détailler l'algorithme • Utilisation d'un langage de haut niveau:Possibilité de moins détailler l'algorithme

  7. Programmation / Avant-propos • Exemple concret: La soustraction • Acquis du module I1: • Je connais la méthode permettant de réaliser • l'addition (a+b) • la complémentation à 2 (cplt2(x)) • Algorithmiquea – b = a + (-b) = a + cplt2 (b) • J'ai maintenant la méthode permettant de réaliser la soustraction

  8. Programmation / Avant-propos • Acquis du module I2: • J'ai à disposition: • un composant réalisant l'addition d'un registre 8 bits (add) • un composant réalisant la complémentation à 2 (C2) • Implémentation (langage bas niveau) a b c minus add C2

  9. Programmation / Avant-propos • Acquis (futurs !) du module I3 • J'ai à disposition une fonction permettant de réaliser: • l'addition (a+b) • la négation (-b) • Implémentation (langage haut niveau) • c=a+(-b)

  10. c b t a -2 4 -4 2 Programmation / Avant-propos langage humainement compréhensible langage compréhensible par la machine Algorithme Programme stocker a Processeur stocker b procédures traduction (compilation) réaliser -b stocker dans t addition (a,t) opérations entrée/sortie stocker dans c Mémoire

  11. Programmation / Avant-propos • De l'algorithmique au programme • L'algorithmique est l'étape essentielle (80%) de la conception d'un programmeMAIS • L'algorithme n'est pas directement compréhensible par la machine…

  12. Programmation / Avant-propos • Le langage de programmation: • est une traduction de l'algorithme dans un langage fini et non ambiguë • offre un certain nombre de procédures • Le compilateur • est l'outil permettant de traduire le langage de programmation en langage machine • dépend du langage utilisé • est fortement lié à l'architecture de la machine

  13. Algorithme stocker a stocker b réaliser -b stocker dans t addition (a,t) stocker dans c Programmation / Avant-propos • Synthèse Intervention du programmeur Utilisation de logiciel de compilation Code source Programme traduction en langage de programmation read a traduction (compilation) read b t=-b c=a+t

  14. Java Introduction

  15. Java • Rappel sur l'étape de la compilation • Compilation: • Rôle:passage du langage de programmation vers un langage machine • Conséquences:Lors de la compilation, des liens sont établis entre: • le programme, • le système d'exploitation (Microsoft Windows, Linux, MacOS, …) • l'architecture de la machine (Intel, Risc, Motorola, …)

  16. Java • Conséquences (suite) • Un tel programme ne peut s'exécuter que sur la plateforme pour laquelle il a été compilé ! • Nécessité de re-compiler pour les différentes plateformes ciblées • Même sur une même architecture machine, un programme est lié au système d'exploitation

  17. Légende Indépendant de la machine Dépendant de la machine Exécutable Exécutable Exécutable Exécutable Exécutable Unix Linux Windows MacOS PalmOS Architecture 1 Risc 6000 Architecture 2 Intel x86 Architecture 3 Mac G5 Architecture 4 Intel xScale Langages compilés et limitations fichier source du programme Compilation

  18. Portabilité • Notion de portabilitéCapacité d'un programme à être indépendant du système d'exploitation et de l'architecture machine Impossible ! Programme portable Unix Linux Windows Architecture 1 Risc 6000 Architecture 2 Intel x86

  19. Java et la portabilité • Solution proposée:Construire une machine virtuelle: • joue le rôle de plateforme virtuelle • dépendante de l'architecture machine et du SE • opère un langage machine virtuel indépendant de l'architecture réelle et du SE réel Code source Java Programme Java Machine virtuelle SE / Architecture

  20. Machine virtuelle Machine virtuelle Machine virtuelle Machine virtuelle Machine virtuelle Unix Linux Windows MacOS PalmOS Architecture 1 Risc 6000 Architecture 2 Intel x86 Architecture 3 Mac G5 Architecture 4 Intel xScale Pseudo-Langage interprétéSchéma du principe Java fichier source du programme Programme portable ! Compilation Programme Java

  21. Conséquences • Avantage • Portabilité • Le programme ne nécessite pas de recompilation pour un autre couple SE/LM • Inconvénient • Vitesse d'exécution • La machine virtuelle interprète le pseudo langage pour exécuter des instructions machines

  22. Java Présentation

  23. monProgramme.java API JVM Plateforme matérielle Java • Java est un langage de programmation orienté objet • La plateforme Java: • Définition:Une plateforme est l'environnement matériel et logiciel dans lequel s'exécute un programme • Composition: • La JVM (Java Virtual Machine)Eléments du langage natif • La J-API (Java Application Programming Interface)Eléments supplémentaires

  24. Java: Fiche signalétique • Propriétaire: Sun Microsystem • Naissance: fin 1995 • Signe particulier: • fortes compétences dans la créations d'applications client-serveur et Internet • Langage multi-plateforme • Domaines d'applications multiple: • bureautique, • graphique, • multimédia, • base de données, • …

  25. Java Techniques de base

  26. Compilation et exécution sous Java • Mon premier programme: HelloWorld ! • Remarques • Le nom de la classe principale est le nom du fichier • Une seule public class par fichier • Attention à la casse ! Hello.java publicclass Hello { publicstaticvoid main (String [] args) { System.out.println("Bonjour"); } }

  27. Invocation d’un programme • Une classe est exécutable QUE si elle contient une méthode main() • Invocation:java Hello(Attention: pas d’extension !)

  28. Compilation et exécution sous Java C:\Hello>dir Le volume dans le lecteur C n'a pas de nom. Le numéro de série du volume est 78C3-E609 Répertoire de C:\Hello 08/03/2005 14:12 <REP> . 08/03/2005 14:12 <REP> .. 08/03/2005 14:06 142 Hello.java 1 fichier(s) 142 octets 2 Rép(s) 5 089 857 536 octets libres C:\Hello> C:\Hello>dir Le volume dans le lecteur C n'a pas de nom. Le numéro de série du volume est 78C3-E609 Répertoire de C:\Hello 08/03/2005 14:12 <REP> . 08/03/2005 14:12 <REP> .. 08/03/2005 14:06 142 Hello.java 1 fichier(s) 142 octets 2 Rép(s) 5 089 771 520 octets libres C:\Hello>javac Hello.java C:\Hello> Répertoire de C:\Hello 08/03/2005 14:12 <REP> . 08/03/2005 14:12 <REP> .. 08/03/2005 14:06 142 Hello.java 1 fichier(s) 142 octets 2 Rép(s) 5 089 771 520 octets libres C:\Hello>javac Hello.java C:\Hello>dir Le volume dans le lecteur C n'a pas de nom. Le numéro de série du volume est 78C3-E609 Répertoire de C:\Hello 08/03/2005 14:12 <REP> . 08/03/2005 14:12 <REP> .. 08/03/2005 14:12 417 Hello.class 08/03/2005 14:06 142 Hello.java 2 fichier(s) 559 octets 2 Rép(s) 5 089 771 520 octets libres C:\Hello> 08/03/2005 14:12 <REP> . 08/03/2005 14:12 <REP> .. 08/03/2005 14:06 142 Hello.java 1 fichier(s) 142 octets 2 Rép(s) 5 089 771 520 octets libres C:\Hello>javac Hello.java C:\Hello>dir Le volume dans le lecteur C n'a pas de nom. Le numéro de série du volume est 78C3-E609 Répertoire de C:\Hello 08/03/2005 14:12 <REP> . 08/03/2005 14:12 <REP> .. 08/03/2005 14:12 417 Hello.class 08/03/2005 14:06 142 Hello.java 2 fichier(s) 559 octets 2 Rép(s) 5 089 771 520 octets libres C:\Hello>java Hello Bonjour C:\Hello>

  29. Applet • Pré requisIl faut créer une page HTML • VisualisationAutomatique, après chargement par un navigateurAttention: la JRE est requise ! <HTML> <HEAD> <TITLE> test applet Java </TITLE> </HEAD> <BODY> <APPLET code="NomFichier.class" width=270 height=200> </APPLET> </BODY> </HTML>

  30. Java Éléments de base, Types natifs

  31. Blocs et instructions • InstructionUne instruction se termine par ;Peut tenir sur plusieurs lignes • Exemplechar v = 'c';char u='d';

  32. Blocs et instructions • BlocUn bloc de code est délimité par { et }Contient un ensemble d'instructions { … … instructions … … }

  33. Types natifs • Java est un langage de manipulation d'objetsCependant, tout n'est pas objet !Il existe un nombre fini de types natifsLa taille mémoire des types natifs est constant quelque soit la plateforme !

  34. Types natifs • boolean • description type booléen • intervalle de variationfalse ou true • espace mémoire 1 bit • exemple: boolean var = true;

  35. Types natifs • boolean (suite) • Autre exemples boolean v1 = 2; // ERREUR boolean v2 = 'a'; // ERREUR • Remarque pas de conversion possible vers d'autre types

  36. Types natifs • byte • description type octet signé • intervalle de variation [-128 ; +127] • espace mémoire 8 bits • exemple byte var = 0x12;

  37. Types natifs • byte (suite) • Autres exemples byte v1 = 12; // initialisation base 10 byte v2 = 'a'; // initialisation caractère byte v3 = "toto"; // ERREUR

  38. Types natifs • char • description caractère unicode • intervalle de variation [0 (\u0000); 65535 (\uFFFF)] • espace mémoire 16 bits • exemple char var = 'a';

  39. Types natifs • char (suite) • Autre exemples char v1 = 12; char v2 = "ab"; // ERREUR char v3 = 0x12; char v4 = \u0014; • Remarque entouré de cotes simples

  40. Types natifs • short • description entier court signé • intervalle de variation [-32768 ; 32767 ] • espace mémoire 16 bits • exemple short var = 1452;

  41. Types natifs • int • description entier signé • intervalle de variation [-2147483648 ; 2147483647 ] • espace mémoire 32 bits • exemple: int v = -123;

  42. Types natifs • long • description entier long • intervalle de variation [-9223372036854775808 ; 9223372036854775807 ] • espace mémoire 64 bits • exemple: long v = 1524454;

  43. Types natifs • float • description virgule flottante simple précision • intervalle de variation [1.401e-045 ; 3.40282e+038 ] • espace mémoire 32 bits • exemple float v = 123.45;

  44. Types natifs • double • description virgule flottante double précision • intervalle de variation [2.22507e-308 ; 1.79769e+308 ] • espace mémoire 64 bits • exemple double v = 123.45;

  45. Attention • L'affectation numérique peut générer des ambiguïtés ! • Problématique:Quel est le type des variables suivantes: 'a' char 0x12 int 123 int 123.45 double ?

  46. Attention • Problématique (suite)long v = 922337203685477508; // ERREURcar la valeur numérique est de type interreur de type 'out of range' car la borne sup. du type int( v >> 2147483647 ) • Effet perverslong v = 152454*2243*100;L'évaluation numérique de v est 34195432200 (<BS(long))Or, l'instruction System.out.println("v=" + v);Affiche v=-164306168

  47. Valeur numériques • QuestionComment créer une valeur numérique de type long ?? • Suffixe numérique • type long: nombrel ou nombreL • type float: nombref ou nombreF • type double: nombred ou nombreD

  48. Valeur numériques • Exemples:long v = 922337203685477508L;long v = 152454L*2243*100;System.out.println("v=" + v); Affiche v=34195432200

  49. Les variables • Une variable possède: • un identifiant • un type • une valeur

  50. Les variables • Déclaration simpletype identifiant ; • Déclaration multipletype identifiant_1, identifiant_2(, …) ; • Déclaration affectation simpletype identifiant = valeur; • Déclaration affectation multipletype identifiant_1 = valeur_1, identifiant_2 = valeur_2(, …) ;

More Related