40 lines
1.8 KiB
Java
40 lines
1.8 KiB
Java
/* Ceci est un premier programme très simple mettant en oeuvre
|
|
quelques notions de base java */
|
|
|
|
import iutsud.Console; // import de la classe Console du package iutsud pour les entrées-sorties
|
|
|
|
/** Classe qui saisit à la console 2 entiers et qui affiche leur puissance */
|
|
public class Puissance1{ /* classe principale et unique de notre petit programme. RQ : elle
|
|
a le meme nom que le fichier source */
|
|
|
|
/** methode principale de la classe */
|
|
public static void main (String[] args) {
|
|
int x; //declaration d'une variable x de type entier
|
|
int y; //idem
|
|
String ps = " puissance "; // declaration et initialisation d'une chaine de caracteres
|
|
System.out.print ("x : "); //affichage sur la sortie standard (ecran DOS)
|
|
x=Console.readInt(); // lecture sur l'entree standard (clavier)
|
|
System.out.print ("y : ");
|
|
y=Console.readInt();
|
|
System.out.println ("Calcul de "+x+ps+y); /*attention c'est le + de la concaténation !
|
|
Que donnerait println (x+y+ps+x+y) ? */
|
|
System.out.println (x+ps+y+" = "+ puissance(x,y)); //appel d'une autre methode de la classe
|
|
}
|
|
/** fonction à 2 paramètres : calcul de a puissance k avec l'algorithme egyptien*/
|
|
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
|
|
}
|
|
|
|
}
|