Guillaume Rivière 2010 – 2017

Le logo de la CCI Bayonne Pays Basque

Programmation Procédurale en langage C

TP2 - Briques de base (2) - Partie 1

FYI AVERTISSEMENT SUR LE NIVEAU DE DIFFICULTÉ : Le niveau de logique nécessaire pour résoudre les exercices suivants est tout à fait à votre portée. Ces exercices, qualifiés de « Briques de bases », sont donnés à des lycéens en classe de première S et de terminale S.

Exercice 1 • Swap et tiercé

Question 1.1

Écrire un programme qui comporte deux variables A et B, dans lequel l'utilisateur donne au clavier 2 valeurs entières enregistrées dans A et B, et qui ensuite, dans le cas où B est plus petit que A, intervertit les valeurs contenues dans A et B, puis, enfin, affiche la valeur respective des variables A et B.

Exécution swap.exe
Figure 1.1.1

Utiliser une variable d'aide tmp pour intervertir le contenu des deux variables

Question 1.2

Étendre le programme précédent au cas de 3 trois nombres A, B et C pour obtenir A ≤ B ≤ C en fin de programme. Le programme devra procéder en uniquement 3 comparaisons.

Exécution tierce.exe
Figure 1.2.1

Exercice 2 • Table des carrés

Question 2.1

Écrire un programme qui affiche le carré des nombres jusqu'à 5

Exécution carre5.exe
Figure 2.1.1

Un exemple de boucle POUR dans ce fichier : boucle_for.c
Si vous ne comprenez pas ce que fait ce mini-programme, compilez-le et testez-le.

Question 2.2

Modifier ce programme pour afficher le carré des nombres jusqu'à 15

Question 2.3

Modifier ce programme pour afficher le carré des nombres, de 5 en 5, jusqu'à 200

Exécution carre200.exe
Figure 2.3.1

Exercice 3 • Somme d'un intervalle

Question 3.1

Écrire un programme dans lequel l'utilisateur donne le nombre n, et qui calcule la somme de l'intervalle 1+...+n

Exécution sum-n.exe
Figure 3.1.1
Question 3.2

Copier et modifier ce programme pour que l'utilisateur donne deux nombres n1 et n2, et que la somme calculée soit celle de l'intervalle n1+...+n2

Exécution sum-range.exe
Figure 3.2.1
Question 3.3

Que fait votre programme quand l'utilisateur donne n1 > n2 ? Testez !

Ainsi, après la lecture des variables n1 et n2, il faut s'assurer que n1 ≤ n2, le cas échéant échanger les variables (cf. exercice 2.1 du début)

Exécution sum-range.exe
Figure 3.3.1

Exercice 4 • Occurrences dans un tableau

Question 4.1

Écrire un programme qui affiche les éléments d'un tableau de 20 nombres entiers, déclaré comme suit :
const int A[] = { 4, 2, 8, 4, 5, 4, 2, 1, 1, 5, 1, 4, 7, 4, 5, 1, 7, 9, 4, 0 } ;
(Faire varier un indice i à l'aide d'une boucle « for » pour parcourir les cases du tableau)

Exécution tableau20.exe
Figure 4.1.1
Question 4.2

Compléter le programme pour que l'utilisateur entre un nombre, puis dire si ce nombre est présent dans le tableau

  1. Un nouveau parcours du tableau sera effectué pour ce calcul (faites une nouvelle boucle « for »)
  2. Une variable d'aide trouve sera initialisée à 0 (c.-à-d. FAUX) au départ
  3. Optimiser pour arrêter le parcours du tableau dès que la première occurrence est rencontrée
Exécution tableau20.exe
Figure 4.2.1
Exécution tableau20.exe
Figure 4.2.2
Question 4.3

Compléter ce programme pour compter le nombre d'occurrences du nombre cherché
(Même si ce n'est pas optimal, faites pour ce comptage un nouveau parcours du tableau, avec encore une nouvelle boucle « for »)

Exécution tableau20.exe
Figure 4.3.1
Exécution tableau20.exe
Figure 4.3.2