TD06 Boucles
Télécharger le TD06 Boucles en pdf
Page 1 : Pré-ING1Semestre 1 - 2023/2024TD Informatique 06 : BouclesConsignes générales : N’oubliez pas pour ce TD comme pour les suivants de vous creer un répertoire consacré au TD etd’enregister vos codes desssus.On rappelle que les commandes à taper dans le terminal pour compiler puis exécuter votre programme C :— Pour compiler : gcc -o nomexecutable nomprogramme.c— Pour exécuter : ./nomexecutableIl est conseillé de toujours écrire l’algorithme en pseudo-code avant de passer sur machine.Exercice 1Que va afficher l’algorithme suivant ? ?PROGRAMME test boucleVARIABLESa, b : entierc1 : booléenDEBUTa ←100b ←5TANT QUE a 0 FAIREa ←a DIV 5b ←b 2ÉcriRE "b="+bFIN TANT QUEÉcriRE "fin du programme"FINExercice 2Soit l’algorithme suivant :PROGRAMME test boucle POURVARIABLESi : réelDEBUTPOUR ? ? ? FAIREÉcriRE iFIN POURFINPar quoi faut-il remplacer ??? pour afficher les listes suivantes— 1 2 4 5— 10 20 30 40— 8 4 0 -4 -8— -1 -0.5 0 0.5Exercice 3Quelle boucle est la plus adaptée dans les situations suivantes ?— Demander à l’utilisateur une valeur entre 0 et 100.— Demander à l’utilisateur de saisir 10 nombres quelconques.— Demander à l’utilisateur de saisir 10 nombres prositifs.— Calculer la factorielle d’un nombre.Exercice 41. Que fait l’algorithme suivant ?PROGRAMME algorithme très mysterieuxVARIABLESi, m, s : entierDEBUT1
Page 2 : s ←0POUR i DE 0 A 10 FAIREÉcriRE "Entrez un nombre."LIREms ←s+mFIN POURÉcriRE"s="+s FIN2. Écrire un autre algorithme qui réalise la même chose avec une boucle TANT QUE.Exercice 5Affichez sur votre terminal, à l’aide d’un programme en C tous les entiers de 1 à 100 compris.Exercice 6 Table de multiplicationSaisir un nombre entier N et afficher la table de multiplication de N ses multiples entre 0 et 10.Exercice 7Écrire un programme qui affiche le plus petit entier n tel que n+1n+3 dépasse 12345.Exercice 8 diviseur de 31. Demander à l’utilisateur de saisir un nombre entier positif N.2. Affichez tous les nombres divisibles par 3 entre 0 et N en utilisant une boucle POUR3. Idem avec une boucle TANT QUEExercice 9 Calcul de puissance— Demander à l’utilisateur de saisir deux nombres entiers a et b strictement positifs assurez vous qu’ils le soient bienavant de passer à la suite !— Afficher le résultat de ab.Exercice 10 Compte à rebours1. Saisir un nombre de secondes et le convertir en heure :min :s. Assurez-vous que les valeurs saisies soit correctes !2. Décrémenter les secondes en affichant à chaque changement l’heure sous format h :min :s.S’arrêter lorsque l’on atteint 00 : 00 : 00 et afficher «BOOM».3. Est-ce qu’il se déroule une seconde entre chaque affichage ? Pourquoi ?4. La fonction sleep permet à l’ordinateur de faire "une pause" avant de passer à l’instruction suivante, elle prend enargument le nombre de secondes que l’on veut attendre. Cette fonction appartient à la librairie unistd.h qu’il vous fautdonc inclure si vous voulez pouvoir l’utiliser. Modifier votre code pour qu’il se déroule bien une seconde entre deuxdécrementations du compte à rebours.Exercice 11 calcul de factorielle On rappelle que factoriel N noté N ! se calcule de la manière suivante :N !=2345..N.Saisir un nombre et afficher sa factorielle.Exercice 12 pliage Une feuille en papier fait 0.1 mm d’épaisseur. Écrire un algorithme pour déterminer combien de plissont nécessaires pour obtenir une épaisseur de 2m ?Exercice 13 Des dessins1. Saisir un nombre entier N strictement positif.2. Dessinez sur le terminal une ligne de N étoiles.3. Dessinez sur le terminal un carré plein d’étoiles de coté N.Exercice 14 Table de multiplication pt 2Affichez la table de multiplication des 10 premiers entiers.Exercice 15 Des dessins pt21. Saisir un nombre entier N strictement positif.2. Dessiner sur le terminal un triangle rectangle de hauteur N.Par exemple, si h = 5, on affichera le dessin suivant :2
Page 3 : Exercice 16 Les triplets1. Écrire un algorithme permettant l’affichage de tous les triplets a, b, c tels que a, b, c 1; n. Par exemple, pour n=3,le programme doit afficher : 1,1,1 1,1,2 1,1,3 1,2,1 1,2,2 1,2,3 1,3,1 1,3,2 1,3,3 2,1,1 . . . 3,3,32. Modifiez le programme précédent pour qu’il génère désormais la liste des triplets a, b, c avec c b a. Par exemple,pour n=3, le résultat doit être : 1,2,3.3. Modifier le programme pour afficher, en plus des triplets, le nombre de triplets obtenus.Exercice 17 Nombre premier ?Un nombre est premier s’il n’est divisible que par 1 et par lui-même.Écrire un programme qui determine si un nombre saisi par l’utilisateur est premier.3