Correction TP 6 - Les listes chaînées

Documents pareils
1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Introduction au langage C

Les structures de données. Rajae El Ouazzani

TP2 : tableaux dynamiques et listes chaînées

#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

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

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier

Programme Compte bancaire (code)

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

Java Licence Professionnelle CISII,

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

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail

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)

Programmation en langage C

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Les arbres binaires de recherche

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

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Le prototype de la fonction main()


Programmation système de commandes en C

DNS Server RPC Interface buffer overflow. Céline COLLUMEAU Nicolas BODIN

Algorithmique et Programmation, IMA

Les processus légers : threads. Système L3, /31

COMPARAISONDESLANGAGESC, C++, JAVA ET

INITIATION A LA PROGRAMMATION

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

SUPPORT DE COURS. Langage C

Claude Delannoy. 3 e édition C++

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Programmer en JAVA. par Tama

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C mars.10 Cours 4 11.mai.10 Cours C++ 2

Assurance Qualité. Cours de génie logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 23/04/2007

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

OS Réseaux et Programmation Système - C5

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

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

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

Projet de programmation (IK3) : TP n 1 Correction

Algorithmique I. Algorithmique I p.1/??

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Cours de C. Allocation dynamique. Sébastien Paumier

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Chap III : Les tableaux

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

3IS - Système d'exploitation linux - Programmation système

Cours 6 : Tubes anonymes et nommés

TD2/TME2 : Ordonnanceur et Threads (POSIX et fair)

as Architecture des Systèmes d Information

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia

Cours d Algorithmique et de Langage C v 3.0

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

MINIMUM. connaissances nécessaires à la programmation des microcontrôleurs PIC18 en langage C (une introduction au langage c A.N.S.

Cours Programmation Système

Introduction au Langage de Programmation C

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Programmation avec des objets : Cours 7. Menu du jour

Programmation Classique en langage C

Corrigé des exercices sur les références

Cours de Programmation Impérative: Zones de mémoires et pointeurs

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

Les structures. Chapitre 3

Programmation client-serveur sockets - RPC

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

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

INF 104 (SELC) Introduction au langage C

Chapitre 1 : La gestion dynamique de la mémoire

Utilisation d objets : String et ArrayList

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

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

Plan du cours. Historique du langage Nouveautés de Java 7

Introduction à la programmation concurrente

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Le Langage C Licence Professionnelle Qualité Logiciel Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2011/2012

Travaux Dirigés n 1 : chaînes de caractères

BASES DE DONNEES TP POSTGRESQL

COURS DE LANGAGE C. DIAO Oumar. Université de Rennes 1. Master 1

Outils pour la pratique

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Les processus. Système L3, /39

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Algorithmique, Structures de données et langage C

Derrière toi Une machine virtuelle!

LEs processus coopèrent souvent pour traiter un même problème. Ces

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Package Java.util Classe générique

Notions fondamentales du langage C# Version 1.0

Rappels Entrées -Sorties

Conventions d écriture et outils de mise au point

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

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Le langage C. Séance n 4

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

Programmation Structurée Langage C

Programmation C. J.-F. Lalande. 15 novembre 2012

V- Manipulations de nombres en binaire

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

COURS D'INFORMATIQUE: LANGAGE C NOTES DE COURS

Transcription:

Correction TP 6 - Les listes chaînées Exercice 1 Element; Liste; Liste l;maliste = &l; printf("** afficheliste() ** \n[ "); void insereunelemt(fliste L, Pelement nouveau){ 1

Exercice 2 Element; Liste; Liste l; FListe maliste = &l; void insereunelemt(fliste L, Pelement nouveau){ float moyenne(fliste L){ int som = 0, cpt = 0; cpt++; som += L->courant->x; return (som/cpt); 2

printf("liste = [ "); printf("moyenne(liste) = %.2f\n", moyenne(maliste)); Exercice 3 #include <math.h> Element; Liste; Liste l, ll; FListe maliste = &l; FListe pl= &ll; void insereunelemt(fliste L, Pelement nouveau){ printf("** afficheliste() **\n"); 3

printf("liste = [ "); void inserfinliste(fliste L, Pelement nouveau){ if (L->dernier ==NULL){ insereunelemt(l, nouveau); else{ nouveau->suivant = L->dernier->suivant; L->dernier->suivant = nouveau; void carres(fliste L, FListe Lc){ Pelement el; initliste(lc); el = (Pelement) malloc(sizeof(element)); el->x = pow(l->courant->x, 2); inserfinliste(lc, el); carres(maliste, pl); afficheliste(pl); Exercice 5 Element; Liste; 4

void insereunelemt(fliste L, Pelement nouveau){ printf("liste = [ "); void supprimepremier(fliste L){ Pelement el = L->premier; L->premier = L->premier->suivant; free(el); el=null; Liste l; FListe maliste = &l; supprimepremier(maliste); Exercice 6 Element; Liste; 5

void insereunelemt(fliste L, Pelement nouveau){ printf("liste = [ "); void supprimedernier(fliste L){ Pelement el = L->dernier; Pelement avdernier; while(l->courant->suivant->suivant!=null){ avdernier = L->courant; free(avdernier->suivant); avdernier->suivant = NULL; L->dernier = avdernier; Liste l; FListe maliste = &l; supprimedernier(maliste); Exercice 8 /* Gestion d'une file FIFO */ #define MAX 5 6

typedef struct liste * Fliste; struct element{ int n; Element; struct liste{ int taille; Liste; struct liste l; FListe file = &l; void initialiserfile(fliste P){ P = (FListe)malloc(sizeof(Liste)); P->premier = (Pelement)malloc(sizeof(Element)); P->courant = (Pelement)malloc(sizeof(Element)); P->premier = NULL; P->courant = NULL; P->taille = 0; int filevide(fliste P){ return (P->premier == NULL); void empiler(fliste P, int i){ Pelement nouveau=(pelement)malloc(sizeof(element)); nouveau->n = i; if ( filevide(p) ){ nouveau->suivant = NULL; P->premier = nouveau; else { nouveau->suivant = P->premier; P->premier = nouveau; P->taille++; void depiler(fliste P){ if (!filevide(p) ){ Pelement asupprimer; asupprimer = P->premier; P->premier = P->premier->suivant; printf("element retire de la file : %d\n", P->premier->n); free(asupprimer); asupprimer = NULL; void afficher(fliste P){ P->courant=P->premier; printf("file = ( "); while (P->courant!= NULL){ printf("%d, ",P->courant->n); P->courant = P->courant->suivant; printf(")\n"); 7

void creerfile(fliste P){ int i, tab[max]= {3,4,5,6,7; for (i = 0; i<max; i++){ empiler(file, tab[i]); int menu(){ int choix, a; printf("*** Gestion d'une file ***\n"); printf(" 1 - Initialiser\n"); printf(" 2 - afficher\n"); printf(" 3 - Empiler \n"); printf(" 4 - Depiler\n"); printf(" 5 - Quitter\n"); printf("saisissez votre choix : "); scanf("%d",&choix); switch (choix){ case 1: initialiserfile(file); printf("file initialisee\n"); break; case 2: afficher(file); break; case 3: printf("saisir entier a inserer dans la file : "); scanf("%d", &a); empiler(file, a); break; case 4: depiler(file); break; case 5: exit(0); default: printf("/!\\ Choix non valide /!\\ \n"); /* initialiserfile(file); creerfile(file); afficher(file); depiler(file); afficher(file); */ 8