Structure d’un Programme en Langage C
Le langage de programmation C, développé dans les années 1970 par Dennis Ritchie, est l’un des langages les plus influents et les plus largement utilisés. Sa syntaxe simple et ses capacités puissantes en font un choix populaire pour le développement de systèmes d’exploitation, de logiciels embarqués, et d’applications à hautes performances. Comprendre la structure d’un programme en C est essentiel pour tout programmeur débutant. Cet article détaille les composants clés d’un programme en C.
1. Les Directives de Préprocesseur
Les directives de préprocesseur sont des instructions spéciales qui sont exécutées avant la compilation du programme. Elles commencent par le symbole #
et n’occupent pas d’espace mémoire à l’exécution. Les directives les plus courantes incluent :
#include
: Utilisée pour inclure les fichiers d’en-tête. Par exemple,#include <stdio.h>
inclut la bibliothèque standard d’entrée/sortie.#define
: Utilisée pour définir des constantes symboliques. Par exemple,#define PI 3.14
.
2. Les Fichiers d’En-tête
Les fichiers d’en-tête, souvent avec l’extension .h
, contiennent des déclarations de fonctions, des macros, et des définitions de types de données que d’autres fichiers peuvent inclure. Par exemple, stdio.h
contient des déclarations pour les fonctions d’entrée/sortie comme printf()
et scanf()
.
3. La Fonction main
Chaque programme en C doit avoir une fonction main
, qui est le point d’entrée du programme. La syntaxe générale de main
est :
int main(void) {
// corps du programme
return 0;
}
Le type de retour int
indique que la fonction retourne un entier, généralement 0
pour indiquer que le programme s’est terminé correctement.
4. Les Déclarations de Variables
Les variables doivent être déclarées avant leur utilisation. La déclaration d’une variable spécifie son type et son nom. Par exemple :
int age;
float salary;
char initial;
5. Les Instructions
Les instructions sont les commandes exécutées par le programme. Elles peuvent inclure des affectations, des appels de fonctions, des boucles, des conditions, etc. Par exemple :
age = 25;
salary = 50000.0;
initial = 'A';
printf("Age: %d, Salary: %.2f, Initial: %c\n", age, salary, initial);
6. Les Boucles et Conditions
Les boucles et les conditions sont utilisées pour contrôler le flux du programme.
- Les Boucles : Permettent d’exécuter un bloc de code plusieurs fois.
for
loop : Utilisée pour itérer un nombre spécifique de fois.
for (int i = 0; i < 10; i++) { printf("%d\n", i); }
while
loop : Exécute un bloc de code tant qu’une condition est vraie.
int i = 0; while (i < 10) { printf("%d\n", i); i++; }
- Les Conditions : Permettent d’exécuter un bloc de code si une condition est vraie.
if
statement : Vérifie une condition et exécute le bloc de code associé si la condition est vraie.c if (age > 18) { printf("Adult\n"); } else { printf("Not an Adult\n"); }
7. Les Fonctions
Les fonctions en C permettent de structurer le code en blocs réutilisables. Une fonction est définie par son type de retour, son nom, et ses paramètres. Par exemple :
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(3, 4);
printf("Result: %d\n", result);
return 0;
}
8. Les Commentaires
Les commentaires sont utilisés pour rendre le code plus compréhensible et ne sont pas exécutés par le compilateur. Ils peuvent être sur une seule ligne (//
) ou sur plusieurs lignes (/* ... */
).
// Ceci est un commentaire sur une seule ligne
/*
Ceci est un commentaire
sur plusieurs lignes
*/
Exemple Complet
Voici un exemple complet d’un programme en C qui lit deux nombres de l’utilisateur, calcule leur somme, et affiche le résultat :
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main() {
int num1, num2, sum;
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
sum = add(num1, num2);
printf("Sum: %d\n", sum);
return 0;
}
Conclusion
Comprendre la structure de base d’un programme en C est crucial pour tout développeur. Cette connaissance permet de créer des programmes plus complexes et plus efficaces. En suivant les composants décrits dans cet article, vous serez bien équipé pour écrire et comprendre des programmes en C.
Cet article couvre les bases essentielles pour débuter avec le langage C. Pour approfondir vos connaissances, explorez des concepts avancés comme la gestion de la mémoire, les pointeurs, et la programmation orientée objet en C.
Exemples de Programmes en Langage C
1. Programme “Hello, World!”
Ce programme est souvent le premier programme écrit par les débutants pour s’initier à la syntaxe du langage C.
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
2. Calcul de la Somme de Deux Nombres
Ce programme lit deux nombres de l’utilisateur, calcule leur somme, et affiche le résultat.
#include <stdio.h>
int main() {
int num1, num2, sum;
printf("Enter two integers: ");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("Sum: %d\n", sum);
return 0;
}
3. Vérification d’un Nombre Pair ou Impair
Ce programme vérifie si un nombre entré par l’utilisateur est pair ou impair.
#include <stdio.h>
int main() {
int num;
printf("Enter an integer: ");
scanf("%d", &num);
if (num % 2 == 0) {
printf("%d is even.\n", num);
} else {
printf("%d is odd.\n", num);
}
return 0;
}
4. Calcul de la Factorielle d’un Nombre
Ce programme calcule la factorielle d’un nombre donné en utilisant une boucle for
.
#include <stdio.h>
int main() {
int num, i;
unsigned long long factorial = 1;
printf("Enter an integer: ");
scanf("%d", &num);
if (num < 0) {
printf("Factorial of a negative number doesn't exist.\n");
} else {
for (i = 1; i <= num; ++i) {
factorial *= i;
}
printf("Factorial of %d = %llu\n", num, factorial);
}
return 0;
}
5. Calcul de la Série de Fibonacci
Ce programme affiche les n premiers termes de la série de Fibonacci.
#include <stdio.h>
int main() {
int n, t1 = 0, t2 = 1, nextTerm;
printf("Enter the number of terms: ");
scanf("%d", &n);
printf("Fibonacci Series: ");
for (int i = 1; i <= n; ++i) {
printf("%d, ", t1);
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
}
return 0;
}
6. Inversion d’une Chaîne de Caractères
Ce programme inverse une chaîne de caractères entrée par l’utilisateur.
#include <stdio.h>
#include <string.h>
int main() {
char str[100], temp;
int i, j;
printf("Enter a string: ");
gets(str);
j = strlen(str) - 1;
for (i = 0; i < j; i++, j--) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
printf("Reversed string: %s\n", str);
return 0;
}
7. Tri d’un Tableau d’Entiers
Ce programme trie un tableau d’entiers en ordre croissant en utilisant l’algorithme de tri par sélection.
#include <stdio.h>
int main() {
int arr[100], n, i, j, min_idx, temp;
printf("Enter the number of elements: ");
scanf("%d", &n);
printf("Enter the elements: ");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
for (i = 0; i < n-1; i++) {
min_idx = i;
for (j = i+1; j < n; j++) {
if (arr[j] < arr[min_idx]) {
min_idx = j;
}
}
temp = arr[min_idx];
arr[min_idx] = arr[i];
arr[i] = temp;
}
printf("Sorted array: ");
for (i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
8. Recherche d’un Élément dans un Tableau
Ce programme recherche un élément dans un tableau d’entiers en utilisant la recherche linéaire.
#include <stdio.h>
int main() {
int arr[100], n, i, search, found = 0;
printf("Enter the number of elements: ");
scanf("%d", &n);
printf("Enter the elements: ");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
printf("Enter the element to search: ");
scanf("%d", &search);
for (i = 0; i < n; i++) {
if (arr[i] == search) {
printf("Element found at index %d\n", i);
found = 1;
break;
}
}
if (!found) {
printf("Element not found\n");
}
return 0;
}
Ces exemples couvrent divers aspects de la programmation en C, y compris l’entrée/sortie, les boucles, les conditions, les tableaux, et les fonctions. Ils sont conçus pour aider les débutants à se familiariser avec les bases du langage C.
Programmes en Langage C pour Résoudre des Problèmes du Quotidien
1. Calculatrice Simple
Ce programme implémente une calculatrice simple capable d’effectuer les quatre opérations arithmétiques de base.
#include <stdio.h>
int main() {
char operator;
double num1, num2, result;
printf("Enter an operator (+, -, *, /): ");
scanf("%c", &operator);
printf("Enter two operands: ");
scanf("%lf %lf", &num1, &num2);
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
if (num2 != 0)
result = num1 / num2;
else {
printf("Error! Division by zero.\n");
return 1;
}
break;
default:
printf("Error! Operator is not correct\n");
return 1;
}
printf("%.2lf %c %.2lf = %.2lf\n", num1, operator, num2, result);
return 0;
}
2. Conversion de Degrés Celsius en Fahrenheit
Ce programme convertit une température donnée en degrés Celsius en Fahrenheit.
#include <stdio.h>
int main() {
float celsius, fahrenheit;
printf("Enter temperature in Celsius: ");
scanf("%f", &celsius);
fahrenheit = (celsius * 9/5) + 32;
printf("%.2f Celsius = %.2f Fahrenheit\n", celsius, fahrenheit);
return 0;
}
3. Calcul de l’Indice de Masse Corporelle (IMC)
Ce programme calcule l’IMC à partir du poids et de la taille de l’utilisateur.
#include <stdio.h>
int main() {
float weight, height, bmi;
printf("Enter weight (kg): ");
scanf("%f", &weight);
printf("Enter height (meters): ");
scanf("%f", &height);
bmi = weight / (height * height);
printf("Your BMI is: %.2f\n", bmi);
if (bmi < 18.5)
printf("Underweight\n");
else if (bmi < 24.9)
printf("Normal weight\n");
else if (bmi < 29.9)
printf("Overweight\n");
else
printf("Obesity\n");
return 0;
}
4. Calcul des Intérêts Simples
Ce programme calcule les intérêts simples sur un principal donné, un taux d’intérêt et une période de temps.
#include <stdio.h>
int main() {
float principal, rate, time, interest;
printf("Enter principal amount: ");
scanf("%f", &principal);
printf("Enter annual interest rate (in %%): ");
scanf("%f", &rate);
printf("Enter time (in years): ");
scanf("%f", &time);
interest = (principal * rate * time) / 100;
printf("Simple Interest = %.2f\n", interest);
return 0;
}
5. Conversion de Distance
Ce programme convertit une distance donnée en kilomètres en miles.
#include <stdio.h>
int main() {
float kilometers, miles;
const float conversion_factor = 0.621371;
printf("Enter distance in kilometers: ");
scanf("%f", &kilometers);
miles = kilometers * conversion_factor;
printf("%.2f kilometers = %.2f miles\n", kilometers, miles);
return 0;
}
6. Conversion d’Heures en Minutes et Secondes
Ce programme convertit une durée en heures en minutes et en secondes.
#include <stdio.h>
int main() {
int hours, minutes, seconds;
printf("Enter time in hours: ");
scanf("%d", &hours);
minutes = hours * 60;
seconds = hours * 3600;
printf("%d hours = %d minutes = %d seconds\n", hours, minutes, seconds);
return 0;
}
7. Calcul du Salaire Hebdomadaire
Ce programme calcule le salaire hebdomadaire d’un employé en fonction de son taux horaire et des heures travaillées.
#include <stdio.h>
int main() {
float hourly_rate, hours_worked, weekly_salary;
printf("Enter hourly rate: ");
scanf("%f", &hourly_rate);
printf("Enter hours worked in a week: ");
scanf("%f", &hours_worked);
weekly_salary = hourly_rate * hours_worked;
printf("Weekly Salary = %.2f\n", weekly_salary);
return 0;
}
8. Calcul de la Moyenne d’un Ensemble de Nombres
Ce programme calcule la moyenne d’un ensemble de nombres entrés par l’utilisateur.
#include <stdio.h>
int main() {
int n, i;
float num, sum = 0.0, average;
printf("Enter the number of elements: ");
scanf("%d", &n);
for (i = 1; i <= n; ++i) {
printf("Enter number %d: ", i);
scanf("%f", &num);
sum += num;
}
average = sum / n;
printf("Average = %.2f\n", average);
return 0;
}
Ces programmes pratiques en langage C peuvent aider à résoudre divers problèmes du quotidien, allant des calculs financiers aux conversions de mesure. Ils démontrent comment le langage C peut être utilisé pour créer des outils simples mais efficaces pour une utilisation quotidienne.