Bonjour à tous, pour la semanine pochaine je dois rendre un DM qui porte sur l'algorithme suivant. J'ai essayé plusiers voies d'abordage mais je bloque du fait que je n'arrive pas complémente à comprendre ce qu'on attend de moi. On a fait un seul exemple d'algorithme et il ne ressemble pas du tout à cet exercice.
Merci d'avance!
On a n valeurs dans une liste L[i] et on considère l'algorithme suivant :
Entrée
Saisir(n) ;
Initialisation
i := 1 ; S :=L[1];
Tantque i <= n faire
i := i + 1 ;
Si L[i] < S alors S := L[i] ;
Fin Tantque
Sortie
Afficher(S) ;
a) On considère la liste suivante : 2 ; 3 ; 1 ; 5 ; -1.
Faire fonctionner l'algorithme sur cette liste. Que représente S ?
b) Modifier cet algorithme pour obtenir le maximum de la liste.
Bonjour,
as tu essayé de dérouler l'algorithme à la main ?
avec la liste qu'on te donne ==> 5 valeurs ==> n=5
début : i = 1 et S = L(1) c'est a dire la première valeur de la liste ==> S=2
tant que i< n ==> on va donc passer dans la boucle 5 fois
i=i+1 ==> i=2
si L(i) < S ==> si L(2)< S ==> est ce que la deuxième valeur de la liste < S ? ==> 3 < 2 ? non, on ne fait rien.
i=i+1 ==> i=3
si L(3) < S ==> 1 < 2 ? oui, alors S = L(3) ==> S prend la valeur 1
continue...
à la fin, S prendra la valeur -1
que fait l'algorithme ?
Il met dans S la premiere valeur de la liste, puis il regarde chacune des autres valeurs, pour retenir la plus petite..
S représente donc le minimum de la liste.
b) sauras tu modifier, pour que S soit le maximum de la liste ?
Merci beacoup Leile! Vous m'avez vraiment aidé... j'étais complétement perdu, et j'avais aucune sur la démarche à suivre.
S alors prend une nouvelle valeur que lorsque L<S, et donc finalement S=-1.
Quant au b), si j'ai bien compris, calculer le maximum revient tout simplement à remplacer au niveo du "Tant que" [i]Si L[i] < S alors S := L[i], par Si L[i] > S alors S := L[i].
L'algorithme au point b) serais:
On a n valeurs dans une liste L[i] et on considère l'algorithme suivant :
Entrée
Saisir(n) ;
Initialisation
i := 1 ; S :=L[1];
Tantque i <= n faire
i := i + 1 ;
Si L[i] > S alors S := L[i] ;
Fin Tantque
Sortie
Afficher(S)
Et S=5 dans ce cas, n'est-ce pas?
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :