Algo, tableau : procedure ou fonction?

zivodul8 Messages postés 248 Statut Membre -  
garion28 Messages postés 1545 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Ma question est simple mais reste pour moi sans réponse : je dois demander les valeurs d'un tableau à l'utilisateur avec un sous programme, mais je ne sais pas si je dois utiliser une fonction ou une procédure??
Merci de votre aide ;)

3 réponses

  1. garion28 Messages postés 1545 Date d'inscription   Statut Membre Dernière intervention   408
     
    l'un ou l'autre n'as pas d'importance, ca influ juste sur la facon dont ca va etre écrit
    exemple:
    avec une fonction:
    début
    variable
    untab:tableau de valeur
    untab=demandevalue()
    
    fin
    fonction demandevalue() : tableau de valeur
    variable:
    montab[10] //minimum=1, maxi=10 donc 10 "cellules"
    pour i=1 jusqu'a 10
    écrire "valeur ?"
    lire montab[i]
    fin pour
    retourner montab
    fin fonction
    
    avec une procédure
    début
    variable:
    montab:tableau de valeur
    demandevalue(E/S untab)
    fin
    procédure demandevalue(E/S montab:tableau de valeur) 
    variable:
    tableau[10] //minimum=1, maxi=10 donc 10 "cellules"
    pour i=1 jusqu'a 10
    écrire "valeur ?"
    lire tableau[i]
    fin pour
    fin procédure
    


    pour la fonction et la procédure, la boucle peu etre dans celle ci ou bien a l'extérieur (dans ce cas la boucle appellera plusieurs fois la procédure/fonction afin de remplir le tableau, mais alors le montab qui est dans la fonction/procédure ne sera plus un tableau mais une simple variable)

    si tu as d'autres question n'hésite pas
    2
  2. zivodul8 Messages postés 248 Statut Membre 22
     
    En faite je suis un débutant en algorithme; et je reconnais pas trop ce que tu as ecrit. Et il me faut le "meilleur" algo possible. Je memélange un peu entre paramètres fixes et paramètres modifiables. Dis moi ce que tu en penses:
    //declaration
    procedure cine FIXE ()
    MODIF (var tabcine);
    debut
    pour l variant de 0 a nbli-1 avec un pas de 1
    faire pour c variant de 0 a nbco-1 avec un pas de 1
    faire ecrire" saisissez ... : ";
    lire tabcine[l][c];
    refaire;
    fpour;
    refaire;
    fpour;
    fin;

    //programme principal
    // appel de la procedure
    cine ( ) (cine);
    0
  3. garion28 Messages postés 1545 Date d'inscription   Statut Membre Dernière intervention   408
     
    déja il faut savoir qu'en algorithme il n'y a pas de ; a la fin des lignes puisque ce n'est pas un language de programmation
    mes commentaires sont identifié par /* en début de commentaire et */ en fin de commentaire
    //declaration 
    procedure cine FIXE ()/*que représente le mot cine ?*/
    MODIF (var tabcine);/*que représente la méthode (fonction ou procédure) MODIF ?*/
    debut
         pour l variant de 0 a nbli-1 avec un pas de 1 /*a combien est initialisé nbli ?*/
              faire pour c variant de 0 a nbco-1 avec un pas de 1//a combien est initialisé nbco ?
                   faire ecrire" saisissez ... : ";/*le faire n'est pas nécessaire puisque le mot écrire désigne l'action d'afficher un message*/
                   lire tabcine[l][c];
              refaire;/*ce n'est pas utile d'écrire ca puisque le fpour (donc la fin du pour) incrémente tout seul la variable c*/
              fpour;
         refaire;
         fpour;
    fin; 
    
    //programme principal
    // appel de la procedure
    cine ( ) (cine);/*le cine()(cine) ne veu rien dire*/
    
    0