Procedure langage pascal
Fermé
adel_3n1
Messages postés
17
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
25 juin 2003
-
2 juin 2003 à 21:28
zinooo Messages postés 1 Date d'inscription samedi 15 août 2009 Statut Membre Dernière intervention 6 novembre 2009 - 6 nov. 2009 à 00:30
zinooo Messages postés 1 Date d'inscription samedi 15 août 2009 Statut Membre Dernière intervention 6 novembre 2009 - 6 nov. 2009 à 00:30
A voir également:
- Procedure langage pascal
- Pascal langage - Télécharger - Édition & Programmation
- Langage ascii - Guide
- Turbo pascal download - Télécharger - Édition & Programmation
- Langage binaire - Guide
- Langage pascal - Télécharger - Édition & Programmation
3 réponses
ZOUARI
Messages postés
60
Date d'inscription
lundi 26 avril 2004
Statut
Contributeur
Dernière intervention
14 mai 2011
29
2 oct. 2007 à 12:39
2 oct. 2007 à 12:39
Aprés la lecture de votre code source on remarque la procedure est mal écrite
la solution optmal est la suivante:
procedure incrementer (var y:integer);
begin
y:=y+1;
end;
de cette manière si je veux incrimenter n'importe quel variable il suffit de faire l'appel (dans le programme principal) suivant:
incrimenter (z);
incrimenter (r);
comme vous remarquer qu'on peut appelé autant de fois que je veut tout simplement on indiquant le nom de la procedure et la liste des paramétre içi on a une.
est remarqué que le nom des variables dans l'appel ne sont pas identiques
on appel z et r deux variables gloubaux puisque ils serant déclaré dans le programme principale et aussi paramétres effectifs puisque ils sont utiliser dans l'appel de cette procedure, mais par contre dans la définition c-est-à-dire dans l'entête procedure
incrementer (var y:integer); on appel y variable local et parmétre formel
Donc si on dit paramètre formel et effectif on peut dire que c'est le paramètre effective qui va être en réalité rempli et modifier içi z et r mais y est une variable temporaire si on peut dire ça qui sera suprimer de la RAM juste aprés la fin d'exécution des instructions qui compose la procedure. donc c'est pour quoi il faut choisir le bon type de passage pour qu'il y a une relation entre le programme appelé (Programme principale dans notre cas) et le programe appelé (procedure incrimenter dans notre cas).
remarqez bien que même cette solution n'est pas totalement juste parceque normalement ce module doit être une fonction au lieu d'une procedure puisque le P.P attant une résultat de type simple (dans notre cas le type entier).
Mais pour ce qui concerne les series des exercices je peut te donner seulment envoyer mois tan adresse e-mail à mon adresse suivante:
lazhar.zouari@laposte.net
N'hézitez pas à m'écrire et bon travail
la solution optmal est la suivante:
procedure incrementer (var y:integer);
begin
y:=y+1;
end;
de cette manière si je veux incrimenter n'importe quel variable il suffit de faire l'appel (dans le programme principal) suivant:
incrimenter (z);
incrimenter (r);
comme vous remarquer qu'on peut appelé autant de fois que je veut tout simplement on indiquant le nom de la procedure et la liste des paramétre içi on a une.
est remarqué que le nom des variables dans l'appel ne sont pas identiques
on appel z et r deux variables gloubaux puisque ils serant déclaré dans le programme principale et aussi paramétres effectifs puisque ils sont utiliser dans l'appel de cette procedure, mais par contre dans la définition c-est-à-dire dans l'entête procedure
incrementer (var y:integer); on appel y variable local et parmétre formel
Donc si on dit paramètre formel et effectif on peut dire que c'est le paramètre effective qui va être en réalité rempli et modifier içi z et r mais y est une variable temporaire si on peut dire ça qui sera suprimer de la RAM juste aprés la fin d'exécution des instructions qui compose la procedure. donc c'est pour quoi il faut choisir le bon type de passage pour qu'il y a une relation entre le programme appelé (Programme principale dans notre cas) et le programe appelé (procedure incrimenter dans notre cas).
remarqez bien que même cette solution n'est pas totalement juste parceque normalement ce module doit être une fonction au lieu d'une procedure puisque le P.P attant une résultat de type simple (dans notre cas le type entier).
Mais pour ce qui concerne les series des exercices je peut te donner seulment envoyer mois tan adresse e-mail à mon adresse suivante:
lazhar.zouari@laposte.net
N'hézitez pas à m'écrire et bon travail
Bonjour,
tu peut svp donner une solution de cet exercice car je besoin beaucoup pour cette solution
voila ce exercice
soit T un tableau carré de nxn caractére ,on se propose de propose de remplir par mee caractére "c" tous les élements de T d'une façon diagonaleen commençant par la case située en haut à gauche .
le deplacement diagonal se fait de gauche à droit et de bas vers le haut.
ecrire une rotine récurcive permettant de répondre au probléme posé
donne une solution plus rapide
tu peut svp donner une solution de cet exercice car je besoin beaucoup pour cette solution
voila ce exercice
soit T un tableau carré de nxn caractére ,on se propose de propose de remplir par mee caractére "c" tous les élements de T d'une façon diagonaleen commençant par la case située en haut à gauche .
le deplacement diagonal se fait de gauche à droit et de bas vers le haut.
ecrire une rotine récurcive permettant de répondre au probléme posé
donne une solution plus rapide
zinooo
Messages postés
1
Date d'inscription
samedi 15 août 2009
Statut
Membre
Dernière intervention
6 novembre 2009
6 nov. 2009 à 00:30
6 nov. 2009 à 00:30
Program exercice;
USES CRT;
const n=10; (* Supposons par exempel que n=10*)
type tab = array [1..n,1..n] of string;
VAR t :tab;
i,j :integer;
BEGIN
CLRSCR;
(* Le program principal *)
j:=n;
for i:=1 to n do
begin
t[i,j]:='c';
j:=j-1;
end;
(* L'affichage *)
for i:=1 to n do
begin
writeln;
for j:=1 to n do
write (t1[i,j]);
end;
READLN;
END.
USES CRT;
const n=10; (* Supposons par exempel que n=10*)
type tab = array [1..n,1..n] of string;
VAR t :tab;
i,j :integer;
BEGIN
CLRSCR;
(* Le program principal *)
j:=n;
for i:=1 to n do
begin
t[i,j]:='c';
j:=j-1;
end;
(* L'affichage *)
for i:=1 to n do
begin
writeln;
for j:=1 to n do
write (t1[i,j]);
end;
READLN;
END.