Bonjour je n'arrive pas à faire mon algorithme de tri par sélection en langage fonctionnel.. en fiat je n'arrive pas à traduire en lagage fonctionnel ce que j'ai trouvé en langage impératif... mon algorithme impératif est bon (quasi sur) mais je n'arrive pas le fonctionnel pourriez vous m'aider voici l'algoritheme en impératif que j'ai fait
Pour i de 1 à n-1 fais min<--a[ i], indicemin<--i
Pour j de i+1 à n fais
si a[j] = < min alors min<-a(j); indicemin<-j
finsi
fait
a(indicemin)<-a[ i]
a(i) <- min
fait
a;
Voilà si on pouvait m'aider pour la transcription en langage fonctionnel (avec des iterer ... et la structure soit ... dans ...) Je vous remercie d'avance.
Bonjour,
quand tu parles d'algorithme traduit en langage fonctionnel, parles-tu de codage ? Si tel est le cas, indique avec quel langage tu travailles, sinon ça risque d'être compliqué.
lkangage fonctionnel eu c'est en pseudo code ...
du type iterer fon(x--> ... ) n ; 0 pour traduire
x<--0
pour i de 1 à n fais x<- ...
Pour traduire le tant que c'est la structure
Tantquefaire condition action
ex tantquefaire (fon (x,y) --> x<3)) (fon x,y->x+1,y+2) (je dis n'importe quoi la juste pour le principe)
et la structure Si .. alors...
et Soit x = .... DANS delta = x²+3 ... voilà il y a pas d'autre codage c'est que du pseudo code comme dans mon algorithe impératif... si vous pouviez m'aider ce serait simpa merci d'avance.
Bonjour,
je t'avoue que j'ai un peu de mal à lire ta syntaxe. Comme tu es tombé sur un fou (moi, en l'occurence), je ne résiste pas à te donner un extrait de programme développé il y a quelques années qui permet d'effectuer un tri de tableau suivant un appel récursif à fonction de tri suivante.
Pour info, tu as sous les yeux du Pascal. Le corps de la fonction suit ces quelques lignes; l'appel de la fonction dans le corps principal du programme figure en fin.
Bonne lecture, Matthieu
---
corps de la fonction
procedure Tri_TableauSimple(indice_depart:integer;var tableau:array of string);
var i:integer; tmp:string;
begin
// initialisation
i:=indice_depart;
while(i<length(tableau))do
begin
if(tableau[i]<tableau[indice_depart])then
begin
tmp:=tableau[i];
tableau[i]:=tableau[indice_depart];
tableau[indice_depart]:=tmp;
end;
if(tableau[i]>tableau[high(tableau)-1])then
begin
tmp:=tableau[i];
tableau[i]:=tableau[high(tableau)-1];
tableau[high(tableau)-1]:=tmp;
end;
inc(i);
end; // end boucle while()
inc(indice_depart);
// recursion pour traiter les elements compris entre indice_depart et high(tableau)
if(indice_depart<high(tableau))then
begin
Tri_TableauSimple(indice_depart,tableau);
end;
end;
Appel de la procédure
Tri_TableauSimple(0,tableau);
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :