Demande: fonctions ...

Voir le sujet précédent Voir le sujet suivant Aller en bas

Demande: fonctions ...

Message par kerdi le Mar 31 Mai - 16:13

bonjour
svp est ce que je peut avoir la correction de ces deux problèmes :
écrire une fonction récessive saisie qui permet de remplir un tableau t par n entier.
écrire une fonction récessive affiche qui permet de afficher un tableau t par n entier.

kerdi
Invité


Revenir en haut Aller en bas

Re: Demande: fonctions ...

Message par nejah le Mar 31 Mai - 18:17

le remplissage d'un tableau peut se faire en utilisant une procédure et non pas une fonction vu que le module remplir retourne plusieurs résultat, même chose pour l'affichage c'est un module qui retourne zéro résultat.
rappel:
* une fonction est un module qui retourne un et un seul résultat de type simple
* une procédure est un module qui retourne zéro ou plusieurs résultat (la (les) variable(s) résultat(s) est (sont) précédée(s) par le mot VAR

Solution 1: (traitement dans la phase du dépilement)

Code:
program tableau;
uses wincrt;
type
tab=array[1..10] of integer;
var
n:integer;
t:tab;
procedure saisir(var n:integer);
begin
write('N=');
readln(n);
if n<1 then
saisir(n);
end;
procedure remplir(var t:tab;n:integer);
begin
if n>1 then
remplir(t,n-1);
write('T[',n,']=');
readln(t[n]);
end;
procedure afficher(t:tab;n:integer);
begin
if n>1 then
afficher(t,n-1);
write('T[',n,']=');
writeln(t[n]);
end;
begin
saisir(n);
writeln('***********Traitement dans la phase de dépilement**************');
writeln;
writeln('************Remplissage du tableau**********);
remplir(t,n);
writeln('************Affichage du tableau**********);
afficher(t,n);
end.

Solution 2: (traitement dans la phase de l'empilement)


Code:
program tableau;
uses wincrt;
type
tab=array[1..10] of integer;
var
n:integer;
t:tab;
procedure saisir(var n:integer);
begin
write('N=');
readln(n);
if n<1 then
saisir(n);
end;
procedure remplir(var t:tab;n,i:integer);
begin
write('T[',i,']=');
readln(t[i]);
if i<n then
remplir(t,n,i+1);
end;
procedure afficher(t:tab;n,i:integer);
begin
write('T[',i,']=');
writeln(t[i]);
if i<n then
afficher(t,n,i+1);
end;
begin
saisir(n);
writeln('***********Traitement dans la phase d''empilement**************');
writeln;
writeln('************Remplissage du tableau**********);
remplir(t,n,1);
writeln('************Affichage du tableau*********);
afficher(t,n,1);
end.



nejah
Entier Naturel
Entier Naturel

Masculin
Nombre de messages : 21
Localisation : Tunisie
Réputation : 3
Points : 2598
Date d'inscription : 14/11/2010

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

Revenir en haut Aller en bas

Re: Demande: fonctions ...

Message par Napoléon le Mar 31 Mai - 19:31

le remplissage d'un tableau peut se faire en utilisant une procédure et
non pas une fonction vu que le module remplir retourne plusieurs
résultat, même chose pour l'affichage c'est un module qui retourne zéro
résultat.
rappel:
* une fonction est un module qui retourne un et un seul résultat de type simple
*
une procédure est un module qui retourne zéro ou plusieurs résultat (la
(les) variable(s) résultat(s) est (sont) précédée(s) par le mot [b]VAR

Je doute fort de cette définition.
En Pascal, on peut retourner plusieurs paramètres résultats avec une fonction: un seul résultat d'une façon directe + plusieurs à l'aide du mot réservé "var".

Exemple:

Code:
{ fonction qui calcule "a mod b" }
Function DivisionEuclid(a,b: integer; var divZero: boolean): integer;
begin
  if (b = 0) divZero := false
  else
        DivisionEuclid := a mod b;
end;

Je vais la vérifier dès que je trouve turbo Pascal devant moi.

_________________
Nabil - tunis
خير الناس أنفعهم للناس
avatar
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 5315
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

http://infomath.online-talk.net

Revenir en haut Aller en bas

Re: Demande: fonctions ...

Message par nejah le Mar 31 Mai - 20:07

T'as raison dans votre remarque, une fonction en pascal peut avoir le mot réservé VAR dans ses paramètres, mais je dois parler en tant que programme officielle destiné pour les niveaux secondaire. on enseigne bien pour les élèves qu'une fonction retourne un seul résultat et ne possède pas le mot VAR malgré ça je leur donne ce truc comme remarque et je les conseille pour ne pas l'appliquer dans leur examens surtout les examens nationales de baccalauréat vu que ça respecte pas le programme officielle

nejah
Entier Naturel
Entier Naturel

Masculin
Nombre de messages : 21
Localisation : Tunisie
Réputation : 3
Points : 2598
Date d'inscription : 14/11/2010

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

Revenir en haut Aller en bas

Re: Demande: fonctions ...

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum