Académique Documents
Professionnel Documents
Culture Documents
Démystifions
L'ordinateur n’est pas une machine pensante et intelligente, capable de résoudre des problèmes.
En fait, celui-ci n’est capable de rien si un programmeur ne lui fournit la liste des actions à exécuter.
Les opérations élémentaires que peut exécuter un ordinateur sont en nombre restreint
Les ordinateurs, quels qu’ils soient, ne sont fondamentalement capables de comprendre que quatre catégories d'ordres (en
informatique d'instructions). Ces quatre familles d'instructions sont :
la lecture / écriture en mémoire
les tests
les boucles
les opérations mathématiques
Présentation de Java
Petit historique du langage
On peut faire remonter la naissance de Java à 1991.
SUN conçoit un langage applicable à de petits appareils électriques (on parle de code embarqué).
Java fondé sur une - syntaxe très proche de C++ & concept de machine virtuelle (Pascal)
Traduire un programme source, non pas directement en langage machine, mais dans un pseudo langage universel
Ce code intermédiaire (formé de byte codes), se trouve ainsi compact et portable sur n’importe quelle machine
Si cette dernière dispose d’un programme approprié (machine virtuelle) permettant de l’interpréter dans le langage
de la machine concernée.
Notion de programme
Un programme est une suite d'instructions (d’opérations, d’ordres) compréhensible par l'ordinateur qui décrit ce
qu’il devra exécuter.
Une instruction dicte à l'ordinateur l'action nécessaire qu'il doit effectuer avant de passer à l'instruction suivante.
Exemple :
1. Demander les coefficienst a, b et c à l’utilisateur
2. Calculer delta
3. Si delta < 0 => « pas de solution »
4. Sinon si delta = 0 => x=-b/a
5. Sinon si deltat > 0 =>
Remarques :
expression : évaluer une expression arithmétique pour calculer delta
variable : mémorise une valeur dont nous avons besoin à plusieurs endroits
Premier programme
Démo : créer un projet
main() : Tous les programmes possèdent une fonction dénommée « main » ce qui signifie « principale », elle
représente le point d’entrée du programme. C'est elle que la JVM va chercher afin de lancer votre programme.
System.out.print : pour l’instant nous considérons cette insruction comme la fonction d’affichage sur le terminal
Exécution du programme
Notion de variable
Une variable, en programmation, est un espace mémoire
Deux colonnes :
- Adresses : identifie une zone mémoire
- A chaque adresse, on peut stocker une valeur (en binaire)
Toute information, quelle que soit sa nature, devra être codée sous forme binaire.
Déclaration de variable
Permet à l’ordinateur de réservé de l’espace mémoire (dont l’espace dépend du type) et donc de créer la variable.
Exemple
Erreur à la compilation
Exemples de déclaration
Opérateur d’affectation
Exemple :
Une affectation est une instruction qui permet de modifier la valeur d’une variable.
=> Attention, une affectation n'est pas une égalité mathématique
Règle générale : une expression calcule une valeur, qui doit être de même type que la variable.
a = a + 1;
=> signifie « calculer l’expression de a + 1 et ranger le résultat dans a. Cela revient à augmenter de 1 la valeur de a »
Déclaration de constantes
Il peut arriver que la valeur d'une variable ne doive pas changer après l'initialisation.
Par exemple:
Le casting (mot anglais qui signifie moulage), également appelé cast ou, parfois, transtypage, consiste à effectuer une
conversion d'un type vers un autre type.
System : ceci correspond à l'appel d'une classe qui s'appelle "System". C'est une classe utilitaire qui permet
surtout d'utiliser l'entrée et la sortie standard.
out : objet de la classe System qui gère la sortie standard.
println : méthode qui écrit dans la console la chaîne passée en paramètre.
La notion de paquetage correspond à un regroupement logique sous un identificateur commun d’un ensemble de classes.
Elle est proche de la notion de bibliothèque que l’on rencontre dans d’autres langages.
keyb, variable qu'on utilise pour lire des valeurs au clavier, ici un entier :
De façon générale, pour récupérer un type de variable, il vous suffit d'appeler la méthode se prénommant :
next<Type de variable commençant par une majuscule>
Exemples :
=> s contient tous les caractères tapés par l'utilisateur, jusqu'à l'appui de return.
Attention : La méthode nextLine se combine mal avec les autres méthodes de lecture.
Si on tape: 14
terre
mer
=> i contient 14, s1 est vide, s2 contient terre !
car nextLine() lit ce qui suit 14 jusqu'à la fin de la ligne, c'est-à-dire rien !
Expressions et opérateurs
A droite du signe égal dans une affectation se trouve une expression:
Une expression
calcule une valeur, qui doit être de même type que la variable.
une expression possède son propre type
peut-être simplement une valeur littérale (ex : n=4 ou d=3.14)
ou une formule qui met en œuvre des opérateurs:
n*n
n * (n + 1) + 3 * n - 2
Les opérateurs
Sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer.
Les principales familles d'opérateurs:
Les opérateurs arithmétiques
Les opérateurs de test
Les opérateurs logiques booléens
Note : division
si la division se fait entre deux entier (int), il s'agit de la division entière :
1 / 2 vaut 0 (1 = 0 x 2 + 1) 5 / 2 vaut 2 ( 2 = 2 x 2 + 1)
1 / 2.0 vaut bien 0.5 (1 convertit en double 1.0)
Exemple :
Exercice : Quelle est la valeur de la variable moyenne après l’exécution de la séquence d’instruction suivante ?
Solutions :
Opérateurs raccourcis : += , -= , *= , /=
a=a+b; est équivalent à a += b ;
c=c*d; est équivalent à c *= d ;
Pour les variables entières, il existe un opérateur d’incrémentation (++n) et un autre de décrémentation (--m) :
++n ; est équivalent à n=n+1;
--m ; est équivalent à m=m-1;
Erreur de compilation :
Type mismatch: cannot convert from double to int
Règle : En Java, il est impossible d'affecter une valeur décimale par exemple
de type double à une variable de type int.
Remarque : En revanche, il est possible d'affecter une valeur de type int à une
variable de type décimale, par exemple double (pas de perte de précision).
Ecrire l’écran
Démo : Exécution du programme pas-à-pas
int n = 4;
int nCarre;
nCarre = n * n;
int nCarre = n * n;
System.out.println("La variable n contient " + n);
System.out.println("Le carre de " + n + " est " + nCarre + ".");
System.out.println("Le double de n est " + 2 * n + ".");
Fonctions mathématiques
double angle = 10 * Math.PI / 180;
double s = Math.sin(angle); // conversion degré radian
System.out.println("Le sinus d'un angle de 10 degrés est de : "+s);
Annexe - dessin