TP 3 : les Boucles (while ou for)
1. Boucle avec un nombre prédéfini d'itérations (… et précision sur les flottants)
Attention : les calculs dans cet exercice seront faits en float.
Evaluez la somme des inverses des n premiers entiers. n sera lu au clavier et la somme sera évaluée
en développant l’expression 1+1/2+…++1/(n-1)+1/n
puis en développant 1/n+1/(n-1)+ …+1/2+1
Affichez les deux résultats et observez s’il y a des différences pour certaines valeurs de n. Qu’en
déduisez-vous ?
Algorithme à affiner :
- définir les "flottants" s1, s2, x
- définir les entiers n et i
- lire n
- s1 <- 0
- i <- 1
- tant que (i ≤ n)
- x <- 1/i (on prendra garde que ce ne soit pas la division entière qui soit appliquée)
- s1 est augmenté de x
- i est incrémenté
- fin tant-que
- calcul similaire pour s2 en partant de 1/n et en décrémentant jusqu'à 1
- afficher s1 et s2
2. Boucle avec un nombre indéterminé d'itérations
En utlisant uniquement la fonction getchar (ex : carCourant=getchar() ; ), écrivez le
programme qui lit une suite de caractères terminée par un point ( '.' ) et qui la recopie en sortie en
remplaçant toute séquence de blancs par un seul blanc. Exemple d'exécution :
Ce programme supprime les blancs redondants.
Ce programme supprime les blancs redondants.
Remarque : un caractère blanc n’est réécrit que si son prédécesseur n’est pas blanc.
Algorithme à affiner :
- définir les caractères carCourant et carPrecedent
- initialiser carPrecedent (valeur fictive pour l’algorithme commence bien)
- lire carCourant ( carCourant=getchar() ; )
- tant-que la fin de la phrase n’est pas atteinte
- si carCourant est un blanc
écrire carCourant si son prédécesseur n’est pas un caractère blanc
sinon écrire carCourant
- définir les nouvelles valeurs de carCourant et carPrecedent pour la prochaine itération
- fin tant-que
Remarque : la lecture d'une suite caractères n'est déclenchée que lorsque la touche <entrée> qui clôture
une ligne est tapée. Le résultat s'affichera donc après la validation de cette ligne bien que l'algorithme
traite en apparence les caractères au fur et à mesure de la saisie.