Bases de la programmation Objectif du cours Plan de cette partie ...

De
Publié par

  • mémoire - matière potentielle : périphérique
  • mémoire - matière potentielle : masse car grosses
  • mémoire - matière potentielle : masse utilisation
  • cours - matière potentielle : poo de l3 miage ƒ
  • mémoire - matière potentielle : centrale ƒ
  • mémoire - matière potentielle : centrale
  • cours - matière potentielle : sur l' architecture
  • mémoire - matière potentielle : centraleprocesseur
  • mémoire
  • cours - matière potentielle : ƒ
1Bases de la programmation Université de Nice - Sophia Antipolis Richard Grin Version 1.2.5 – 24/9/11 Objectif du cours ƒ Introduction à la programmation orientée objet pour pouvoir suivre le cours de POO de L3 Miage ƒ Aucune connaissance requise en programmation ƒ Les grandes étapes du cours : ƒ programmation impérative ƒ programmation structurée ƒ les objets ƒ Langage utilisé : Java Richard Grin Bases de la programmation page 2 Richard Grin Bases de la programmation page 3 Plan de cette partie ƒ Composants d'un ordinateur ƒ Programmes et langages informatiques ƒ Variables, instructions ƒ Premier programme en Java ; compilation, exécution ƒ Compilation, interprétation ƒ Exécution Richard Grin Bases de
  • deuzaine
  • variable ƒ alternative
  • emplacement mémoire
  • variable ƒ
  • variables ƒ
  • instructions
  • instruction
  • java
  • langages
  • langage
  • programme
  • programmes
  • nom
  • noms
Publié le : mercredi 28 mars 2012
Lecture(s) : 90
Source : deptinfo.unice.fr
Nombre de pages : 17
Voir plus Voir moins

ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Objectif du cours
Introduction à la programmation orientée objet pour
pouvoir suivre le cours de POO de L3 Miage
Aucune connaissance requise en programmationBases de la programmation
Les grandes étapes du cours :
programmation impérative
Université de Nice - Sophia Antipolis programmation structurée
les objetsRichard Grin
Version 1.2.5 – 24/9/11 Langage utilisé : Java
http://deptinfo.unice.fr/~grin
Richard Grin Bases de la programmation page 2
Plan de cette partie
Composants d’un ordinateur
Programmes et langages informatiques
Variables, instructions Composants d’un ordinateur
(plus de détails dans le cours sur Premier programme en Java ; compilation,
l’architecture des ordinateurs)exécution
Compilation, interprétation
Exécution
Richard Grin Bases de la programmation page 3 Richard Grin Bases de la programmation page 4
Utilisation des composants (1)Processeur Mémoire centrale
Programme Un programme est entré dans la mémoire
Données centrale (tapé au clavier ou copié depuis le
disque dur)
L’utilisateur lance l’exécution du programme
Les instructions du programme sont exécutées
Unité centrale
par le processeur
MémoirePériphériques Le programme utilise la mémoire centrale pour Entrées de masse
conserver des données calculées qui lui seront sorties
utiles plus tard dans l’exécution
Disque durRichard Grin Bases de la programmation page 5 Richard Grin Bases de la programmation page 6

ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Utilisation des composants (2) Unités de mesure
1 bit : unité d’information de base, chiffre binaire 0 L’utilisateur peut transmettre des informations à
ou 1l’aide du clavier ou de la souris
Octet : (byte en anglais) groupement de 8 bitsLe programme peut aussi lire des informations
3 sur le disque dur K = 1000 = 10 ; Kilo ; Ko = 1000 octets
6Les résultats de l’exécution sont affichés à l’écran M = 1 000 000 = 10 ; Mega ; Mo = 1000 Ko
ou enregistrés dans le disque dur (pour une 9G = 1 000 000 000 = 10 ; Giga ; Go = 1000 Mo
session future d’utilisation) 12T = 1 000 000 000 000 = 10 ; Tera ; To = 1000 Go
Kb = Kilobyte = Ko ; Mb, Gb,…
Richard Grin Bases de la programmation page 7 Richard Grin Bases de la programmation page 8
Codage binaire (1) Codage binaire (2)
Base 2 ; pas 10 comme les nombres que l’on a 2 bits permettent de coder 2² valeurs :
l’habitude de manipuler 00, 01, 10, 11
0 : 0 On pourrait par exemple coder les nombres
1 : 1 décimaux 1, 2, 3, 4
2 : 10 (1 « deuzaine ») ou alors 0, 1, 2, 3
3 : 11 -2, -1, 0, 1
4 : 100 (1 deuzaine de deuzaine) …
5 : 101

Richard Grin Bases de la programmation page 9 Richard Grin Bases de la programmation page 10
Calculs en binaire Codage
80 + 0 = 0 1 octet peut coder 2 = 256 valeurs différentes
0 + 1 = 1 Les nombres de 0 à 257
1 + 1 = 10 (« je retiens 1 » ou « je retiens une ou de -128 à 127
deuzaine ») ou 256 signes typographiques, par exemple,
10 + 1 = 11 lettres majuscules et minuscules, chiffres, signes
de ponctuation, symboles des opérations 11 + 1 = 100
arithmétiques,…11 + 11 = 110
nExercice : démontrer que n bits peuvent coder 2
valeurs différentes
Richard Grin Bases de la programmation page 11 Richard Grin Bases de la programmation page 12

ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Principales caractéristiques Principales caractéristiques
des composants des composants
Processeur : « intelligence » de l’ordinateur, il sait Mémoire centrale : rapide (accès en nanosecondes,
calculer et faire des choix (exécuter une instruction -910 ) mais volatile (valeurs perdues entre 2 sessions
ou une autre suivant le contexte : si une valeur vaut de travail) ; capacités moyennes de quelques Go
0, faire ceci, sinon faire cela)
Mémoire périphérique : pas vraiment rapide (accès
Appelé aussi CPU (Central Process Unit)
en millisecondes) mais non volatile ; appelée
Vitesse de quelques GHz (Hz = Hertz = nombre mémoire de masse car grosses capacités de
d’opérations élémentaires par seconde) centaines de Go à quelques To
Calculs avec des entiers ou « en virgule flottante » Question : combien de fois plus lent que la mémoire
centrale ?Peut contenir plusieurs cœurs pour faire des calculs
en parallèle
Richard Grin Bases de la programmation page 13 Richard Grin Bases de la programmation page 14
Programme informatique
Il sert à résoudre un problème (faire un calcul,
exécuter des actions, aider à la prise de décision,
dessiner,…)Programmes et langages
Il est écrit dans un langage qui contient des ordres
informatiques que l’ordinateur peut « comprendre »
Ce langage contient des instructions élémentaires
qui disent à l’ordinateur ce qu’il doit faire
Richard Grin Bases de la programmation page 15 Richard Grin Bases de la programmation 16
Langages informatiques Code source – code exécutable
Un ordinateur sans aucune logiciel ne comprend Le code source est constitué des instructions d’un
que le langage implanté dans son processeur programme écrit dans un langage de haut niveau
Ce langage est de très bas niveau La traduction dans le langage de l’ordinateur
s’appelle le code exécutableLes informaticiens écrivent des programmes en
utilisant des langages de plus haut niveau (plus
proches du langage humain)
Des programmes, appelés compilateurs ou
interpréteurs, traduisent ensuite ces programmes
dans le langage du processeur
Richard Grin Bases de la programmation page 17 Richard Grin Bases de la programmation page 18

ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Langages informatiques Programmation impérative
Il existe de très nombreux langages informatiques La programmation impérative consiste à écrire un
Ces langages peuvent être regroupés en programme en donnant des instructions qui
quelques catégories principales, appelées des modifient l’état du programme (les données
paradigmes de programmation manipulées par le programme rangées dans des
variables identifiées par des noms)Un paradigme est une façon de représenter, de
modéliser une réalité Exemple :
lire x;
si (x > max)
max = x;

Richard Grin Bases de la programmation page 19 Richard Grin Bases de la programmation page 20
Programmation (orientée) objet
Manipule des objets qui s’envoient des messages Le but final de ce cours est d’introduire au
paradigme objetLes messages envoyés aux objets peuvent être
décrits en partie en utilisant la programmation Pour apprendre les bases de la programmation, il
impérative (variables et « si ») est plus simple d’étudier tout d’abord le
paradigme impératifExemple de code de l’objet « employé » :
[comptable], quel sera mon salaire le mois prochain ?
si (salaire < maDemande -100)
[entreprise], je démissionne
Les objets entre [ ] Les messages en italiques
Richard Grin Bases de la programmation page 21 Richard Grin Bases de la programmation page 22
Instructions
Les unités de programmation d’un programme
informatique sont les instructions
Les instructions sont regroupées en modules pour Instructions, variables
gérer la complexité et pour représenter les
concepts utilisés par le langage (fonctions, objets
ou messages par exemple)
Dans le langage Java que nous allons utiliser, les
instructions sont regroupées dans des blocs
(délimités par des accolades), des méthodes (pour
les messages) et des classes (pour les objets)
Richard Grin Bases de la programmation page 23 Richard Grin Bases de la programmation page 24

ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Instruction Types d’instructions
Pour les langages habituels (langage C par Une instruction comporte des mots-clés ou
exemple) de type impératif les grands types symboles définis par le langage et des
d’instructions sont :expressions qui ont une valeur au moment de
déclaration du type d’une variablel’exécution
affectation d’une valeur à une variableExemple :
if (x == 0) alternative : selon la valeur d’une expression,
y = 5 * x; une séquence d’instructions est exécutée, ou
Les types d’instruction dépendent du langage une autre
qu’on utilise, en particulier du niveau d’abstraction répétition : une séquence d’instructions est
du langage par rapport au processeur répétée un certain nombre de fois
Richard Grin Bases de la programmation page 25 Richard Grin Bases de la programmation page 26
Convention sur les noms Variable
de variable en Java
Une variable correspond à un emplacement dans
Peut contenir des lettres et des chiffres : x12la mémoire centrale
Commence par une lettre minuscule : totalUne variable est utilisée par le programme pour
enregistrer une valeur qu’il réutilisera dans la Si composé de plusieurs mots, les mots internes
suite de son exécution commencent par une lettre majuscule :
totalDesValeursUne variable est identifiée par son nom
Affectation : enregistrer une nouvelle valeur dans
une variable ; par exemple « x = 8; »
Richard Grin Bases de la programmation page 27 Richard Grin Bases de la programmation page 28
Affectation Exemple
x = 5;x = expression;
y = x * 3;2 étapes bien distinctes :
if (y >= 15) {1. calcul de l’expression
y = y + 10;2. rangement de la valeur calculée à
l’emplacement mémoire désigné par la variable }
Exemple :
Quelle valeur aura y à la fin de ce code ?x = x + 1;
Richard Grin Bases de la programmation page 29 Richard Grin Bases de la programmation page 30

ƒ
ƒ
ƒ
ƒ
ƒ
Echanger la valeur de 2 variables
xyx = 10;
x = 10;
10 15y = 15; y = 15;
x = y;
y = x;
Quelles valeurs auront x et y à la fin de ce code ?
Richard Grin Bases de la programmation page 31 Richard Grin Bases de la programmation page 32
xy xy
x = y; ?? x = y;10 15 15 15
Richard Grin Bases de la programmation page 33 Richard Grin Bases de la programmation page 34
xy xy
x = 10;
15 15 10 15
y = 15;
t
La valeur 10 est perdue ! Par quelle instruction continuer ?
Il aurait fallu la conserver avant d’exécuter « x = y »
Comment conserver une valeur qui sera utilisée Nouvelle variable t pour ranger la valeur de x qui
plus tard ? va être « écrasée » par 15
En conservant cette valeur en mémoire centrale
Donc en l’affectant à une variable
Richard Grin Bases de la programmation page 35 Richard Grin Bases de la programmation page 36

ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
xy xy
t = x; x = y;
10 15 15 15
t t
Et ensuite ? Et ensuite ?10 10
Richard Grin Bases de la programmation page 37 Richard Grin Bases de la programmation page 38
« = » en Java et en mathématiques
xy Ne pas confondre le « = » de l’affectation avec le
y = t;
15 10 « = » mathématique
Il n’est pas symétrique : t
à gauche doit se trouver un nom de variable
10
qui désigne un emplacement mémoire
la droite peut contenir n’importe quelle
expression qui calcule une valeur qui peut être
rangée dans l’emplacement mémoire désigné
par la gauche
Richard Grin Bases de la programmation page 39 Richard Grin Bases de la programmation page 40
Exemples Déclaration d’une variable
a = a + 1 est une équation mathématique qui n’a En Java, toute variable doit être déclarée avant
pas de solution d’être utilisée
a = a + 1, en Java, incrémente de 1 la valeur de La déclaration d’une variable indique le type des
la variable a données qu’elle contiendra
Une valeur entière est déclarée de type «int » a + 5 = 25 n’a aucun sens en Java car « a + 5 »
ne désigne aucun emplacement mémoire (integer = entier en anglais)
Richard Grin Bases de la programmation page 41 Richard Grin Bases de la programmation page 42

ƒ
ƒ
ƒ
ƒ
ƒ
Code pour échanger les valeurs de x et y Déclaration d’une variable
int x; int x;
int y; int y;
Qu’est-ce qu’il manque ?x = 10; int t;
y = 15; x = 10;
x = y; y = 15;
y = x; t = x;
x = y;
y = t;
Richard Grin Bases de la programmation page 43 Richard Grin Bases de la programmation page 44
Déclaration/initialisationInitialisation dans la déclaration
de plusieurs variables
Il est possible d’affecter une valeur initiale à une
variable lors de sa déclaration : Plusieurs variables de même type peuvent être
int x = 10; déclarées (et même initialisées) dans une seule
int y = 15; instruction :
int t = x; int x, y;
x = y; int m = 5, n = 10;
y = t;
Richard Grin Bases de la programmation page 45 Richard Grin Bases de la programmation page 46
Le type ne peut être changé Bloc d’instructions
En Java, le type d’une variable ne peut être Presque tous les langages ont besoin de
changé regrouper des instructions
Ce code est interdit : En Java les accolades permettent de regrouper
int x; plusieurs instructions en un bloc d’instructions

double x;

Richard Grin Bases de la programmation page 47 Richard Grin Bases de la programmation page 48

ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Exemple Portée d’une variable
int x = z + 3; La portée d’une variable désigne la portion du
programme où la variable peut être utiliséeint y = w * 2;
Portée d’une variable en Java :int t;
de l’endroit où elle a été déclarée if (x < y) {
jusqu’à la fin du bloc où elle a été déclaréet = x;
x = y;
y = t;
Que fait ce code ?}
Richard Grin Bases de la programmation page 49 Richard Grin Bases de la programmation page 50
Exemple Langages typés
int x = …; Java est un langage typé : on doit déclarer le type
int y d’une variable avant de l’utiliser
if (x < y) { Il existe d’autres langage non typés (Javascript,
int t = x; par exemple, pour programmer les clients Web)
x = y; Portée de t dans lesquels les types des variables ne sont pas
y = t; indiqués dans le programme
} Les langages typés sont moins souples mais plus
int z = t + 2; sûrs car davantage d’erreurs du développeur
Erreur ! peuvent être détectées par le langage (par
exemple une erreur dans le nom de la variable)
Richard Grin Bases de la programmation page 51 Richard Grin Bases de la programmation page 52
Afficher la valeur d’une variable (1) Afficher la valeur d’une variable (2)
La « formule magique » (sera expliquée plus tard) System.out.print(x);
pour faire afficher sur l’écran la valeur d’une affiche la valeur de la variable, sans passer
variable x est ensuite à la ligne
System.out.println(x); Exemple :
Exemple : x = 10;
x = 10; y = 20;
System.out.println(x); System.out.print(x);
affichera 10 sur l’écran, suivi d’un passage à la System.out.println(y);
ligne affiche 1020 sur l’écran, suivi d’un passage à la
ligne
Richard Grin Bases de la programmation page 53 Richard Grin Bases de la programmation page 54

ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Afficher un texte Variable de type texte
System.out.print("Hello world"); Une variable peut contenir un texte
affiche « Hello world » sur l’écran Il faut la déclarer de type String :
System.out.println("Hello world"); String nom = "Dupond";
affiche « Hello world » sur l’écran, et passe à la
ligne ensuite
Richard Grin Bases de la programmation page 55 Richard Grin Bases de la programmation page 56
Nombres à virgule Affichage texte et nombre
Le type double indique une variable qui peut Soit la ligne de code
int x = 10;contenir un nombre à virgule (remplacée par un
«. ») : Comment faire afficher « Valeur de x = 10 »
double largeur = 12.5; en utilisant la variable x ?
System.out.print("Valeur de x = ");Le nombre de chiffres après la virgule n’est pas
System.out.println(x);fixé ; le type double désigne des nombres à
En fait on peut aussi utiliser la concaténation des « virgule flottante »
chaînes de caractères de Java :
System.out.println("Valeur de x = " + x);
(le nombre entier 10 est traduit par Java en String)
Richard Grin Bases de la programmation page 57 Richard Grin Bases de la programmation page 58
Commentaires en Java (1) Commentaires en Java (2)
Lorsqu’un programme contient du code qui n’est 3 façons d’ajouter des commentaires
pas complètement évident il est important En fin de ligne (ne peut couvrir plusieurs lignes) :
d’ajouter des commentaires pour l’expliquer x = 12; // pour indiquer que ….
En effet, un programme utile sera souvent modifié Juste avant le code (une ou plusieurs lignes) :
/* Pour indiquer que … */pour l’adapter à un changement de contexte ou
x = 12;pour corriger des erreurs ; le code doit donc être
Idem /* mais pour la javadoc (avant déclarations facilement compris par les développeurs futurs
qui le modifieront ou définitions) :
/** Pour indiquer que … */
int x = 12;
Richard Grin Bases de la programmation page 59 Richard Grin Bases de la programmation page 60
10

Soyez le premier à déposer un commentaire !

17/1000 caractères maximum.