IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Caml Discussion :

exercice en caml


Sujet :

Caml

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut exercice en caml
    Exercice sur les tableaux monodimensionnels

    1) Ecrivez la fonction multiplication_par (n) qui retourne le tableau des 10 premiers facteurs de n. Par exemple, multiplication_par(3) retourne :
    3 6 9 12 ... 30

    2) Ecrivez la fonction somme(t) qui retourne la somme des éléments
    du tableau t composé d'entiers

    3) Ecrivez la fonction somme_partielle(t, i, j) qui calcule la somme
    partielle des éléments de t entre les indices i et j

    4) Ecrivez la fonction prod_scal(t1 ,t2) qui retourne le produit scalaire
    des 2 vecteurs entiers t1 et t2 passés en paramètres

    5) Ecrivez la fonction facteurs_premiers (n) qui retourne le tableau
    contenant les facteurs premiers de n. On procède ainsi

    Je viens de commencer le caml mais je dois le maitriser pour janvier et je n'ai pas de cours , juste une liste de td

    quelqu'un peut il m expliquer comment m'y prendre pour réalise ce type de tableau etc

    Je n'attends pas une solution toute faite ou une réponse de google

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Points : 1 104
    Points
    1 104
    Par défaut
    Si tu veux des documents d'apprentissage de qualité pour comprendre ce que tu fais :
    1. pour Caml Light, le livre "Le langage Caml", disponible en ligne, est excellent :
    http://caml.inria.fr/pub/distrib/books/llc.pdf (PDF)
    2. pour Objective Caml, j'apprécie (comme cours introductifs plutôt que références complètes0
    - le poly "introduction à la programmation fonctionnelle" de Jean-Cristophe Filliâtre :
    www.lri.fr/~filliatr/publis/ipf.pdf
    - le cours "introduction au langage OCaml" de Maxence Guesdon :
    http://form-ocaml.forge.ocamlcore.org/

    Tu utilises Caml Light ou OCaml ?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'utilise ocaml

    La programmation c'est un autre monde .

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    par exemple pour la première question , je ne comprend pas

    comment "retourner" les 10 premières valeur de la multiplication par n

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Points : 1 104
    Points
    1 104
    Par défaut
    Pour créer une liste de taille `n`, c'est `Array.make n default_value` ou `Array.init n func`:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    (* [| 1; 1; 1 |] *) Array.make 3 1;;
    (* [| 0; 2; 4 |] *) Array.init 3 (fun i -> 2 * i);;

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    salut je te donne les solutions des 3 premières, le but c'est que tu me dises la où tu bloques, ce que tu ne comprends pas, comme ça je te détaillerais mes algos (il est 1h30 du matin, je vais pas tout détailler maintenant ^^)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    let multiplication_par n =
    	let t = Array.make 10 0 in
    		for i = 0 to 9 do
    			t.(i) <- (i+1)*n
    		done;
    		t
     
    let somme t =
    	let l = Array.length t
    	and resultat = ref 0 in
    		for i = 0 to l-1 do
    			resultat := !resultat + t.(i)
    		done;
    		!resultat
     
    let somme_partielle t i j =
    	if j < i then
    		failwith "somme partielle : indices oncorects"
    	else begin
    		let resultat = ref 0 in
    			for a=i to j do
    				resultat := !resultat + t.(a)
    			done;
    			!resultat

Discussions similaires

  1. Exercice de caml
    Par reuqnas dans le forum Caml
    Réponses: 11
    Dernier message: 16/12/2011, 07h52
  2. Exercice caml complexité
    Par reuqnas dans le forum Caml
    Réponses: 3
    Dernier message: 07/04/2011, 20h56
  3. exercice en caml
    Par much1707 dans le forum Caml
    Réponses: 7
    Dernier message: 26/05/2009, 20h54
  4. Pouvez vous m'aider a resoudres ces 3 exercices
    Par algorithmique dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 09/08/2002, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo