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 :

Intersection de deux fichiers


Sujet :

Pascal

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2012
    Messages : 32
    Points : 12
    Points
    12
    Par défaut Intersection de deux fichiers
    SALUT

    J'ai besoin d'un programme Pascal qui produit un fichier contenant l'intersection des deux fichiers.

    L’exercice : on considère deux ensembles d'entiers représentés dans les fichiers. Chaque entier n'apparaît qu'en un exemplaire dans une séquence. Écrire un programme qui produit un fichier contenant l'intersection des deux ensembles.
    Exemple :
    fichier 1 : 10 5 12 7 19 28 6.
    fichier 2 : 5 14 19 2 10 6 29 3 7.
    fichier résultat : 10 5 7 19 6.


  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 430
    Points
    28 430
    Par défaut
    voila ce que c'est de faire ses devoirs au dernier moment
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2012
    Messages : 32
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    voila ce que c'est de faire ses devoirs au dernier moment
    XD
    En fait ce n'est pas un devoir, je veux juste préparer le prochain cour (lever le doigt XD)

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 070
    Points : 15 457
    Points
    15 457
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par elhadiDZ Voir le message
    En fait ce n'est pas un devoir, je veux juste préparer le prochain cours
    Sage résolution. Mais quelle difficulté rencontres-tu ?

    La procédure n'est pas très difficile à concevoir :

    Pour chacun des éléments du fichier A,
    chercher s'il est aussi dans le fichier B;
    s'il y est, l'ajouter dans le fichier C.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2012
    Messages : 32
    Points : 12
    Points
    12
    Par défaut
    merci , Nous n'avons pas étudié cette leçon de fichiers , je veux juste préparer la leçon.

    je veux le programme pascal de l'intersection
    Qui veux m'aidez : merci , qui veux quelque chose d'autre il ya d'autre forums ...


  6. #6
    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
    Rappel des règles: Nous ne fournissons aucun code source à la demande.

    Merci de lire http://club.developpez.com/regles

    Prendre de l'avance sur la leçon à venir c'est bien, mais tu ne peux pas demander un code si précis. Tu peux t'inspirer des tutoriels disponibles sur ce site, créer ton code et nous le montrer pour le corriger par exemple.
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  7. #7
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 070
    Points : 15 457
    Points
    15 457
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par elhadiDZ Voir le message
    je veux le programme pascal de l'intersection
    Tu veux ?

    Ça ne se dit pas, sauf quand on est roi.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  8. #8
    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
    Moe,
    Citation Envoyé par Roland Chastain Voir le message
    Tu veux ?
    Ça dépend directement de la culture d'origine.
    C'est une manière commune de s'exprimer pour les populations d'Afrique du Nord.

    Citation Envoyé par Roland Chastain Voir le message
    Ça ne se dit pas, sauf quand on est roi.
    Les rois disaient plutôt nous voudrions. Eh oui, ils avaient en général au moins cette qualité là, la politesse (j'ai bien écrit "en général" ).
    Si les cons volaient, il ferait nuit à midi.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2012
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Code proposé
    Supposons que les Fichiers sont déja stockés sur le disque dur.
    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
    program prop;
    uses crt;
    var F1,F2,F3: File of integer;
         T1,T2,T3: array[1..200] of integer;
         i,j,c: integer;
    Begin
    writeln('Lecture du premier fichier');   
    assign(F1,'Fichier1.int');
    reset(F1);
    seek(F1,0);
    For i:=1 to (Filesize(F1)) do
       BEGIN
       seek(F1,i);
       read(F1,c);
       T1[i]:=c;
       END;
    writeln('Lecture du deuxieme fichier');   
    assign(F2,'Fichier2.int');
    reset(F2);
    For i:=1 to (Filesize(F2)) do
       BEGIN
       seek(F2,i);
       read(F2,c);
       T2[i]:=c;
       END;
    writeln('recherche d''intersection');
    c:=0;
    For i:=1 to (Filesize(F1)) do
     For j:=1 to (Filesize(F2)) do
    BEGIN
     if (T1[i]=T2[j]) then
     Begin
     c:=c+1;
     T3[c]:=T1[i];
     END;
    END;
    assign(F3,'Fichier3.int');
    rewrite(F3);
    For i:=1 to c do
    write(F3,T3[i]);
    close(F1);
    close(F2);
    close(F3);
    writeln('travail terminé');
    readln;
    End.
    Voilà le code que je propose, il n'y a aucune erreur normalement il travaille bien.

  10. #10
    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
    Hoi,

    C'est du code pas franchement propre, ET il ne répond pas à la question, puisque tu utilises des fichiers au format binaire (file of integer), alors que l'énoncé montre leur contenu : c'est du format texte.

    Comprendre le problème posé est la clé pour trouver la bonne solution.
    Si les cons volaient, il ferait nuit à midi.

  11. #11
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    En delphi :


    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
     
    procedure CreateIntersecFile(aFileNameA, aFileNameB, aFileNameResult: string; const aAsCSV: boolean = false; const aCSVSeparator: char = #32);
    var X: integer;
        CSV, A, B, R : TStringList;
     
    begin
      A := TStringList.Create;
      B := TStringList.Create;
      R := TStringList.Create;
      try
        A.LoadFromFile(aFileNameA);
        B.LoadFromFile(aFileNameB);
        if aAsCSV then
        begin
          CSV := TStringList.Create;
          CSV.StrictDelimiter := true;
          CSV.Delimiter := aCSVSeparator;
          CSV.DelimitedText := A.Text;
          A.Text := CSV.Text;
          CSV.DelimitedText := B.Text;
          B.Text := CSV.Text;
        end;
     
        //ListBoxA.Items.Text := A.Text;
        //ListBoxB.Items.Text := B.Text;
     
        for X := 0 to A.Count - 1 do
        begin
          if B.IndexOf(A[X]) <> -1 then
            R.Add(A[X]);
        end;
        //ListBoxR.Items.Text := R.Text;
        R.SaveToFile(aFileNameResult);
      finally
        R.Free;
        B.Free;
        A.Free;
      end;
    end;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

Discussions similaires

  1. Concaténer deux fichiers Ligne/Ligne avec SH
    Par guiltouf dans le forum Linux
    Réponses: 7
    Dernier message: 22/05/2007, 14h35
  2. [langage] Comparaison de deux fichiers
    Par perlgirl dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2005, 16h05
  3. Réponses: 22
    Dernier message: 29/01/2005, 11h29
  4. Réponses: 5
    Dernier message: 09/01/2005, 19h54
  5. [prg jeux ]Définir l'intersection de deux rectangles
    Par mat.M dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 30/07/2003, 18h11

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