Info devoir 2 PD

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 3

REPUBLIQUE DU CAMEROUN ANNEE SCOLAIRE : 2024-2025

Paix – Travail – Patrie


******* CLASSE : PCD
LYCEE DE HA
DURÉE : 02h
DEPARTEMENT D’INFORMATIQUE COEF : 02

EVALUATION TRIMESTRIELLE NO1, DEVOIR NO2

EPREUVE THEORIQUE D’INFORMATIQUE

Indicateurs de la compétence : Utiliser les structures algorithmiques ; Utiliser les fonctions et les
procédures ; écrire et exécuter un programme C.

La présentation, la précision et la concision sanctionneront votre note

PARTIE I : ALGORITHMIQUE 11,5pts


EXERCICE 1 : Structures de données et exécution d’un algorithme 5,5pts

Votre camarade veut écrire un algorithme permettant de manipuler les âges de 5 élèves. Pour cela,
il souhaite déclarer une structure de données telle qu’un tableau. Ne sachant pas s’y prendre, il sollicite
votre aide.

1. Définir : tableau 0,5pt

2. En dehors des tableaux, citer deux autres de structures de données. 1pt

3. Donner la déclaration d’un tableau pour contenir les âges de ces 5 élèves. 0,5pt

4. On considère le tableau ages suivant : Algorithme fait_quoi

15 17 19 20 12 14 Const n = 5 ;

En considérant uniquement pour cette question Variables ages : tableau[n] de Entier ;


que le premier index de ce tableau est 1 :
S, i, nbreAdo : entier ; m : réel;
4.a) Écrire l’instruction permettant d’afficher la Debut
valeur 14 du tableau. 0,5pt
S⟵ 0;
4.b) Déterminer les valeurs de ages[1], ages[4]
et N tel que N ← ages[9] / 5 ; 1,5pt nbreAdo⟵ 0 ;

5. En considérant les données du tableau ages Pour i allant de 1 à n faire


précédant, exécuter l’algorithme suivant, donner S⟵ S + ages[i] ;
son résultat puis en déduire ce qu’il fait. 1,5pt
si (ages[i] > 14) alors

nbreAdo ⟵ nbreAdo + 1;

finsi

Finpour
LYCEE DE HA/DEVOIR NO2 /INFORMATIQUE/NOVEMBRE 2024/PCD. Page 1 sur 3
m⟵ S/n;

Ecrire ("Le résultat est : ", m) ;


Exercice 2 : Les sous-algorithmes 6pts

Lorsque l'on progresse dans la conception d'un algorithme, ce dernier peut prendre une taille/complexité
croissante ; on utilise ainsi des sous algorithmes. Analyser attentivement l’algorithme suivant et répondre
aux questions ci-après.

1- Algorithme Calcul 14- FinProcédure


2- Variables A, B, M : réel; 15- DEBUT
3- Fonction Max(X: réel, Y: réel) : réel 16- Ecrire ("Donnez la valeur de A : ") ;
4- Début 17- Lire(A) ;
5- Si (X > Y) Alors 18- Ecrire ("Donnez la valeur de B : ") ;
6- Retourner X; 19- Lire(B) ;
7- Sinon 20- M ← Max(A,B) ;
8- Retourner Y; 21- Ecrire ("Le plus grand des deux est : ", M);
9- FinSi 22- M ← Max(A,B) ;
10- FinFonction 23- nAuCarre(M) ;
11- Procédure nAuCarre(var A : Reel) 24- Ecrire ("Le plus grand devient : ", M) ;
12- Début 25- FIN
13- A←A*2;

1. Définir : sous-algorithme, paramètre 1pt

2. Identifier dans cet algorithme : 0,5*6=3pts

a. Deux paramètres formels. d. Deux variables globales.


b. Deux paramètres effectifs de la procédure. e. Une variable locale.
c. L’instruction d’appel de la procédure. f. Le mode de passage du paramètre
A.
3. On suppose l’utilisateur saisit 2000 et 45 respectivement pour des variables A et B.

a. Exécuter l’appel de la fonction de la ligne 22 pour trouver la valeur de M. 1pt

b. L’appel de la procédure (ligne 23) change la valeur de la variable M. Donner cette nouvelle valeur.
1pt

PARTIE II: PROGRAMMATION EN LANGAGE C 8,5 pts

1. Donner une définition de :

a) langage de programmation, b) compilation 1pt

2. Un palindrome est un mot ou un groupe de mot qui peut se lire indifféremment de gauche à droite ou
de droite à gauche en gardant le même sens. Le programme C ci-dessous permet de déterminer si
un nombre entier est un palindrome ou pas.

LYCEE DE HA/DEVOIR NO2 /INFORMATIQUE/NOVEMBRE 2024/PCD. Page 2 sur 3


2.1. Relever dans ce code source : 3pts #include <stdlib.h>

a) Une instruction de lecture #include <stdio.h>

b) Une affectation int main(){

c) La boucle utilisée int m, inverse, n=0 ;

d) Les variables utilisées et leur type printf("Taper un nombre au clavier \n") ;

e) La bibliothèque standard d’entrée/sortie scanf("%d",&m);

2.2. Quelle est la condition d’arrêt de la inverse = 0; n = m;


structure itérative utilisée dans ce do{
programme ? 0,5pt
inverse = (inverse*10) + ( n%10 );
2.3. Donner le rôle du caractère & dans
n = n / 10;
l’instruction « scanf("%d",&m); ». 0,5pt
} while(n>0);
2.4. Choisir la bonne réponse. Si la variable n
vaut 32 au début du premier passage dans if (m==inverse){
la boucle, alors : 0,5*2=1pt
printf ("%d est un palindrome", m);
i) n%10 vaut :
}
a) 3 b) 2 c) 23 else

ii) Après l’exécution de printf ("%d n'est pas un palindrome", m);

inverse=(inverse*10) +(n%10) ; inverse return 0;


vaut : a) 2 b) 3 c) 30 }

2.5. Réécrire les lignes 8 à 11 de ce programme en utilisant la structure itérative While. 1pt

2.6. Exécuter ce programme si l’utilisateur entre la valeur m=1881. 1,5pt

2.7. Donner le message qui sera affiché à la console si m=371. 0,5pt

2.8. Nommer un logiciel qu’on pourra utiliser pour traduire ce code source en langage machine ? 0,5pt

« La réussite est la somme de petits efforts répétés jour après jour. »


Robert Collier

Par M. TUEKAM Aurelien

LYCEE DE HA/DEVOIR NO2 /INFORMATIQUE/NOVEMBRE 2024/PCD. Page 3 sur 3

Vous aimerez peut-être aussi