Fusion deux tableau
Fermé
nabil-bago
Messages postés
255
Date d'inscription
mercredi 22 mai 2013
Statut
Membre
Dernière intervention
24 novembre 2021
-
25 avril 2017 à 04:15
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 - 4 mai 2017 à 01:49
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 - 4 mai 2017 à 01:49
A voir également:
- Fusion deux tableau
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Fusionner deux tableaux excel - Guide
- Trier tableau excel - Guide
3 réponses
On peut aussi puiser dans l'artifice des tableau dynamiques .
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
type Source = array of Integer;
procedure Definir_Source(var S : Source);
var Ta : Integer;
Ok : Char;
begin
Ok := 'o';
Ta := 0;
while Ok = 'o' do begin
Ta := Ta + 1;
SetLength(S, Ta);
Write('Saisir un nombre entier : ');
ReadLn(S[Ta - 1]);
Write('Continuez ?. o = oui / n = non : ');
ReadLn(Ok);
end;
end;
var Sa, Sb, Sd : Source;
I, J, Taille_Sd, K : integer;
Existe : Boolean;
begin
WriteLn('----- Tableau source A -----');
Definir_Source(Sa);
Taille_Sd := High(Sa) + 1; {Chargement du tableau 1
dans le tableau de fusion}
SetLength(Sd, Taille_Sd);
for I := 0 to High(Sd) do begin
Sd[I] := Sa[I];
end;
Sa := nil; {Désallocation du 1er tableau, sinon
erreur de redéfinition passée par reference}
WriteLn;
WriteLn('----------------');
WriteLn;
WriteLn('----- Tableau source B -----');
Definir_Source(Sb);
I := 0; {Suppression des doublons}
K := High(Sd);
while I <= High(Sb) do begin
Existe := False;
J := 0;
while (J <= K) and not Existe do begin
Existe := Sb[I] = Sd[J] = True;
J := J + 1;
end;
if not Existe then begin
Taille_Sd := Taille_Sd + 1;
SetLength(Sd, Taille_Sd);
Sd[Taille_Sd - 1] := Sb[I];
end;
I := I + 1;
end;
WriteLn;
WriteLn('----- Fusion des deux tableaux -----');
WriteLn;
for I := 0 to High(Sd) do begin
Write(Sd[I]:6); end;
ReadLn;
end.
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
type Source = array of Integer;
procedure Definir_Source(var S : Source);
var Ta : Integer;
Ok : Char;
begin
Ok := 'o';
Ta := 0;
while Ok = 'o' do begin
Ta := Ta + 1;
SetLength(S, Ta);
Write('Saisir un nombre entier : ');
ReadLn(S[Ta - 1]);
Write('Continuez ?. o = oui / n = non : ');
ReadLn(Ok);
end;
end;
var Sa, Sb, Sd : Source;
I, J, Taille_Sd, K : integer;
Existe : Boolean;
begin
WriteLn('----- Tableau source A -----');
Definir_Source(Sa);
Taille_Sd := High(Sa) + 1; {Chargement du tableau 1
dans le tableau de fusion}
SetLength(Sd, Taille_Sd);
for I := 0 to High(Sd) do begin
Sd[I] := Sa[I];
end;
Sa := nil; {Désallocation du 1er tableau, sinon
erreur de redéfinition passée par reference}
WriteLn;
WriteLn('----------------');
WriteLn;
WriteLn('----- Tableau source B -----');
Definir_Source(Sb);
I := 0; {Suppression des doublons}
K := High(Sd);
while I <= High(Sb) do begin
Existe := False;
J := 0;
while (J <= K) and not Existe do begin
Existe := Sb[I] = Sd[J] = True;
J := J + 1;
end;
if not Existe then begin
Taille_Sd := Taille_Sd + 1;
SetLength(Sd, Taille_Sd);
Sd[Taille_Sd - 1] := Sb[I];
end;
I := I + 1;
end;
WriteLn;
WriteLn('----- Fusion des deux tableaux -----');
WriteLn;
for I := 0 to High(Sd) do begin
Write(Sd[I]:6); end;
ReadLn;
end.
nabil-bago
Messages postés
255
Date d'inscription
mercredi 22 mai 2013
Statut
Membre
Dernière intervention
24 novembre 2021
13
25 avril 2017 à 15:07
25 avril 2017 à 15:07
merci beaucoup metarefsalem pour votre réponse.
c'est un exercice a faire mais on es pas encore arrivé comment utiliser les procédure et fonction.
je suis encore débutant je m'excuse.
y aura t-il un moyen de le faire sans procédure ?
Merci
c'est un exercice a faire mais on es pas encore arrivé comment utiliser les procédure et fonction.
je suis encore débutant je m'excuse.
y aura t-il un moyen de le faire sans procédure ?
Merci
tarek_dotzero
Messages postés
817
Date d'inscription
jeudi 19 juillet 2007
Statut
Membre
Dernière intervention
12 avril 2022
121
Modifié le 4 mai 2017 à 01:51
Modifié le 4 mai 2017 à 01:51
Bonjour,
Enlevez les lignes 44 et 45
S'il existe alors c'est bon, la valeur de la variable existe est mise à 1 et doit rester 1.
Vous avez encore des problèmes dans les limites des boucles :
j doit aller de 1 à i, pas la fin du tableau parceque le troisième tableau n'est pas encore rempli.
C'est ce que je vois parce que vous n'avez pas pu comprendre le code de metarefsalem.
Enlevez les lignes 44 et 45
S'il existe alors c'est bon, la valeur de la variable existe est mise à 1 et doit rester 1.
Vous avez encore des problèmes dans les limites des boucles :
j doit aller de 1 à i, pas la fin du tableau parceque le troisième tableau n'est pas encore rempli.
C'est ce que je vois parce que vous n'avez pas pu comprendre le code de metarefsalem.