Précédent   Forum du club des développeurs et IT Pro > Autres langages > Pascal
Pascal Forum d'entraide sur la programmation en langage Pascal et sur les EDI. Avant de poster -> la F.A.Q Pascal, les cours
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/05/2012, 23h44   #1
elhadiDZ
 
Homme
Webmaster
Inscription : janvier 2012
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : janvier 2012
Messages : 20
Points : -4
Points : -4
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.

elhadiDZ est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 20/05/2012, 00h28   #2
Paul TOTH
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 4 398
Détails du profil
Informations personnelles :
Nom : Homme Paul TOTH
Âge : 43
Localisation : Réunion

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

Informations forums :
Inscription : novembre 2002
Messages : 4 398
Points : 10 743
Points : 10 743
voila ce que c'est de faire ses devoirs au dernier moment
__________________
Developpez.com: Mes articles, forum FlashPascal
Entreprise: Execute SARL
Produits : UPnP, RemoteOffice, FlashPascal
Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%
Paul TOTH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2012, 00h39   #3
elhadiDZ
 
Homme
Webmaster
Inscription : janvier 2012
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : janvier 2012
Messages : 20
Points : -4
Points : -4
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)
elhadiDZ est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 20/05/2012, 01h41   #4
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 001
Points : 1 001
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 :

Citation:
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.
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2012, 13h47   #5
elhadiDZ
 
Homme
Webmaster
Inscription : janvier 2012
Messages : 20
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webmaster

Informations forums :
Inscription : janvier 2012
Messages : 20
Points : -4
Points : -4
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 ...

elhadiDZ est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 20/05/2012, 14h14   #6
M.Dlb
Rédacteur/Modérateur
 
Avatar de M.Dlb
 
Inscription : avril 2002
Messages : 2 274
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2002
Messages : 2 274
Points : 3 381
Points : 3 381
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
M.Dlb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2012, 21h43   #7
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 001
Points : 1 001
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.
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2012, 23h52   #8
droggo
Expert Confirmé
 
Inscription : août 2006
Messages : 3 414
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 3 414
Points : 3 769
Points : 3 769
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" ).
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir.
droggo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2012, 03h18   #9
Dr.Mimo
Invité de passage
 
Homme George Klarckson
Étudiant
Inscription : mars 2012
Messages : 10
Détails du profil
Informations personnelles :
Nom : Homme George Klarckson
Localisation : Algérie

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

Informations forums :
Inscription : mars 2012
Messages : 10
Points : 3
Points : 3
Par défaut Code proposé

Supposons que les Fichiers sont déja stockés sur le disque dur.
Code :
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.
Dr.Mimo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2012, 13h50   #10
droggo
Expert Confirmé
 
Inscription : août 2006
Messages : 3 414
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 3 414
Points : 3 769
Points : 3 769
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.
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir.
droggo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2012, 23h04   #11
Dr.Who
Membre Expert
 
Avatar de Dr.Who
 
Inscription : septembre 2009
Messages : 980
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : septembre 2009
Messages : 980
Points : 1 175
Points : 1 175
En delphi :


Code :
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!
Dr.Who est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h30.


 
 
 
 
Partenaires

Hébergement Web