Algorithme

Fermé
maribel - 18 juin 2006 à 22:06
gaby10 Messages postés 445 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 3 février 2013 - 19 juin 2006 à 11:40
bonjour est qu'il y a qq pour me corriger et m'aider sur ces exercices svp:
1) exrecice:
on l'algorithme suivant:
var
h,n,m,i : entier
debut
ecrire(' donner n et m ') ;
lire ( n, m) ;
h <- 1 ;
si ( n>=m ) alors
i <- 1;
10)h <- h*n;
i <- i+1 ;
si ( i<=4 ) alors
aller a 10)
fsi
sinon
i<- 1
20)h<- h*i
i<- i+1
si ( i<=n ) alors
aller a 20)
fsi
fsi
ecrire ('h=',h);
fin

on ns demande d'ecrire cette algorithme en utilisant les boucles "pour" et" repeter" .
donc en utilisant la boucle "pour" :
je vais abreger( je vais ecrire juste l'important):

pour i=1,4 faire
si ( n>=m) alors
h <- h*n;
sinon
pour i=1,n faire
h<- h*i
ffp
fsi
ffp

et en utilisant la boucle " repeter" :

si ( n>=m) alors
i <-1
repeter
h <- h*n;
i<- i+1
jusqu'a (i>4)
sinon
repeter
h<- h*i
i<- i+1
jusqu'a (i>n)
fsi

est ce que c'est juste?
2) exercice que je n'arrive pas a faire :
on ns donne un vecteur de 10 nombre reel ; on ns demande d'ecrire l'algorithme de l'image que reflete ce vecteur dans un miroire . ex:
v=( 10,5,7,6,1) l'image que reflete ce vecteur dans un miroire est : v=( 1,6,7,5,10)

j'ai une question a poser est qu'il y a qq pour me repondre svp:
pour calculer le pgcd ou le ppcm ; on doit avoir des nombres entiers strictement positives mais dans leurs algorithmes j'ai remarquer quand met juste par exemple a et b sont des entiers point final pourquoi on precise pas qu'ils sont strictement positiveset si c'est oui j'aimerais bien que vous dite comment l'ecrire.
une autre question svp:
est ce qu'on peut faire ça:
ex: ecrire ( ' donner la valeur de A)
A <- 5 (exemple)
est ce c'est juste ou je dois ecrire : lire (A) apres ecrire ( ' donner la valeur de A)

merci de me repondre.

1 réponse

gaby10 Messages postés 445 Date d'inscription vendredi 25 novembre 2005 Statut Membre Dernière intervention 3 février 2013 57
19 juin 2006 à 11:40
Salut,
Pour la premiere : 'Pour', je pense que tu devrait plutot faire ceci
si ( n>=m) alors //On teste d'abord la condition d'entree
 
    pour   i=1,4 faire 
           h <- h*n; 
           i<- i+1;  // la valeur s'incremente
    fpour  
 
sinon  //condition non verifiee

    pour i=1,n faire 
           h<- h*i ;
           i<- i+1;
    fpour 

fsi 
 
POur la partie repeter, tu devrais á mon avis initialiser i avant l'entree dans la boucle si donc en fait:

i<- 1;

si ( n>=m) alors 

     repeter 
         h <- h*n; 
         i<- i+1 
     jusqu'a (i>4) 

sinon 
     
    repeter 
         h<- h*i 
         i<- i+1 
    jusqu'a (i>n) 

fsi 


Quant a exercice 2, on te donne un v ecteur de 10 elts dont il faut ranger dans un tableau et te demande l'image telle que tu l'as precisee

Entrons d'abord nos elts au clavier

var i:entier;
        v=tableau[1..10] de entier;
        pour i de 1 á 10 faire
            ecrire ('Entre un elt:');
            lire(v[i]);
            i<- i+1;
        fpour
      
       (*A la fin tu affiche ton vecteur d'entier dans l'ordre inverse que celui entre*)

         pour i de 10 á 1 faire
              ecrire(v[i]);
              i<- i -1;
         fpour

Voila pour ma part, le tour est joué

Nb:
J'ai eu de la peine á saisir ton algo. tu pourrars prendre de lapeine á mieux aligner tes instruction cela facilite la lecture 
0