Langage C

1. Introduction au langage C

  • Le langage C est un langage compilé, rapide et très utilisé dans :
    • le développement système (OS, pilotes, compilateurs),
    • l’embarqué,
    • l’algorithmie avancée.
  • Il est structuré, proche de la machine, et sert souvent de base pour apprendre d’autres langages.

2. Structure d’un programme C

Un programme en C suit généralement ce modèle :

#include <stdio.h>  // bibliothèque standard

int main() {
    printf("Bonjour le monde !\n");
    return 0;  // indique que le programme s'est bien terminé
}

3. Les bases

a) Variables et types

int age = 20;         // entier
float prix = 15.75;   // nombre décimal
char lettre = 'A';    // caractère

b) Entrée / Sortie

int a;
printf("Entrez un nombre: ");
scanf("%d", &a);   // lecture de l’entrée utilisateur
printf("Vous avez entré: %d\n", a);

c) Conditions

if (a > 0) {
    printf("Nombre positif\n");
} else {
    printf("Nombre négatif ou nul\n");
}

d) Boucles

// Tant que
int i = 1;
while (i <= 5) {
    printf("%d\n", i);
    i++;
}

// Pour
for (int j = 1; j <= 5; j++) {
    printf("%d\n", j);
}

4. Fonctions

Les fonctions permettent de découper un programme en morceaux réutilisables.

int somme(int x, int y) {
    return x + y;
}

int main() {
    int resultat = somme(5, 7);
    printf("Somme = %d\n", resultat);
    return 0;
}

5. Tableaux

int notes[5] = {10, 12, 15, 8, 17};

for (int i = 0; i < 5; i++) {
    printf("Note %d : %d\n", i+1, notes[i]);
}

6. Exercices pratiques 📝

Exercice 1 : Pairs et impairs

📌 Écrire un programme qui lit un entier et affiche s’il est pair ou impair.

Exercice 2 : Somme de N nombres

📌 Demander à l’utilisateur combien de nombres il veut entrer, puis calculer la somme.

Exercice 3 : Factorielle

📌 Calculer la factorielle d’un nombre saisi (n! = 1*2*...*n).

Exercice 4 : Tableau et moyenne

📌 Lire les notes de 10 étudiants dans un tableau et afficher la moyenne.


7. Concepts avancés (après la base)

  • Pointeurs (manipulation d’adresses mémoire).
  • Chaînes de caractères (tableaux de char).
  • Structures (regroupement de variables).
  • Fichiers (lecture/écriture sur disque).
  • Allocation dynamique (malloc, free).