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 :

Créer une liste reprenant les éléments ne se trouvant pas dans deux listes


Sujet :

Pascal

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Points : 0
    Points
    0
    Par défaut Créer une liste reprenant les éléments ne se trouvant pas dans deux listes
    Bonjour, j'aurais besoin de l'aide d'une âme généreuse pour m'aider à faire un petit travail ! Il est vraiment important et je n'arrive pas à le faire.

    Voici ses consignes :
    Pour deux listes d'entiers, liste1 et liste2, lues en entrée, le programme produit une liste
    reprenant les éléments ne se trouvant pas dans les deux listes.

    Le programme lit :
    i . deux entiers , lg1 et lg2 , représentant la taille des deux listes (inférieurs ou
    égaux à la constante LMAX)
    i i . ( lg1+lg2 ) nombres entiers

    Le programme affiche une liste ordonnée liste Res = liste1 / liste2 contenant les éléments
    qui se trouvent dans la liste1, mais pas dans la liste2
    Par exemple, si :
    lg1 = 9 et lg 2 = 4 ;
    liste1 = [ 1 , 2 , 6 , 8 , 5 , 4 , 7 , 3 , 9 ]
    liste2 = [ 1 , 3 , 8 , 5 ]
    alors ,
    listeRes = [ 2 , 4 , 6 , 7 , 9 ]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    const
    LMAX=30;
    var
    lg 1 , lg2 : integer ;
    liste1 , liste2 : array [ 1 . .LMAX] of integer ;
    begin
    ....................
    end .
    Aussi, => • la condition lg1, lg2 <= LMAX est toujours vraie
    • vous ne devez pas toucher à LMAX
    • vous ne devez pas initialiser les valeurs des tableaux et leurs longueurs effectives (lg1 et lg2)
    • vous pouvez ajouter autant de variables que vous voulez
    • ne laissez pas de read/readln dans votre code (a fortiori, pas de write/writeln non plus)
    • les listes peuvent contenir des doublons (dans ce cas, on enlève une fois l'élément par nombre de fois qu'il se retrouve dans l'autre liste. Ex1: si liste1=[1,2,2] et liste2=[2], alors listeRes=[1,2]. Ex2: si liste1=[2,1,2] et liste2=[2,2], alors listeRes=[1].
    • les listes liste1 et liste2 ne sont pas forcément triées, mais listeRes doit l'être.
    • listeRes ne peut contenir que les éléments de la solution, le reste de la liste est remplie de 0.

    Il faudrait donc reprendre les memes noms de variables que dans l'énoncé et si possible trier les tableaux au début.
    SVP j'ai vraiment besoin que quelqu'un m'aide, cela serait super sympathique !

  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
    sont vraiment pas sympa ces profs à donner des exercices trop difficiles pour les lycéen hyper motivés !

    moi je serais toi je changerais d'école.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    Je suis à l'université, j'ai choisi lycée au hasard . Tu ne sais pas m'aider sinon?

  4. #4
    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
    Citation Envoyé par RainbowVic Voir le message
    Je suis à l'université, j'ai choisi lycée au hasard . Tu ne sais pas m'aider sinon?
    tu ne demandes pas d'aide, tu demandes qu'on face ton exo, et personne ne le fera pour toi ici.

    mais tu peux encore changer d'école.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 929
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 929
    Points : 59 395
    Points
    59 395
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Pour obtenir de l'aide, il faut poster ce que tu as fait et indiquer ce qui ne va pas ou où tu coinces.

    Pour débuter un tel exercice, rien de tel qu'une feuille de papier et un crayon ; une fois que tu as réussi à le résoudre à la main, tu traduis cela en pseudocode et le passage au Pascal se fera tout naturellement.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 939
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 939
    Points : 5 648
    Points
    5 648
    Par défaut
    Mae,

    +1

    En clair, on est en train de t'expliquer qu'il faut utiliser ton cerveau.
    Si les cons volaient, il ferait nuit à midi.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    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
    program Devoir; 
    Var i,temp1,temp2 : integer ; 
        Idem : boolean ; 
        I :=1 ; 
    While i<lmax do 
      listeRes[i] :=0 ; 
    end; 
    i:=1 ; 
    Lg1 :=1 ; 
    While (lg1<LMAX) do 
      Idem :=true ; 
    Lg2 :=1 ; 
    Temp1 :=liste1[lg1] ; 
    While (lg2<LMAX) and (idem=true) do 
      Temp2 :=liste2[lg2] ; 
    If temp1<>temp2 do 
      Idem :=false ; 
    end  ; 
     
    end.
    Voilà ce que j'ai réussi à produire, maintenant c'est incomplet, je ne sais pas comment faire pour le tri de List1 etList2 et pour le principe des doublons.

  8. #8
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 058
    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 058
    Points : 15 339
    Points
    15 339
    Billets dans le blog
    9
    Par défaut
    Il faut reprendre les choses plus méthodiquement.

    Tu as d'abord un programme de base fourni avec l'énoncé. C'est un programme qui ne fait rien, mais qui peut déjà être compilé (contrairement à ce que tu as posté) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    program devoir_00;
     
    const
      LMAX = 30;
     
    var
      lg1 , lg2: integer;
      liste1, liste2: array[1..LMAX]of integer ;
     
    begin
    end.
    On doit d'abord demander à l'utilisateur la longueur de chaque liste et ses éléments. D'abord la longueur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    program devoir_01;
     
    const
      LMAX = 30;
     
    var
      lg1 , lg2 : integer ;
      liste1 , liste2: array[1..LMAX] of integer;
     
    begin
      Write('Nombre d''elements dans la premiere liste ? ');
      ReadLn(lg1);
    end.
    Avant de continuer, j'essaye de compiler et d'exécuter mon code, pour voir s'il est correct et s'il fait ce que j'attends !

    Ensuite l'utilisateur doit entrer les éléments de la 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
    program devoir_02;
     
    const
      LMAX = 30;
     
    var
      lg1 , lg2 : integer ;
      liste1 , liste2: array[1..LMAX] of integer;
      i: integer;
     
    begin
      Write('Nombre d''elements dans la premiere liste ? ');
      ReadLn(lg1);
     
      WriteLn('Saisie liste 1 :');
      for i := 1 to lg1 do
      begin
        Write('Element ', i, ' ? ');
        ReadLn(liste1[i]);
      end;
    end.
    Une fois que tu as fait cela pour les deux listes, tu peux t'attaquer à la procédure de tri.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2012
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    RECTIFICATION :
    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
    program DEVOIR ;
    const
    LMAX=30; 
    var
    lg1 , lg2 : integer ;
    cpt1, cpt2, cptres : integer ;
    existe: boolean;
    liste1 , liste2 : array [ 1...LMAX] of integer ;
    listeRes : array [1...LMAX] of real;
     
    begin
     
    cptres:=0;
    While cptres <lmax do
    begin
    cptres:=cptres+1;
    listeRes[i] :=-1 ; 
    end;
     
    existe:= false;
    cpt1:=0;
    cpt2:=0;
    cptres:=1;
     
    while (cpt1<lg1) do
       begin
       cpt1 := cpt1+1 ;
       while (cpt2<lg2) do
          begin
          cpt2:=cpt2+1;
          if (liste1[cpt1] =liste2[cpt2]) then
          begin
              existe:=true;
              end;
              cpt2:=cpt2+1
          end;
       if not existe then 
          listeRes[cptres]:=liste[cpt1] ;
          cptres:=cptres+1;
     
       existe :=false ;
       cpt1 :=cpt1+1 ;
       end;
     
    end.
    - Il ne faut pas s'occuper de l'affichage.
    - Ici je n'ai juste pas la méthode tri et la méthode pour les doublons.

    Si vous pouviez m'aider à les rajouter cela m'aiderait vraiment !

Discussions similaires

  1. créer une hashmap pour chaque élément d'une liste
    Par lealeblanc dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 30/05/2015, 17h23
  2. [Débutant] Afficher une seule fois les éléments d'un liste triée
    Par cry57 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 16/03/2011, 17h10
  3. Réponses: 12
    Dernier message: 15/07/2009, 18h28
  4. Réponses: 4
    Dernier message: 04/11/2008, 23h46
  5. Réponses: 4
    Dernier message: 09/08/2006, 12h05

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