hg Register Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet

Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Forum Index

hg Revision tunisie scolaire Bac Tunisie Algorithmique et programmation TIC réseaux php javascript sql access activités programmation c
hg
FAQ FAQ Search Search Memberlist Memberlist Usergroups Usergroups Profile Profile Log in to check your private messages Private Messages Log in Log in


 Forum de l'excellence et l'excellence en innovation 
Pour participer à notre Forum révision tunisie , vous devez
 inscrire sur notre forum a partir d'ici
   NB :
Les membres ''zéro messages'' seront supprimés automatiquement après un nombre de jours donné !!!!
             
   
 
  
 
forum d'aide informatique : internet, réseau, programmation informatique ...
Procédures et fonctions
 
 
Post new topic   Reply to topic    Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Forum Index -> Algorithmique & programmation -> (¯`·._.·[Devoirs et séries']·._.·´¯)
hg Previous topic :: Next topic   hd
Author Message
KARIMOS
Administrateur

Offline

Joined: 02 Nov 2008
Posts: 711
Masculin
Point(s): 4,448
Moyenne de points: 0

Posted: Sat 23 Oct - 08:12 (2010)    Post subject: Procédures et fonctions Reply with quote

Lorsque notre programme s'étoffe un peu, il est hors de question de le décrire séquentiellement, même en indentant, vous imaginez 20000 lignes d'un seul bloc ! D'autre part, il peut être intéressant de définir des sous-programmes exécutant certaines tâches pour pouvoir les réutiliser. C'est précisément ce à quoi servent les procédures et les fonctions. D'ailleurs, vous en avez déjà utilisé dans l'exemple ci-dessus : writeln et readln sont des procédures définies "en standard".
Imaginons, dans notre exemple précédent, que nous demandions à l'utilisateur de notre programme de saisir des mots, et qu'il nous faille en faire une phrase en les concaténant. On pourrait faire :
    
Code:
Program MonDeuxiemeProg;  
var   s, Phrase : string;  
begin   writeln('Entrez un mot :'); 
  readln(s);   Phrase:=s;    
writeln('Entrez un deuxième mot :');  
 readln(s);   Phrase:=Phrase+s  
 writeln('Entrez un troisième mot :'); 
  readln(s);   Phrase:=Phrase+s;  
  writeln('La phrase complète est :'); 
  writeln(Phrase);
 end.
  • J'écris un texte à l'écran (remarquez les "quotes" entourant les chaînes de caractères) pour dire à l'utilisateur ce qu'il doit faire
  • je lis ce qu'il tape
  • je mets le résultat dans ma variable phrase
  • je lui demande de saisir un autre mot, et je lis ce qu'il tape
  • je cumule le contenu de phrase avec ce qu'il a tapé dans s (phrase:=phrase+s)
  • enfin, j'affiche la phrase complète.
En dehors du fait que c'est un peu répétitif, si je veux insérer une virgule après chaque mot tapé, je devrai le faire trois fois. Nous allons donc définir une fonction qui va faire tout ça une fois pour toute :
Code:




Program MonDeuxiemeProg;  
function ConstruitPhrase(phrase:string):string; 
var s : string; begin   readln(s);  
 ConstruitPhrase:=phrase+', '+s; end;  
var   Phrase : string; 
begin   
Phrase:='';  {initialiser à chaîne vide} 
  {premier mot}   writeln('Entrez un mot :');  
 Phrase:=ConstruitPhrase(Phrase);  
 {deuxième mot}   writeln('Entrez un deuxième mot :');  
 Phrase:=ConstruitPhrase(Phrase);  
 {troisième mot}   writeln('Entrez un troisième mot :'); 
  Phrase:=ConstruitPhrase(Phrase); 
   {résultat}   writeln('La phrase complète est :'); 
  writeln(Phrase); 
end.



Remarquez les commentaires entre accolades. Ce texte est ignoré du compilateur.
Remarquez aussi l'initialisation de la variable phrase. Ceci est extrêmement important, car lorsqu'un programme démarre, les variables sont dans un état "indéfini" et peuvent contenir n'importe quoi. Ainsi la première fois qu'on appelle notre fonction, il faut bien qu'on lui envoie une chaîne vide (réflechissez voyons !!). La déclaration a été descendue juste au-dessus du begin de début, pour lever toute ambiguïté.
En effet, les variables, fonctions et procédures ne sont visibles que si elles sont situées au-dessus du code qui les appelle.


 
Revenir en haut
Publicité






Posted: Sat 23 Oct - 08:12 (2010)    Post subject: Publicité

PublicitéSupprimer les publicités ?
 
Revenir en haut
manianis


Offline

Joined: 11 Aug 2010
Posts: 88
Masculin
Point(s): 94
Moyenne de points: 0

Posted: Sat 23 Oct - 18:02 (2010)    Post subject: Procédures et fonctions Reply with quote

Remarques très importantes en effet. Smile

 
Revenir en haut
Display posts from previous:   
bg bd
Post new topic   Reply to topic    Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Forum Index -> Algorithmique & programmation -> (¯`·._.·[Devoirs et séries']·._.·´¯) All times are GMT + 1 Hour
 
Page 1 of 1

 
Jump to:  
Index | Make forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation