Beruflich Dokumente
Kultur Dokumente
Exercice 2.3
Exercice 2.4
Exercice 2.5
Exercice 3.1
Exercice 3.3
Complétez le tableau suivant:
Exercice 3.4
Exercice 3.5
Exercice 3.6
printf()
La fonction printf est utilisée pour transférer du texte,
des valeurs de variables ou des résultats d'expressions
vers le fichier de sortie standard stdout (par défaut
l'écran).
Ecriture formatée en langage algorithmique
écrire <Expression1>,<Expression2>, ...
Ecriture formatée en C
printf("<format>",<Expr1>,<Expr2>, ... )
"<format>" : format de représentation
variables et expressions dont les valeurs
<Expr1>,... :
sont à représenter
Exemple 2
La suite d'instructions:
char B = 'A';
printf("Le caractère %c a le code %i
!\n", B, B);
va afficher sur l'écran:
Le caractère A a le code 65 !
La valeur de B est donc affichée sous
deux formats différents:
%c comme caractère: A
%i comme entier relatif: 65
2. Arguments rationnels
Les spécificateurs %f et %e peuvent être utilisés pour
représenter des arguments du type float ou double. La
mantisse des nombres représentés par %e contient
exactement un chiffre (non nul) devant le point décimal.
Cette représentation s'appelle la notation scientifique
des rationnels.
Pour pouvoir traiter correctement les arguments du type
long double, il faut utiliser les spécificateurs %Lf et %Le.
Exemple
float N = 12.1234;
double M = 12.123456789;
long double P = 15.5;
printf("%f", N); ==> 12.123400
printf("%f", M); ==> 12.123457
printf("%e", N); ==> 1.212340e+01
printf("%e", M); ==> 1.212346e+01
printf("%Le", P); ==> 1.550000e+01
#include <stdio.h>
main()
{
int N=10, P=5, Q=10, R;
char C='S';
N = 5; P = 2;
Q = N++ > P || P++ != 3;
printf ("C : N=%d P=%d Q=%d\n", N, P,
Q);
N = 5; P = 2;
Q = N++ < P || P++ != 3;
printf ("D : N=%d P=%d Q=%d\n", N, P,
Q);
N = 5; P = 2;
Q = ++N == 3 && ++P == 3;
printf ("E : N=%d P=%d Q=%d\n", N, P,
Q);
N=5; P=2;
Q = ++N == 6 && ++P == 3;
printf ("F : N=%d P=%d Q=%d\n", N, P,
Q);
N=C;
printf ("G : %c %c\n", C, N);
printf ("H : %d %d\n", C, N);
printf ("I : %x %x\n", C, N);
return 0;
}
a) Sans utiliser l'ordinateur, trouvez et
notez les résultats du programme ci-
dessus.
b) Vérifiez vos résultats à l'aide de l'ordinateur.
Exercice 4.2
données reçues : 3
jour : 11
mois : 11
année : 1991
Exercice 4.3
Ecrire un programme qui lit un caractère au clavier et
affiche le caractère ainsi que son code numérique:
a) en employant getchar et printf,
b) en employant getch et printf.
Exercice 4.4
Exercice 4.5
Exercice 4.6
Exercice 4.7
Exercice 4.8
Exercice 4.9
a) Ecrire un programme qui calcule le prix TTC (type
double) d'un article à partir du prix net (type int) et du
pourcentage de TVA (type int) à ajouter. Utilisez la
formule suivante en faisant attention aux priorités et aux
conversions automatiques de type:
Exercice 4.10
Exercice 5.1
Exercice 5.3
Exercice 5.4
Ecrivez un programme qui lit trois valeurs entières (A, B
et C) au clavier. Triez les valeurs A, B et C par échanges
successifs de manière à obtenir :
val(A) val(B) val(C)
Affichez les trois valeurs.
Exercice 5.5
Exercice 5.6
Exercice 5.7
Exercice 6.1
Exercice 6.2
Exercice 6.3
Exercice 6.4
Exercice 6.5
Exercice 6.6
Calculez la somme des N premiers termes de la série
harmonique :
1 + 1/2 + 1/3 + ... + 1/N
Exercice 6.7
Exercice 6.8
Exercice 6.9
Exercice 6.10
Exercice 6.11
Exercice 6.12
Calculez le N-ième terme UN de la suite de FIBONACCI
qui est donnée par la relation de récurrence:
U1=1 U2=1 UN=UN-1 + UN-2 (pour N>2)
Déterminez le rang N et la valeur UN du terme maximal
que l'on peut calculer si on utilise pour UN :
- le type int
- le type long
- le type double
- le type long double
Exercice 6.13
Exercice 6.14
*
***
*****
*******
*********
***********
*************
***************
Exercice 6.15
Exercice 7.1
Exercice 7.3
Exercice 7.4
Ecrire un programme qui lit la dimension N d'un tableau
T du type int (dimension maximale: 50 composantes),
remplit le tableau par des valeurs entrées au clavier et
affiche le tableau.
Copiez ensuite toutes les composantes strictement
positives dans un deuxième tableau TPOS et toutes les
valeurs strictement négatives dans un troisième tableau
TNEG. Afficher les tableaux TPOS et TNEG.
Exercice 7.5
Exercice 7.6
Exercice 7.7
Ecrire un programme qui transfère un tableau M à deux
dimensions L et C (dimensions maximales: 10 lignes et
10 colonnes) dans un tableau V à une dimension L*C.
Exemple:
/ \
| a b c d | /
\
| e f g h | ==> | a b c d e f g h i
j k l |
| i j k l | \
6 >
#######
5 > #######
#######
4 > ####### #######
#######
3 > ####### #######
####### #######
2 > ####### ####### #######
####### #######
1 > ####### ####### #######
####### #######
+-------+-------+-------+-------+-
------+-------+-------+
I 0 - 9 I 10-19 I 20-29 I 30-39 I
40-49 I 50-59 I 60 I
Rappel:
/ \ / \ / \
| a b c | | p q | | a*p + b*r + c*t a*q + b*s + c*u |
| e f g | * | r s | = | e*p + f*r + g*t e*q + f*s + g*u |
| h i j | | t u | | h*p + i*r + j*t h*q + i*s + j*u |
| k l m | \ / | k*p + l*r + m*t k*q + l*s + m*u |
\ / \ /
Méthode:
Calculer et afficher seulement les valeurs jusqu'à la
diagonale principale (incluse). Limiter le degré à entrer
par l'utilisateur à 13.
Construire le triangle ligne par ligne:
- Initialiser le premier élément et l'élément de la
diagonale à 1.
- Calculer les valeurs entre les éléments initialisés de
gauche à droite en utilisant la relation:
Pi,j = Pi-1,j + Pi-1,j-1
Exercice 8.1.
Exercice 8.2
Ecrire un programme qui lit 5 mots, séparés par des
espaces et qui les affiche ensuite dans une ligne, mais
dans l'ordre inverse. Les mots sont mémorisés dans 5
variables M1, ... ,M5.
Exemple
voici une petite phrase !
! phrase petite une voici
Exercice 8.3
Exercice 8.4
Ecrire un programme qui lit un texte TXT (de moins de
200 caractères) et qui enlève toutes les apparitions du
charactère 'e' en tassant les éléments restants. Les
modifications se feront dans la même variable TXT.
Exemple:
Cette ligne contient quelques lettres
e.
Ctt lign contint qulqus lttrs .
Exercice 8.11
Exercice 8.12
Exercice 8.14
Exercice 8.15
Exercice 8.16
Exercice 8.17
Exercice 8.18
Ecrire une procédure qui lit une chaîne de caractères et
l'interprète comme un entier positif dans la base
hexadécimale. Pour la conversion, utiliser les fonctions
de <ctype> et la précédence alphabétique des
caractères. La conversion ignore les caractères qui ne
représentent pas de chiffre hexadécimal et s'arrête à la
fin de la chaîne de caractères. Le résultat sera
mémorisé dans une variable du type long et affiché dans
les bases hexadécimale et décimale.
Exercice 8.19
Exercice 8.20
Exercice 8.22
Exercice 8.23
Ecrire un programme qui remplace toutes les
occurrences d'une chaîne de caractères CH1 par la
chaîne CH2 dans une chaîne de caractères SUJ. Utiliser
une chaîne de sauvegarde FIN pendant le
remplacement.
Exercice 10.1
main()
{
double R;
printf("Introduire le rayon du cercle :
");
scanf("%lf", &R);
printf("La surface du cercle est %f.
\n",
SURFACE(R));
return 0;
}
double PI(void)
{
return 3.14159265;
}
double SURFACE(double RAYON)
{
return PI()*RAYON*RAYON;
}
a) Etablir la hiérarchie des appels pour les trois
fonctions.
b) Définir les fonctions d'après les trois méthodes
décrites ci-dessus en ajoutant les déclarations
manquantes.
c) Quels messages fournit le compilateur lorsqu'une
fonction n'est pas définie ou déclarée avant son appel?
Comment peut-on expliquer ces messages?
Exercice 10.2
Exercice 10.3
Exercice 10.4
procédure MODIFIER(X,Y,Z)
| donnée: entier X
| résultat: entier Y,Z
| entier T
| en T ranger X
| en X ranger Y
| en Y ranger Z
| en Z ranger T
fprocédure (* fin MODIFIER *)
Exercice 10.5
procédure MANIPULER(X,Y,Z)
| donnée: entier X,Y
| résultat: entier Z
| écrire X,Y,Z
| en X ranger X divent 2
| en Y ranger Y*2
| en Z ranger X+Y
| écrire X,Y,Z
fprocédure (* fin MANIPULER *)
Exercice 10.6
Exercice 10.7
Exercice 10.9
Exercice 10.10
Exercice 10.11
Exercice 10.12
Exercice 10.13
Exercice 10.14
Ecrire la fonction ECRIRE_TAB à deux paramètres TAB
et N qui affiche N composantes du tableau TAB du type
int.
Exemple:
Le tableau T lu dans l'exemple ci-dessus sera affiché
par l'appel :
ECRIRE_TAB(T, N);
et sera présenté comme suit:
43 55 67 79
Exercice 10.15
Exercice 10.16
Exercice 10.18
Exercice 10.25
Exercice 10.26
Exercice 10.27
Ecrire la fonction AJOUTE_CH à deux paramètres CH1
et CH2 qui copie la chaîne de caractères CH2 à la fin de
la chaîne CH1 sans utiliser de variable d'aide.
Exercice 10.28
Exercice 10.29
Exercice 10.30
Exercice 10.31
Ecrire la fonction EGAL_N_CH qui retourne la valeur 1 si
les N premiers caractères de CH1 et CH2 sont égaux,
sinon la valeur 0. (Si N est plus grand que la longueur de
CH1 ou de CH2, le résultat peut être 1 ou 0).
Exercice 10.32
Exercice 10.33
Exercice 10.34
Exercice 10.35
Exercice 10.36
Exercice 10.37
Exercice 10.38
Exercice 10.39
Exercice 10.40
Ecrire la fonction ADDITION_MATRICE qui effectue
l'addition des matrices suivante:
MAT1 = MAT1 + MAT2
Choisir les paramètres nécessaires et écrire un petit
programme qui teste la fonction ADDITION_MATRICE.
0
Exercice 10.41
Exercice 10.42