Inverse d'elements d'un tableau
5 participants
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 2
Page 1 sur 2 • 1, 2
Inverse d'elements d'un tableau
J'ai ce programme dont je ne sais pas où l'erreur:
Le programme fait:
- la saisie de nombre d'element dans un tableau
- la saisie des elements du tableau
- inverser chaque element du tableau et l'afficher (exemple : tableau initial (123|2345|987) on aura (321|5432|789) )
(RQ: c'est different du faite d'inverser le tableau ce qui donnera (987|2345|123))
Merci de m'aider
(c'est un exercice pascal niveau bac maths)
- Code:
program tab_claire;
uses wincrt;
type tab=array[1..10]of string;
var n:integer;
p,q:tab;
procedure taille(var nn:integer);
begin
repeat
write('donner la taille');
readln(nn);
until nn in[1..10] ;
end;
function verification(ch:string):boolean;
var i:integer;
verif:boolean;
begin
i:=1;
verif:=true;
while(verif=true)and(i<=length(ch))do
begin
if not (ch[i] in ['0'..'9'])then
verif:=false
else
i:=i+1;
end;
verification:=verif;
end;
procedure saisie(nn:integer;var pp:tab);
var i:integer;
begin
for i:=1 to nn do
repeat
write('pp[',i,']=');
readln(pp[i]);
until verification(pp[i])=true;
end;
function inverse(ch:string):string;
var
i,j:integer;
ch1:string;
cc: char;
begin
j:=1;
ch1:='';
for i:=length(ch) downto 1 do;
begin
ch1[j]:=ch[i];
j:=j+1;
end;
inverse:=ch1;
end;
procedure tableau_inverse(nn:integer; pp:tab ;var qq:tab);
var i:integer;
begin
for i:=1 to nn do
begin
qq[i]:=inverse(pp[i]);
end;
end;
procedure affiche_tableau_inverse(nn:integer;qq:tab);
var i:integer;
begin
for i:=1 to nn do
writeln(qq[i]);
end;
begin
taille(n);
saisie(n,p);
tableau_inverse(n,p,q);
affiche_tableau_inverse(n,q);
end.
Le programme fait:
- la saisie de nombre d'element dans un tableau
- la saisie des elements du tableau
- inverser chaque element du tableau et l'afficher (exemple : tableau initial (123|2345|987) on aura (321|5432|789) )
(RQ: c'est different du faite d'inverser le tableau ce qui donnera (987|2345|123))
Merci de m'aider
(c'est un exercice pascal niveau bac maths)
lamia- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6801
Date d'inscription : 04/11/2007
Feuille de personnage
Capacité linguistique:
(996/1000)
Re: Inverse d'elements d'un tableau
Il n'y a pas d'erreurs lors de la compilation? Juste une erreur de Logique, non?
methodiX- Admin
-
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 7254
Date d'inscription : 22/03/2007
Feuille de personnage
Capacité linguistique:
(1000/1000)
Re: Inverse d'elements d'un tableau
methodiX a écrit:Il n'y a pas d'erreurs lors de la compilation? Juste une erreur de Logique, non?
Oui , pas d'erreur lors de la compilation, et meme coté logique je la vois pas où
lamia- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6801
Date d'inscription : 04/11/2007
Feuille de personnage
Capacité linguistique:
(996/1000)
Re: Inverse d'elements d'un tableau
- Code:
function inverse(ch:string):string;
var
i,j:integer;
ch1:string;
cc: char;
begin
j:=1;
ch1:='';
for i:=length(ch) downto 1 do;
begin
ch1[j]:=ch[i];
j:=j+1;
end;
inverse:=ch1;
end;
Je n'ai pas le compilateur PASCAL maintenant, mais je crois que le problème est dans cette fonction qui fait l'inverse d'une String.
Plus précisément l'instruction suivante: ch1[j]:=ch[i];
Essaie de la remplacer par
- Code:
ch1 := ch1 + ch[i]
et n'oublie pas d'initialiser ch à la chaine vide.
@+
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7872
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Inverse d'elements d'un tableau
J'ai déjà essayé de faire ainsi:
et ca donne ce reusltat:
- Code:
function inverse(ch:string):string;
var
i:integer;
ch1:string;
cc: char;
begin
ch1:='';
for i:=length(ch) downto 1 do;
begin
ch1:=ch1+ch[i];
end;
inverse:=ch1;
end;
et ca donne ce reusltat:
lamia- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6801
Date d'inscription : 04/11/2007
Feuille de personnage
Capacité linguistique:
(996/1000)
Re: Inverse d'elements d'un tableau
Essaie de déclarer autrement le tableaux de String:
ça donne quoi?
- Code:
type tab=array[1..10]of string[30];
ça donne quoi?
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7872
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Inverse d'elements d'un tableau
J'ai pas compris comment declarer les chaines de caracteres comme des tableau, si déjà moi j'ai besoin d'une chaine(ch) pour avoir une autre qui soit son inverse, et que celle là (ch) est un element dans un tableau
lamia- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6801
Date d'inscription : 04/11/2007
Feuille de personnage
Capacité linguistique:
(996/1000)
Re: Inverse d'elements d'un tableau
- Code:
string[30];
c'est pour dire qu'une String est composé uniquement de 30 caractères et non pas de 256 comme d'habitude.
methodiX- Admin
-
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 7254
Date d'inscription : 22/03/2007
Feuille de personnage
Capacité linguistique:
(1000/1000)
Re: Inverse d'elements d'un tableau
Désoler de m'interposé, mais je n'ai pas compris à quoi sert ce programme ??
Gda- Modérateur
-
Nombre de messages : 254
Age : 32
Localisation : Assis derrière son ordinateur !
Réputation : 0
Points : 6088
Date d'inscription : 24/03/2008
Feuille de personnage
Capacité linguistique:
(995/1000)
Re: Inverse d'elements d'un tableau
Gda.exe a écrit:Désoler de m'interposé, mais je n'ai pas compris à quoi sert ce programme ??
Relis attentivement l'énoncé de l'exercice.
methodiX- Admin
-
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 7254
Date d'inscription : 22/03/2007
Feuille de personnage
Capacité linguistique:
(1000/1000)
Re: Inverse d'elements d'un tableau
Désoler...
J'aimerai savoir comment et où trouver un document expliquant d'avantage la programmation, parce que là, je ne comprend pas entièrement le code !
J'aimerai savoir comment et où trouver un document expliquant d'avantage la programmation, parce que là, je ne comprend pas entièrement le code !
Gda- Modérateur
-
Nombre de messages : 254
Age : 32
Localisation : Assis derrière son ordinateur !
Réputation : 0
Points : 6088
Date d'inscription : 24/03/2008
Feuille de personnage
Capacité linguistique:
(995/1000)
Re: Inverse d'elements d'un tableau
methodiX a écrit:
- Code:
string[30];
c'est pour dire qu'une String est composé uniquement de 30 caractères et non pas de 256 comme d'habitude.
Ok.
Je vais essayer de faire ce que Nabil a proposé.
lamia- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6801
Date d'inscription : 04/11/2007
Feuille de personnage
Capacité linguistique:
(996/1000)
Re: Inverse d'elements d'un tableau
Gda.exe a écrit:Désoler...
J'aimerai savoir comment et où trouver un document expliquant d'avantage la programmation, parce que là, je ne comprend pas entièrement le code !
Y a une rubrique qui comporte des cours dans le language PASCAL pour comprendre ce code : https://infomath.1fr1.net/cours-pascal-f27/, vous pouvez commencer à avoir une idée à travers cette documentation fourni.
y a meme des exemples traités pour vous aider encore un peu pour comprendre.
lamia- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6801
Date d'inscription : 04/11/2007
Feuille de personnage
Capacité linguistique:
(996/1000)
Gda- Modérateur
-
Nombre de messages : 254
Age : 32
Localisation : Assis derrière son ordinateur !
Réputation : 0
Points : 6088
Date d'inscription : 24/03/2008
Feuille de personnage
Capacité linguistique:
(995/1000)
Re: Inverse d'elements d'un tableau
avec plaisir.Gda.exe a écrit:Merci !!
lamia- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6801
Date d'inscription : 04/11/2007
Feuille de personnage
Capacité linguistique:
(996/1000)
Re: Inverse d'elements d'un tableau
Voilà si j'ai bien compris j'ai fait ainsi:
Mais j'ai une erreur de compilation au niveau de cette fonction.
Je sais pas si la syntaxe est correcte
- Code:
function inverse(ch:string):string;
var
i,j:integer;
type ch1=array[1..10]of string[30];
begin
j:=1;
for i:=length(ch) downto 1 do;
begin
ch1[j]:=ch[i];
j:=j+1;
end;
inverse:=ch1;
end;
Mais j'ai une erreur de compilation au niveau de cette fonction.
Je sais pas si la syntaxe est correcte
lamia- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6801
Date d'inscription : 04/11/2007
Feuille de personnage
Capacité linguistique:
(996/1000)
Re: Inverse d'elements d'un tableau
C'est incorrect. Tu dois déclarer les types en haut du programme comme suit:
- Code:
Program blabla;
uses wincrt;
type
Tab = array[1..100] of string[30];
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7872
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Inverse d'elements d'un tableau
ca marche pas meme en declarant ainsi le type tab
lamia- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6801
Date d'inscription : 04/11/2007
Feuille de personnage
Capacité linguistique:
(996/1000)
Re: Inverse d'elements d'un tableau
je vais voir le soir !
Napoléon- Admin
-
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7872
Date d'inscription : 19/03/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Inverse d'elements d'un tableau
voici ma proposition : (fonctionnelle)
- Code:
program tab_claire;
// uses wincrt;
type tab=array [1..10] of string;
var n:integer;
p,q:tab;
procedure taille(var nn:integer);
begin
repeat
write('donner la taille');
readln(nn);
until nn in[1..10] ;
end;
function verification(ch:string):boolean;
var i:integer;
verif:boolean;
begin
i:=1;
verif:=true;
while(verif=true)and(i<=length(ch))do
begin
if not (ch[i] in ['0'..'9'])then
verif:=false
else
i:=i+1;
end;
verification:=verif;
end;
procedure saisie(nn:integer;var pp:tab);
var i:integer;
begin
for i:=1 to nn do
repeat
write('pp[',i,']=');
readln(pp[i]);
until verification(pp[i]);
end;
function inverse(ch:string):string;
var
i:integer;
ch1:string;
begin
ch1:='';
for i:=1 to length(ch) do
begin
ch1:=ch[i]+ch1;
end;
inverse:=ch1;
end;
procedure tableau_inverse(nn:integer; pp:tab ;var qq:tab);
var i:integer;
begin
for i:=1 to nn do
begin
qq[i]:=inverse(pp[i]);
end;
end;
procedure affiche_tableau_inverse(nn:integer;qq:tab);
var i:integer;
begin
for i:=1 to nn do writeln(qq[i]);
end;
begin
taille(n);
saisie(n,p);
tableau_inverse(n,p,q);
affiche_tableau_inverse(n,q);
readln;
end.
manianis- Nombre Réel
-
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 6255
Date d'inscription : 11/10/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Inverse d'elements d'un tableau
Qu'est-ce qui a été modifié par rapport à la solution de début?
methodiX- Admin
-
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 7254
Date d'inscription : 22/03/2007
Feuille de personnage
Capacité linguistique:
(1000/1000)
Re: Inverse d'elements d'un tableau
Merci Manianis.
Ce qui est modifié est le code de la fonction inverse.
mais je comprend pas la difference entre :
Ce qui est modifié est le code de la fonction inverse.
mais je comprend pas la difference entre :
- Code:
ch1:='',
for i:=length(ch) downto 1 do;
begin
ch1:=ch1+ch[i];
end;
- Code:
ch1:='',
for i:=1 to length(ch) do
begin
ch1:=ch[i]+ch1;
end;
Dernière édition par lamia le Mer 26 Mar - 0:12, édité 1 fois
lamia- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6801
Date d'inscription : 04/11/2007
Feuille de personnage
Capacité linguistique:
(996/1000)
Re: Inverse d'elements d'un tableau
Il faut faire attentions à l'usage abusif des points virgules.
for i:=length(ch) downto 1 do;
ne fait rien.
for i:=length(ch) downto 1 do;
ne fait rien.
manianis- Nombre Réel
-
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 6255
Date d'inscription : 11/10/2007
Feuille de personnage
Capacité linguistique:
(999/1000)
Re: Inverse d'elements d'un tableau
ah d'accord
merci bien manianis. Il faut faire attention!
merci bien manianis. Il faut faire attention!
methodiX- Admin
-
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 7254
Date d'inscription : 22/03/2007
Feuille de personnage
Capacité linguistique:
(1000/1000)
Re: Inverse d'elements d'un tableau
AHHHH le probleme n'etait qu'un point virgule!!
J'ai déjà essayer cette solution avec le down to mais ca fonctionnait pas à cause de de point virgule!!! maintenant j'ai essayer encore une fois et ca fonctionne.
MERCI.
J'ai déjà essayer cette solution avec le down to mais ca fonctionnait pas à cause de de point virgule!!! maintenant j'ai essayer encore une fois et ca fonctionne.
MERCI.
lamia- Modérateur
-
Nombre de messages : 1936
Age : 38
Localisation : Tunis
Réputation : 53
Points : 6801
Date d'inscription : 04/11/2007
Feuille de personnage
Capacité linguistique:
(996/1000)
Page 1 sur 2 • 1, 2
Sujets similaires
» Exercice (bac pratique): Construction d'un tableau
» Exercice: le kième minimum d'un tableau
» tri d'un tableau
» Plus proche nombre d'un tableau
» Matrice vers Tableau
» Exercice: le kième minimum d'un tableau
» tri d'un tableau
» Plus proche nombre d'un tableau
» Matrice vers Tableau
Forum INFOMATH :: Enseignement de l'informatique :: Informatique - Collège & Lycée :: Exercices Pascal
Page 1 sur 2
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum