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

Pascal Discussion :

Parcours de fichier et recherche occurences


Sujet :

Pascal

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut Parcours de fichier et recherche occurences
    bonjour pouvez vous maidez:
    soit element un type dont on supose que les valeurs peuvent etre comparés par les comparateur usuels > ,<, + etc..,soit fichier et fichierentier definis par:

    type fichier = file of element
    type fichieretier = file of integer
    donner la procedure:
    procedure occurences(x: element;var f:fichier;var q :integer;var g fichierentier);

    qui donne a la variable entiere q le nombre d occurences de x dans le fichier asocié au descripteur f et qui dans le meme temps genere dans le fichier associé au descripteur g les positions de ces occurences dans l ordre croissant.


    c etait un des sujet de partiel je revise avant depart en vacance dans 2 semaines pour les autres de septembre mais la je bug je suis bloquer, je vois meme pas comment partir pouvee vous m aider et surtout m expliquer

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Déjà tu peux ouvrir le fichier f en lecture, et g en écriture. Après tu parcours en entier ton fichier du début jusqu'à la fin, en lisant à chaque fois un élément. Tu compares cet élément à x, si c'est égal, tu écris sa position (fonction filepos si je me souviens bien) dans le fichier g et l'élément lui-même, puis tu incrémentes q. A la fin, c'est fini (puisque c'est la fin). Puis fermeture des deux fichiers

    Voilà l'algo
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    oui mais dans le cas ou y a 2 element identique mais au positions diverses

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Jai,
    Citation Envoyé par superdj
    oui mais dans le cas ou y a 2 element identique mais au positions diverses
    Comme rien n'est précisé concernant les valeurs ayant plusieurs occurrences, celles-ci devront toutes apparaître dans le fichier de sortie.
    C'est en tout cas comme ça que je réagirais.
    Si les cons volaient, il ferait nuit à midi.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    en fait Q est mon compteur , se que tu veut me dire c est a chaque fois que j ai une eqgalité sa me donne un element, et a force sa me le compte??

    ensuite pour la position exact filepos j y avais pas penser.

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Jao,

    Oui.

    J'ai relu le sujet : on te demande de compter les occurrences d'un élément, et d'écrire dans le fichier résultat la position de ces occurrences dans le fichier source.

    Pour la position dans le fichier, filepos est une bonne solution, probablement préférée par le correcteur à d'autres solutions, comme compter où tu te trouves dans le fichier.

    Un petit effort sur le français serait bienvenu.
    Si les cons volaient, il ferait nuit à midi.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    ok ok , mais une question imaginons ces elements

    A B C A C B A

    comment fait t'il pour diferencier les diferents elements?enfin comment lui dire?

    car mon probleme maintenant est qu'ont me demande ensuite de le faire pour plein d'element donc comment rediger sa pour qu'il le repete mais au autres elements je vois pas cette notations

  8. #8
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Tu as écris (dans ton énoncé) que : "element un type dont on supose que les valeurs peuvent etre comparés".

    Ca signifie, implicitement qu'il existe au minimum des fonctions egal(element1, element2) : boolean; et différent(element1, element2) : boolean; qui sont définies pour ton type element (dont est composé ton premier fichier).

    Donc dans cet exercice on ne te demande pas de les coder mais de les utiliser pour comparer 2 élements entre eux.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    eu desoler j ai modifié l enocer j ai oublier une parti c est comparé par les comparateur usuels

  10. #10
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Ca revient exactement au même. C'est quoi ton problème à ce stade ? On t'a donné l'algo (peut-être approximatif), il suffit de coder...
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    eu en fait je boque sur se fait :

    on a x element, donc a la fin dans un fichier on a successivement les positions de par example l element A puis dans un autre le nombre d element de A sa j ai trouvé.

    mais mon probleme est que lorsque on a A B C par example, comment traduire le fait de chercher le B et ainsi de suite.

  12. #12
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Dans ta procédure, tu passes l'élément à chercher non ? Si tu lui dis de chercher B, il faut passer en paramètre "B" ?

    Je comprends pas ce que tu veux dire, essaye de faire un effort sur ton français, parce que c'est pas clair là
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    hein? je vais essayer de m'expliquer.

    voila: ba prenons par example un fichieréontenant ces elements : A B C B
    avec la procedure va être va affiché dans un fichier pour
    B par example 2, et dans un autre 2 4.

    le probleme est que pour l'utiliser comment faire pour qu'elle ballaie le fichier en entier, que j'ai les resultats de toutes les occurences.

  14. #14
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    D'après ce que j'ai compris de l'énoncé, tu n'obtiens qu'un seul fichier de sortie g. Ta boucle de parcours doit être faite dans la procédure qui compte les occurences à mon avis.
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    oula, tu est sur car comment savoir dans se fichier les positions les diferenciers

  16. #16
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Avec la variable de la boucle de parcours. Avec un while, tu prend un indice que tu incrémentes à chaque tour de boucle, comme ca tu sais à quelle position est ton élément dans le fichier source.
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    ok mais la procedure a se moment la estvalable que pour un element donné, ex A.

    moi ma question la est comment passer a l'element B par example.

  18. #18
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    En la rapelant avec le paramètre B ?

    Je comprends pas trop ton problème, je ne vois pas où est la difficulté pour toi.
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 65
    Points : 18
    Points
    18
    Par défaut
    mon souci en fait est de l'utiliser, car je ne vois pas comment a par en manuel lui faire passer au parametre B.

    que ici x=B, sans effacement de se qui a ete trouver pour A, et ainsi de suite.

    De plus ensuite faut que j'utilise cette fonction pour comparer les occurences de 2 fichier distinct.
    et la j'ai eu l'idee d'utiliser la procedure , (en lisant elements par element les element fu fichier 1 je determine les positions de ceux du 2 ,avant j auré simplement appliqué la procedure au 1)et je met les resultat dans 2 fichiers et compare les fichiers.

    si vous avez une autre idee faite moi signe

  20. #20
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Jao,

    Je crois que je comprends ce que tu veux faire :

    Une fois la procédure exécutée pour l'élément A, tu voudrais qu'elle passe à l'élément B ?

    Si c'est bien cela que tu veux dire, tu sors de l'exercice : on te demande de faire le traitement pour l'élément passé à la procédure, dans ton exemple A, OU B, OU C, mais pas les trois à la suite.
    Ce serait le rôle du programme appelant la procédure d'éventuellement gérer ça, pas à la procédure dont le rôle est bien défini : elle s'occupe des occurrences d'un élément, point.
    Si les cons volaient, il ferait nuit à midi.

Discussions similaires

  1. Recherche Occurance dans un fichier Txt
    Par spirit daemon dans le forum Débuter
    Réponses: 5
    Dernier message: 29/11/2007, 22h10
  2. Lecture et parcours de fichiers binaires
    Par john_osaka dans le forum C++
    Réponses: 1
    Dernier message: 07/03/2006, 20h58
  3. parcour de fichier et retour a la ligne?
    Par xtaze dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 01/11/2005, 22h54
  4. Parcours de fichier
    Par ZzTop dans le forum Linux
    Réponses: 5
    Dernier message: 18/11/2004, 16h47
  5. [LG]Lenteur de parcours de fichier
    Par YéTeeh dans le forum Langage
    Réponses: 9
    Dernier message: 26/11/2003, 22h57

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