Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de...

23
Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de l’information (LEA.BW)

Transcript of Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de...

Page 1: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Introduction à la programmation(420-PK2-SL)

cours 8

Gestion des applications

Technologie de l’information

(LEA.BW)

Page 2: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Plan Devoir #1

Remise 17/02/2011 Version papier au début du cours Version électronique avant 13:00

Utilisation de constante Instruction itérative (boucle)

do...while while for

Sera vu la semaine prochaine

Laboratoire

Page 3: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Utilisation de constante Une constante est une variable qui ne varie

pas. Taxe Nombre d’heure maximum de travail par semaine Nombre de sorte de carte de jeu Nombre de type de carte de jeu Nombre de face sur un dés lors d’une partie

Plutôt que « hardcoder » une valeur dans le code, il est préférable d’utiliser une variable constante pour facilité la modification du code.

Page 4: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Utilisation de constanteimport java.util.Scanner;

public class calcul_salaire {

public static void main(String args[]){

double nombre_heures,taux_horaire,salaire;

Scanner clavier = new Scanner(System.in);

System.out.println("Combien d'heure travailler vous par semaine?");

nombre_heures = clavier.nextDouble();

System.out.println("Quel est votre taux horaires?");

taux_horaire = clavier.nextDouble();

clavier.close();

if(nombre_heures <= 40){

salaire=nombre_heures*taux_horaire;

}else{

salaire=40*taux_horaire+((nombre_heures-40)*taux_horaire*1.5);

}

System.out.println("Votre salaire est de : " + salaire + " par semaine");

}

}

Page 5: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Utilisation de constanteimport java.util.Scanner;

public class calcul_salaire_constante {

public static final int NB_HEURES_MAX = 40;

public static final double MAJORATION = 1.5;

public static void main(String args[]){

double nombre_heures,taux_horaire,salaire;

Scanner clavier = new Scanner(System.in);

System.out.println("Combien d'heure travailler vous par semaine?");

nombre_heures = clavier.nextDouble();

System.out.println("Quel est votre taux horaires?");

taux_horaire = clavier.nextDouble();

clavier.close();

if(nombre_heures <= NB_HEURES_MAX){

salaire=nombre_heures*taux_horaire;

}else{

salaire=40*taux_horaire+((nombre_heures-NB_HEURES_MAX)*taux_horaire*MAJORATION);

}

System.out.println("Votre salaire est de : " + salaire + " par semaine");

}

}

Page 6: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Utilisation de constante Les constantes doivent avoir un type comme

pour les variables. Les identificateurs des constantes sont

toujours en MAJUSCULE. public static final précède toujours le type de

la constante et doit être inscrit avant le programme principal (main).

Page 7: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Instruction itérative Répétition ou boucle

Instruction qui permet de répéter du code à exécuter selon l’évaluation d’une condition.

Tant que Cette instruction permet de répéter les tâches à

exécuter si l’évaluation d’une expression donne vraie Opération 1

Condition

Opération 3

FAUX

Opération 2VRAI

Page 8: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Instruction itérative Forme générale

Tant que expression booléenneTâches à répéter tant que l’expression est vraie

Fin

ExempleTant qu’il vente fort

Je fais de la planche à voileFin

Opération 1

Condition

Opération 3

FAUX

Opération 2VRAI

Page 9: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Instruction itérative En Java

while(expression){instruction à répéter tant que l’expression

est différente de zéro.}

Les parenthèse sont obligatoires Les accolades délimitent ce qu’on appelle un

bloc de code Comme pour le if

Le code d’un bloc doit être indenté (décalé) vers la droite

Si les accolades sont manquantes, seule la première instruction est calculée comme faisant partie du while.

Page 10: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Instruction itérative Exemple

int x = 5;

while (x > 0){

System.out.println(x);

x--;

} Condition d’entrée : x > 0 Condition d’arrêt : x <= 0 Résultat de la boucle

54321

Page 11: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Instruction itérative Mise en garde

Il faut toujours au moins une instruction à l’intérieur de la boucle qui permette de converger vers la condition d’arrêt de la boucle sinon ce sera une boucle infinie.

Exempleint x = 5;

while (x > 0){

System.out.println(x);

x++;

} Résultat de la boucle

56789…

Page 12: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Instruction itérative Dites ce que vaudront

les valeurs de x,y et z après l’exécution de cette boucleint x=5;

int y=3;

int z=3;

while(y != 0){

x %= z++;

y--;

}

Équivalent à :x = x % zz = z + 1;y = y – 1;

Page 13: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Instruction itérative Solution

DEBUT WHILE x = 5 ,y = 3 ,z = 3FIN WHILE x = 2 ,y = 2 ,z = 4DEBUT WHILE x = 2 ,y = 2 ,z = 4FIN WHILE x = 2 ,y = 1 ,z = 5DEBUT WHILE x = 2 ,y = 1 ,z = 5FIN WHILE x = 2 ,y = 0 ,z = 6

while(y != 0){

System.out.println("DEBUT WHILE x = " + x + " ,y = " + y + " ,z = " + z);

x %= z++;

y--;

System.out.println("FIN WHILE x = " + x + " ,y = " + y + " ,z = " + z);

}

Page 14: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Instruction itérative Écrivez un programme qui saisit un nombre entier et qui affiche tous

les nombres de 1 jusqu’à la valeur entrée.import java.util.Scanner;

public class exemple_while{

public static void main(String args[]){

int nombre;

int tour;

Scanner clavier = new Scanner(System.in);

System.out.println("Entrez un nombre svp : ");

nombre = clavier.nextInt();

tour = 1;

while(tour <= nombre){

System.out.println(tour);

tour++;

}

}

} Que se passe t’il si le nombre entré est négatif ?

initialisation

Analyse de la condition d’arrêt de la boucle

Convergence vers la condition d’arrêt

Page 15: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Instruction itérative Il n’y a pas de restriction sur ce que peut

contenir un bloc d’instructions Affectation, affichage, lecture, opérations if, if-else, if-else-if While

En d’autres termes on peut imbriquer des instructions de sélection et d’itération à l’intérieur d’autres instructions de sélection et/ou d’itération.

Page 16: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Instruction itérativeimport java.util.Scanner;

public class validation_nombre_while{

public static final int MIN = 1;

public static final int MAX = 10;

public static void main(String args[]){

int nombre;

Scanner clavier = new Scanner(System.in);

System.out.println("Entrez un nombre entre " + MIN + " et " + MAX + ":");

nombre = clavier.nextInt();

while(nombre < MIN || nombre > MAX){

if(nombre < MIN){

System.out.println("Votre nombre doit être plus grand que " + MIN);

}else{

System.out.println("Votre nombre doit être plus petit que " + MAX);

}

System.out.println("Entrez un nombre entre " + MIN + " et " + MAX + ":");

nombre = clavier.nextInt();

}

System.out.println("Votre nombre est valide");

}

}

Structure if imbriquée

Convergence vers la condition d’arrêt

Conditions d’entrée multiples

Page 17: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Instruction itérative

Opération 1

Condition

Opération 3

FAUX

Opération 2VRAI

Opération 1

Condition

Opération 3

FAUX

VRAI

Opération 2

while … do do … while

Page 18: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Instruction itérative while…

La condition de répétition est évaluée au début du bloc

Si la condition est fausse, le bloc n’est pas exécuté do…while

La condition de répétition est évaluée à la fin du bloc

Le bloc est exécuté au moins une fois même si la condition est fausse

Forme généraledo{

instructions à répéter tant que l’expression est différente de zéro

} while (expression);

Page 19: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Instruction itérativeimport java.util.Scanner;

public class validation_nombre_dowhile{

public static final int MIN = 1;

public static final int MAX = 10;

public static void main(String args[]){

int nombre;

Scanner clavier = new Scanner(System.in);

do{

System.out.println("Entrez un nombre entre " + MIN + " et " + MAX + ":");

nombre = clavier.nextInt();

if(nombre < MIN){

System.out.println("Votre nombre doit être plus grand que " + MIN);

}else{

System.out.println("Votre nombre doit être plus petit que " + MAX);

}

}while(nombre < MIN || nombre > MAX);

System.out.println("Votre nombre est valide");

}

}

Page 20: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Instruction itérative Dans l’exemple, l’utilisation du do…while est

plus optimale que l’utilisation du while car certaines ligne ne sont pas doublée

Par contre, le résultat est le même!

Page 21: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Laboratoire Modifier le programme loterie.java pour qu’il

affiche NOMBRE_COMBINAISON combinaison. Modifier le programme generer_carte.java

pour qu’ils génère des cartes tant que la personne n’entre pas le mots quitter au clavier. Tout autres mots entrer au clavier résultera à la génération d’une autre carte.

Page 22: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Laboratoire Écrivez un programme qui demande des

nombres entiers à un utilisateur. La saisie des nombres se termine si l’utilisateur entre -1. Vous affichez ensuite: Combien de ces nombres étaient pairs et impairs Le plus grand Le plus petit La somme des nombres entrés La moyenne des nombres entrés

Page 23: Introduction à la programmation (420-PK2-SL) cours 8 Gestion des applications Technologie de linformation (LEA.BW)

Laboratoire Créez un programme qui saisit une valeur

entière (n) au clavier et affiche à l’écran n! (n! = 1 x 2 x … x n). Pour ce faire il suffit d’affecter une variable (factoriel) avec la valeur 1 et de multiplier à factoriel successivement toutes les valeurs de 2 à n.

Par exemple, le factoriel de 5 = 5*4*3*2*1 = 120! Si vous obtenez 24 c’est qu’il manque un tour de

boucle!