Vous êtes sur la page 1sur 3

Licence ST

Universit Claude Bernard Lyon 1

LIF1 TD 2 : Algorithmes plus volus

Objectifs : approfondir les notions vues dans le TD prcdent (boucles, conditions, structures de donnes, entres / sorties, ) 1. crire un algorithme permettant de calculer la somme des n premires puissances de 2. Exemple : valeur saisie 5 rsultat 63 (= 1+2+4+8+16+32) Debut Variables : n, somme, i : entier Afficher(donnez la valeur de n) Saisir(n) somme 0 Pour i allant de 1 n par pas de 1 faire somme somme + puissance(2,i) Fin Pour Fin 2. crire un algorithme permettant de calculer la somme des n premiers nombres impairs. Quel lien pouvez-vous tablir entre la valeur obtenue et n ? Debut Variables : n, somme, i : entier Afficher(donnez la valeur de n) Saisir(n) somme 0 Pour i allant de 1 2*n par pas de 2 faire somme somme + i Fin Pour Fin 3. crire un algorithme permettant de lire 20 nombres au clavier et dafficher le carr des nombres pairs uniquement. Attention, on ne mmorisera pas les 20 valeurs saisies. Puisqu'on connat le nombre de passages dans la boucle, on utilise de prfrence la boucle pour : Dbut Variables nbre, i : entier Pour i allant de 1 20 par pas de 1 faire Afficher(Entrez un nombre) Saisir(nbre) Si nbre % 2 = 0 alors nbre nbre * nbre Afficher(nbre) FinSi FinPour Fin

Licence ST

Universit Claude Bernard Lyon 1

LIF1 TD 2 : Algorithmes plus volus


4. crire un algorithme saisissant un temps en secondes que l'on transcrira en jours, heures, minutes, et secondes. Dbut variables J,H,M,S,Temps :entiers Afficher(Entrez le temps convertir) Lire(temps) J Temps/(24*60*60) Temps Temps J*(24*60*60) H Temps/(60*60) Temps Temps H*(60*60) M Temps / 60 Temps Temps M*60 S Temps Ecrire (J,jours, H, heures, M, minutes et , S secondes) Fin 5. crire un algorithme permettant de savoir si une anne saisie par lutilisateur est bissextile ou non. Rappel : une anne est bissextile si elle est divisible par 4 mais non divisible par 100. Dans la correction une version un peu plus complexe est propose ; elle rajouter une condition supplmentaire sur les annes. Dbut Variables locales A : entier afficher (Introduisez l'anne) lire (A) si (A modulo 4 <> 0) alors afficher(L'anne, A, n'est pas bissextile.) sinon si (A mod 100<>0) alors afficher(L'anne , A, est bissextile.) sinon si (A mod 400<>0) alors afficher(L'anne , A,n'est pas bissextile.) sinon afficher(L'anne , A, est bissextile.) fin si fin si fin si Fin

6. crire un algorithme qui calcule les racines relles (si elles existent) dun polynme du second degr dcrit par 3 coefficients rels a, b et c. Les solutions seront affiches lcran.

Licence ST

Universit Claude Bernard Lyon 1

LIF1 TD 2 : Algorithmes plus volus


Variables a,b,c : Entier sol1, sol2, delta : rel Dbut Afficher(Entrez les 3 coefficients du polynome) Saisir(a) Saisir(b) Saisir(c) delta b*b -4*a*c Si (delta < 0) alors afficher (pas de racines reelles) sinon si (delta = 0) alors sol1 -b /(2*a) afficher (une racine double, sol1) sinon sol1 (-b + sqrt(delta)) / (2*a) sol2 (-b - sqrt(delta)) / (2*a) afficher(sol1,sol2) Fin Si Fin Si Fin Remarque : si a=b=0 alors on na pas un polynme ! 7. crire un algorithme permettant de trouver une valeur choisie alatoirement par le programme. Le joueur disposera au maximum de 6 tentatives pour trouver cette valeur et le programme lui indiquera chaque essai si sa valeur est trop grande ou trop petite. Variables : a_trouver, valeur, nb_essais; Dbut a_trouver aleatoire() nb_essais 0 faire afficher(donnez une valeur) saisir(valeur) si (valeur>a_trouver) alors afficher(trop grand) sinon si (valeur < a_trouver) afficher(trop petit) fin si fin si nb_essais nb_essais + 1 tant que ((valeur<>a_trouver) et (nb_essais<=6)) si (valeur = a_trouver) alors afficher(gagne en ,nb_essais) sinon afficher (perdu trop d essais) fin si fin