Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2366 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [pascal] difference entre une procedure et une fonction ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[pascal] difference entre une procedure et une fonction ??

n°1414396
gentlefred
Posté le 27-07-2006 à 11:59:20  profilanswer
 

bonjour,
la question est sans doute idiote mais je debute (ou la doc n'est suffisamment explicite) et j'ai du mal à cerner la difference entre une procedure et une fonction, quand choisir l'un ou l'autre ?
merci.

mood
Publicité
Posté le 27-07-2006 à 11:59:20  profilanswer
 

n°1414725
el zozo
Stroumf Grognon
Posté le 27-07-2006 à 16:21:51  profilanswer
 

Une fonction renvoi un resultat, la procedure, non.
 
Grosso modo, si tu veut afficher  "hello World" avec des procedure ou fonction, tu t'y prend comme suit :
 
program HelloWorld;
 

interface
  Function  MaFonction : string;
  procedure MaProcedure;
 
implementation
 
Function  MaFonction : string; //la valeur renvoyé par la fonction sera "hello World"
begin
  MaFonction := 'Hello World";
end;
 
procedure MaProcedure; //ecrit "Hello World"
begin
  writeln('Hello World');
end;
 
begin
  MaProcedure; //ecrit "Hello World"
  writeln(MaFonction);//ecrit "HelloWorld"
end;


 
Bon.... J'ai pas testé le code, et comme ca fait une eternité que je n'ai pas fait de pascal pur, il vas peut etre falloir faire des ajustement. Mais grosso-modo, ce programme affiche 2 fois "hello world". des 2 manières diférente.
 

n°1415271
gentlefred
Posté le 28-07-2006 à 14:27:14  profilanswer
 

Merci, j'ai saisi le principe... ma confusion venait du fait que "procedure" n'existe pas en C++.

n°1415408
el zozo
Stroumf Grognon
Posté le 28-07-2006 à 16:32:47  profilanswer
 

gentlefred a écrit :

Merci, j'ai saisi le principe... ma confusion venait du fait que "procedure" n'existe pas en C++.


Arf, ok.. Je pensé avoir affaire au pur débutant.
 
Alors pour rentré dans les détail:
Dans une fonction, une variable nommé "result" est implicitement déclaré. Ainsi, tu peut indiféremment écrire:
 

Function  MaFonction : string; //la valeur renvoyé par la fonction sera "hello World"
begin
  MaFonction := 'Hello World";
end;


ou  

Function  MaFonction : string; //la valeur renvoyé par la fonction sera "hello World"
begin
  Result := 'Hello World;
end;


 
Attention, "result" et le nom de la fonction ne sont interchangeables qu'a gauche de l'affectation. Ca évite de créer une varible temporaire quant tu veut te servir d'une valeur intermédiaire dans ton code.
 

Function  MaFonction : string;
  REsult = 1;
  if result =1 then
    result := result +1; //result = 2  
  MaFonction := MaFonction +1; //appel récursif (et dans ce cas sans fin) de la fonction
end;


 
Je sais plus trop comment ça se passe en C, mais en pascal, le fait d'affecter une valeur à la fonction (que ce soit "normalement" ou par "result" ) ne fait pas sortir de la fonction.
 
Et Evidement, comme en C, on peut appeler une fonction sans récupérer son résultat.


Message édité par el zozo le 02-08-2006 à 09:47:35

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  [pascal] difference entre une procedure et une fonction ??

 

Sujets relatifs
[Résolu]Aide pour la fonction preg_match +....Fonction du type ereg
Fonction Trim qui ne supprime pas le formatage du texte.Difference entre le html et le xhtml...
nombre d'argument aléatoire dans une fonctionJavascript Fonction
integre une fonction a mon wikipediaproblème avec la fonction Get_List_Element_Value
procédure évenementielle dynamique ?? oui mais...Bug fonction find
Plus de sujets relatifs à : [pascal] difference entre une procedure et une fonction ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR