cours0708/G5a/Cours/Puissance2.java

38 lines
1.7 KiB
Java
Raw Normal View History

/* Amelioration de "puissance1" avec des entrees-sorties plus conviviales */
import javax.swing.JOptionPane;// import de la classe JOptionPane du package swing situ<74> dans le package javax
class Puissance2{
public static void main (String[] args) {
int x, y;
String ch1,ch2;
String ps = " puissance ";
ch1=JOptionPane.showInputDialog("taper votre 1er nb ici");
//appel de la fonction showInputDialog de la classe JOptionPane du package swing
ch2=JOptionPane.showInputDialog("taper votre 2eme nb ici");
System.out.println("nb1="+ch1+"; nb2="+ch2);
x=Integer.parseInt(ch1); //conversion explicite d'une chaine de caract en entier (fonction de la classe Integer)
y=Integer.parseInt(ch2);
JOptionPane.showMessageDialog(null,"Resultat : "+x+ps+y+" = "+ puissance(x,y),"Titre de la fenetre",JOptionPane.WARNING_MESSAGE);
// appel d'une autre fonction de la meme classe
// NB : le dernier parametre est une constante de la classe (majuscules) qui agit sur l'icone
System.exit(0); // Sortie du programme
}
public static int puissance (int a, int k) { //autre methode de ma classe avec 2 parametres
int res,p; //declaration de 2 entiers locaux <20> cette methode
res = 1;
p=a; //affectations
while (k>0) {
int div=2; //declaration d'une variable locale <20> la boucle while
if (k%div ==1) { // comparaison : attention <20> la confusion entre = et ==
res=res*p;
}
p=p*p;
k=k/2;
}
return res; // valeur de retour de l'expression puissance(x,y)du main
}
}