0% ont trouvé ce document utile (0 vote)
728 vues7 pages

Correction TD 3

Le document présente une série d'exercices d'algorithmique, chacun demandant d'écrire des algorithmes pour résoudre des problèmes spécifiques tels que déterminer si un nombre est cubique, saisir des lettres majuscules et vérifier si elles sont des voyelles ou consonnes, et calculer des moyennes. Les exercices incluent également des tâches sur les nombres parfaits, la décomposition des nombres pairs en sommes de nombres premiers, et l'affichage de triangles de caractères. Chaque exercice est accompagné d'exemples et de structures algorithmiques détaillées.

Transféré par

Hhgjgjt Hruto699
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
728 vues7 pages

Correction TD 3

Le document présente une série d'exercices d'algorithmique, chacun demandant d'écrire des algorithmes pour résoudre des problèmes spécifiques tels que déterminer si un nombre est cubique, saisir des lettres majuscules et vérifier si elles sont des voyelles ou consonnes, et calculer des moyennes. Les exercices incluent également des tâches sur les nombres parfaits, la décomposition des nombres pairs en sommes de nombres premiers, et l'affichage de triangles de caractères. Chaque exercice est accompagné d'exemples et de structures algorithmiques détaillées.

Transféré par

Hhgjgjt Hruto699
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

1 2

Exercice1
Module :
Algorithmes et structures Écrire un algorithme permettant de saisir un entier n1 positif de trois chiffres et
d’afficher s’il est cubique ou non.
de données I  Remarque : un nombre est dit cubique s’il est égal à la somme des cubes de
ses chiffres.

CORRIGÉ TD 3 : LES STRUCTURES DE  Exemples :


n1 = 153= 13+53+33 ;
CONTRÔLE RÉPÉTITIVES n1 = 370= 33+73+03 ;
n1 = 371= 33+73+13 ;
n1 = 407= 43+03+73.

Algorithme Ex1
Variables 3 4
n1,sc,u,c,d : entier
Début
Exercice 2
Répéter
Ecrire("donner un nombre de 3 chiffres")
Lire(n1)
Jusqu’à (n1>=100 et n1<=999) Écrire un algorithme permettant de saisir une lettre majuscule et
Un1 mod 10 d’afficher si elle est voyelle ou consonne.
D(n1 div 10) mod 10
Cn1 div 100
Scu^3+d^3+c^3
Si (n1=sc) Alors
Ecrire(n1,"est un nombre cubique")
Sinon
Ecrire(n1,"n’est pas un nombre cubique")
Finsi
Fin
Algorithme Ex2
Variables 5 Algorithme Ex2 6
c : Caractère Variables
c : Caractère
Début
Début
Répéter Répéter
Ecrire("Entrer un caractère : ") Ecrire("Entrer un caractère : ")
Lire(c) Lire(c)
Jusqu’à (c >= ’A’ et c <= ’Z’) Jusqu’à (c >= ’A’ et c <= ’Z’) ou (c >= ’a’ et c <= ’z’)
Selon (c) faire Selon (c) faire
’A’,’a’,’E’,’e’,’I’,’i’,’O’,’o’,’U’,’u’,’Y’,’y’ :
‘A’,’E’,’I’,’O’,’U’,’Y’: Ecrire(c, " est une voye
Ecrire(c, " est une voyelle")
lle") Sinon
Sinon Ecrire(c, " est une consonne")
Ecrire(c, " est une consonne") FinSelon
FinSelon Fin
Fin

7 8
Exercice 3 Algorithme Ex3 Répéter
Variables Ecrire(”Donner le 2ème coefficient”)
n1, n2, n3,moyenne : réel Lire(c2)
c1, c2, c3 : entier Jusqu’à (c2>=1 et c2<=5)
Début Répéter
Écrire un algorithme permettant de : Répéter Ecrire(”Donner la troisième note ”)
Ecrire(”Donner la première note ”) Lire(n3)
 Saisir trois couples (notes, coefficient) ; les notes (valeurs réelles) Lire(n1) Jusqu’à (n3>=0 et n3<=20)
doivent être toutes comprises entre zéro (0) et vingt (20) alors que les Jusqu’à (n1>=0 et n1<=20) Répéter
coefficients (valeurs entières) doivent être compris entre un (1) et cinq Répéter Ecrire(”Donner le 3ème coefficient”)
Ecrire(”Donner le 1er coefficient ”) Lire(c3)
(5). Lire(c1) Jusqu’à (c3>=1 et c3<=5)
 Calculer et afficher la moyenne Jusqu’à (c1>=1 et c1<=5) Moyenne(n1*c1+n2*c2+n3*c3)/(c1+c2+c2)
Répéter Ecrire(” La moyenne est : ” moyenne)
Ecrire(”Donner la deuxième note ”) Fin
Lire(n2)
Jusqu’à (n2>=0 et n2<=20)
Algorithme Ex3
Variables 9 10
n,moyenne : réel
C,i,sc : entier
Début
Exercice 4
Sc=0
moyenne0
Pour i de 1 à 3 faire
Répéter  Écrire un algorithme permettant de saisir un entier n1 positif
Ecrire(”Donner la note numéro", i)
Lire(n)
Jusqu’à (n>=0 et n<=20)
de quatre chiffres au maximum et d’afficher tous les nombres
Répéter
Ecrire(”Donner le coefficient numéro ”,i) cubiques inférieurs ou égal à n1.
Lire(c)
Jusqu’à (c>=1 et c<=5)
sc=sc+c;
moyennemoyenne+(n*c)
finpour
moyennemoyenne/sc
Ecrire(” La moyenne est : ”, moyenne)
Fin

Algorithme Ex4 Algorithme Ex4_sol2


Variables Variables
N,i,u,d,c,m,s : entier
11 n,i,cub,q,r : entier 12
Début
Début
Répéter
Répéter Ecrire(”Donner un nombre positif de 4 chiffres au maximum”)
Ecrire(”Donner un nombre positif de 4 chiffres au maximum”) Lire(n)
Lire(n) Jusqu’à (n>0 et n<=9999)
Jusqu’à (n>0 et n<=9999) Pour i de 1 à n Faire
Pour i de 1 à n Faire cub0
u  i mod 10 qi
d  i div 10 mod 10 Répéter
c  i div 100 mod 10 r q mod 10
m  i div 1000 cub  cub+r^3
s  u^3+c^3+d^3+m^3 q  q div 10
Si (i=s) Alors Jusqu’à(q=0)
Ecrire(i, ” est cubique”) Si (i=cub) Alors
FinSi Ecrire(i, ” est cubique”)
FinPour FinSi
Fin FinPour
Fin
Algorithme Ex5
Variables
13 n1,n2,r,q: entier 14
Exercice 5 Début
Répéter
Ecrire(”Donner un entier strictement positif”)
Lire(n1)
Jusqu’à (n1>0)
n20
Écrire un algorithme permettant de :
qn1
 Saisir un entier n1 strictement positif, Répéter
 Calculez le nombre n2 rebours du nombre n1. r q mod 10
n2  n2*10+r
q  q div 10
 Exemple : Jusqu’à (q=0)
Ecrire("Le nombre rebours de " ,n1," est",n2)
Donnée : n1 = 8159357 Résultat : n2 = 7539518 Fin

Algorithme Ex6
Variables
15 n,s,nb,i : entier 16
Exercice 6 Début
Répéter
Ecrire(”Donner un entier strictement positif de 4 chiffres au maximum”)
Lire(n)
Écrire un algorithme permettant de : Jusqu’à (n>0 et n<=9999)
 saisir un entier n strictement positif de quatre chiffres au maximum et Pour nb de 1 à n Faire
d’afficher s’il est parfait ou non. s1
Pour i de 2 à nb div 2 Faire
 Remarque : un nombre naturel est parfait s’il est égal à la somme Si (nb mod i = 0) Alors
de ses diviseurs propres (c’est-`a-dire tous les nombres entiers qui ss+i
le divisent sauf lui-même) FinSi
FinPour
 Par exemple, 9 n’est pas parfait car 9 ≠ 1+3 mais 6 est parfait car Si(s=nb) Alors
6 = 1 + 2 + 3. Ecrire(nb, ”est parfait”)
FinSi
 saisir un entier n strictement positif de quatre chiffres au maximum et
FinPour
d’afficher tous les nombres parfaits inférieurs ou égal à n. Fin
17 Algorithme Ex7 18
Variables
Exercice 7 n,j,i : entier //testons si (n-i) est premier
premier : booléen j2
Début TantQue (j<=((n-i) div 2) et premier)
Répéter Faire
 Un chercheur français a prouvé que chaque nombre pair est Ecrire(”Donner un nombre pair”) Si ((n-i) mod j =0) Alors
décomposable en la somme de deux nombres premiers. Lire(n) premier  faux
 Exemple : pour n=10 on constate que 10=3+7 (3 et 7 sont premiers) Jusqu’à (n mod 2=0) FinSi
Pour i de 2 à n div 2 Faire jj+1
 Ecrire un algorithme qui permet de donner pour tout nombre pair, les //testons si (i) est premier FinTQ
deux nombres premiers dont il est décomposable premiervrai Si (premier=vrai) Alors
j2 Ecrire(n,”est décomposable en”,i,
 Exemple : TantQue (j<=(i div 2) et premier) ‘’+’’,n-i)
 Donner un nombre pair : 16 Faire FinSi
Si (i mod j =0) Alors FinPour
 Le nombre 16 est décomposable en deux nombres premiers : 11 et 5
premier  faux Fin
FinSi
jj+1
FinTQ

#include<stdio.h> 19 20
void main() //testons si (n-i) est premier Exercice 8
{ j=2;
int n,j,i; while (j<=((n-i)/2) && premier)
bool premier; {if ((n-i) % j ==0)  Un nombre positif entier est premier lorsque l'ensemble de ses diviseurs est une paire.
do{ premier=false;
 0 n'est pas premier
printf("Donner un nombre pair") ; j=j+1;
scanf("%d",&n); }  1 n'est pas premier puisqu'il n'admet qu'un seul diviseur
}while(n%2!=0); if (premier==true)  Un entier positif n supérieur ou égal à 2 est premier s’il n'admet aucun diviseur à part
for(i=2;i<=n/2;i++) printf("%d est décomposable en %d+%d", 1 et lui même
{ n,i,n-i); 1) Ecrire un algorithme qui détermine si un nombre est premier
//testons si (i) est premier }
premier=true; } 2) Modifier cet algorithme pour qu’il affiche tous les nombres premiers inférieurs ou
égales à 50.
j=2;
while(j<=(i/2) && premier) 3) Ecrire un algorithme qui détermine et affiche tous les nombres <1000 qui sont premiers
{if (i % j ==0) et dont la somme de leurs chiffres est supérieure à 5. Un nombre premier est divisible
premier=false; seulement par 1 et lui-même.
j=j+1;
}
Algorithme EX8_1 Algorithme EX8_2
Variables Variables
n,i : entier 21 n,i : entier 22
test: booléen;
Début test: booléen;
répéter Début
écrire("Donner un entier positif supérieur à 1: ") Ecrire(" Les nombres premiers inférieurs à 50 sont :")
lire(n); Pour n de 2 à 50 faire
Jusqu’à(n>=2) i  2
i  2 test  vrai
test  vrai
TantQue(i ≤ n div 2 et test=vrai) faire
TantQue(i ≤ n div 2 et test=vrai) faire
si(n mod i = 0) alors si(n mod i = 0) alors
test  faux test  faux
FinSi FinSi
i  i+1 i  i+1
FinTQ FinTQ
Si(test = vrai) alors
Si(test = vrai) alors
Ecrire(n," est premier.")
sinon Ecrire(n," | ")
Ecrire(n," n'est pas un nombre premier.") FinSi
FinSi FinPour
Fin Fin

Algorithme EX8_3 Si(test = vrai) alors


Variables s0 23 24
n,i,s,q,r : entier qn
test: booléen; Répéter Exercice 9
Début r q mod 10
Ecrire(" Les nombres premiers s s+r
inférieurs à 1000 et dont la somme q  q div 10  Écrire un algorithme permettant d’afficher un triangle rectangle de n lignes d’étoiles
avec 5≤ n ≤20 selon la figure 1.
de leurs chiffres est supérieure à Jusqu’à (q=0)
5 sont :") Si(s>5) alors  Ecrire par la suite quatre nouvel algorithmes pour afficher des triangles rectangles
Pour n de 2 à 999 faire Ecrire(n," | ") selon toutes les autres figures.
i  2 FinSi  Exemple : Donnée : n = 5
test  vrai FinSi Résultat :
TantQue(i ≤ n/2 et test=vrai) FinPour
si(n mod i = 0) alors Fin
test  faux
FinSi
i  i+1
FinTQ
Algorithme Ex9 Ecrire(” Fig2 ”)
Variables Pour i de 1 à n Faire 25 26
n,j,i : entier Pour j de 1 à n-i+1 Faire
Ecrire(” Fig5 ”)
c : Caractère Ecrire(” * ”) Ecrire(” Fig4 ”) Pour i de 1 à n Faire
Début FinPour Pour i de 1 à n Faire Pour j de 1 à i faire
Répéter Ecrire(” Retour Chariot ”) Pour j de 1 à i-1 Faire Si (j mod 3=0)alors
Ecrire(”Donner le nbre de FinPour Ecrire(” ”) Ecrire("c");
lignes entre 5 et 20”) Fin pour sinon
Lire(n) Ecrire(” Fig3 ”) Pour j de i à n Faire Si(j mod 3 = 1)alors
Jusqu’à (n>=5 et n<=20) Pour i de 1 à n Faire //ou bien Ecrire("a");
Pour j de 1 à n-i Faire //Pour j de n à i [pas = -1] faire sinon
Ecrire(” Fig1 ”) Ecrire(” ”) Ecrire(” * ”) Ecrire("b");
Pour i de 1 à n Faire FinPour Fin pour FinSi
Pour j de 1 à i Faire Pour j de n-i+1 à n Faire Ecrire(” Retour Chariot ”) FinSi
Ecrire(” * ”) Ecrire(” * ”) FinPour FinPour
FinPour Fin pour Ecrire(” Retour Chariot ”)
Ecrire(” Retour Chariot ”) Ecrire(” Retour Chariot ”) FinPour
FinPour FinPour Fin

Vous aimerez peut-être aussi