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 :

taille d'un tableau avec condition


Sujet :

C

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Points : 39
    Points
    39
    Par défaut taille d'un tableau avec condition
    bonjour,
    je veux créer un tableau dont la taille dépend de la saisie d'un entier précis.Pour être plus clair,en remplissant ce tableau si l'utilisateur saisi cet entier, la saisi s'arrête et le tableau comprendra tout les entiers saisis sauf ce dernier..sans utiliser bien sur le lexique du tableau dynamique...
    j'y réfléchi depuis des jours sans trouver de reponse

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Qu'entends-tu par le « lexique » du tableau dynamique ?

    Si tu ne connais pas à l'avance le nombre d'entiers maximum que l'utilisateur peut entrer, l'allocation de ton tableau sera forcément dynamique.

    Il y a des langages dans lesquels on croit pouvoir ajouter un nouvel élément à un ensemble sans opération préalable, mais ce n'est que parce que l'opération d'allocation est masquée à l'utilisateur. Ce n'est pas une question d'algorithmique.

    Sinon, tu peux « tricher » en écrivant une fonction récursive. Les entiers saisis se retrouveront alors automatiquement dans la pile. Tu n'auras pas d'allocation à faire, mais tu risques le débordement de pile si tu entres vraiment trop d'entiers. À dire vrai, il est peu probable que tu atteignes la limite, mais le fait de ne pas savoir où elle se trouve fait que ton programme est intrinsèquement faillible.

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Pour chaque saisie tu fait un realloc voir le tutoriel d'Emmanuel sur la bonne utilisation de realloc : http://emmanuel-delahaye.developpez....age=Page5#LXXX

    Lorsque tu lira à la prochaine saisie le chiffre qui arrête le processus de remplissage, bin ton tableau sera déjà terminé et prêt à l'emploi !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  4. #4
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Points : 39
    Points
    39
    Par défaut
    comment pourrai-je ecrire cette fonction récursive??

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Personne n'a parlé de fonction récursive, commence déjà par expliquer comment ton programme est censé fonctionner !

    La saisie se fait-elle entier par entier ce qui ferais qu'à la suite de chaque saisie le tableau est agrandi et rempli par l'entier saisie ?
    Le tableau sera créé après la saisie de tous les entiers ?
    Tu entres un entier et tu remplis le tableau en partant de zéro jusqu'à atteindre la valeur de l'entier ?

    Soit plus précis dans tes explications mais nous te donnerons que la voie à suivre, pas le code complet d'un programme fonctionnel.
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Points : 39
    Points
    39
    Par défaut
    mon tableau doit s'aggrandir au fur et à mesure que l'utilisateur saisi des entiers jusqu'à la saisie de zero qui arrete ce processus

  7. #7
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par marooh Voir le message
    mon tableau doit s'aggrandir au fur et à mesure que l'utilisateur saisi des entiers jusqu'à la saisie de zero qui arrete ce processus
    Ok bin tu créé une boucle while qui demande en boucle un entier que tu récupères avec soit scanf soit avec fgets puis conversion avec strtol !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  8. #8
    Nouveau membre du Club
    Inscrit en
    Octobre 2010
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 98
    Points : 39
    Points
    39
    Par défaut
    La fonction strtol() convertit la chaîne nptr en un entier long en fonction de l'argument base non?quel est le rapport avec le tableau?

  9. #9
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par marooh Voir le message
    La fonction strtol() convertit la chaîne nptr en un entier long en fonction de l'argument base non?quel est le rapport avec le tableau?
    Je te l'ai donné à titre indicatif pour le cas où tu recupèrerais l'entier entré par l'utilisateur avec la fonction fgets c'est tout, sinon tu utilises la fonction scanf !

    Avec scanf nul besoin de faire une conversion mais est plus dangereuse à utiliser pour un débutant, y'a des tutos sur le site de la rubrique !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  10. #10
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 360
    Points : 23 600
    Points
    23 600
    Par défaut
    Citation Envoyé par Franck.H Voir le message
    Personne n'a parlé de fonction récursive, commence déjà par expliquer comment ton programme est censé fonctionner !
    Si, moi. Un peu plus haut. Je n'aurais peut-être pas dû.

    Citation Envoyé par marooh Voir le message
    mon tableau doit s'aggrandir au fur et à mesure que l'utilisateur saisi des entiers jusqu'à la saisie de zero qui arrete ce processus
    On te l'a dit plus haut : malloc() et realloc().

    Tu DOIS demander de la mémoire supplémentaire au système si la taille dont tu as besoin n'est pas connue à l'avance. Oublie les fonctions récursives pour le moment si tu ne sais pas ce que c'est. Ce n'est pas forcément très compliqué, mais tu vas au devant de difficultés encore plus pénibles à gérer.

  11. #11
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Si, moi. Un peu plus haut. Je n'aurais peut-être pas dû.
    J'avais pas tout lu
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tableau avec conditions
    Par patricklopez66 dans le forum Excel
    Réponses: 10
    Dernier message: 08/11/2016, 09h05
  2. [XL-2007] formule de remplissage de tableau avec condition
    Par realwail dans le forum Excel
    Réponses: 1
    Dernier message: 14/02/2012, 22h02
  3. [JSP] Remplir un tableau avec condition
    Par d0n32 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/10/2011, 13h50
  4. [Débutant] comment modifier la taille d'un tableau avec GUIDE
    Par ol9245 dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 28/01/2010, 10h40
  5. Réponses: 6
    Dernier message: 15/10/2007, 17h49

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