Vous êtes sur la page 1sur 7

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