Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Carré d'un nombre

Posté par
aida1807
05-12-11 à 14:23

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

Posté par
aida1807
re : Carré d'un nombre 05-12-11 à 15:17

PS: j'ai oublié de mettre "debut" après "var i..."

Posté par
Chatof
re : Carré d'un nombre 05-12-11 à 15:28

C'est bien.
je propose deux modifications:

var q:entier =-1;

et

tant que (xy) faire

et ça marche.

Posté par
Chatof
re : Carré d'un nombre 05-12-11 à 15:44

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

Posté par
aida1807
re : Carré d'un nombre 05-12-11 à 18:21

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

Posté par
Chatof
re : Carré d'un nombre 05-12-11 à 18:26

Merci,
De rien



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !