Le langage C. Séance n 4



Documents pareils
1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Rappels Entrées -Sorties

Découvrir la messagerie électronique et communiquer entre collègues. Entrer dans le programme Microsoft Outlook Web Access

Introduction à Eclipse

Programmation système I Les entrées/sorties

Securexam Consignes pour l EFU Les 2, 3 et 4 juin 2015

MO-Call pour les Ordinateurs. Guide de l utilisateur

VAMT 2.0. Activation de Windows 7 en collège

PROCÉDURE D'INSTALLATION WINDOWS 7 (32 ou 64 bit)

Création d une connexion VPN dans Windows XP pour accéder au réseau local de l UQO. Document préparé par le Service des technologies de l information

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var - E mail : bij@agasc.fr / Tel : CONSIGNE N 1 :

Guide d utilisation 2012

Comment autoriser un programme à communiquer avec Internet sous Vista?

Programmation impérative

Bases de programmation. Cours 5. Structurer les données

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

Comment créer et utiliser une fonction

GUIDE D INSTALLATION INTERNET haute vitesse

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Guide d installation de MySQL

Le cas «BOURSE» annexe

USTL - Licence ST-A 1ère année Codage de l information TP 1 :

Logiciel DELF-DALF - Mise à jour vers la version (septembre 2014)

Cahier n o 6. Mon ordinateur. Fichiers et dossiers Sauvegarde et classement

Le cas «BOURSE» annexe

Comment réaliser une capture d écran dans Word. Alors comment ouvrir une page Word?

INITIATION A L INFORMATIQUE. MODULE : Initiation à l'environnement Windows XP. Table des matières :

Rapports d activités et financiers par Internet. Manuel Utilisateur

TP, première séquence d exercices.

Outils pour la pratique

VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET

Menu Fédérateur. Procédure de réinstallation du logiciel EIC Menu Fédérateur d un ancien poste vers un nouveau poste

Ouvrez un compte Hotmail pour communiquer

< Atelier 1 /> Démarrer une application web

Guide de prise en main Windows 8

Accès au Serveur de PAIE «SPV» par INTERNET Paramétrage du poste de travail «Windows»

PRÉSENTÉ PAR : NOVEMBRE 2007

Les structures. Chapitre 3

COMMENT AUTORISER LES PARTAGES RESEAUX ET IMPRIMANTE SOUS L ANTIVIRUS FIREWALL V3

Guide de démarrage rapide. (pour la version 5.0.)

SOMMAIRE. Présentation assistée sur ordinateur. Collège F.Rabelais 1/10

wxwidgets dans un environnement Microsoft Windows

Tapez le titre de la page «BASTIA ville méditerranéenne», puis allez deux fois à la ligne à l aide de la touche Entrée.

MODE D EMPLOI DU MODULE D E-COMMERCE

Installation et compilation de gnurbs sous Windows

Mon aide mémoire traitement de texte (Microsoft Word)

La Clé informatique. Formation Excel XP Aide-mémoire

Manipuler fichiers et dossiers

PAGE 1. L écran du logiciel d Open Office Draw. Barre de menu: Les commandes du logiciel

Silhouette Studio Leçon N 2

Eclipse atelier Java

Guide de l utilisateur. Faites connaissance avec la nouvelle plateforme interactive de

Conservez la documentation à portée de main pour toute référence future. Le terme «pointeur» dans ce manuel désigne le pointeur interactif YA-P10.

Procédures d'utilisation de Maitre'D

Conférence et partage avec NetMeeting

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Algorithmique et Programmation, IMA

IFT287 Exploitation de base de données relationnelles et orientées objet. Laboratoire Mon premier programme Java en Eclipse

Utilisation du client de messagerie Thunderbird

Guide de configuration. Logiciel de courriel

PRISE EN MAIN D UN TABLEUR. Version OPEN OFFICE

Universal Robots. Fiche Méthode : Installation du simulateur Polyscope

[WINDOWS 7 - LES FICHIERS] 28 avril Logiciel / Windows

Tutoriel. Votre site web en 30 minutes

PROJET AZURE (par Florent Picard, A2011)

Les fichiers. Chapitre 4

Installation et configuration du logiciel BauBit

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Organiser vos documents Windows XP

1. Ouvrir Internet Explorer Faire défiler une page Naviguer dans un site Internet Changer d adresse Internet (URL) 2

Guide d installation logicielle

Comment accéder à d Internet Explorer

PROCEDURE D EXPORT-IMPORT DU CERTIFICAT InVS INTERNET EXPLORER

Télécharger et Installer OpenOffice.org sous Windows

Windows Internet Name Service (WINS)

Club informatique Mont-Bruno Séances du 05 octobre et du 24 octobre 2012 Présentateurs : Réjean Côté

COURS WINDEV NUMERO 3

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Mes documents Sauvegardés

La saisie d un texte

Au préalable, nous nous plaçons dans l espace au sein duquel nous allons créer notre raccourci vers l ENTG.

Importation et exportation de contenu

Certificats Electroniques sur Clé USB

Procédure d installation d AMESim 4.3.0

Atelier n 12 : Assistance à distance

Introduction au langage C

Guide de l administrateur DOC-OEMCS8-GA-FR-29/09/05

Sommaire. 2. L accès aux modules. 1. Aspects techniques. 1.1 Le matériel requis 2

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

Disque Dur Internet «Découverte» Guide d utilisation du service

COUR D APPEL DE LYON PROCEDURE INFORMATIQUE IMPRIMANTES. Imprimantes SAR de Lyon / Novembre 2007 Page 1 sur 14

WinARC Installation et utilisation D un écran déporté (Windows 7)

Guide de démarrage IKEY 2032 / Vigifoncia

GUIDE ADMINISTRATEUR BIEN DÉMARRER AVEC WISEMBLY

Utilisation de l éditeur.

Importer une bibliographie au format «texte» dans Zotero

Transcription:

Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de cette séances les notions suivantes : la manipulation des pointeurs et l utilisation des tableaux. Exercice 1 : Utilisation des pointeurs On considère le programme suivant : #include<stdio.h> int main() { int nombre ; int * ptr1 ; int * ptr2 ; ptr1 = &nombre ; *ptr1 = 10 ; printf("la variable nombre vaut : %d \n",nombre) ; ptr2 = ptr1 ; *ptr2 = 3346 ; printf("la variable nombre vaut maintenant : %d \n",nombre) ; return 0 ; } Question : Dessinez sur une feuille de papier l état de la mémoire durant l exécution de ce programme. Codez le programme et expliquez ce que vous observez. Exercice 2 : Aire et volume de la sphère Le but de l exercice est de calculer l aire et le volume de la sphère. Nous allons rappeler les formules de l aire et du volume de la sphère pour les amnésiques : On écrira une fonction AireVolSphere qui a le prototype suivant : Aire de la sphère = 4π rayon 2 (1) Volume de la sphère = 4 3 π rayon3 (2) T. Rodet Le 11 juillet 2007

le langage C 2 int AireVolSphere(double rayon, double * ptraire, double * ptrvolume) ; Cette fonction retourne un entier égal à 1 si les arguments de la fonction sont corrects (rayon de la sphère positif), et 0 sinon. Question : Écrire la fonction AireVolSphere. Écrire une fonction main qui déclare les variable nécessaires et qui appelle la fonction AireVolSphere. Conseil : Faites un dessin de l espace mémoire pour bien vérifier que vous avez bien réservé l espace nécessaire en mémoire. Exercice 3 : Saisie au clavier (scanf) Le clavier est l entrée standard (ou stdin, pour standard input) de vos programmes. La fonction scanf permet de faire une lecture formatée du clavier ; elle lit les caractères en entrée, les interprète selon les spécifications de format (%c, %d, %f, %lf, etc... ) décrites dans la chaîne format en argument. Par exemple : char c ; int i,j ; printf("saisir un caractère et deux entiers\n") ; scanf("%c %d %d", &c, &i, &j) ; /* On entre les valeurs : a 2 3 */ Dans cet exemple, les valeurs frappées au clavier sont indiquées en souligné. La variable c prend donc la valeur a et les entiers i et j les valeurs 2 et 3. Attention! Pour pouvoir affecter aux variables c, i et j les valeurs saisies, les arguments de scanf doivent être obligatoirement les adresses des variables (&c, &i, &j). En d autres termes, on doit indiquer à quel(s) endroit(s) de la mémoire doivent être stockées les valeurs saisies au clavier. Remarques. Les valeurs tapées au clavier (a, 2, 3) sont séparées par un ou plusieurs espaces, et la ligne de saisie est terminée par un retour-chariot (touche Entrée). Les valeurs entrées sont d abord mémorisées dans une mémoire "tampon" avant d être traitées par scanf. La chaîne de format ("%c %d %d" dans l exemple) ne doit comporter que des spécifications de format, tout autre caractère peut amener le programme à se comporter curieusement... Bibliothèque. Comme la fonction printf, scanf nécessite de prendre en compte la bibliothèque des entrées-sorties standard : #include <stdio.h> Question 1. Un caractère. Écrire le programme qui saisit la valeur d un caractère, puis affiche ce caractère. Faire précéder le scanf d un message d invite et d explication qui précise que l on doit entrer un caractère. L exécution du programme doit ressembler à : Entrez au clavier un caractère : Le caractère saisi est : X. X

le langage C 3 Question 2. Caractère, double, entier. Écrire le programme qui saisit la valeur d un caractère, d un double puis d un entier, et affiche ces valeurs. Chaque entrée se fait par un nouveau scanf. Reprenez cette question en introduisant une erreur de frappe au moment de l entrée du double (par exemple, tapez une virgule au lieu du point décimal). Comprenez-vous ce qui se passe? Question 3. Deux caractères. Écrire le programme qui saisit la valeur d un caractère, affiche ce caractère, puis entre un nouveau caractère et affiche ce nouveau caractère. Vous n utiliserez qu une seule variable de type caractère. Vous devez constater que le programme s exécute sans vous laisser entrer le second caractère. Explication. Les entrées provenant du clavier sont stockées dans une mémoire (la mémoire tampon). Au premier appel à scanf, on frappe les touches X (pour la saisie du premier caractère) puis Entrée, la mémoire tampon contient donc deux caractères ( X et \n ). Ainsi, les deux appels à scanf saisissent respectivement X et \n, sans attendre une nouvelle saisie. La solution est de vider la mémoire tampon entre les deux appels à scanf en rajoutant l instruction : fflush(stdin); Ainsi, la mémoire est «nettoyée» du caractère \n, et le second appel à scanf attend une nouvelle saisie. Notez que ce problème est seulement lié à la saisie de caractères ; en effet, le retour-chariot est interprété comme un caractère ( \n ), mais jamais comme un nombre (entier ou réel). Dans le programme de la question 2, les retour-chariot sont donc interprétés comme des séparateurs entre un caractère et un double, puis un double et un entier. Exercice 4 : Tableau dynamique Le but de cet exercice est de manipuler un tableau dynamique formé de N entiers. Question 1. Dans un premier temps, vous écrirez une seule fonction main, qui réalise les opérations suivantes : Initialisation d un pointeur ptrint sur entier, à la valeur NULL. Saisie au clavier d un entier non signé N. Allocation d un bloc de N entiers pour le pointeur ptrint (il s agit d un tableau dynamique). Affectation des valeurs 1,2,...,N aux N entiers alloués à l adresse ptrint. Affichage des N valeurs pointées par ptrint. Libération de la mémoire si nécessaire. Vérifier le fonctionnement du programme. Question 2. On veut maintenant écrire une fonction pour remplir le tableau et une fonction pour réaliser l affichage des N entiers mémorisés à l adresse ptrint. La fonction remplit possède l interface suivante : Nom : remplit. Valeurs reçues : un pointeur sur entiers ptrint et un entier non signé N. Pas de valeur retournée. La fonction affichage possède l interface suivante : Nom : affichage. Valeurs reçues : un pointeur sur entiers ptrint et un entier non signé N. Pas de valeur retournée. Écrire les fonctions remplit et affichage, puis modifier la fonction main pour réaliser l appel de ces deux fonctions. Tester le programme sur un exemple simple. Note : dans la fonction affichage le paramètre contenant l adresse de la première case mémoire du tableau peut ici être déclaré en const, car les valeurs pointées par ptrint ne sont pas modifiées.

le langage C 4 A Prise en main de visual C++ Nous utilisons le logiciel Visual C++ (version 6.0). Il permet de compiler des programmes écrits en C et en C++, puis de les exécuter, de les débugger... Pour cette année, nous n utiliserons que le compilateur C, vos fichiers sources porteront donc l extension.c. Gérer votre travail avec Visual C++ Le travail que vous réalisez sous Visual C++ est organisé en espace de travail (ou workspace) et projets. Un projet correspond à un programme écrit en C, et un espace de travail est un dossier qui regroupe un ou plusieurs projets. Vous pouvez donc créer un seul workspace par séance de TP sur machine, et autant de projets que d exercices. Pour aujourd hui, vous créerez le workspace TP1 au sein du dossier Z:\TP_C, puis plusieurs projets (exo1, exo2, exo3, etc... ) dans le workspace TP1. Création d un espace de travail Pour démarrer le logiciel Visual C++, utilisez la barre de menu située en bas de l écran : Démarrer = Programmes = Microsoft Visual C++ 6.0. Une fois Visual C++ démarré, utilisez la barre de menu située en haut de la fenêtre : File = New = Workspaces Une fenêtre s ouvre alors qui vous permet de définir votre espace de travail : Workspace Name : TP1 Location : Z:\TP_C\TP1 Pour désigner la localisation, vous pouvez utiliser l icône située à droite ("...") de façon à parcourir l arborescence des dossiers. Cliquez ensuite sur le bouton OK. L espace de travail a été créé, il est vide : Workspace TP1 : 0 project(s) Création d un projet Vous allez à présent ajouter un nouveau projet (ou programme) exo1 au workspace TP1. Cliquez avec le bouton de droite sur la ligne Workspace TP1, et sélectionnez dans le menu déroulant : Add New Project to Workspace Une nouvelle fenêtre s ouvre. Vous devez alors : 1. Définir la nature du programme : Win32 Console Application (système d exploitation Windows 32 bits, en mode console). 2. Indiquer le nom et le chemin d accès de votre projet : Project Name : exo1 Location : Z:\TP_C\TP1\exo1 3. Cliquez finalement sur Add to current workspace, puis sur OK, Finish puis encore OK. À ce stade, vous avez ajouté un nouveau projet (an empty project) à l espace de travail. Tout nouvel ajout de projet à l espace de travail TP1 se fera de la même façon. Création d un fichier source Cliquez en bas de la fenêtre sur FileView. Vous voyez apparaître une (des) arborescence(s) qui illustre la structure du (des) projet(s) de l espace de travail. Pour l instant, nous n utiliserons que le dossier indiqué par

le langage C 5 Source. La partie droite de la fenêtre est destinée à l éditeur de texte dans lequel vous pourrez créer votre fichier source (fichier terminé par l extension.c). Pour créer un fichier source dans le projet courant, faire : File = New = C++ Source File et proposer un nom pour votre programme, par exemple exo1.c. Ce fichier est automatiquement rangé dans le dossier Z:\TP_C\TP1\exo1\. Projet actif Si votre espace de travail comporte plusieurs projets, vous constatez que l un d eux (par exemple exo1) a son nom inscrit en gras. C est le projet actif : les commandes de compilation et d exécution (Build Build, Execute) concernent ce projet et non les autres. Pour rendre un autre projet actif (par exemple exo2) et désactiver le premier, cliquer avec le bouton de droite sur son nom (exo2), puis sur Set as Active Project. Sauvegardes La commande File save sauvegarde le fichier "actif" sur lequel vous travaillez (celui qui est au premier plan sur l écran). Cliquez sur save all pour sauvegarder l ensemble de votre travail (tout vos programmes). Autres commandes Explorez la barre de menu pour trouver comment compiler le fichier actif, construire le fichier exécutable (exo1.exe), lancer le programme, le débugger, etc. Utilisez l aide en ligne en double-cliquant sur un nom de fonction (par exemple printf) puis en tapant sur la touche F1.