38 lines
1.7 KiB
Java
38 lines
1.7 KiB
Java
/* Amelioration de "puissance1" avec des entrees-sorties plus conviviales */
|
|
|
|
import javax.swing.JOptionPane;// import de la classe JOptionPane du package swing situé 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 à cette methode
|
|
res = 1;
|
|
p=a; //affectations
|
|
while (k>0) {
|
|
int div=2; //declaration d'une variable locale à la boucle while
|
|
if (k%div ==1) { // comparaison : attention à 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
|
|
}
|
|
|
|
}
|