IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Manipulation de liste


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 7
    Points : 0
    Points
    0
    Par défaut Manipulation de liste
    s'il vous plait j'aimerai avoir de votre avis sur cet exercices et dites moi qu'elle sont les modifications a faire sur le programme pour qu'il soit adapter a l’annoncer de l'exercice

    Créez une liste avec les n premiers entiers dans l’ordre décroissant.

     Calculez la moyenne d’une liste.

     Retirez le premier élément d’une liste.

     Retirez le dernier élément d’une liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    #include <stdio.h>
    #include <stdlib.h>
    typedef struct element * Pelement;
    typedef struct liste * Pliste;
    typedef struct element{
    int x;
    Pelement suivant;
    }Element;
    typedef struct liste{
    Pelement premier;
    Pelement courant;
    Pelement dernier;
    }Liste;
    void initListe(Pliste L){
    L = (Pliste) malloc ( sizeof(Liste));
    L->premier = (Pelement) malloc ( sizeof(Element));
    L->courant = (Pelement) malloc ( sizeof(Element));
    L->dernier = (Pelement) malloc ( sizeof(Element));
    L->premier = NULL;
    L->courant = NULL;
    L->dernier = NULL;
    }
    void insereUnElemt(Pliste L, Pelement nouveau){
    nouveau->suivant = L->premier;
    L->premier = nouveau;
    if( L->dernier ==NULL )
    L->dernier = nouveau;
    }
    void creeListeDecroissante(Pliste L, int n){
    printf("***** creeListeDecroissante() *****\n");
    int i;
    Pelement Pel;
    for(i=1; i<=n; i++){
    Pel = (Pelement)malloc( sizeof (Element));
    Pel->x = i;
    insereUnElemt(L, Pel);
    }
    }
    void afficheListe(Pliste L){
    L->courant = L->premier;
    while (L->courant != NULL){
    printf("%d, ", L->courant->x);
    L->courant = L->courant->suivant;
    }
    }
    Liste l;maListe = &l;
    int main(){
    initListe(maListe);
    creeListeDecroissante(maListe, 5);
    printf("** afficheListe() ** \n[ ");
    afficheListe(maListe);
    printf(" ]\n");
    return 0;
    }
    et s'il vous plait aidez moi a résoudre cet exercice


    Faites un programme qui déclare :
    - Une structure de donnée d’étiquette point et qui soit composée des données nom, x et y (ordonnée et l’abscisse du point) de types respectifs char, float et float.
    - Un tableau tpoints de données de type point.
    - Une variable courbe1 de type tpoints.

    Reprendre le fichier toto.txt. Initialisez courbe1 avec les données contenues dans le fichier toto.txt.
     Affichez le contenu de ce fichier.
     Modifiez le contenu de ce fichier de manière à ce que les données soient formatées de cette façon :
    A (12, 34)
    B (8, 12.1)
    C (2.5, 7.8)
     Affichez le nouveau contenu du fichier.

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par habalti Voir le message
    s'il vous plait j'aimerai avoir de votre avis sur cet exercices
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    #include <stdio.h>
    #include <stdlib.h>
    typedef struct element * Pelement;
    typedef struct liste * Pliste;
    typedef struct element{
    int x;
    Pelement suivant;
    }Element;
    typedef struct liste{
    Pelement premier;
    Pelement courant;
    Pelement dernier;
    }Liste;
    void initListe(Pliste L){
    L = (Pliste) malloc ( sizeof(Liste));
    L->premier = (Pelement) malloc ( sizeof(Element));
    L->courant = (Pelement) malloc ( sizeof(Element));
    L->dernier = (Pelement) malloc ( sizeof(Element));
    L->premier = NULL;
    L->courant = NULL;
    L->dernier = NULL;
    }
    void insereUnElemt(Pliste L, Pelement nouveau){
    nouveau->suivant = L->premier;
    L->premier = nouveau;
    if( L->dernier ==NULL )
    L->dernier = nouveau;
    }
    void creeListeDecroissante(Pliste L, int n){
    printf("***** creeListeDecroissante() *****\n");
    int i;
    Pelement Pel;
    for(i=1; i<=n; i++){
    Pel = (Pelement)malloc( sizeof (Element));
    Pel->x = i;
    insereUnElemt(L, Pel);
    }
    }
    void afficheListe(Pliste L){
    L->courant = L->premier;
    while (L->courant != NULL){
    printf("%d, ", L->courant->x);
    L->courant = L->courant->suivant;
    }
    }
    Liste l;maListe = &l;
    int main(){
    initListe(maListe);
    creeListeDecroissante(maListe, 5);
    printf("** afficheListe() ** \n[ ");
    afficheListe(maListe);
    printf(" ]\n");
    return 0;
    }
    Bonjour
    Mon avis c'est que c'est quand tu veux que tu indentes ton code pour qu'il soit lisible par autre chose qu'un ordinateur.

    Avis subsidiaire: je ne vois pas à quoi sert la variable "maListe" (qui n'est même pas du bon type) et en quoi l'utilisation de variables globales est justifiée. Ni pourquoi tu alloues de la mémoire pour "premier", "courant" et "dernier" vu que ces pointeurs récupèreront ensuite les adresses des éléments insérés donc déjà alloués par ailleurs.
    Surtout que tu les mets à NULL à la ligne juste en dessous juste après leur avoir réservé de la mémoire !!! Sans déconner, ça ne te parait pas bizarre d'écrire "a=quelque_chose_d_important()" puis juste en dessous "a=NULL" ? Tu ne te dis pas en écrivant ce genre d'aneries "punaise, mais où est donc passé ce qui était important" ??? Tu fais quoi de ta tête quand tu programmes ???
    Et certains (dont moi) préfèrent ne pas caster un malloc. Toutefois il y a aussi de bons arguments de la part de ceux qui préfèrent le caster donc là c'est comme tu veux.

    Citation Envoyé par habalti Voir le message
    s'il vous plait j'aimerai avoir de votre avis sur cet exercices et dites moi qu'elle sont les modifications a faire sur le programme pour qu'il soit adapter a l’annoncer de l'exercice

    Créez une liste avec les n premiers entiers dans l’ordre décroissant.

     Calculez la moyenne d’une liste.

     Retirez le premier élément d’une liste.

     Retirez le dernier élément d’une liste.
    Bah ben tu dois savoir calculer une moyenne non ? Quand à retirer le premier/dernier élément d'une liste c'est juste les pointeurs "premier" et/ou "dernier" à mettre à jour puis libérer la mémoire de l'élément retiré...


    Citation Envoyé par habalti Voir le message
    et dites moi qu'elle sont les modifications a faire sur le programme pour qu'il soit adapté a l’annoncé de l'exercice et s'il vous plait aidez moi a résoudre cet exercice


    Faites un programme qui déclare :
    - Une structure de donnée d’étiquette point et qui soit composée des données nom, x et y (ordonnée et l’abscisse du point) de types respectifs char, float et float.
    - Un tableau tpoints de données de type point.
    - Une variable courbe1 de type tpoints.
    Ben tu as su créer une structure pour gérer une liste, je ne vois pas trop pourquoi tu ne saurais pas créer une structure pour gérer un char et deux int...

    Citation Envoyé par habalti Voir le message
    Reprendre le fichier toto.txt. Initialisez courbe1 avec les données contenues dans le fichier toto.txt.
     Affichez le contenu de ce fichier.
     Modifiez le contenu de ce fichier de manière à ce que les données soient formatées de cette façon :
    A (12, 34)
    B (8, 12.1)
    C (2.5, 7.8)
     Affichez le nouveau contenu du fichier.
    Ah ben il faudra lire un fichier texte pour stocker ses données dans un tableau puis ensuite utiliser le tableau pour réécrire le fichier texte...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Manipulation de listes (moyenne de doublons)
    Par BaBoU_77 dans le forum Prolog
    Réponses: 4
    Dernier message: 06/06/2007, 01h44
  2. probleme manipulation de listes!
    Par galford dans le forum VB 6 et antérieur
    Réponses: 22
    Dernier message: 19/12/2006, 19h50
  3. [VBA-E] Manipuler une liste de Validation
    Par Ptit Dark dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/06/2006, 16h28
  4. Manipuler des listes d'objet ?
    Par xla99 dans le forum Général Python
    Réponses: 4
    Dernier message: 06/06/2006, 15h06
  5. [PDFBox]Comment manipuler une LIST
    Par marcotop dans le forum Documents
    Réponses: 11
    Dernier message: 27/08/2004, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo