1
Langage, entrées et sorties
Joël Quinqueton
Dépt MIAp, UFR IV
UPV - Université Montpellier III
Plan
•Structure d’un programme
•Les entrées sorties
Java
•La programmation ajoute à l’écriture des
algorithmes la difficulté de les formuler
selon des règles strictes (et propres au
langage utilisé)
•Utilisation stricte de
–délimiteurs : point-virgule, accolade,
parenthèse, etc.
–mots réservés : types de variable, formulation
des boucles, etc.
Java – un exemple
public class PremierProgramme {
/**
* Un premier programme Java pour débuter
*/
public static void main(String[] args) {
System.out.println("Bienvenue au club
!");
System.out.println("Hello");
}
}
Java – classe et fichier
public class PremierProgramme {
/**
* Un premier programme Java pour débuter
*/
public static void main(String[] args) {
System.out.println("Bienvenue au club !");
System.out.println("Hello");
}
}
•Fichier PremierProgramme.java
Java – public ?
public class PremierProgramme {
/**
* Un premier programme Java pour débuter
*/
public static void main(String[] args) {
System.out.println("Bienvenue au club
!");
System.out.println("Hello");
}
}
2
Java – blocs et accolades
public class PremierProgramme {
/**
* Un premier programme Java pour débuter
*/
public static void main(String[] args) {
System.out.println("Bienvenue au club
!");
System.out.println("Hello");
}
}
Java – static void main …
public class PremierProgramme {
/**
* Un premier programme Java pour débuter
*/
public static void main(String[] args) {
System.out.println("Bienvenue au club
!");
System.out.println("Hello");
}
}
Java – variables
•Variables : il faut les annoncer avant de les
utiliser, et préciser leurs types
/** des nombres entiers */
int entier1, entier2;
entier1 = 10;
entier2 = 2;
entier2 = entier2 + 3 * entier1;
/** un nombre en virgule flottante
*/
float reel = 3.1415926589;
déclaration
initialisation
affectation
Déclaration ET initialisation
Java – instructions
•Instructions : elles sont marquées par des
points-virgules
Java – commentaires
•Commentaires : ils sont placés entre « /* »
et « */ » (dans cet ordre)
Java – affichage à l’écran
3
Java – affichage à l’écran
•Avec saut de fin de ligne
•System.out.println(…);
•Sans saut de fin de ligne
•System.out.print(…);
Java – lecture au clavier
•Lecture d’un entier
•Keyboard.readInt();
•Lecture d’un réel
•Keyboard.readFloat();
Java – lecture au clavier
public class Addition {
public static void main(String[] args) {
int entier1, entier2;
entier1 = Keyboard.readInt();
entier2 = Keyboard.readInt();
System.out.println("La somme des entiers " +
entier1 + " et " + entier2 + ! " vaut " +
(entier1 + entier2));
}
}
Java – chaînes de caractères
•Un caractère : une lettre qui se code en
mémoire par un entier (code ASCII,
Unicode)
•Une chaîne de caractères : une suite de
caractères en mémoire
•On les traite comme des objets à part entière
•On leur applique des opérations et des
transformations
Java – classe String
•Un type complexe qui désigne les chaînes
de caractères
•Une classe qui met à disposition un
ensemble d’opérations et de transformations
sur les chaînes de caractères
Java – classe String
String chaine1;
chaine1 = "Voilou !!!";
String chaine2 =
Keyboard.readString();
System.out.println(chaine1 + "
" + chaine2);
4
String – méthodes
String chaine = "Voilou !!!";
int position = chaine.indexOf(‘o’);
/** retourne la position du premier
"o", soit 1 */
position = chaine.indexOf(‘o’ ,
position);
/** retourne la position du second
"o" */
Conditionnelles
•Instruction if
–Pas de then
•La condition doit être exprimée entre
parenthèses
•Imbrication du bloc d’instruction sousl’effet
de la condition : { }
•If (test) {bloc exécuté si le est est vrai} else
{bloc exécuté si le test est faux}
Boucles - while
•Sommes des N premiers entiers
int N = Keyboard.readInt();
int k = 1;
int somme = 0;
while (k <= N) {
somme = somme + k;
k = k + 1;
}
•While = «!tant que!»
Boucles - for
•L’expression for intègre les trois ingrédients de la
boucle
int N = Keyboard.readInt();
int somme = 0;
for(int k = 1; k <= N; k = k+1) {
somme = somme + k;
}
•la variable k n’est utilisée que pour la boucle
•sa déclaration est faite dans le corps de
l’instruction
Entrées / Sorties: le problème
•L’utilisateur doit-il coder un nombre dans la
norme IEEE pour le communiquer à un
programme ?
•Les humains sont habitués à réfléchir en
base 10 / Les ordinateurs se régalent de la
base 2
•Les humains utilisent souvent le clavier
pour communiquer avec un programme
Entrées / Sorties: leur nature
•Pour l’ordinateur la donnée en entrée est
d’abord une suite de caractères (une chaîne
de caractères)
•Les résultats d’un programme (les sorties)
sont souvent une suite de caractères
(affichés à l’écran)
Programme Java
…«2», «4», … … «!2 + 4 = 6!»,…
5
Entrées / Sorties en Java
•Un programme Java reçoit/transmet des
données au monde extérieur via un flot
(stream)
•Ces flots sont des objets de types complexes
•System.in et System.out
•sont des flots connectés à tout programme
pour communiquer via les entrées/sorties
standard
Flots d’entrée et de sortie
Programme Java
System.in
System.out
Entrées / Sorties dans un
programme
import java.io.*;
public class Echo {
public static void main (String[] args) throws
IOException {
InputStreamReader inStream = new
InputStreamReader( System.in );
BufferedReader stdin = new BufferedReader(
inStream );
String inData;
System.out.println("Enter the data:");
inData = stdin.readLine();
System.out.println("Input : " + inData);
}
}
Flots tamponnés
Java
Monde extérieur
BufferedInputStream
Entrées / Sorties
•Avant d’être un nombre …
–Une chaîne de caractères (en entrée) doit être «
convertie » en un type connu d’avance
•Un nombre (en sortie) doit être « converti »
en une chaîne de caractères
•Les routines de conversion sont différentes
et définies pour chacun des types primitifs
Lecture de données numériques
•Conversion d’une chaîne de caractères en
un entier de type int
–La classe Integer (un objet de type Integer)
possède une méthode de conversion chaîne de
caractères <-> codage à complément à 1
•La classe Integer possède aussi des
méthodes de conversion en short et long
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!