Date de première publication : 2015/09/11
La saisie
- Écrire un programme qui demande à l'utilisateur un nombre et affiche toutes les divisions entières par 2 jusqu'à 0.
Par exemple, 15, 7, 3, 1, 0
- Modifier le programme des racines d'une équation de degré 2 pour que les coefficients a, b et c soient maintenant saisis au clavier.
Petite calculatrice à notation polonaise
- Écrire un programme qui demande une opération à effectuer puis les deux nombres dont il faut faire une opération.
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
- Écrire un programme qui demande à l'utilisateur quelle somme il veut réaliser
(somme des n, n2 et 1/n2) avec un
switch
et réutiliser le code fait pour les boucles.
Fonction, portée des variables et premiers algorithmes
Variable globale
- Définir une variable globale en début de programme/fichier et l’initialiser
- Afficher sa valeur dans la fonction
main()
- Créer une fonction avant la fonction
main()
qui modifie la valeur de la variable - Vérifier sa valeur dans la fonction
main()
avant et après l'appel à cette fonction
Variable locale
- Définir une variable locale dans la fonction
main()
- Vérifier que cette variable n'est pas accessible dans une autre fonction directement (fonction écrite avant ou après la fonction
main()
- Passer cette variable en paramètre à une fonction et modifier la variable dans la fonction
- Afficher la valeur de la variable dans la fonction
- Vérifier la valeur dans le programme principal. Que constate-t-on ?
La variable locale n'est pas modifée. Seule une copie est passée en paramètre.
Calcul de factorielle et tests
n!
. Cette valeur ne sera pas affichée par la fonction mais renvoyée !!n!
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 !
- 1
- 2
- 3
- 4
- 5