tete du loic

 Loïc YON [KIUX]

  • Enseignant-chercheur
  • Référent Formation Continue
  • Responsable des contrats pros ingénieur
  • Référent entrepreneuriat
  • Responsable de la filière F2 ingénieur
  • Secouriste Sauveteur du Travail
mail
loic.yon@isima.fr
phone
(+33 / 0) 4 73 40 50 42
location_on
ISIMA
  • twitter
  • linkedin
  • viadeo

[IniC] TP 2

Date de première publication : 2015/09/11

La saisie

Par exemple, 15, 7, 3, 1, 0

Petite calculatrice à notation polonaise

L'opération peut être donnée par un char à valeur dans '+', '-', '/', '*'. Il faudra faire des if ou un switch pour le calcul.

Encore des maths

Fonction, portée des variables et premiers algorithmes

Variable globale

Variable locale

La variable locale n'est pas modifée. Seule une copie est passée en paramètre.

Calcul de factorielle et tests

  • Écrire une fonction qui calcule avec une boucle la valeur de n!. Cette valeur ne sera pas affichée par la fonction mais renvoyée !!
  • Vérifier quelques valeurs dans le programme principal
  • Écrire une fonction récursive qui calcule la valeur de n!
  • Le programme principal affichera et vérifiera que les deux fonctions renvoient bien les mêmes résultats sur quelques valeurs. Attention, on atteint très vite la limite de définition des int. Si vous voulez allez plus loin, il faut utiliser des long int
  • Révisions UNIX et compléments C

    Nous vous avons dit en cours que l'option -lm est nécessaire pour embarquer le code des fonctions mathématiques dans le code exécutable final (c'est à dire comment elles sont vraiment codées...)

    Le code est contenu dans un fichier dont le nom commence par libm. Le nom du fichier peut porter l'extension .a ou encore .so. Pouvez-vous le ou les trouver dans le système de fichiers ?

    Si vous faites une recherche sur /, vous allez trouver énormément d'occurences. Le répertoire classique est /usr/lib

    On peut "lister" le contenu d'un fichier lib, c'est-à-dire les fonctions disponibles avec une commande telle que celle-ci :

    nm chemin_trouve/libmXXXX.XX
    

    Pouvez-vous lister toutes les personnes qui sont en train d'utiliser gcc (en une commande) ?

    gcc est un processus et il faut filtrer la liste !