Soient les déclarations de variables suivantes :
float x, y;
int condition;
Réécrire l’expression ci-dessous en mettant des parenthèses montrant l’ordre d’évaluation.
condition = x >= 0 && x <= 20 && y > x || y == 50 && x == 2 || y == 60;
Donner la valeur de « condition » évaluée avec les valeurs suivantes de x et y.
- ) x = -1.0; y = 60.0;
- ) x = 0.0 ; y = 1.0;
- ) x = 19.0 ; y = 1.0;
- ) x = 0.0 ; y = 50.0;
- ) x = 2.0 ; y = 50.0;
- ) x = -10.0 ; y = 60.0;
Soient les déclarations suivantes :
char m, n = 2, d = 0x55, e = 0xAA;
Représentez en binaire et en hexadécimal la valeur de tous les bits de la variable m après exécution de chacune des instructions suivantes.
m = 1 << n;
m = ~(1 << n);
m = d | (1 << n);
m = e | (1 << n);
m = d ^ (1 << n);
m = e ^ (1 << n);
m = d & ~(1 << n);
m = e & ~(1 << n);
Pour chaque expression, dites quelle fonction elle remplit au niveau binaire. Ex : L’expression 1 calcule un nombre binaire dont seul le bit n est à 1.
Exemple : res = a>b ? 12 : 34
- Écrire une expression où a=12 si b est pair sinon a=0
- Écrire une expression où res=1 si le bit #3 de b égal 1 sinon res=0
- Ecrire une expression où res=true si b est un multiple de 27 sinon b=false
-
Faire une boucle
while
qui affiche les nombre de 23 à 56 séparé par-
sans afficher la quarantaine. 40, 41..49 -
Faire une boucle
for
qui affiche les nombres de 10 à 1 par intervalle de 3 -
Faire
UNE
boucle qui affiche les nombres de 0 à 10 et de 10 à 0 en affichant une seule fois le 10 -
Faire une boucle qui affiche les caractères de
F
àW
séparé par-
-
Faire une boucle
do...while
qui affiche les multiples de13
entre0 et 200
séparé par,
Quel est l'affichage de :
int a = 12, res;
if( a > 12 )
res = 0;
else
res = 12;
printf("Res : %d", res);
Faite l'exercice suivant avec a=5, a=10, a=15, a=20
int a, res1, res2;
if( a <= 10 )
res1 = 0;
else if( a < 20 )
res1 = 1;
if( a <= 10 )
res2 = 0;
if( a < 20 )
res2 = 1;
printf("Res1 : %d - Res2 : %d", res1, res2);
Faite l'exercice suivant avec a=5, a=7, a=10, a=23
switch(a){
case 1:
res = 1;
break;
case 2:
res = 2;
break;
case 5:
res = 3;
break;
case 23:
case 10:
res = 4;
break;
default:
res = 10;
break;
}
printf("Res : %d", res);
Dans un système nous avons les signaux suivant :
- porte :
true
la porte est ouverte - lampe :
true
la lampe est allumée - det_presence :
true
une présence est détectée
Lorsque les deux portes sont ouvertes, il faut que la lampe soit éteinte
bool porte1, porte2, lampe;
if( ... ){
lampe = ...
}
else{
...
}
Si une des deux portes est ouverte ou que le détecteur repère quelque chose, il faut que la lampe s'allume
bool porte1, porte2, det_presence lampe;
if( ... ){
lampe = ...
}
else{
...
}
Si la porte 1 est ouverte et que le détecteur repère quelque chose, il faut que la lampe s'allume. Par contre si la porte 2 est fermée, il faut que la lampe soit dans tout les cas éteintes
bool porte1, porte2, det_presence lampe;
if( ... ){
lampe = ...
}
else{
...
}
On fait un compteur qui va de 0
à 100
On affiche les valeurs suivante en fonction du compteur:
- cpt < 10 : On affiche cpt
- cpt <= 20 : On affiche cpt * 10
- cpt <= 30 : On affiche cpt * 100
- cpt > 30 : On affiche cpt
Exemple d'affichage
0 - 0
1 - 1
2 - 2
...
13 - 130
14 - 140
...
89 - 89
Remplir les printf
suivant pour respecter l'affichage
double a=1.00, b=1000.00
printf(...);
printf(...);
| 1.00
| 1000.00
int a=1000, b=25
printf(...);
printf(...);
val1 = 1000
valeur 2 = 25
int a=1000, b=25
printf(...);
printf(...);
val1 = 1000
valeur 2 = 25
double a=0.001, b=100.4
printf(...);
printf(...);
val1 = 0.001
valeur 2 = 100.4
double a=-12, b=100.123, c=-4.5
printf(...);
printf(...);
printf(...);
| -12
| 100.123
| -4.5