Vous êtes sur la page 1sur 11

INSTITUT SUPÉRIEUR DE

GÉNIE DE ELECTRIQUE
DU BURKINA FASO
———
1ÈRE ANNÉE TRONC COMMUN
FORMATION INITIALE (1ATCFI)

1ATCFI A et B NOM :
Année académique 2021 - 2022
CORRIGÉ du Devoir Surveillé No 2 Prénom(s) :
Juillet 2022
Durée : 03H Enseignants : Cédric BÉRÉ et Alexis NAGALO

CORRIGÉ du DS No 2 – ALGORITHMIQUE ET PROGRAMMATION

Ce contrôle continu contient 11 pages (y compris cette page de garde) et 3 exercices. Vérifiez
qu’aucune page ne manque. Inscrivez toutes les informations requises en haut de la page (Noms et
Prénoms) et mettez vos initiales en fin de chaque page, au cas où certaines pages se sépareraient
et se mélangeraient aux copies de vos collègues.

Aucun document ni support de cours n’est autorisé sauf le mémo du langage qui
vous seras remis lors de la composition !
Vous êtes tenus d’inclure toutes les pages de la partie QCM de cet examen dans votre copie finale
afin que toutes les questions puissent êtres évaluées. Les barème suivant sera appliqué :

Question Points Score


1 13
2 10
3 42
Total: 65

NOTE (/20) :
NE PAS ECRIRE DANS LES CASES DU TABLEAU CI-DESSUS !

Répondez aux questions dans les espaces prévus à cet effet sur la feuille de contrôle.
Si vous êtes à court d’espace pour une réponse, continuez au dos de la page.
1ATCFI A et B CORRIGÉ du Devoir Surveillé No 2 - Page 2 of 11 Juillet 2022

1 Questionnaire à Choix Multiples (QCM)


Question 1
(a) 1 point Un tableau est ?
A. un ensemble de données hétérogènes
B. un emplacement qui stocke plusieurs données
C. un ensemble de données de même type
D. un objet composé qui contient plusieurs valeurs

(b) 1 point Dans un organigramme, une instruction d’entrée ou de sortie est représentée
par : ...
A. Un losange
B. Un rectangle
C. Un parallélogramme
D. Un cercle

(c) 1 point Dans un organigramme, un calcul (processus) est représenté par : ...
A. Un losange
B. Un rectangle
C. Un parallélogramme
D. Un cercle

(d) 1 point Pour répéter une tâche, nous utilisons une ?


A. Entrée
B. Condition
C. Boucle
D. Sortie

(e) 1 point Quelle est la sortie du code suivant ? ( Pour cette question, Bonne réponse :
1 ; Mauvaise réponse : -0,25 ; Absence de réponse 0.)
A. 6.0000000
B. 6.8
C. 6
D. Erreur de compilation
#include <stdio.h>
int main()
{
int var = 6;
float var = 6;
printf("%d", var )
return 0;
}
1ATCFI A et B CORRIGÉ du Devoir Surveillé No 2 - Page 3 of 11 Juillet 2022

(f) 1 point Quelle déclaration est fausse ?


A. Une variable se réfère à un emplacement dans la mémoire
B. Une variable doit être déclarée et définie au même temps
C. Une seule variable ne peut pas être définie avec deux types différents dans la
même fonction
D. Une variable définie une fois, peut être définie à nouveau avec une portée différente

(g) 2 points Quelle(s) est(sont) la(les) bonne(s) syntaxe(s) d’initialisation de tableau d’en-
tiers de taille 4 :
A. int tab[2,10, 5, 9] ;
B. int 2,10, 5, 9 ;
C. int tab[4] ={2,10, 5, 9} ;
D. int tab[] ={2,10, 5, 9} ;

(h) 2 points Quelle(s) est(sont) la(les) bonne(s) syntaxe(s) de déclaration d’une chaine de
caractère ayant la valeur Bienvenue à l’ISGE
A. char ch=”Bienvenue à l’ISGE” ;
B. char ch[10]=”Bienvenue à l’ISGE” ;
C. char ch[20]=”Bienvenue à l’ISGE” ;
D. char ch[]=”Bienvenue à l’ISGE” ;

A. a vaut 2 ; b vaut 2 ; c vaut 3


B. a vaut 1 ; b vaut 2 ; c vaut 3
C. a vaut 1 ; b vaut 2 ; c vaut 3
D. a vaut 2 ; b vaut 3 ; c vaut 2

(i) 1 point Le langage C est un langage


A. compilé
B. interprété
C. compilé et interprété
D. ni compilé, ni interprété

(j) 1 point Quelles sont les valeurs des variables après exécution de cet algorithme :

Toto = 24;
Tutu = Toto
Tutu = Toto + 4
Tutu = Tutu + 1
Riri = "Loulou"
Fifi = "Riri"
Riri = Fifi
1ATCFI A et B CORRIGÉ du Devoir Surveillé No 2 - Page 4 of 11 Juillet 2022

A. Toto vaut 24 ; Tutu vaut 29 ; Riri vaut ”Riri” ; Fifi vaut ”Riri”
B. Toto vaut 4 ; Tutu vaut 24 ; Riri vaut ”Loulou” ; Fifi vaut ”Fifi”
C. Toto vaut 24 ; Tutu vaut 1 ; Riri vaut ”Riri” ; Fifi vaut ”Riri”
D. Toto vaut 24 ; Tutu vaut 28 ; Riri vaut ”Loulou” ; Fifi vaut ”Riri”

(k) 1 point Une variable de type simple peut avoir


A. Une et une seule valeur
B. Plusieurs valeurs
C. Un et un seul type
D. Plusieurs types

2 Question de cours
Question 2
(a) 2 points Citez trois (03) langages de programmation ?

Solution:
(b) langage C, langage php, JAVA, AJAX, JavaScript, Python, Ruby, ...

(c) 3 points Quelles différences faites-vous entre un langage compilé et un langage interprété ?

Solution: La différence entre un langage compilé et un langage interprété est que


un programme écrit avec un langage compilé a besoin d’un compilateur tandis qu’un
programme écrit dans un langage interprété a besoin d’un interpreteur. Dans le cas des
langages compilés, Le compilateur traduit une bonne fois pour toute un code source
en un fichier indépendant exécutable (donc utilisant du code machine ou du code
d’assemblage),
Dans le cas des langages interprétés, l’interprète est nécessaire à chaque lancement
du programme interprété, pour traduire au fur et à mesure le code source en code
machine.

(d) 5 points Donnez des exemples identiques (même résultat) d’utilisation de ces deux boucles
en langage C. Quelle est la différence entre la boucle while() et la boucle do ... while()
expliquez à partir de vos exemples.

Solution:
#include <stdio.h>
int main()
{
int i;
1ATCFI A et B CORRIGÉ du Devoir Surveillé No 2 - Page 5 of 11 Juillet 2022

//Boucle do... while pour contr^


oler la saisie de la variable i
do {
scanf("%d", &i);

}while(i<=10);

return 0;
}

Solution:
#include <stdio.h>
int main()
{
int i;
scanf("%d", &i);

//Boucle while pour contr^


oler la saisie de la variable i
while(i<=10) {
scanf("%d", &i);
}
return 0;
}

Ici, la principale différence entre la boucle while et la boucle do while est la suivante :
Dans la boucle while la condition de vérification s’exécute avant l’itération de la boucle,
alors que do while, vérifie la condition après l’exécution des instructions à l’intérieur de la
boucle.

3 Programmation
Question 3
(a) 4 points Écrivez un programme en C qui demande le rayon d’un cercle (flottant) et
affiche son diamètre, sa circonférence et sa surface ?

Solution:
#include<stdio.h>

int main(){
1ATCFI A et B CORRIGÉ du Devoir Surveillé No 2 - Page 6 of 11 Juillet 2022

float ray, diam, circ, surf;

printf("Entrer le rayon du cercle");


scanf("%f", &ray);

diam = 2*ray;
printf("Le diamètre du cercle est : %f", diam);

circ = 2*3.14*ray;
printf("La circonférence du cercle est : %f", circ);

surf = 3.14*ray*ray;
printf("La surface du cercle est : %f", surf);

return 0;
}

(b) 4 points Réaliser le programme en C qui demande un entier et indique s’il est pair ou
impair. ?

Solution:
#include<stdio.h>
#include<stdlib.h>

main(void)
{
int a;

printf("\t PARITE D’UN NOMBRE\n");


printf("\t \n Entrer a:\n");
scanf("%d" , &a);

if(a%2==0)
{
printf("\t \n %d est nombre pair\n",a);
}
else
printf("\t \n %d est nombre impair\n ",a);

return 0;

}
1ATCFI A et B CORRIGÉ du Devoir Surveillé No 2 - Page 7 of 11 Juillet 2022

(c) 4 points Ecrivez un programme en C qui lit deux variables A et B, puis calcule leur
somme dans la variable S et l’affiche, ensuite leur produit dans la variable P et l’affiche et
enfin leur moyenne dans la variable M et l’affiche ?

Solution:
#include<stdio.h>

int main(){

float A, B, S, M, P; //float ou int

printf("Entrer une valeur ");


scanf("%f", &A);

printf("Entrer une autre valeur ");


scanf("%f", &B);

S = A + B;
P = A*B;
M = S/2;

printf("La somme de %f et %f est : %f", A, B, S);

printf("Le produit de %f et %f est : %f", A, B, P);

printf("La moyenne de %f et %f est : %f", A, B, M);

return 0;
}

(d) 6 points Ecrivez un programme en C qui permet à l’utilisateur d’entrer 10 valeurs entières
(On utilisera un tableau). Le programme affichera ensuite la somme des entiers. ?

Solution:
#include<stdio.h>

int main(){

int i, somme;
int tab[10];

for(i=0; i<10; i++){


printf("Entrer une valeur");
scanf("%d", &tab[i]);
}
1ATCFI A et B CORRIGÉ du Devoir Surveillé No 2 - Page 8 of 11 Juillet 2022

somme=0;
for(i=1; i<10; i++){
somme=somme+tab[i];
}
printf("Le Somme est : %d ", somme);

return 0;
}

(e) 4 points Ecrivez un autre programme en C qui utilise seulement 2 variables Var1 et Var2
pour lire au clavier 3 valeurs, puis affiche leur somme à l’écran ?

Solution:
#include<stdio.h>

int main(){

int Var1, Var2;

printf("Entrer une valeur");


scanf("%d", &Var1);

printf("Entrer une autre valeur");


scanf("%d", &Var2);

Var1 = Var1 + Var2;

printf("Entrer une dernière valeur");


scanf("%d", &Var2);

Var1 = Var1 + Var2;


printf("La somme des 3 valeurs est de : %d", Var1);

return 0;
}

(f) 10 points Soit la suite (Un ) définie par :


U0 = 2
U1 = 3
1ATCFI A et B CORRIGÉ du Devoir Surveillé No 2 - Page 9 of 11 Juillet 2022

Un = Un−1 + 2 x Un−2 (pour n > 1)


— Écrire un programme qui demande à l’utilisateur la valeur de n, calcule et affiche Un
le nème terme de la suite (U).
— En supposant que cette suite est croissante, écrire un programme permettant de lire
un entier x (x > 2), de vérifier et d’afficher s’il est un terme de la suite U ou non.
Dans l’affirmative afficher son rang.

Réponse à la question 1 :

Solution:
#include<stdio.h> /*Déclaration de bibliothèque*/

/* Programme principal*/
int main(){

int A, B, C,i, n;

printf("Entrer la valeur de n : ");


scanf("%d", &n);

//Initialisation
A = 2;
B = 3;

for(i=2; i<=n; i++){


C = B + 2*A;
A = B;
B = C;
}

printf("\n Le terme U%d de la suite est : %d \n ", i, C);

return 0;
}

Réponse à la question 2 :

Solution:
#include<stdio.h> /*Déclaration de bibliothèque*/

/* Programme principal*/
int main(){
1ATCFI A et B CORRIGÉ du Devoir Surveillé No 2 - Page 10 of 11 Juillet 2022

int A, B, C, rang, X;

do{
printf("Entrer la valeur de X : ");
scanf("%d", &X);
}while(X<=2);

//Initialisation
A = 2;
B = 3;
rang = 1;

do{
C = B + 2*A;
A = B;
B = C;
rang++;
}while(C<X);

if(C==X)
printf("%d est un terme de la suite et son rang est %d", X, rang);
else
printf("%d N’EST PAS un terme de la suite", X);

return 0;
}

(g) 10 points Pierre-André est un lycéen, son père lui a offert une tirelire qui ne contient
rien au départ(0 F CFA).
Il décide d’épargner à partir de l’argent de son goûter à raison de 25 FCFA de plus par
semaine par rapport à la semaine précédente.
Exemple :
— semaine No 1, il doit épargner 25F , montant total de sa tirelire = 0F + 25F soit
25F
— semaine No 2, il doit épargner 50F = (25F + 25F), montant total de sa tirelire =
25F + 50F soit 75F
— semaine No 3, il doit épargner 75F = (50F + 25F), montant total de sa tirelire =
75F + 75F soit 150F
— semaine No 4, il doit épargner 100F = (75F + 25F), montant total de sa tirelire =
150F + 100F soit 250F
En consiédrant qu’une année scolaire comporte 36 semaines de cours. Écriver le programme
Tirelire.c qui affiche pour chaque semaine le montant qu’il doit épargner mais aussi le
montant total de sa tirelire durant chaque semaine de cours.
1ATCFI A et B CORRIGÉ du Devoir Surveillé No 2 - Page 11 of 11 Juillet 2022

Solution:
#include<stdio.h> /*Déclaration de bibliotheque*/

int main(){
int somAEpargner[36];
int mtTotalEpargne = 0;
int i;
somAEpargner[0]= 25; //Première semaine

//Calcul de la somme à Epargner par semaine


for(i=1; i<36; i++){
somAEpargner[i] = somAEpargner[i-1] + 25;
}

//Calcul du montant total de l’Epargne par semaine


for(i=0; i<36; i++){
mtTotalEpargne = mtTotalEpargne + somAEpargner[i];
printf("\n La semaine No %d, il doit epargner %d, et le
montant total de sa tirelire est de %d", i+1, somAEpargner[i], mtTotalEpargne);
}

return 0;
}

Vous aimerez peut-être aussi