Bienvenue dans ce cours de programmation en C pour les étudiants ayant déjà une expérience en Python. Nous allons progresser étape par étape, en introduisant les concepts de base du C tout en comparant avec Python pour une meilleure compréhension. Nous n'aborderons pas les pointeurs et la gestion de la mémoire dans cette introduction. Commençons !

1. Structure de base d'un programme en C

En C, tout programme commence avec la fonction main(). Voici un exemple simple :

1
2
3
4
5
6
7
8
9
#include <stdio.h>

int main() {
    printf("Bonjour, monde!\n");
    return 0;
}

// Python équivalent:
// print("Bonjour, monde!")

Nouveauté en C : La directive #include est utilisée pour inclure des fichiers d'en-tête, ici <stdio.h>. Cette bibliothèque <stdio.h>, STanDard Input Output, est nécessaire pour pouvoir utiliser des fonctions telles que printf et scanf.

2. Variables et Types

Contrairement à Python, en C, vous DEVEZ déclarer le type de chaque variable avant de l'utiliser.

#include <stdio.h>

int main() {
    int age = 25;
    float taille = 1.75;
    char lettre = 'A';

    printf("Age: %d, Taille: %.2f, Lettre: %c\n", age, taille, lettre);
    return 0;
}

// Python équivalent:
// age = 25
// taille = 1.75
// lettre = 'A'
// print(f"Age: {age}, Taille: {taille}, Lettre: {lettre}")

Nouveauté en C :

  • Les types statiques - int, float, char. Le type int, (abréviation de integer, entier en français), sert pour déclarer un nombre entier. Le type float sert quant à lui à déclarer un nombre réel. Le type char sert à déclarer un UNIQUE caractère (nous reviendrons plus tard sur comment déclarer des mots/des chaines de caractères en C).
  • Enfin, il est toujours nécessaire d'indiquer dans la fonction printf en C le type de variable que l'on veut afficher, en utilisant des spécificateurs de format appropriés correspondant à chaque type de variable. Par exemple, %d pour les entiers (int), %f pour les nombres à virgule flottante (float et double), et %c pour les caractères (char). Ces spécificateurs de format indiquent à printf comment interpréter et afficher les données fournies.Enfin, il est toujours nécessaire d'indiquer dans la fonction printf en C le type de variable que l'on veut afficher, en utilisant des spécificateurs de format appropriés correspondant à chaque type de variable. Par exemple, %d pour les entiers (int), %f pour les nombres à virgule flottante (float et double), et %c pour les caractères (char). Ces spécificateurs de format indiquent à printf comment interpréter et afficher les données fournies.

3. Entrée et Sortie

L'entrée standard en C se fait souvent avec scanf.

#include <stdio.h>

int main() {
    int num;
    printf("Entrez un nombre: ");
    scanf("%d", &num);
    printf("Vous avez entré: %d\n", num);
    return 0;
}

// Python équivalent:
// num = int(input("Entrez un nombre: "))
// print(f"Vous avez entré: {num}")

Nouveauté en C : scanf est l'équivalent de input en Python pour la saisie de données utilisateur. Notez la présence de l'opérateur & avant le nom de la variable num dans l'appel de scanf. En C, le & est utilisé pour fournir l'adresse de la variable num à scanf, ce qui lui permet d'enregistrer la valeur saisie directement à cette adresse. Cela est nécessaire car scanf a besoin d'un moyen pour modifier la valeur de la variable passée en argument, et en C, cela se fait via l'adresse de la variable.

4. Conditions

Les structures conditionnelles en C sont similaires à Python, mais les syntaxes sont différentes.

#include <stdio.h>

int main() {
    int num = 10;
    if (num > 5) {
        printf("Le nombre est supérieur à 5\n");
    } else {
        printf("Le nombre n'est pas supérieur à 5\n");
    }
    return 0;
}

// Python équivalent:
// num = 10
// if num > 5:
//     print("Le nombre est supérieur à 5")
// else:
//     print("Le nombre n'est pas supérieur à 5")

5. Boucles

Les boucles en C utilisent for et while.

En Python, la boucle for est généralement utilisée pour parcourir une série d'éléments, comme une liste.En Python, la boucle for est généralement utilisée pour parcourir une série d'éléments, comme une liste.

#include <stdio.h>

int main() {
    for (int i = 0; i < 5; i++) {
        printf("%d ", i);
    }
    printf("\n");
    return 0;
}

// Python équivalent:
// for i in range(5):
//     print(i, end=" ")
// print()

Nouveauté en C : En C, la syntaxe de la boucle for est plus "découpée". En effet, elle se structure autour de trois composantes : l'initialisation (qui marque le début de la boucle), la condition de continuation (qui marque la fin de la boucle), et l'incrémentation (le pas de la boucle).

  1. Initialisation : C'est là que vous déclarez et initialisez votre variable de boucle. Par exemple, int i = 0; signifie que vous commencez avec la variable i ayant la valeur 0. Cette partie marque le début de la boucle.
  2. Condition de Continuation : Cela détermine jusqu'où la boucle doit continuer. La boucle s'exécutera tant que cette condition est vraie. Dans i < 5;, la boucle continuera tant que i est inférieur à 5.
  3. Incrémentation : Dans i++, nous augmentons la valeur de i de 1 à chaque fois.

La boucle while fonctionne de manière similaire en C et en Python. Elle continue à s'exécuter tant que la condition donnée est vraie.

Exemple en C :

1
2
3
4
5
6
7
8
9
int i = 0;
while (i < 5) {
    printf("%d ", i);
    i++;
}
// Python équivalent:
// i = 0
// while i < 5:
//     print(i, end=" ")

Exercices

  1. Conversion Fahrenheit en Celsius :
    Écrivez un programme en C qui convertit une température de Fahrenheit en Celsius. La formule de conversion est celsius = (fahrenheit - 32) * 5 / 9.
  2. Somme des N premiers nombres :
    Créez un programme en C pour calculer la somme des N premiers nombres entiers.

6. Tableaux (Arrays) en C

Les tableaux en C sont des collections de variables du même type, indexées à partir de 0. Voici toutes les façons dont on peut déclarer un tableau en C.

Déclaration de Tableaux

  1. Déclaration avec Taille et Valeurs Initiales :
    int nombres[5] = {1, 2, 3, 4, 5};
    
    Ici, nombres est un tableau de 5 entiers. Les valeurs entre accolades {} sont les valeurs initiales du tableau.
  2. Déclaration avec Taille Seule :
    int nombres[5];
    
    Ceci crée un tableau nombres de 5 entiers sans initialiser leurs valeurs. Les valeurs dans le tableau sont alors indéterminées.
  3. Déclaration avec Valeurs Initiales Sans Taille :
    int nombres[] = {1, 2, 3, 4, 5};
    
    La taille du tableau est déduite du nombre d'éléments fournis. Ici, nombres est automatiquement de taille 5.

Nouveauté en C : En C, vous devez spécifier la taille du tableau ou la laisser être déduite des valeurs initiales. Une fois créé, le tableau ne peut pas changer de taille. Vous verrez plus tard qu'en réalité cela est possible, grâce aux concepts de gestion de la mémoire et de tableaux dynamiques, mais cela ne sera pas abordé ici.

7. Chaînes de Caractères en C

Les chaînes de caractères en C sont des tableaux de caractères se terminant par le caractère nul \0. Voici toutes les façons dont on peut déclarer une chaîne de caractères en C.

Déclaration de Chaînes de Caractères

  1. Déclaration avec une Chaîne Littérale :
    char salutation[] = "Bonjour";
    
    Ici, salutation est un tableau de caractères qui contient automatiquement le caractère nul à la fin.
  2. Déclaration avec Taille et Caractères Spécifiques :
    char salutation[8] = {'B', 'o', 'n', 'j', 'o', 'u', 'r', '\0'};
    
    Cette déclaration crée un tableau de 8 caractères, y compris le caractère nul à la fin.
  3. Déclaration avec Taille Seule :
    char message[20] = "Salut";
    
    Ici, message est un tableau de 20 caractères. Le mot "Salut" et le caractère nul sont ajoutés au début, et le reste du tableau contient des valeurs indéterminées.

Nouveauté en C : Le caractère nul \0 est essentiel pour marquer la fin d'une chaîne de caractères. Il est automatiquement ajouté à la fin des chaînes littérales, mais doit être inclus manuellement dans les tableaux de caractères déclarés caractère par caractère.

Exercices

  1. Inversion d'un Tableau :
    Écrivez un programme en C pour inverser un tableau d'entiers.
  2. Longueur d'une Chaîne de Caractères :
    Créez un programme en C pour calculer la longueur d'une chaîne de caractères sans utiliser strlen.
Edit Report
Pub: 12 Nov 2023 13:01 UTC
Edit: 12 Nov 2023 15:18 UTC
Views: 44