Sunday, 20 November 2016

TP5, codes sources

Programme #1:
#include <stdio.h>
#include <stdbool.h> //pour pouvoir utiliser bool

int main()
{
    int varEntiere;    short varEntierePetite;
    long varEntiereGrande;    long long varEntiereTresGrande;
    float varReeleSimple;    double varReeleDouble;
    char varCar;
    bool varBool;

    // L'operateur Sizeof donne la taille de variables
    printf("Taille de short: %d octets\n",sizeof varEntierePetite);
    printf("Taille de int: %d octets\n",sizeof varEntiere);
    printf("Taille de long: %d octets\n",sizeof varEntiereGrande);
    printf("Taille de long long: %d octets\n",sizeof varEntiereTresGrande);
    printf("Taille de float: %d octets\n",sizeof varReeleSimple);
    printf("Taille de double: %d octets\n",sizeof varReeleDouble);
    printf("Taille de char: %d octet\n",sizeof varCar);
    printf("Taille de bool: %d octet\n",sizeof varBool);

    return 0;
}

Programme #2:
#include <stdio.h>
#include <limits.h>
int main(){
  long grandEntier = LONG_MAX;  int entier = INT_MAX;  short petitEntier = SHRT_MAX;
  unsigned long grandEntierNS = ULONG_MAX;  unsigned int entierNS = UINT_MAX;
  unsigned short petitEntierNS = USHRT_MAX;

  printf("--------- Limites superieurs des types entiers ---------\n");
  printf("1. type long int: %ld\n", grandEntier);
  printf("2. type int: %d\n", entier);
  printf("3. type short int: %hd\n", petitEntier);
  printf("\n On essaye ceci:\n");
  printf("4. type unsigned long int avec %%ld: %ld\n", grandEntierNS);
  printf("5. type unsigned int avec %%d: %d\n", entierNS);
  printf("6. type unsigned short int avec %%hd: %hd\n", petitEntierNS);
  printf("\n le danger est-il reel ? ...\n");
  printf("7. type unsigned long int avec %%lu: %lu\n", grandEntierNS);
  printf("8. type unsigned int avec %%u: %u\n", entierNS);
  printf("9. type unsigned short int avec %%hu: %hu\n", petitEntierNS);

  printf("\n Probleme de cyclage : Apres ajout de 1 les valeurs deviennent ...\n");
  grandEntier+=1;  entier+=1;  petitEntier+=1;
  grandEntierNS+=1;  entierNS+=1;  petitEntierNS+=1;
  printf("10. type long int: %ld\n", grandEntier);
  printf("11. type int: %d\n", entier);
  printf("12. type short int: %hd\n", petitEntier);
  printf("\n On essaye ceci:\n");
  printf("13. type unsigned long int avec %%ld: %ld\n", grandEntierNS);
  printf("14. type unsigned int avec %%d: %d\n", entierNS);
  printf("15. type unsigned short int avec %%hd: %hd\n", petitEntierNS);
  printf("\n Le danger est-il reel ? ...\n");
  printf("16. type unsigned long int avec %%lu: %lu\n", grandEntierNS);
  printf("17. type unsigned int avec %%u: %u\n", entierNS);
  printf("18. type unsigned short int avec %%hu: %hu\n", petitEntierNS);
  return 0;
}

Programme #3:
#include <stdio.h>
#include <limits.h>
int main(){
  long grandEntier = LONG_MIN;  int entier = INT_MIN;   short petitEntier = SHRT_MIN;
  unsigned long grandEntierNs = 0;  unsigned int entierNs = 0;
  unsigned short petitEntierNs = 0;

  printf("--------- Limites inferieures des types entiers ---------\n");
  printf("1. type long int: %ld\n", grandEntier);
  printf("2. type int: %d\n", entier);
  printf("3. type short int: %hd\n", petitEntier);
  printf("4. type unsigned long int avec %%lu: %lu\n", grandEntierNs);
  printf("5. type unsigned int avec %%u: %u\n", entierNs);
  printf("6. type unsigned short int avec %%hu: %hu\n", petitEntierNs);

  printf("\n Probleme de cyclage : Apres soustraction de 1 les valeurs deviennent ...\n");
  grandEntier-=1;  entier-=1;  petitEntier-=1;
  grandEntierNs-=1;  entierNs-=1;  petitEntierNs-=1;

  printf("7. type long int: %ld\n", grandEntier);
  printf("8. type int: %d\n", entier);
  printf("9. type short int: %hd\n", petitEntier);
  printf("10. type unsigned long int avec %%lu: %lu\n", grandEntierNs);
  printf("11. type unsigned int avec %%u: %u\n", entierNs);
  printf("12. type unsigned short int avec %%hu: %hu\n", petitEntierNs);

  return 0;
}

Programme #4:
#include <stdio.h>
#include <float.h>

int main()
{
    float nbrReelSimplePetit=FLT_MIN,nbrReelSimpleGrand=FLT_MAX;
    double nbrReelDoublePetit=DBL_MIN,nbrReelDoubleGrand=DBL_MAX;
    float lastNonZeroFloat,tmpFloat;
    double lastNonZeroDouble,tmpDouble;

    printf("Max float=%e\n",nbrReelSimpleGrand);
    printf("Min float=%e\n",nbrReelSimplePetit);
    printf("Max double=%e\n",nbrReelDoubleGrand);
    printf("Min double=%e\n",nbrReelDoublePetit);

    nbrReelSimplePetit/=2;nbrReelSimpleGrand*=2;
    nbrReelDoublePetit/=2;nbrReelDoubleGrand*=2;
    printf("\nApres division des petits et multiplication des grands ...\n");
    printf("Max float x 2=%e\n",nbrReelSimpleGrand);
    printf("Min float divise par 2=%e\n",nbrReelSimplePetit);
    printf("Max double x 2=%e\n",nbrReelDoubleGrand);
    printf("Min double divise par 2=%e\n",nbrReelDoublePetit);
    printf("\nmmm! ... Il y a plus petit que les min\n");

    //En attendant un compilateur conforme a la norme
    printf("\nDeterminons les vrais min ...\n");
    tmpFloat=FLT_MIN;
    while(tmpFloat!=0){
       lastNonZeroFloat=tmpFloat;
       tmpFloat/=2;
    }
    printf("lastNonZeroFloat=%e ce nombre divise par 2 donne 0\n",lastNonZeroFloat);

    tmpDouble=DBL_MIN;
    while(tmpDouble!=0){
       lastNonZeroDouble=tmpDouble;
       tmpDouble/=2;
    }
    printf("lastNonZeroDouble=%e ce nombre divise par 2 donne 0\n",lastNonZeroDouble);

    return 0;
}

Programme #5:
je ne l'ai pas.

Programme #6:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a=2,b=7,operation;

    printf("a=%d et b=%d\n"
           "Choisir une operation:\n"
           "  1 ---> + \n"
           "  2 ---> - \n"
           "  3 ---> x \n",a,b);
    scanf("%d",&operation);
    switch(operation){
       case 1: printf("somme=%d\n",a+b);
                break;
       case 2: printf("difference=%d\n",a-b);
                break;
       case 3: printf("produit=%d\n",a*b);
                break;
       default: printf("Mauvais choix\n");
                break;
    }
    return 0;
}

No comments:

Post a Comment

Note: only a member of this blog may post a comment.