TD1A

Bases de l’algorithmique et du C

R1.01 c

27 août 2025

Compétences
  • Écrire un programme C simple avec main, déclaration de variables et affichage
  • Compiler et exécuter un programme en ligne de commande avec gcc

Exercice 1: Configuration de VSCode et Hello World!

  • Démarrer sur Linux.
  • Télécharger l’archive zip du dossier du TP disponible sur le dépôt https://framagit.org/benabel/r101-c.
  • Extraire l’archive zip présent dans le dossier Téléchargements vers le dossier Documents.
  • Ouvrir VSCode et ouvrir le dossier précédent (Menu Fichier > Ouvrir un dossier).
  • Installer les extensions recommandées pour le codage C (cliquer sur la notification en bas à droite).
  • Dans l’explorateur de fichiers à gauche ouvrir le fichier td00/main.c.
  • Exécuter le fichier en appuyant sur le bouton situé en haut de l’écran.
  • Vérifier la sortie attendue dans le terminal en bas de l’écran.

Exercice 2: Premier programme

Pour organiser nos fichiers, nous créerons un dossier par td avec un sous-dossier par exercice. Le programme principal sera appelé main.c.

  1. Dans l’explorateur de fichiers de VSCode, créer un dossier td1a puis un sous-dossier ex2 et enfin un fichier main.c.

  2. Écrivez un programme qui affiche “Bonjour Monde!” à l’écran. L’exécuter avec le bouton et vérifier la sortie dans le terminal.

  3. Ouvrir le terminal dans le dossier de main.c grâce à un clic droit sur le fichier dans l’explorateur à gauche. Compiler le programme grâce à gcc avec la commande gcc main.c -o main et exécuter le programme avec la commande ./main.

Exercice 3: Introduction aux variables et types de base

  1. Écrivez un programme qui déclare trois variables de types différents (int, char, double), leur affecte des valeurs, puis les affiche à l’écran.
Sortie attendue
Entier : 42, Caractère : A, Réel : 3.140000

  1. Expliquez la différence entre déclaration, affectation et définition d’une variable en C. Donnez un exemple pour chaque cas.
  1. Écrivez un programme qui lit deux entiers au clavier, calcule leur somme et leur produit, puis affiche les résultats.
Sortie attendue
Entrez deux entiers : 7
5
Somme : 12, Produit : 35

Exercice 4: Instructions conditionnelles

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

  2. Modifiez le programme précédent pour qu’il affiche aussi si l’entier est divisible par 3.

  3. Écrivez un programme qui lit trois entiers et affiche le plus grand des trois.

Exercice 5: Calculatrice   

Coder une mini-calculatrice:

  • elle affiche « Bonjour ! »
  • elle demande deux nombres entiers à l’utilisateur
  • elle les additionne, soustrait, multiplie et les divise et affiche ces résultats
  • elle affiche « Au revoir :) »
Bonjour !

Veuillez saisir le premier nombre: 12
Veuillez saisir le deuxième nombre: 15

Calculs: 

    12 + 15 = 27
    12 - 15 = -3
    12 * 15 = 180
    12 / 15 = 0.800

Au revoir :)

Exercice 6: Conversion de température   

Pour convertir des degrés Fahrenheit en degrés Celsius, on a la formule suivante:

θ(°C)=0,55556×(θ(F)32) \theta(°C) = 0,55556 \times (\theta(F) − 32)

où F est une température en degrés Fahrenheit et C la température correspondante en degrés Celsius.

  1. Écrire un programme qui convertit une température entrée au clavier exprimée en degrés Fahrenheit et affiche une valeur approchée de la même température en degrés Celsius. Les températures seront exprimées par des nombres flottants.
Entrez une température en °F: 100.0
Temperature de 37.778080 °C 

Exercice 7: ACLASSER

Exercice 8: Algorithme d’Euclide par divisions successives

Nous avons vu dans le cours l’algorithme d’Euclide pour calculer le PGCD de deux nombres entiers en utilisant des soustractions successives. Vous allez maintenant réécrire cet algorithme en utilisant des divisions successives.

Vous trouverez les explications de cette version de l’algorithme sur Wikipédia.

Note

L’opération informatique permettant de calculer le reste d’une division est appelée modulo. En C, l’opérateur modulo est %.

  1. Commencer par écrire le pseudo-code de ce nouvel algorithme.
  1. Écrire le programme en C correspondant à ce pseudo-code.

Exercice 9: Entrées et sorties avec printf et scanf

Dans l’exercice 2, la modification des valeurs des variables a et b se fait manuellement dans le fichier main.c, ce qui n’est pas pratique. La fonction scanf permet de récupérer des caractères entrés aux claviers et de les utiliser dans le programme.

  1. Créer un nouveau programme et utiliser le code suivant:
int main() {
  int a;
  scanf("%d", &a);
  printf("Vous avez entré le nombre %d \n", a);
  return 0;
}

Observer le fonctionnement du programme.

Améliorer le programme en affichant d’abord le message «Entrer un nombre: ».

  1. Modifier le programme pour entrer un 2e entier qui sera appelé b.

À l’aide de deux printf, afficher des messages: a est plus grand ou égal b: 0 ou 1 selon que le test est faux ou vrai a est plus petit ou égal à b: 0 ou 1 selon que le test est faux ou vrai.

Remarque: plusieurs points gênants apparaissent, mais ne sont pas encore traités.

L’utilisation de é et à affiche des caractères bizarres dans le printf. De plus, scanf ne vérifie pas qu’un nombre est entré. Que se passe-t-il si on tape n comme nombre entier? Ces problèmes seront traités dans les chapitres ultérieurs.

Exercice 10: Variables et opérations

Créer un nouveau projet et démarrer avec le programme ci-dessous. Nous travaillons avec une fonction: main, ce qui permet de simplifier la structure du projet en se passant de fichier en-tête.

int main() {
  int a, b;
  // Récupération des valeurs a et b
  printf("Entrez la valeur de a: ");
  scanf("%i", &a);
  printf("Entrez la valeur de b: ");
  scanf("%i", &b);

  // Additions directes
  printf("Main somme 1: a + b = %i\n", a + b);
  return 0;
}
  1. Quelles sont les 3 parties qui composent la fonction main? Donner leurs utilités.
  1. Qu’affiche ce programme?
  1. À la suite de la somme et avant l’instruction return, modifier le programme afin d’ajouter 1 à b puis de calculer de nouveau la somme et d’afficher sa valeur en l’appelant somme 2.