Somme des valeurs absolues des cases d’un tableau

, par Pierre

Sujet (contrôle de TP 2009)

Soit un tableau d’entiers relatifs initialisé à des valeurs de votre choix et dont la taille sera fixée par une constante symbolique N. Écrire un programme qui :

  1. affiche le contenu du tableau ;
  2. affiche la valeur absolue des élements du tableau ;
  3. calcule et affiche la somme des valeurs absolues des éléments du tableau.
    Le programme doit fonctionner correctement pour n’importe quelle initialisation du tableau.

Solution

  1. /* Declaration de fonctionnalites supplementaires */
  2. #include <stdlib.h> /* pour EXIT_SUCCESS */
  3. #include <stdio.h> /* pour printf() */
  4.  
  5. /* Declaration des constantes et types utilisateur */
  6. #define N 5
  7. /* Declaration des fonctions utilisateur */
  8.  
  9. /* Fonction principale */
  10. int main()
  11. {
  12.     /* Declaration et initialisation des variables */
  13.     int tab[N] = {1,-2,4,10,-6};
  14.     int i; /* var de boucle */
  15.     int somme = 0; /* 0 élément neutre de la somme */
  16.  
  17.     /* 1) Affichage du tableau */
  18.     printf("Affichage du tableau\n");
  19.  
  20.     for (i = 0; i < N; i = i + 1) /* pour chaque case */
  21.     {
  22.         /* afficher le contenu de la case */
  23.         printf("%d ", tab[i]);
  24.     }
  25.     printf("\n");
  26.  
  27.     /* 2) Affichage du tableau en valeurs absolues */
  28.     printf("Affichage du tableau en valeurs absolues\n");
  29.  
  30.     for (i = 0; i < N; i = i + 1) /* pour chaque case */
  31.     {
  32.         if (tab[i] < 0)
  33.         {/* |tab[i]| = -tab[i] */
  34.             printf("%d ",-tab[i]);
  35.         }
  36.         else
  37.         {
  38.             printf("%d ",tab[i]);
  39.         }
  40.     }
  41.     printf("\n");
  42.  
  43.     /* 3) Calcul de la somme des valeurs absolues */
  44.     for (i = 0; i < N; i = i + 1) /* pour chaque case */
  45.     {
  46.         /* ajouter la valeur absolue de la case */
  47.         if (tab[i] < 0)
  48.         {/* |tab[i]| = -tab[i] */
  49.             somme = somme - tab[i];
  50.         }
  51.         else
  52.         {
  53.             somme = somme + tab[i];
  54.         }
  55.     }
  56.     printf("Somme en valeur absolue : %d\n", somme);
  57.    
  58.     /* Valeur fonction */
  59.     return EXIT_SUCCESS;
  60. }
  61.  
  62. /* Definition des fonctions utilisateur */

Télécharger

Bluehats & UnivMobile , Présentation de la démarche design employée pour UnivMobile faite à la rencontre bluehats du 11 décembre 2019. [pdf, jpg]
Mon université en 2030, Texte d'une intervention que j'ai faite dans le cadre d'une soirée Cap 2030, organisée par le EdFab à Cap Digital le 27 février (...)
Revenu et logement, Je livre ici quelques éléments de comparaison concernant mon niveau de vie, pour couper court à quelques idées reçues, et un condensé de nombreuses (...)
Revenu et travail d’un enseignant-chercheur, Cet article complète l'article Revenu et logement, en détaillant un peu le budget de mon ménage, mon parcours d'enseignant-chercheur en terme de (...)
Cybersyn (el systemo synco), Au café, mardi 5 avril 2011, j'ai bien vu que, mis à part Antoine Allombert, personne ne connaissait l'histoire de l'extraordinaire projet chilien (...) [jpg, jpg, png]