Langage Pascal/Définition de fonctions

Leçons de niveau 15
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
Définition de fonctions
Icône de la faculté
Chapitre no 8
Leçon : Langage Pascal
Chap. préc. :Définition de procédure
Chap. suiv. :Structure d’un programme
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Langage Pascal : Définition de fonctions
Langage Pascal/Définition de fonctions
 », n'a pu être restituée correctement ci-dessus.

Fonctions[modifier | modifier le wikicode]

Définition[modifier | modifier le wikicode]

La fonction est un résultat qui nécessite plusieurs étapes pour être défini. Pour le néophyte, on clarifiera en donnant tout simplement la syntaxe.

Syntaxe[modifier | modifier le wikicode]

Function NOM(Variable1 : TYPE, ...) : TYPE;
Begin
  { instructions }
  NOM := VALEUR; { affectation de la valeur de retour }
End;

Vous pouvez inclure cette définition de fonction dans un programme, une unité, ou bien à l'intérieur d’une autre procédure/fonction.

Exemples[modifier | modifier le wikicode]

Définition d’une procédure[modifier | modifier le wikicode]

Cette procédure affiche "allo" suivi du texte passé en paramètre.

Procedure allo(vartexte : string);
Begin
  Writeln('allo');
  Writeln(vartexte);
End;

Définition de fonction[modifier | modifier le wikicode]

La fonction suivante attend des lignes de texte de l'utilisateur.

Function AttendreTexte(nblignes : byte) : string;
var i: integer; s: string;
Begin
  result := ''; { cette variable est définie automatiquement }
  for i := 1 to nblignes do
  begin
    { On attend une ligne de texte de l’utilisateur }
    readln(s);
    { On passe à la ligne si besoin }
    if result <> '' then result := result +  #13 + #10; 
    { On concatène au résultat }
    result := result + s;
  end;
End;

Définition du contenu principal[modifier | modifier le wikicode]

var qui: string;
Begin
  allo('qui est à l''appareil ?'); { on écrit deux fois la guillemet pour indiquer qu’il ne s'agit pas de la fin de la chaine de caractère }
  qui := AttendreTexte(1);
  writeln('Bonjour ', qui);
End.

Notes[modifier | modifier le wikicode]

  • Writeln vient de Write et LN. Write signifie Écrire, et LN signifie Ligne.
  • Readln vient de Read et LN. Read signifie Lire.