[PASCAL] Recherche d'élément dans un tableau

cartmanpro Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   -  
kwaio Messages postés 3423 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Voilà j'avais un devoir à rendre pour demain. La prof a demandé de rechercher un élément sur une ligne : linéaire :


program recherchex;
const n=3;
var v: array[1..n] of integer;
x,i:integer;
trouve:boolean;
begin
for i:=1 to n do
begin
v[i]:=i;
end;
writeln('Introduire x');
readln(x);
trouve:=false;
i:=1;
begin;
while (i<=n) AND (trouve=false) do
if v[i]=x then trouve:=true;
i:=i+1;
end;
if trouve=true then writeln('x appartient au tableau')
else writeln('x nappartient pas au tableau');
readln;
end.


La prof me demande ensuite de retrouver : Rechercher un élément y dans un tableau de n x m éléments entiers.
Là dessus je suis coincé, donc je viens vous voir pour m'aider, car je n'y arrive pas de ce fait j'ai contacté un ami, il n'y arrive pas non plus. Je sais qu'il faut utiliser deux boucles imbriquées. Pouvez vous m'aidé svp
Merci de votre aide
A voir également:

2 réponses

kwaio Messages postés 3423 Date d'inscription   Statut Contributeur Dernière intervention   681
 
En fait c'est simple.
Tu fais une première boucle qui te fais parcourir une a une les "colonnes" de ta matrice.
Dans chacune des itérations de cette première boucle, une seconde boucle parcourt chaque élement de cette colonne.

Exemple :

Tableau n*p (n lignes p colones)

Pour i de 1 à p :
-Pour j de 1 à n :
-si Tableau [i,j] vaut x
--Alors trouvé vaut True
-fin boucle 2
fin boucle 1

Si trouvé = true, afficher "x appartient à cette matrice"
1
cartmanpro Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
program recherchex;
const n=1; p=3;
var v: array[n..p] of integer;
x,i,j:integer;
trouve:boolean;
begin
for i:=1 to p do
for j :=1 to n do
begin
v[i]:=i;
end;
writeln('Introduire x');
readln(x);
trouve:=false;
i:=1;
begin;
while (i<=n) AND (trouve=false) do
if v[i]=x then trouve:=true;
i:=i+1;
end;
if trouve=true then writeln('x appartient au tableau')
else writeln('x nappartient pas au tableau');
readln;
end.


sa m"le compile mais je pense avoir faux, je suis nulle en pascal :(, xD..Si je trouve pas tempi j'aurai une preveu que j'aurais cherché et ptet quel me mettra la moyenne :p qui c'est ! :p
0
cartmanpro Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   > cartmanpro Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
Kwaio, je n'arrive toujours pas à dormir sa m'embête énormément ! Veux tu bien m'aidé d'avantage ? stp ?

program recherchex;

var v: array[1..10] of integer;
x,i:integer;
trouve:boolean;

begin
for i:=1 to 10 do
begin
v[i]:=i;
end;
writeln('Introduire x');
readln(x);
trouve:=false;
i:=1;
begin;
while (i<=10) AND (trouve=false) do
if v[i]=x then trouve:=true;
i:=i+1;
end;
if trouve=true then writeln('x appartient au tableau')
else writeln('x nappartient pas au tableau');
readln;
end.

j'vois pas s'que je dois ajouté :s HELP ME plz
0
cartmanpro Messages postés 38 Date d'inscription   Statut Membre Dernière intervention   > cartmanpro Messages postés 38 Date d'inscription   Statut Membre Dernière intervention  
 
[code]program recherchex;
const n:=3;
p:=4;
var mat: array[1..n,1..p] of integer;
v: matrice;
x,i,n,p:integer;
trouve:boolean;

begin
write ('introduire x')
lire (x);
trouve := false
i:=1;
while (a<=n)and (trouve = false)do
b<=1;
while (b<=m) and (trouve = false) do
if v [x,i] = x then trouve = true;
b<= b+1
a:=a+1
if trouve = true then writeln (x,' appartient au tableau');
else writeln (x,' n'appartient pas au tableau');

end.
[/code]


savez-vous me donné la solution svp..
0
kwaio Messages postés 3423 Date d'inscription   Statut Contributeur Dernière intervention   681
 
Pour i de 1 à p :
-Pour j de 1 à n :
-si Tableau [i,j] vaut x
--Alors trouvé vaut True
-fin boucle 2
fin boucle 1


Ca donne

Program ----;
uses wincrt;
Const n:=3; p:=4;

Var Tab:array[1..n,1..p]of integer;
i,j:integer;
trouve:boolean;

BEGIN
[Tab doit etre rempli avant]
x:=1; # exemple
trouve:=false

For i:=1 to n do
begin
For j:=1 to p do
begin
if Tab[i,j]=x
then trouve:=true;
end;
end;

If trouve=true
then writeln('x appartiens a la matrice');

END.

(Avec un doute sur les ' => " ? )

Attention, le tableau (la matrice) DOIT ETRE initialisé (rempli d'entiers dans le programme)
0