Program pascal qui ne fonctionne pas !! svp
Fermé
alouizeineb
Messages postés
26
Date d'inscription
dimanche 1 juillet 2007
Statut
Membre
Dernière intervention
4 mai 2008
-
11 mars 2008 à 19:01
alouizeineb Messages postés 26 Date d'inscription dimanche 1 juillet 2007 Statut Membre Dernière intervention 4 mai 2008 - 24 avril 2008 à 12:51
alouizeineb Messages postés 26 Date d'inscription dimanche 1 juillet 2007 Statut Membre Dernière intervention 4 mai 2008 - 24 avril 2008 à 12:51
A voir également:
- Program pascal qui ne fonctionne pas !! svp
- Turbo pascal download - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Program files - Forum Jeux vidéo
- Pascal veut modifier une photo mais c’est la visionneuse d’images qui l’ouvre. que doit-il choisir pour l’ouvrir avec son logiciel de traitement d’image ? - Forum Windows
- Mettre kerbal space program en français - Forum jeux PC/Mac
4 réponses
alouizeineb
Messages postés
26
Date d'inscription
dimanche 1 juillet 2007
Statut
Membre
Dernière intervention
4 mai 2008
11 mars 2008 à 19:04
11 mars 2008 à 19:04
voila mon essai
program exercice;
uses wincrt;
type
tab=array[1..25]of char;
var
n:integer;
v,t:tab;
procedure remplir (var n:integer;var t,v:tab);
var
i:integer;
begin
repeat
writeln('donner n ');
readln(n);
until n in [5..25] ;
repeat
for i :=1 to n do
begin
writeln('donner l''elment n',i);
readln (t[i]);
end;
until (t[i] in ['A'..'Z']);
end;
procedure tri (n:integer; t:tab; var v:tab);
var
min:char;
pos,k,i:integer;
begin
for k:=1 to n do
begin
min:=t[k];
pos:=1;
for i:=2 to n do
if t[i] <min then
begin
min:=t[i];
pos:=i;
end;
v[k]:=min ;
t[pos] :='a'
end;
end;
procedure affiche (n:integer;v:tab);
var
k:integer;
begin
for k:=1 to n do
write(t[k] ,' / ');
end;
begin
remplir(n,t,v);
tri(n,t,v);
affiche(n,v);
end.
program exercice;
uses wincrt;
type
tab=array[1..25]of char;
var
n:integer;
v,t:tab;
procedure remplir (var n:integer;var t,v:tab);
var
i:integer;
begin
repeat
writeln('donner n ');
readln(n);
until n in [5..25] ;
repeat
for i :=1 to n do
begin
writeln('donner l''elment n',i);
readln (t[i]);
end;
until (t[i] in ['A'..'Z']);
end;
procedure tri (n:integer; t:tab; var v:tab);
var
min:char;
pos,k,i:integer;
begin
for k:=1 to n do
begin
min:=t[k];
pos:=1;
for i:=2 to n do
if t[i] <min then
begin
min:=t[i];
pos:=i;
end;
v[k]:=min ;
t[pos] :='a'
end;
end;
procedure affiche (n:integer;v:tab);
var
k:integer;
begin
for k:=1 to n do
write(t[k] ,' / ');
end;
begin
remplir(n,t,v);
tri(n,t,v);
affiche(n,v);
end.
alouizeineb
Messages postés
26
Date d'inscription
dimanche 1 juillet 2007
Statut
Membre
Dernière intervention
4 mai 2008
11 mars 2008 à 21:33
11 mars 2008 à 21:33
any help please ????
Bonjour,
J'ai regardé ton programme
voici ce que j'ai relevé:
Les variables passées aux procédures sont locales, elles n'existent que dans la procédure, donc le taableau que tu passe en paramètre cesse d'exister quand tu sort des procédures. Les tableaux T,V et la variable n sont globales donc connues de tout le programme, pas besoins de les passer aux procédures.
J'ai regardé ton programme
voici ce que j'ai relevé:
Les variables passées aux procédures sont locales, elles n'existent que dans la procédure, donc le taableau que tu passe en paramètre cesse d'exister quand tu sort des procédures. Les tableaux T,V et la variable n sont globales donc connues de tout le programme, pas besoins de les passer aux procédures.
program exercice;
uses wincrt;
type
tab=array[1..25]of char;
var
n:integer;
v,t:tab;
procedure remplir;{variables globales communes à tout le programme}
var
i:integer;
begin
repeat
writeln('donner n ');
readln(n);
until n in [5..25] ;
{ici la boucle for doit englober l la boucle repeat}
{la boucle for compte les elements de T}
{la boucle repeat verifie les elements avant de passer au suivant}
for i :=1 to n do
begin
repeat
writeln('donner l''elment n',i);
readln (t[i]);
until (t[i] in ['A'..'Z']);
end;
end;
procedure tri;
var
min:char;
pos,k,i:integer;
begin
for k:=1 to n do
begin
min:=t[1];{On commence toujours à 1}
pos:=1;
for i:=1 to n do
begin
if t[i] < min then
begin
min:=t[i];
pos:=i;
end;
end;
v[k]:=min;
t[pos] :='a';
end;
end;
procedure affiche;
var
k:integer;
begin
for k:=1 to n do
write(v[k] ,' / ');{ici il faut afficher V et non pas T}
end;
begin
remplir;
tri;
affiche;
end.
alouizeineb
Messages postés
26
Date d'inscription
dimanche 1 juillet 2007
Statut
Membre
Dernière intervention
4 mai 2008
24 avril 2008 à 12:51
24 avril 2008 à 12:51
merci beaucoup