Rechercher : dans
Par :

Procédure et fonction algorithmes

Dernière réponse le 16 mai 2009 à 15:44:33 PRK, le 3 mai 2008 à 13:42:07 
 Signaler ce message aux modérateurs

Bonjour,

J'ai une petite question a vous poser a propos des procédures et fonctions que l'on utilise dans les algorithmes particulièrement.

je voudrais savoir pour une fonction (étant donné qu'elle renvoie une seule valeur) si on peut lui permettre de renvoyer par exemple un tableau ayant subi un traitement.

De même pour la procédure si en sortie nous pouvons mettre un tableau.

Je précise :

PROGRAMME

const cmax = 10
type T : tableau [1...cmax] : entier

variable globale :
i, tot, choix : entier

Voici la procédure et la fonction

Procédure saisiemanuelle (E _T, _cmax, _i S: _T)
debut
pour _i de 0 jusqu'a _cmax faire
afficher (valeur cellule _i)
saisir (_T[_i])
i=i+1
finpour
Fin

Est ce que cela est autorisé ? Ou il faut simplement renvoyer des variables et dans ce cas ne pas mettre le tableau en sortie ?

AUTRE EXEMPLE EN FONCTION CETTE FOIS CI

fonction saisieauto [E: _i, _cmax, _T) : entier
Debut
Pour _i de 1 jusqu'a _cmax faire
Randomize(_t[_i])
i=i+1
fin pour
retourne (_T)
Fin

Question : peut on retourner un tableau dans une fonction ?

Voila j'aimerai avoir vos avis la dessus car je n'arrive pas à déterminer si oui ou non nous pouvons mettre autre chose en sortie quie des variables pour les procédure et fonctions


j'espere avoir été assez clair pour + de précision n'hésitez pas a me demander
(^°°)> -----> < *__* >

Configuration: Windows XP
Firefox 2.0.0.14

Meilleures réponses pour « Procédure et fonction algorithmes » dans :
VBScript - Les fonctions et les procédures Voir La notion de procédure On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction (ou procédure)...
Vérifier le fonctionnement de son alimentation VoirOn peut tester le fonctionnement d'une alimentation en procédant comme ceci : Mettre l'alimentation sur OFF (derrière la tour). Débrancher celle-ci du secteur et de la carte mère (il est préférable de l'enlever entièrement de la tour en...
Mise à jour d'une procèdure ou d'une fonction en VBA VoirMise à jour d'une procédure ou d'une fonction en VBA Souvent la gestion d'un classeur, avec seulement les fonctions standards du tableur, pose des problèmes d'utilisation. Vous songez donc à utiliser Visual Basic pour Applications (VBA) mais...
Perl - Les fonctions VoirLa notion de fonction et de procédure On appelle procédure un sous-programme qui permet d'effectuer un ensemble d'instruction par simple appel de la procédure dans le corps du programme principal. Les procédure permettent d'exécuter dans plusieurs...
Les procédures en assembleur VoirLa notion de procédure En langage assembleur, on appelle procédure un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la procédure. Cette notion de sous-programme est généralement appelée fonction dans d'autres...
Javascript - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction...

1

Rocky_123, le 3 mai 2008 à 13:51:14

Salut oui une procédure peut modifier les arguments si elle les prend par référence en paramètre. En langage pascal c'est en mettant le mot-clé VAR dans les paramètres de procédure. Sinon pour une fonction, bien sûr on peut retourner des tableaux, dans n'importe quel langage de programmation.

Exemple en Delphi :

procedure TFormMain.modif(var n:Integer);
begin
n:=5;
end;

Cette procédure va modifier la valeur de la variable n qui est passée en paramètre.

Répondre à Rocky_123

2

PRK, le 3 mai 2008 à 13:54:52

En fait je cherche surtout la syntaxe algorithmique et pas dans certains langage en particulier ^^

Ton message ne m'aide pas vraiment et de plus ne traite pas vraiment mes questions ^^

ma question reside sur le fait de l'utilisation de tableaux en paramètre entrée et sortie lors de procédure et de "retourne" pour les fonctions.

En ce qui concerne les variables simples je n'ai pas de soucis a ce niveau (^°°)> -----> < *__* >

Répondre à PRK

3

Rocky_123, le 3 mai 2008 à 14:11:10

Ah ok, en langage algorithmique le prof ne t'a pas dit comment il veut que tu écrive ça? Je suppose que tu dois écrire ça comme tu l'as fait, en définissant un type de données que tu peux passer en argument pour une procédure. Sinon pour une fonction tu peux bien sûr écrire comme ça :

Un petit exemple, la fonction doit retourner un tableau de 3 éléments, du genre [i+1, i+2, i+3]

type tabEntier : tableau [1...3] : entier

fonction(base : entier): tabEntier
variables temp: tabEntier
debut
temp[1] = base+1
temp[2] = base+2
temp[3] = base+3
retourne temp
fin

Là tu vas retourner un type tabEntier, donc un tableau.

J'espère que tu comprend que j'ai voulu dire, sinon, a voir avec les autres de ta classe et ton prof pour ce qu'il veut comme écriture.

Répondre à Rocky_123

4

PRK, le 4 mai 2008 à 20:54:38

Ce queje ne comprend pas dans ton algo c'est pourquoi avoir utilisé TEMP dans ta fonction et non pas directement "Tableau" et par conséquent proceder comme cela :

tableau[1] (// 1ere cellule) = base + 1
etc....

retourne tableau

C'est bien possible de procéder comme çela ? Ou faut il impérativement créer une variable de type tableau pour faire passer ce tableau dans une procédure ou une fonction ? (^°°)> -----> < *__* >

Répondre à PRK

5

Rocky_123, le 4 mai 2008 à 21:20:59

Là j'ai pris plutôt le point de vue "réalisation d'un vrai programme" plutôt que code algorithmique. On ne pas modifier une variable passée par valeur.

J'utilise temp parce que le tableau initial est passé en valeur. Pour modifier une variable dans une fonction, il faut la passer par référence (on passe alors l'adresse d'une variable, donc on peut modifier ce qui est contenu à cette adresse, tu comprend?). En langage algo on écrirait :

fonction modif(adresse du tableau) je pense

Ici si j'utilise temp c'est pour renvoyer un nouveau tableau, l'original n'est pas modifié.

Répondre à Rocky_123

6

PRK, le 4 mai 2008 à 21:31:38

Hmm oki !

Moi le probleme c'est que c purement algorithmique et non pas du codage sous VB, C++ C# etc....

donc je cherche la pseudo-syntaxe qui me permettrai d'entrer un tableau en paramètre d'une fonction ou procédure.

a mon avis ca doit pouvoir se faire.. (^°°)> -----> < *__* >

Répondre à PRK

9

D, le 8 mai 2008 à 18:52:06

PM

Répondre à D

7

rabah, le 5 mai 2008 à 16:14:53

Soit 4 vecteurs (v1,v2,v3,v4) et deferent de dementio l,m,n,o. ecrie un algo qui lie, trie et affiche les vecteur
je ne c'est pas comment faire l'appele .merci...

Répondre à rabah

8

D, le 8 mai 2008 à 18:43:34

هل أستطيع المشاركة

Répondre à D

10

2008, le 30 mai 2008 à 23:23:42

SALUT
s.v.p aidè moi a trouvè la solution
1-dèclarer une fonction s'appelant carre qui calcule et renvoie le carrè d'un nombre entier qui est passè en paramètre
2-utiliser l'identitè n²=(n-1)²+2n-1 pour ècrire une fonction rècursive qui calcule le carrè d'un entier positif ou nul n

MERCI

Répondre à 2008

11

 thabet, le 16 mai 2009 à 15:44:33

Fonctin carre (n:entier,i:entier)
retourn entier
debut
si (n=0) retourn(0)
si non retourn (n²=(n-1)²+2n-1)
fin

Répondre à thabet
Collection CommentÇaMarche.net