j'ai besoin de convertir ce programme camel en pascal je n'ai aucune notion de camel j'aurai donc besoin d'un peu d'aide. c'est la question 11 du sujet d'informatique des mines 2003:
let coloration G = let couleurs = make_vect G.n 0 in for i = 0 to G.n-1 do let vois = voisins G i in let v= voisins_plus_petits i vois in let c = map(fun x -> couleurs.(x)) v in couleurs.(i)<- premier_choix 1 c
done; couleurs;
la fonction voisins qui renvoi la liste triée par ordre croissant des voisins du sommet s dans le graphe G
let voisins G s = let rec aux accu= fonction |[]-> accu |t::q when t.a = s ->aux (insere accu t.b) q |t::q when t.b = s -> aux (insere accu t.a) q |_::q -> aux accu q in aux [] G.A;;
la fontion insere telle que si L est une liste d'entier distinc trié par ordre croissan et s keskonque inser L s renvoi la liste d(entier obtenu en inseran s dans L dans lordre croissanbt si s ne figurait pas ds L.
la fonction voisins_plus_petit qui extrait de la liste de tous les voisins ceux qui sont de numero inferieur strictement à i.
let rec voisins_plus_petits i=function |t::q when t<i -> t:voisins_plus_peits i q) |_-> [];;
la fonction premier choix telle que premier choix 1 q renvoi le premier numero de couleur qui ne fait pas partir de la liste q.
let rec premier_choix i = function |q when mem i q -> premier_choix (i+1) q |_->i;;
je n'ai pas les types en camel mais en pascal:
type Arete = record a: integer; b:integer; end; type Graphe = record n: integer; nb_aretes:integer; A:array[0.. max_arretes-1]of arete;
type couleurs = array(0..max sommet-1] of integer;
merci beaucoup d'avance je doit présenter le tipe très bientot
Marsh Posté le 16-06-2006 à 21:34:43
j'ai besoin de convertir ce programme camel en pascal
je n'ai aucune notion de camel j'aurai donc besoin d'un peu d'aide. c'est la question 11 du sujet d'informatique des mines 2003:
let coloration G = let couleurs = make_vect G.n 0 in
for i = 0 to G.n-1 do
let vois = voisins G i in
let v= voisins_plus_petits i vois in
let c = map(fun x -> couleurs.(x)) v in
couleurs.(i)<- premier_choix 1 c
done;
couleurs;
la fonction voisins qui renvoi la liste triée par ordre croissant des voisins du sommet s dans le graphe G
let voisins G s =
let rec aux accu= fonction
|[]-> accu
|t::q when t.a = s ->aux (insere accu t.b) q
|t::q when t.b = s -> aux (insere accu t.a) q
|_::q -> aux accu q
in aux [] G.A;;
la fontion insere telle que si L est une liste
d'entier distinc trié par ordre croissan et s keskonque inser L s renvoi la liste d(entier obtenu en inseran s dans L dans lordre croissanbt si s ne figurait pas ds L.
la fonction voisins_plus_petit qui extrait de la liste de tous les voisins ceux qui sont de numero inferieur strictement à i.
let rec voisins_plus_petits i=function
|t::q when t<i -> t:voisins_plus_peits i q)
|_-> [];;
la fonction premier choix telle que premier choix 1 q renvoi le premier numero de couleur qui ne fait pas partir de la liste q.
let rec premier_choix i = function
|q when mem i q -> premier_choix (i+1) q
|_->i;;
je n'ai pas les types en camel mais en pascal:
type Arete = record
a: integer;
b:integer;
end;
type Graphe = record
n: integer;
nb_aretes:integer;
A:array[0.. max_arretes-1]of arete;
type couleurs = array(0..max sommet-1] of integer;
merci beaucoup d'avance je doit présenter le tipe très bientot
clara_vais@hotmail.fr