Date de première publication : 2015/07/22
- Il est impératif de garder à l’écran deux fenêtres : l’une contenant l’édition du programme courant ( pluma, code ...) et l’autre prête à exécuter votre compilation.
- Les programmes doivent être compilés, exécutés et testés régulièrement : à chaque nouvelle fonctionnalité par exemple.
- Lorsque l’on vous demande de modifier de manière importante la structure de votre programme (une variable globale qui devient locale, une nouvelle source d’acquisition de l’information), travaillez sur une copie du programme. Il est important de garder les versions antérieures fonctionnelles.
- Ne pas hésiter à tester à petite échelle (petit nombre d’éléments) avant d’augmenter
- Des affichages réguliers des variables ou l’utilisation du débogueur permet de vérifier le bon fonctionnement de votre programme.
- Commenter votre code !
Hello world
Taper ou copier-coller le code suivant dans un éditeur de texte (geany, kate, gedit, nano) :
/*
Voici un premier programme en C qui correspond au "Hello World" classique
*/
#include <stdio.h>
int main()
{
printf("Bonjour les ZZ1!\n");
printf("Comment allez-vous ?\n");
return 0;
}
- Compiler et exécuter
$ gcc bonjour.c -o bonjour
Si vous oubliez l'option -o
, le nom du fichier compilé _s'il n'y a pas d'erreur_ sera a.out
. Le programme obtenu après compilation est directement exécutable.
$ bonjour
$ ./bonjour
printf()
Pour la compilation, on vous demande de prendre l'habitude de compiler avec les options suivantes à minima :
-Wall -Wextra
Vous allez changer successivement certaines lignes pour voir les messages d'erreurs ou d'avertissement. Il est fondamental de connaître les principaux messages pour savoir comment remédier aux bêtises faites.
- Renommer la fonction
main()
enmain2()
- Dupliquer la fonction
main()
- Commenter la déclaration de variable
- Commenter la ligne avec
#include
Lors de l'affichage des variables, vous pouvez essayer les différents formats : %d %x %u pour les entiers, %f %F %g et autres pour les réels. Que se passe-t-il par exemple quand vous affichez un entier négatif avec %u ?
Tests
Exemple du cours
Tester le programme du cours en modifiant i
int main()
{
int i = 17304;
if (i == -1) printf("i vaut -1\n");
if (i != -1) printf("i est différent de -1\n");
if (i != 0) printf("i est non nul\n");
if (i) printf("i est non nul également\n");
if (i == 0) printf("i est nul\n");
if (!i) printf("i est nul encore !\n");
if (i>=0) && (i<=10) printf("i est petit\n");
if (i>3) || (i<-3) printf("i est hors intervalle\n");
return 0;
}
Il est tout à fait possible que le code ci-dessus comporte des coquilles.
Solutions d'une équation de degré 2
Une équation de degré 2 est caractérisée par les coefficient a, b et c dans ax2+bx+c = 0.
On vous demande d'afficher l'équation à résoudre, le nombre de solutions et les solutions de l'équation.
Dans un premier temps, a
, b
et c
seront des variables. Le programme sera recompilé à chaque fois que les valeurs de a
, b
ou c
changeront.
La fonction racine carrée est sqrt()
, elle est dans la bibliothèque math.h
et nécessite d'ajouter l'option -lm
à la compilation.
Vous pouvez ajouter "partout" l'option -lm
sauf entre l'option -o
et son paramètre !
Boucles
On vous demande de réaliser les petites choses suivantes en utilisant les différents types de boucle : while
, for
et do while
.
- Afficher les entiers de 0 à un nombre stocké dans une variable.
- Afficher les carrés de 0 à un nombre stocké dans une variable.
- Calculer la somme des n2 premiers nombres pour un
n
donné dans une variable. - Calculer la somme des 1/n2 pour un
n
donné dans une variable - Afficher les tables de multiplication de 1 à 12
Affichages en tout genre
Exécuter le programme suivant :
int main()
{
float x =1.0, y=.0;
int i = 7;
/* Quelques exemples */
printf("Un mot\n");
printf("un nombre : %d\n", 3);
printf("Solution x:%f, y:%f\n", x, y);
printf("%d\n", i);
printf("%d\n", ++i);
printf("%d\n", i);
printf("%d\n", i++);
printf("%d\n", i);
printf("%d\n", 3.5);
printf("\n");
printf("\t\t %d\n", i);
return 0;
}
- 1
- 2
- 3
- 4
- 5