Vous êtes sur la page 1sur 3

Université d’Oran II − Institut de Maintenance et de Sécurité Industrielle

1ère année LMD GI/HSI/ELM − Semestre 2 (2015/2016) − Module : Informatique 2


Durée : 1h30mn − L. Belkhodja / S. Reguieg / M. Rouan Serik − Date: 23/05/2016

EXAMEN DE SEMESTRE 2

Exercice 1 : (7 pts)


Soit le programme C suivant  (où N est un
nombre entier strictement positif) :

int N, I, CPT ;
int main () 1. Exécuter ce programme pour N=5.
{
printf(”Entrez le nombre N :”) ; 2. Exécuter le même programme pour N=6.
scanf(”%d”,&N) ;
CPT=0 ; 3. Remplacer Message1 et Message2 par la
for (I=1 ; I<=N ; I++) fonction du programme.
if (N%I==0) CPT=CPT+1 ;
if (CPT==2) printf(”Message1 \n”) ; 4. Translater l’instruction for de ce programme
else printf(”Message2 \n”) ; en instruction écrite en langage algorithmique.
system(”PAUSE”) ;
}

Exercice 2 : (7 pts)


Ecrire un programme en langage C permettant de calculer le carré d’un nombre entier positif N lu

au clavier suivant la formule suivante : N² = 1+2+...+(N-2)+(N-1)+N+(N-1)+(N-2)+...+2+1.


Exemples : 1² = 1 ; 2² = 1+2+1 = 4 ; 5² = 1+2+3+4+5+4+3+2+1 = 25 ; …etc.

Exercice 3 : (6 pts)

1. Quelle est la différence entre un algorithme et un programme ?


2. Citer 3 opérateurs de comparaison et 2 opérateurs logiques en langage C.

3. La boucle suivante s’arrêtera-t-elle, ou est-ce une boucle infinie ? Expliquer pourquoi.
A 0 ;
B 2 ;
TANTQUE (B >A) FAIRE A A* B ;
FIN TANTQUE ;

BON COURAGE

Remarques : Les calculatrices et les téléphones portables sont strictement interdits.


Prière d’indiquer votre numéro de groupe sur la feuille de réponse.
Université d’Oran II − Institut de Maintenance et de Sécurité Industrielle
1ère année LMD GI/HSI/ELM − Semestre 2 (2015/2016) − Module : Informatique 2
Durée : 1h30mn − L. Belkhodja / S. Reguieg / M. Rouan Serik − Date: 23/05/2016
CORRIGE DE l’EXAMEN DU SEMESTRE 2

Corrigé de l’exercice1:

1. Exécution pour N=5 2 pts

N CPT I Condition1 Condition2 Condition3 Ecran


I<=N N%i CPT=2
5 0
1 vrai vrai 0+1=1
2 vrai faux Entrez le nombre N : 5
3 vrai faux
4 vrai faux
5 vrai vrai 1+1=2 Message1
6 faux

2. Exécution pour N=6 2 pts

N CPT I Condition1 Condition2 Condition3 Ecran


I<=N N%i CPT=2
6 0
1 vrai vrai 0+1=1
2 vrai vrai 1+1=2 Entrez le nombre N : 5
3 vrai vrai 2+1=3
4 vrai faux
5 vrai faux Message2
6 vrai vrai 3+1=4

7 faux

3. Que fait ce programme ? (1 pt)

Message1 N est un nombre premier


Message2 N est un nombre non premier

4. for (I=1 ; I<=N ; I++) if (N%I==0) CPT=CPT+1 ; (2 pts)

En langage algorithmique
pour i :1 à N , 1 faire si N mod 2= 0 alors cptcpt+1 ; finsi ; finpour ;

Remarques : Les calculatrices et les téléphones portables sont strictement interdits.


Prière d’indiquer votre numéro de groupe sur la feuille de réponse.
Université d’Oran II − Institut de Maintenance et de Sécurité Industrielle
1ère année LMD GI/HSI/ELM − Semestre 2 (2015/2016) − Module : Informatique 2
Durée : 1h30mn − L. Belkhodja / S. Reguieg / M. Rouan Serik − Date: 23/05/2016

Corrigé de l’exercice2:
int N,i,car; 1.25
int main()0.25
{ 0.25
printf("CALCUL DU CARRE DU NOMBRE N \n");
printf("Donner la valeur de N : ");
scanf("%d",&N); 1
car=0; 1
for (i=1;i<=N;i++)
car=car+i; 3
for (i=N-1;i>=1;i--)
car=car+i;
printf("le carre du nombre N=%d",car);
system("PAUSE");
}0.25

Corrigé de l’exercice3:

1. Quelle est la différence entre un algorithme et un programme ? (1 pt)


Un algorithme est écrit dans un langage algorithmique et un programme est écrit dans un langage de
programmation

2. Citer 3 opérateurs de comparaison et 2 opérateurs logiques en langage C. (3 pts)


Opérateurs de comparaison egalité == difference != superieur ou égal >=

Opérateurs logiques ET : && OU : ||

3. Cette boucle est infinie puisque la condition B>A est toujours vérifiée : A étant toujours remis à 0
(2 pts)
A 0 ;
B 2 ;
TANTQUE (B >A) FAIRE A A* B ;
FIN TANTQUE ;

Remarques : Les calculatrices et les téléphones portables sont strictement interdits.


Prière d’indiquer votre numéro de groupe sur la feuille de réponse.

Vous aimerez peut-être aussi