Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 9 sur 9
  1. #1

    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 : -1
    Points
    -1

    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 :
    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 Confirmé Sénior
    Avatar de Paul TOTH
    Homme Profil pro Paul TOTH
    Freelance
    Inscrit en
    novembre 2002
    Messages
    5 323
    Détails du profil
    Informations personnelles :
    Nom : Homme Paul TOTH
    Âge : 44
    Localisation : Réunion

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

    Informations forums :
    Inscription : novembre 2002
    Messages : 5 323
    Points : 14 990
    Points
    14 990

    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
    Produits : UPnP, RemoteOffice, FlashPascal
    Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%

  3. #3

    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 : -1
    Points
    -1

    Par défaut

    Je suis à l'université, j'ai choisi lycée au hasard . Tu ne sais pas m'aider sinon?

  4. #4
    Expert Confirmé Sénior
    Avatar de Paul TOTH
    Homme Profil pro Paul TOTH
    Freelance
    Inscrit en
    novembre 2002
    Messages
    5 323
    Détails du profil
    Informations personnelles :
    Nom : Homme Paul TOTH
    Âge : 44
    Localisation : Réunion

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

    Informations forums :
    Inscription : novembre 2002
    Messages : 5 323
    Points : 14 990
    Points
    14 990

    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
    Produits : UPnP, RemoteOffice, FlashPascal
    Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%

  5. #5
    Responsable Pascal

    Avatar de Alcatîz
    Homme Profil pro Jean-Luc Gofflot
    Ressources humaines
    Inscrit en
    mars 2003
    Messages
    5 945
    Détails du profil
    Informations personnelles :
    Nom : Homme Jean-Luc Gofflot
    Âge : 47
    Localisation : Belgique

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

    Informations forums :
    Inscription : mars 2003
    Messages : 5 945
    Points : 37 508
    Points
    37 508

    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
    Tutoriels, exercices, FAQ, sources, compilateurs, outils, livres Pascal
    Mes tutoriels et sources Pascal
    FAQ Assembleur

    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]

  6. #6
    Expert Confirmé Sénior
    Inscrit en
    août 2006
    Messages
    3 532
    Détails du profil
    Informations forums :
    Inscription : août 2006
    Messages : 3 532
    Points : 4 015
    Points
    4 015

    Par défaut

    Mae,

    +1

    En clair, on est en train de t'expliquer qu'il faut utiliser ton cerveau.
    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.

  7. #7

    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 : -1
    Points
    -1

    Par défaut

    Code :
    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
    Avatar de Roland Chastain
    Homme Profil pro Roland Chastain
    Inscrit en
    décembre 2011
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Nom : Homme Roland Chastain
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : décembre 2011
    Messages : 1 080
    Points : 2 113
    Points
    2 113

    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 :
    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 :
    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 :
    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.
    L'Art est long et le Temps est court.

  9. #9

    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 : -1
    Points
    -1

    Par défaut

    RECTIFICATION :
    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
    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 !

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •