J’ai toujours été curieux de comprendre les rudiments du langage C. Bien que le site du Zéro propose un cours intéressant, il n’est pas assez « linuxisé » pour moi. En faisant quelque recherches, je suis tombé sur ce site qui propose un cours pour débutant en C.
Voici donc un programme que j’ai rédigé en C avec gedit pour un truc basique : l’application du théorème de pythagore. Il est tout sauf prémuni contre les mauvaises saisies. Je débute en C, et cela doit faire 3 heures que je le pratique, bien qu’ayant quelques notions de programmation grâce à Python.
C’est du brut de décoffrage, z’êtes prévenu. Pour les pros du C, merci de ne pas m’envoyer des missives enflammées. Je voudrais avoir des rudiments de C, cela peut toujours servir 😉
/* Programme 12 du cours de C pour Linux.
Calcul de l’hypothénuse. Pythagore.
Il faudra insérer les fonctions maths de C => #include
et donc rajouter à la ligne de compilation -lm
D’après le chapitre 4 du cours de C pour linux :
http://lesouriciergris.free.fr/linux_cours_c.html
Bouh, que je suis nul en C 😉
*/
// On commence par les includes
// racine carrée => sqrt()
// Pythagore => racine carrée de a²+b²
# include <stdio.h>
# include <math.h> // prise de tête !!!! 🙂
int main () // Boucle principale
{
// Il faut deux valeurs entière, les deux cotés a & b
// et une valeur float nommée hypo qui sera sqrt(a²+b²)
// Valeurs entières a & b, initialisée par défaut à 0.
int a,b = 0; // les deux cotés
float hypo; // hypothénuse, float pour le calcul de la racine.
// On affiche le but du programme :
// Saisie du coté a puis du coté b, deux entiers.
printf (« Valeur de a : « );
scanf (« %d », &a); // scanf va prendre en compte la saisie du clavier
// %d => nombre entier, &a => variable a.
// et de même pour b.
printf (« Valeur de b : « );
scanf (« %d », &b);
// calcul de l’hypothénuse.
a = a*a; // a² please.
b = b*b; // b² please.
hypo = sqrt(a+b); // racine de la somme des deux cotés au carré.
printf (« L’hypothénuse a donc une valeur de %.3f :\n »,hypo);
// 3 chiffres après la virgule.
return(0); // On quitte proprement, voyons.
}
Je sais, ce code est moche, lourd, mal optimisé, mais je débute en C… Et j’avoue être content d’avoir réussi sans regarder la solution 😉
NB : les indentations n’ont pas été conservées.
Cela se compile sans problème avec mon gcc 4.2 sous Linux. Des retours de la compilation de ce code sous d’autres compilateurs ?