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 18/11/2012, 18h11   #1
RainbowVic
 
Homme
Lycéen
Inscription : 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 :
Citation:
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 !
RainbowVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2012, 19h42   #2
Paul TOTH
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 4 409
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 409
Points : 10 782
Points : 10 782
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%
Paul TOTH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2012, 20h10   #3
RainbowVic
 
Homme
Lycéen
Inscription : 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
Je suis à l'université, j'ai choisi lycée au hasard . Tu ne sais pas m'aider sinon?
RainbowVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2012, 06h10   #4
Paul TOTH
Expert Confirmé Sénior
 
Avatar de Paul TOTH
 
Homme Paul TOTH
Freelance
Inscription : novembre 2002
Messages : 4 409
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 409
Points : 10 782
Points : 10 782
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%
Paul TOTH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2012, 12h43   #5
Alcatîz
Responsable Pascal

 
Avatar de Alcatîz
 
Homme Jean-Luc Gofflot
Ressources humaines
Inscription : mars 2003
Messages : 5 510
Détails du profil
Informations personnelles :
Nom : Homme Jean-Luc Gofflot
Âge : 46
Localisation : Belgique

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

Informations forums :
Inscription : mars 2003
Messages : 5 510
Points : 39 359
Points : 39 359
Envoyer un message via ICQ à Alcatîz Envoyer un message via MSN à Alcatîz Envoyer un message via Yahoo à Alcatîz Envoyer un message via Skype™ à Alcatîz
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]
Alcatîz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2012, 14h26   #6
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
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.
droggo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/11/2012, 23h18   #7
RainbowVic
 
Homme
Lycéen
Inscription : 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
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.
RainbowVic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 00h37   #8
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 002
Points : 1 002
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.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/11/2012, 01h01   #9
RainbowVic
 
Homme
Lycéen
Inscription : 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
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 !
RainbowVic est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h38.


 
 
 
 
Partenaires

Hébergement Web