Travaux dirigés 7 : Lecture de données au clavier et types.

Documents pareils
Chap III : Les tableaux

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Programmation C++ (débutant)/instructions for, while et do...while

Le langage C. Séance n 4

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

I. Introduction aux fonctions : les fonctions standards

Rappels Entrées -Sorties

Algorithmique et Programmation, IMA

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

1 Année LMD-STSM Algorithmique et Programmation. Série de TD 2

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

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

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Télécom Nancy Année

CORRECTION EXERCICES ALGORITHME 1

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Recherche dans un tableau

Initiation à la programmation en Python

1. Structure d'un programme FORTRAN 95

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Correction TD Algorithmique 5.3 Pile Liste 5.3 Pile

Représentation d un entier en base b

Les chaînes de caractères

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Cours 1 : Qu est-ce que la programmation?

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

ACTIVITÉ DE PROGRAMMATION

Corrigé des TD 1 à 5

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

V- Manipulations de nombres en binaire

Programmation impérative

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

Machines virtuelles Cours 1 : Introduction

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java


Cours d initiation à la programmation en C++ Johann Cuenin

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Les structures. Chapitre 3

Introduction au langage C

Cours Informatique Master STEP

Java Licence Professionnelle CISII,

Programmation Classique en langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

UE Programmation Impérative Licence 2ème Année

1.6- Génération de nombres aléatoires

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Application 1- VBA : Test de comportements d'investissements

Génération de code binaire pour application multimedia : une approche au vol

PROJET ALGORITHMIQUE ET PROGRAMMATION II

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

Structurer ses données : les tableaux. Introduction à la programmation

Cours d Informatique

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Cours d Algorithmique et de Langage C v 3.0

Cours 1 : La compilation

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

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

Traduction des Langages : Le Compilateur Micro Java

ALGORITHMIQUE ET PROGRAMMATION En C

Cours Langage C/C++ Programmation modulaire

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

Les fichiers. Chapitre 4

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Algorithmique et programmation : les bases (VBA) Corrigé

TP, première séquence d exercices.

Algorithmique avec Algobox

Correction TD algorithmique

Propagation sur réseau statique et dynamique

Examen Médian - 1 heure 30

Programmation Objet - Cours II

TP 1. Prise en main du langage Python

Plan du cours Cours théoriques. 29 septembre 2014

IV- Comment fonctionne un ordinateur?

Programmation par les Objets en Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

Initiation à Excel. Frédéric Gava (MCF)

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

COMPARAISONDESLANGAGESC, C++, JAVA ET

1/ Présentation de SQL Server :

1 TD 2 : Construction d'une chier Acrobat et envoi par

Algorithme. Table des matières

Algorithmes d'apprentissage

Architecture des Systèmes d Information Architecture des Systèmes d Information

Langage Java. Classe de première SI

TP : Gestion d une image au format PGM

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Mesurer les performances (CPU) sous Linux

Transcription:

Université Paris 13 L1 Institut Galilée Année 2015-2016 Licence 1-1er semestre Travaux dirigés 7 : Lecture de données au clavier et types. Note aux chargés de TD. Les traces ne dénissent pas une colonne supplémentaire pour les entrées, ce qui ne permet pas de présenter les subtilités de conversion de scanf. Cela sera fait en S2. Bien insister sur la procédure permettant d'attaquer un problème de programmation. Il semble qu'ils ne savent toujours pas l'appliquer. La procédure : on se donne des exemples on trouve un algorithme en francais on traduit l'algorithme en C en s'aidant de commentaires on test sur les exemples qu'on s'est donnes L'algorithmique des tableaux parle de cases, et un parcours se présente de la façon suivante : - pour chaque case du tableau : - affecter 2 a la case - afficher la case -... En C, on peut être plus tenté par : pour chaque indice de case. Cependant, la plupart des langages modernes (Java, Python etc.) ont introduit des conteneurs avec des parcours qui font référence aux éléments. On reste sur les cases pour l'instant et il faut sans doute expliquer la subtilité. N.B. : le programme vide voit son écriture simpliée en n'indiquant plus dans le main la déclaration des variables, ni la valeur de retour. Si certains ont encore des problèmes avec ça, il faut repousser. 1 Lecture de données utilisateur entrées au clavier 1. Que fait le programme suivant? 1 /* declaration de fonctionnalites supplementaires */ 2 3 4 5 /* declarations des constantes et types utilisateurs */ 6 7 /* declarations des fonctions utilisateurs */ 8 9 /* fonction principale */ 10 11 12 int a; 13 double b; 14 char c; 1

15 16 printf("entrez un nombre entier puis un nombre réel puis un caractère : "); 17 18 scanf("%d",&a); 19 scanf("%lg",&b); 20 scanf(" %c",&c); 21 22 printf("vous avez saisi %d puis %g puis %c.\n",a,b,c); 23 24 25 26 27 Le programme : déclare 3 variables a,b et c, respectivement de type entier, réel (rationnel) et caractère ; demande à l'utilisateur de saisir 3 valeurs, respectivement de type entier, réel (rationnel) et caractère ; aecte la valeur entière saisie à la variable entière a (même type sinon quelle est la signication? le compilateur détecte cette erreur sémantique lors de l'analyse sémantique mais il acceptera de compiler en faisant une conversion automatique de type => source de bugs diciles à détecter) aecte la valeur réelle saisie à la variable réelle/rationnelle b ; aecte le caractère saisie à la variable caractère c ; ache les valeurs pour montrer les aectations réalisées (vous pouvez utiliser un tel programme pour vérier que les représentations sont bornées, cf. cours et TP) 2. Faire la trace du programme en considérant que l'utilisateur saisit au clavier : 1 puis entrée, 12.2 puis entrée et 'c' puis entrée. ligne a b c affichage (sortie/écriture à l'écran ----------------------------------------------------------------------------- initialisation??? 16 Entrez un nombre entier puis un nomb 18 1 19 12.2 20 'c' 22 Vous avez saisi 1 puis 12.2 puis c. Ils l'ont vu en cours : vous pouvez leur faire remarquer que si la lecture du caractère s'était faite avec "%c", la var c contiendrait '\n', caractère qui suit la chaîne "12.2" (due à la mémoire tampon + scanf). 1.1 Moyenne d'une série d'entiers saisie par l'utilisateur Écrire un programme qui demande à l'utilisateur combien d'entiers composent sa série, lit la série d'entiers et ache la moyenne des valeurs de la série. L'ensemble de la série ne doit pas être stockée en mémoire. 2

/* declaration de fonctionnalites supplementaires */ /* declaration constantes et types utilisateurs */ /* fonction principale */ int n; /* taille de la serie a saisir par l'utilisateur*/ int elt; /* un element de la serie a saisir par l'utilsateur */ double somme = 0.0; /* somme de la serie a calculer pour afficher la moyenne c'est un double car sinon le C fait une division entiere * /* demande la taille de la serie a l'utilisateur */ printf("combien d'elements dans la série? "); scanf("%d",&n); /* saisie serie (n entiers) et calcul incremental de la somme */ for(i = 0;i < n;i = i + 1) /* chaque entier de la serie */ scanf("%d",&elt); /* l'ajoute a la somme partielle */ somme = somme + elt; /* i >= n */ /* somme contient la somme des elements de la serie. la moyenne est somme / n */ printf("la moyenne des valeurs de cette serie est : %g\n",somme / n); /* ce n'est 1.2 Initialisation d'un tableau par l'utilisateur 1. Écrire un programme qui déclare un tableau d'entiers de taille arbitraire TAILLE (une constante symbolique) et qui demande à l'utilisateur de saisir au clavier les valeurs des cases du tableau. Acher le tableau. /* declaration de fonctionnalites supplementaires */ 3

/* declaration constantes et types utilisateurs */ #define TAILLE 4 /* taille du tableau utilisateur */ /* fonction principale */ int tab[taille]; /* tableau a initialiser par l'utilisateur */ /* demande a l'utilisateur de saisir TAILLE entiers*/ printf("saisissez %d entiers : ",TAILLE); /* saisie des elts du tableau (TAILLE entiers) */ scanf("%d",&tab[i]); /* affichage du tableau */ printf("vous avez saisi le tableau suivant : "); /* afficher sa valeur */ printf("%d ",tab[i]); printf("\n"); Faire la trace, en donnant à l'avance les valeurs saisies. On considère, pour simplier dans un premier temps (S1), que "entrée est utilisée après chaque entier. 2. Modier votre programme pour traiter désormais un tableau de réels. /* declaration de fonctionnalites supplementaires */ /* declaration constantes et types utilisateurs */ #define TAILLE 4 /* taille du tableau utilisateur */ 4

/* fonction principale */ double tab[taille]; /* tableau a initialiser par l'utilisateur */ /* demande a l'utilisateur de saisir TAILLE reels*/ printf("saisissez %d reels : ",TAILLE); /* saisie des elts du tableau (TAILLE reels) */ scanf("%lf",&tab[i]); /* affichage du tableau */ printf("vous avez saisi le tableau suivant : "); /* afficher sa valeur */ printf("%lf ",tab[i]); printf("\n"); 5