Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Algorithme inconnu

Posté par
Dodkillback
13-10-13 à 14:00

J'ai un exercice à faire en DM :

Que fait l'algorithme programmé ci-dessous sur Xcas, pour tout entier n compris entre 1 et 99?
Cet algorithme s'arrête-t-il bien pour tout entier n entre 1 et 99?

Voici l'algorithme:
saisir (n);
tantque n>0 faire
a:=floor (n/10);
b:=n-10*a;
si a!=0 alors y:=10*b+a sinon y:=b;
fsi;
n:=abs(n-y);
afficher (n);
ftantque;

Rappels:
-floor(p) est la partie entière de p
-a!=0 signifie a différent de 0
-abs(x) est la valeur absolue de x

Je pense avoir trouvé à quoi sert cet algo mais je ne sais pas comment l'expliquer. Si je rentre 85 il va calculer la différence entre 85 et 58.
Merci d'avance pour votre aide,
bien cordialement

Posté par
alb12
re : Algorithme inconnu 13-10-13 à 17:00

salut,
si on entre 85 l'affichage bleu donne:
n:27
n:45
n:9
n:0
si on entre 80 l'affichage bleu donne:
n:72
n:45
n:9
n:0
si on entre 8 l'affichage bleu donne:
n:0

on reste dans la boucle tant que n est strictement positif
on en sort des que n=0

Posté par
Dodkillback
re : Algorithme inconnu 13-10-13 à 17:28

Merci pour ta réponse,
j'ai réussi à comprendre ce qu'il faisait pour des cas particuliers mais dans le cas géneral comment peut on l'expliquer ?
Il calcul la différence des nombres retournés non ?

Posté par
alb12
re : Algorithme inconnu 13-10-13 à 18:03

prends 85 et regarde pas à pas les affectations de a,b,y.
decrire un exemple c'est deja bien.

Posté par
alb12
re : Algorithme inconnu 13-10-13 à 18:16

voici un programme qui renvoie les valeurs successives de la variable n dans la boucle:

f(n):={
  local L,a,b,y;
  L:=[];
  tantque n>0 faire
    L:=append(L,n);
    a:=floor (n/10);
    b:=n-10*a;
    si a!=0 alors
      y:=10*b+a
    sinon
      y:=b;
    fsi;
    n:=abs(n-y);
  ftantque;
  retourne L
}:;

copier/coller ce programme dans l'editeur de programmes
le compiler en appuyant sur OK

passer ensuite dans une ligne de commande et coller ceci:

seq([n,f(n)],n,1,99)

valider, le tableau apparaît.



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

Inscription gratuite

Fiches en rapport

parmi 1683 fiches de maths

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 !