Inscription / Connexion Nouveau Sujet
Niveau calculatrices
Partager :

tri par sélection

Posté par cici_015 (invité) 15-01-06 à 22:36

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.

Posté par matthieu1 (invité)re : tri par sélection 15-01-06 à 23:05

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é.

Posté par cici_015 (invité)re : tri par sélection 16-01-06 à 17:04

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.

Posté par matthieu1 (invité)re : tri par sélection 16-01-06 à 19:55

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 :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !