hg S’enregistrer Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie

Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie  forum informatique Tunisie Index du Forum

hg Bac Tunisie Algorithmique et programmation TIC réseaux php javascript sql access activités programmation c
hg
FAQ FAQ Rechercher Rechercher Membres Membres Groupes Groupes Profil Profil Se connecter pour vérifier ses messages privés Messages Privés Connexion Connexion


 Forum de l'excellence et l'excellence en innovation 
Pour participer à notre Forum, 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
 
 
Poster un nouveau sujet   Répondre au sujet    Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie Index du Forum -> Algorithmique & programmation -> (¯`·._.·[Devoirs et séries']·._.·´¯)
hg Sujet précédent :: Sujet suivant   hd
Auteur Message
KARIMOS
Administrateur

Hors ligne

Inscrit le: 02 Nov 2008
Messages: 1 710
Masculin
Point(s): 5 479
Moyenne de points: 0

Posté le: Sam 23 Oct - 08:12 (2010)    Sujet du message: Procédures et fonctions Répondre en citant

PublicitéSupprimer les publicités ?
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
manianis


Hors ligne

Inscrit le: 11 Aoû 2010
Messages: 95
Masculin
Point(s): 102
Moyenne de points: 0

Posté le: Sam 23 Oct - 18:02 (2010)    Sujet du message: Procédures et fonctions Répondre en citant

Remarques très importantes en effet. Smile

 
Revenir en haut
Contenu Sponsorisé






Posté le: Aujourd’hui à 17:02 (2016)    Sujet du message: Procédures et fonctions

 
Revenir en haut
Montrer les messages depuis:   
bg bd
Poster un nouveau sujet   Répondre au sujet    Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie Index du Forum -> Algorithmique & programmation -> (¯`·._.·[Devoirs et séries']·._.·´¯) Toutes les heures sont au format GMT + 1 Heure
 
Page 1 sur 1

 
Sauter vers:  
Index | créer forum gratuit | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation