« Exercices en langage C/Types » : différence entre les versions
Contenu supprimé Contenu ajouté
Tranfert depuis WV |
Ajout Exercices sur les caractéristiques numériques des types du langage C |
||
Ligne 1 : | Ligne 1 : | ||
{{Exercices en langage C}} |
{{Exercices en langage C}} |
||
== |
==Exercice 1 : longueurs en octet des types du langage C== |
||
Écrivez un programme taille.c qui affiche à l'écran la taille des différents types de données du langage C sur votre architecture machine. |
Écrivez un programme taille.c qui affiche à l'écran la taille des différents types de données en octet du langage C sur votre architecture machine. |
||
Vous utiliserez l'opérateur ''sizeof(type)''. |
|||
<div style="width:70%">{{Boîte déroulante|titre=Solution|contenu = |
<div style="width:70%">{{Boîte déroulante|titre=Solution|contenu = |
||
Ligne 17 : | Ligne 19 : | ||
Code retour : 0 (EXIT_SUCCESS) |
Code retour : 0 (EXIT_SUCCESS) |
||
Pour produire un exécutable avec le compilateur libre GCC : |
Pour produire un exécutable avec le compilateur libre GCC : |
||
gcc -o taille.exe taille.c |
gcc -Wall -std=c99 -o taille.exe taille.c |
||
Pour exécuter, tapez : ./taille.exe |
Pour exécuter, tapez : ./taille.exe |
||
Ligne 46 : | Ligne 48 : | ||
} |
} |
||
</source> |
</source> |
||
'''Résultats affichés sur ma machine''' : |
|||
<pre> |
|||
MacMini-TM:~/Documents/developpement/c thierry$ ./taille.exe |
|||
Taille des types en octet : |
|||
- type char : 1 |
|||
- type short : 2 |
|||
- type int : 4 |
|||
- type long : 4 |
|||
- type long long : 8 |
|||
- type float : 4 |
|||
- type double : 8 |
|||
- type long double : 16 |
|||
</pre> |
|||
}} </div> |
|||
==Exercice 2 : caractéristiques numériques des types du langage C== |
|||
Écrivez un programme limites.c qui affiche à l'écran les caractéristiques numériques des différents types du langage C. |
|||
Vous utiliserez les constantes symboliques des includes [[w:en:Limits.h|limits.h]] et [[w:en:float.h|float.h]]. |
|||
<div style="width:70%">{{Boîte déroulante|titre=Solution|contenu = |
|||
'''Correction''' |
|||
'''Correction''' |
|||
<source lang="c"> |
|||
*************************************************************************** |
|||
Nom ......... : limites.c |
|||
Role ........ : Imprime les caractéristiques numériques |
|||
pour les types du langage C |
|||
Auteur ...... : Thierry46 |
|||
Version ..... : V1.0 du 11/1/2008 |
|||
Licence ..... : GNU GPL |
|||
Compilation : |
|||
gcc -Wall -std=c99 -o limites.exe limites.c |
|||
Pour exécuter, tapez : ./limites.exe |
|||
***************************************************************************/ |
|||
#include <stdio.h> |
|||
#include <stdlib.h> |
|||
// Pour les limites lies aux entiers |
|||
#include <limits.h> |
|||
// Pour les limites lies aux nombres reels |
|||
#include <float.h> |
|||
int main(int argc, char *argv[]) |
|||
{ |
|||
// Impression des limites pour les nombres entiers |
|||
(void)printf("INT_MIN = %d\n", INT_MIN); |
|||
(void)printf("INT_MAX = %d\n", INT_MAX); |
|||
(void)printf("LONG_MIN = %ld\n", LONG_MIN); |
|||
(void)printf("LONG_MAX = %ld\n", LONG_MAX); |
|||
// Impression des limites pour les réels |
|||
(void)printf("FLT_EPSILON = %e\n", FLT_EPSILON); |
|||
(void)printf("FLT_MIN = %e\n", FLT_MIN); |
|||
(void)printf("FLT_MAX = %e\n", FLT_MAX); |
|||
(void)printf("DBL_EPSILON = %le\n", DBL_EPSILON); |
|||
(void)printf("DBL_MIN = %le\n", DBL_MIN); |
|||
(void)printf("DBL_MAX = %le\n", DBL_MAX); |
|||
return EXIT_SUCCESS; |
|||
} /* int main(... */ |
|||
</source> |
|||
'''Résultats affichés sur ma machine''' : |
|||
<pre> |
|||
MacMini-TM:~/Documents/developpement/c thierry$ ./limites.exe |
|||
INT_MIN = -2147483648 |
|||
INT_MAX = 2147483647 |
|||
LONG_MIN = -2147483648 |
|||
LONG_MAX = 2147483647 |
|||
FLT_EPSILON = 1.192093e-07 |
|||
FLT_MIN = 1.175494e-38 |
|||
FLT_MAX = 3.402823e+38 |
|||
DBL_EPSILON = 2.220446e-16 |
|||
DBL_MIN = 2.225074e-308 |
|||
DBL_MAX = 1.797693e+308 |
|||
</pre> |
|||
}} </div> |
}} </div> |
||
Version du 11 janvier 2008 à 22:06
Exercice 1 : longueurs en octet des types du langage C
Écrivez un programme taille.c qui affiche à l'écran la taille des différents types de données en octet du langage C sur votre architecture machine.
Vous utiliserez l'opérateur sizeof(type).
Solution
Correction
Correction
/*
Nom : taille.c
Auteur : Thierry46
Role : affiche à l'écran la taille des différents types de données
du langage C sur votre architecture.
Paramètres : non pris en compte.
Code retour : 0 (EXIT_SUCCESS)
Pour produire un exécutable avec le compilateur libre GCC :
gcc -Wall -std=c99 -o taille.exe taille.c
Pour exécuter, tapez : ./taille.exe
Version : 1.1 du 5/1/2008
Licence : GNU GPL
*/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
/* Affiche les tailles récupérées avec sizeof() */
(void)printf("Taille des types en octet :\n"
"\t- type char : %d\n"
"\t- type short : %d\n"
"\t- type int : %d\n"
"\t- type long : %d\n"
"\t- type long long : %d\n"
"\t- type float : %d\n"
"\t- type double : %d\n"
"\t- type long double : %d\n",
(int)sizeof(char), (int)sizeof(short), (int)sizeof(int),
(int)sizeof(long), (int)sizeof(long long),
(int)sizeof(float), (int)sizeof(double), (int)sizeof(long double));
return EXIT_SUCCESS;
}
Résultats affichés sur ma machine :
MacMini-TM:~/Documents/developpement/c thierry$ ./taille.exe Taille des types en octet : - type char : 1 - type short : 2 - type int : 4 - type long : 4 - type long long : 8 - type float : 4 - type double : 8 - type long double : 16
Exercice 2 : caractéristiques numériques des types du langage C
Écrivez un programme limites.c qui affiche à l'écran les caractéristiques numériques des différents types du langage C.
Vous utiliserez les constantes symboliques des includes limits.h et float.h.
Solution
Correction
Correction
***************************************************************************
Nom ......... : limites.c
Role ........ : Imprime les caractéristiques numériques
pour les types du langage C
Auteur ...... : Thierry46
Version ..... : V1.0 du 11/1/2008
Licence ..... : GNU GPL
Compilation :
gcc -Wall -std=c99 -o limites.exe limites.c
Pour exécuter, tapez : ./limites.exe
***************************************************************************/
#include <stdio.h>
#include <stdlib.h>
// Pour les limites lies aux entiers
#include <limits.h>
// Pour les limites lies aux nombres reels
#include <float.h>
int main(int argc, char *argv[])
{
// Impression des limites pour les nombres entiers
(void)printf("INT_MIN = %d\n", INT_MIN);
(void)printf("INT_MAX = %d\n", INT_MAX);
(void)printf("LONG_MIN = %ld\n", LONG_MIN);
(void)printf("LONG_MAX = %ld\n", LONG_MAX);
// Impression des limites pour les réels
(void)printf("FLT_EPSILON = %e\n", FLT_EPSILON);
(void)printf("FLT_MIN = %e\n", FLT_MIN);
(void)printf("FLT_MAX = %e\n", FLT_MAX);
(void)printf("DBL_EPSILON = %le\n", DBL_EPSILON);
(void)printf("DBL_MIN = %le\n", DBL_MIN);
(void)printf("DBL_MAX = %le\n", DBL_MAX);
return EXIT_SUCCESS;
} /* int main(... */
Résultats affichés sur ma machine :
MacMini-TM:~/Documents/developpement/c thierry$ ./limites.exe INT_MIN = -2147483648 INT_MAX = 2147483647 LONG_MIN = -2147483648 LONG_MAX = 2147483647 FLT_EPSILON = 1.192093e-07 FLT_MIN = 1.175494e-38 FLT_MAX = 3.402823e+38 DBL_EPSILON = 2.220446e-16 DBL_MIN = 2.225074e-308 DBL_MAX = 1.797693e+308