TP2 : Utilisation des boucles en C


Mise en situation
Le travail de ce TP se déroule seul.
Temps alloué : 3h
|
Référentiel
C4.4 Développer un module logiciel
|
Mettre en oeuvre les boucles, les conditions et les tableaux en langage C
1er exercice : Carte au trésor |
Alors que vous étiez tranquillement en train de planter vos salades dans votre potager, vous déterrez une vieille feuille de papier. Après avoir nettoyé la terre qui la recouvre, vous découvrez qu'elle contient une succession de lettres, parmi 'S', 'N', 'E', 'O' et le message suivant :
Avancez pas à pas, en suivant les lettres successives de ce message :
- Un pas vers le sud pour 'S'
- Un pas vers le nord pour 'N'
- Un pas vers l' est pour 'E'
- Un pas vers l' ouest pour 'O'
Attention, vous devez faire ces pas dans l'ordre, car si un pas vous demande de sortir du jardin, vous devez l'ignorer.
Si vous le suivez attentivement, à partir du coin nord-est de votre jardin et creusez à cet endroit, une surprise vous attend!
Le message contenant un nombre impressionnant de caractères, vous n'avez pas envie de passer le reste de votre journée à arpenter votre jardin. Vous allez plutôt écrire un programme qui lit un tableau de caractères contenant les instructions ('N', 'S'..) et qui vous affichera le nombre de pas vers l'ouest et le nombre de pas vers le sud qu'il vous faut faire pour aller directement au trésor.
Ce programme tient compte évidemment du fait de ne pas sortir du jardin, quelles que soient les instructions.
Par chance, votre jardin est rectangulaire, ses côtés sont parallèles aux points cardinaux. Vous pouvez donc le considérer comme un quadrillage dans lequel vous vous déplacez.
Votre mission, si vous l'acceptez, est de simplifier le déplacement à faire.
Vous allez déclarer un tableau de caractères contenant le message (en dur), boucler du début à la fin, suivant le nombre de caractères, vous vous déplacez et à la fin affichez le nombre de pas vers l'ouest et le nombre de pas vers le sud.
Exemple :

char tresor[] = {'S', 'O', 'S', 'E', 'S', 'S', 'S', 'S', 'S', 'E', 'N'};
Le programme affiche : 5 pas vers le sud et 2 pas vers l'est
Vous cherchez sur le boncoin une armoire lorraine. Vous avez plusieurs choix aux mêmes qualités (état, prix). Vous allez donc choisir l'armoire la plus proche de chez vous.
On vous fournit les coordonnées (entières et à deux dimensions) d'un point de départ, de même que N points de destination. Vous devez écrire un programme qui affiche la distance du point de départ au plus proche des points de destination.
Les coordonnées seront rentrées en dures, deux variables X et Y pour le point de départ et deux tableaux pour les points de destinations. Vous allez boucler sur le tableau en calculant pour chaque point de destination la distance (valeur absolue de l'hypoténuse du triangle), la comparer avec la plus petite. Si elle est plus petite, la sauvegarder comme étant la plus petite.
Remarque Pour simplifier, nous utiliserons des coordonnées x et y qui ne soient que positives.
Exemple :
Départ x = 5 et y = 4
tabX = 7 8 1
tabY = 2 6 1
La plus petite distance est avec le premier point de destination et sa valeur est :
racine carrée de (x1-x)² + (y1 - x)² c'est à dire environ 2.83

