Ministère de l’Enseignement Supérieur Direction des ISET ISET Nabeul Fascicule

Ministère de l’Enseignement Supérieur Direction des ISET ISET Nabeul Fascicule TP de : Programmation 1 Réalisé par : JEBRI Elies Niveau d’enseignement : Informatique Premier Niveau 1999/2002 Elies JEBRI 1 Travaux pratiques de C Matière : Programmation C Professeur : E. JEBRI Classe : Niveau 1 Etablissement : ISET Nabeul Travaux Pratiques de C Documents Autorisés Durée : 3h Table des matières Buts de la série 1 Edition et compilation Messages d’erreur du compilateur Aide "Debugging" Commentaires Constantes Sauvegarde Notions de la série 2 Préparation Variables et types scalaires Opérateurs arithmétiques Opérateurs relationnels Affectation Opérateurs logiques Le test: if ... Notions de la série 3 Boucle while Boucle for Fonctions Lecture de nombre Calcul Notions de la série 4 Fonctions booléennes Test d’intervalle Test de majuscules Egalité entre caractères Tableaux Déclaration et initialisation Utilisation du debugger Recopier un tableau Tester des éléments Somme Fonction de comparaison Chaînes de caractères Déclaration Lecture de chaîne Affichage de chaîne Longueur de la chaîne Renverser la chaîne Une fonction utile Sujets de la série 5 Boucles Une boucle for Une autre boucle for Position du maximum Visibilité et classes d'allocation Buts de la série 6 Instruction «switch» «switch» et les entiers «switch» et les caractères Structures Définir une structure Utilisation élémentaire Lire les donnée Ecrire Réponses des devinettes Elies JEBRI 2 Travaux pratiques de C 1 - Buts de la série 1  Manipulations de fichiers dans l'environnement TURBO C.  Compiler et exécuter un petit programme.  Corriger des erreurs.  Utiliser l’aide.  Utiliser le DEBUGGER.  Définir des constantes.  Mettre des commentaires. 2 - Édition et compilation  A partir de l’environnement DOS, lancez TURBO C. Notez les commandes nécessaires.  Écrivez ce programme : #include <stdio.h> main() { printf ("Bonjour tout le monde\n"); printf ("Je suis capable de calculer 2+2=%d\n",2+2); printf ("Au revoir"); }  Sauvez-le dans un fichier.  Compilez et exécutez-le.  Regardez le résultat. 3 - Messages d’erreur du compilateur Le compilateur signale les erreurs qu’il trouve dans le programme. Des combinaisons de touches permettent de se rendre directement à la ligne où se trouvait l’erreur. Notez-les. Introduisez les erreurs suivantes dans le programme et essayez de le compiler.  Enlever des guillemets.  Remplacer "printf" par "print".  Enlever une accolade.  Enlever un point-virgule. 4 - Aide Positionnez le curseur sur l’un des "printf" dans le programme et pressez la combinaison de touches CTRL+F1. Vous pouvez ainsi obtenir de l’aide sur tous les éléments du langage. Les écrans d’aide sont liés entre eux, "voyagez" un peu pour comprendre le système. Si vous pressez la touche F1 seule, vous obtenez de l’aide sur l’environnement. Notez comment on peut :  sélectionner un bloc de texte dans le programme  déplacer un bloc sélectionné  copier un bloc sélectionné  supprimer un bloc sélectionné  sauver un bloc sélectionné sur disque  "désélectionner" un bloc de texte. Expérimentez ces diverses commandes sur votre programme. Elies JEBRI 3 Travaux pratiques de C 5 - "Debugging"  Trouvez comment on peut exécuter le programme pas à pas ("pas"="step" en anglais). Notez-le. Essayez avec votre programme. Une telle fonctionnalité est très utile pour voir où un programme se plante.  Mettez un point d’arrêt (breakpoint) sur la seconde instruction "printf" de votre programme et lancez-le. Il s’arrête automatiquement quand il arrive à cette ligne. Cette technique est utile si on ne veut examiner qu’une partie du programme lorsqu’il est long.  Ajouter la ligne "int ma_variable = 15; "juste après l’accolade ouvrante. Il s’agit d’une définition de variable entière. TURBO C vous permet d’examiner le contenu des variables pendant que le programme s’exécute à l’aide du menu WATCH. Demandez-lui d’observer la variable "ma_variable" et exécutez le programme pas à pas (step). Vous pourrez voir que la variable vaut 15.  Ajoutez la ligne "ma_variable=30;" juste après le premier "printf". Il s’agit d’une affectation qui change la valeur de la variable. Observez ce changement avec le debug-ger.  Le debugger permet également d’évaluer des expressions. Évaluez "ma_variable*3" pendant que vous exécutez le programme pas à pas. L’observation des variables et l’évaluation des expressions sont très utiles pour trouver des erreurs dans des programmes qui ne fonctionnent pas. Souvenez-vous en, vous pourrez gagner beaucoup de temps. 6 - Commentaires Ajoutez des commentaires dans le programme. Le compilateur les ignore. Mettez l’une des instructions "printf" en commentaire (rajoutez "/*" avant et "*/" après), le compilateur ignorera cette ligne. Exécutez le programme, la ligne correspondante ne doit plus s’afficher. On utilise cette technique pour faire comme si on enlevait un ensemble de lignes du programme sans l’effacer complètement si l’on est pas sûr de ce que l’on fait. 7 - Constantes Définissez la constante "HUIT" avec la valeur 8. Remplacez l’expression 2+2 dans le deuxième "printf" du programme par la constante HUIT. Essayez votre programme, il devrait afficher "...2+2=8" si tout s’est bien passé. Vous pouvez également lui demander d’afficher la valeur de "ma_variable". 8 - Sauvegarde Sauvegardez votre travail sur le disque, sur une disquette et essayez de l’imprimer. Elies JEBRI 4 Travaux pratiques de C 1 - Notions de la série 2  Entrées et sorties formatées  Variables, types scalaires et affectation  Opérateurs arithmétiques, relationnels et logiques  Le test: if ... 2 - Préparation Créez un petit programme qui affiche la chaîne "Bonjour" à l'écran et revienne à la ligne. 3 - Variables et types scalaires Pour la suite, affichez les valeurs des variables à l'écran en augmentant graduellement votre pro-gramme. Retrouvez les trois types scalaires du langage C et définissez une variable de chaque type, "v_ent" de type entier, "v_reel" de type réel, "v_car" de type caractère. Souvenez-vous: une variable permet de mémoriser une donnée dans un programme, sa valeur peut changer au cours de l'exécution. Les variables peuvent être définies au début du bloc d'instructions du programme principal (main). Dans ce cas, ce sont des variables locales qui n'existent que dans ce bloc. Elles peuvent aussi être définies en-dehors de tout bloc, dans ce cas, ce sont des variables globales, valables dans tout le programme. Si vous n'initialisez pas les variables, qu'observez-vous lorsque c'est une variable globale? Et lors-que c'est une variable locale. Réponse: les variables globales sont automatiquement initialisées à 0, les variables locales ne le sont pas. Initialisez, dans la déclaration, l'entier à la valeur 120, le réel à la valeur 20 et le caractère à la valeur 'x'. Affichez chacun des ces trois types correctement. La différence entre caractères et entiers est faible en C, affichez-le caractère avec un "%d" dans la chaîne de format. Vous avez obtenu le code ASCII du caractère 'x'. Affichez ensuite l'entier, mais avec un "%c" dans la chaîne de format. Que se passe- t-il? Cet exercice était censé vous montrer la proximité de ces deux types. Vous ne serez ainsi pas sur-pris de voir que les opérateurs fonctionnent presque la même chose sur ces deux types. 4 - Opérateurs arithmétiques Affichez, avec une seule instruction "printf", la somme et le produit des deux variables de type entier et réel (les expressions doivent se trouver entre les parenthèses de la fonction "printf", un nombre quelconque de paramètres est possible, pour autant qu'il y ait le nombre correspondant de formats dans la chaîne de format). Utilisez tout d'abord le format "%f" et ensuite le format "%d", qu'observez- vous, quelle est votre conclusion. Réponse: un opérateur applique sur un entier et un réel donne un réel. Affichez ensuite les valeurs suivantes sous leur forme caractère 'a'+1 'a'+2 'Z'-4 Conclusions: les codes ASCII sont ordonnés, les opérateurs arithmétiques fonctionnent sur les nombres entiers. Calculez (de tête ou sur papier) les valeurs suivantes v_ent/7 v_reel/6 v_ent/6 v_ent%12 quel est le type du résultat dans chacun des cas? Elies JEBRI 5 Travaux pratiques de C Vérifiez vos calculs à l'aide de votre programme. Souvenez-vous: la division entre deux nombres entiers donne un nombre entier (arrondi à l'entier). La division entre un nombre réel et un entier donne un nombre réel (pas arrondi). 5 - Opérateurs relationnels Rappel: les opérateurs relationnels retournent une valeur entière, 0 si l'expression est fausse, autre chose si l'expression est vraie. Affichez, sous forme décimale et sans utiliser de test, la valeur des expressions suivantes v_ent==120 vcar=='x' v_car<'a' v_reel<v_ent v_car>100 La dernière montre que les opérateurs relationnels peuvent être appliqués aux caractères aussi bien qu'aux entiers. Les opérateurs peuvent être combinés pour former des expressions plus com-plexes : v_reel+100!=v_ent v_car-1=='w'+1 Les opérateurs arithmétiques ont une priorité plus grande que les opérateurs relationnels, et sont donc calculés d'abord. 6 - Affectation Définissez de nouvelles variables et affectez-leur les expressions que vous avez écrites jusqu'ici. Vous pouvez utiliser le "debugger" pour examiner leurs valeurs avant et après l'affectation. Souvenez-vous: l'affectation est le mécanisme de base pour modifier la valeur d’une variable au cours du programme. Avec les définitions de variables int i=23, b=3; float a=1; Trouvez l'expression contractée équivalente à i=12+b a=a*4 b=a-b b=b-a i=2+i i=i+2*a*b-4/i Réponses : i=12+b a*=4 b=a-b b-=a i+=2 i+=2*a*b-4/i Que vaudraient les variables après que l'ordinateur uploads/Ingenierie_Lourd/ fascicule-tp-c-pdf.pdf

  • 28
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager