Bonjour,
je débute en algorithmique et j'ai quelques exercices à rendre pour demain.
Voici l'énoncé de l'un d'eux:
"On rappelle que la somme des n premiers entiers impairs est égale au carré de n.
1) Ecrire, à l'aide d'une boucle tant que et en utilisant seulement l'opération d'addition, une fonction calculant la racine carrée entière par défaut d'un nombre entier positif donné.
2) Même question avec une boucle repeter... jusqu'a"
Je me demandais si la soustraction pouvait être autorisée, car il s'agit après tout de l'addition d'un nombre (entier) négatif.
Pour l'instant, j'ai ecrit ceci:
fonction Carre (val y:entier) : entier; //y est le nombre donc je cherche la racine
var x:entier =0;
var q:entier =0; // q est la racine de x
var i:entier =1; //i est le compteur par pas de 2
tant que (x<y) faire
x= x+i;
i= i+2;
q= q+1;
fintantque;
retourner(q);
fin
finfonction
Seulement je ne suis pas satisfaite. J'ai essayé de trouvé la racine carrée par défaut de y=41 et j'ai obtenu q=7 qui est sa racine par excès! Je me demande donc si en utilisant la soustraction, je n'obtiendrais pas un meilleur résultat. D'où ma question: pensez vous que la soustraction soit autorisée?
Merci,
Bonne journée,
Aïda
1 VARIABLES
2 y EST_DU_TYPE NOMBRE
3 x EST_DU_TYPE NOMBRE
4 q EST_DU_TYPE NOMBRE
5 i EST_DU_TYPE NOMBRE
6 DEBUT_ALGORITHME
7 LIRE y
8 x PREND_LA_VALEUR 0
9 q PREND_LA_VALEUR -1
10 i PREND_LA_VALEUR 1
11 TANT_QUE (x<=y) FAIRE
12 DEBUT_TANT_QUE
13 x PREND_LA_VALEUR x+i
14 i PREND_LA_VALEUR i+2
15 q PREND_LA_VALEUR q+1
16 FIN_TANT_QUE
17 AFFICHER q
18 FIN_ALGORITHME
0 -> 0
1 -> 1
2 -> 1
3 -> 1
4 -> 2
48 -> 6
49 -> 7
50 -> 7
Ca marche! Merci vraiment! En plus je me suis aperçue que ma fonction posait problème pour x=0 entre autres... Et au moins, ce n'est pas comme si j'avais fait tout faux...
Donc, merci pour ton aide précieuse, j'avoue que je n'aurais jamais pensé à q=-1...
Bonne soirée,
Aïda
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :