occurrence en CamL
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

occurrence en CamL



  1. #1
    invitee12b9505

    occurrence en CamL


    ------

    Bonjour, j'ai cette exercice à faire et je galère un peu :

    1)Ecrire, en utilisant une boucle, puis de façon récursive une fonction premiereOccurence :
    char -> string -> int qui détermine le rang de la première occurence du caractere c dans la chaine s. La fonction renverra un message si le caractère n'appartient pas à la chaine.

    2)Puis ecrire, en utilisant une boucle, puis de façon récursive une fonction derniereOccurence :
    char -> string -> int qui détermine le rang de la dernière occurence du caractere c dans la chaine s. La fonction renverra un message si le caractère n'appartient pas à la chaine.


    Pour le 1) j'ai trouvé avec une boucle :
    Code:
    let premiereoccurence c s =
    	let trouve = ref 0 in
    	let n = string_length s in 
    		for k = 0 to (n-1) do 
    			if s.[k] = c then trouve := k+1
    		done ;
    if !trouve = 0 then failwith " Le caractère n'est pas dans la chaîne " else !trouve ;;
    mais j'arrive pas a trouver pour dernier occurrence et d'ailleur je suis même pas sur de ce qu'est la dernière occurrence.
    Pour moi ça serai `o` "bonjour"
    int = 5

    Mais est ce vraiment ça ?

    Aidez moi un peu svp.
    merci

    -----

  2. #2
    invitebda71f50

    Re : occurrence en CamL

    et en commençant à chercher depuis la fin ça le ferait non ?

  3. #3
    invitee12b9505

    Re : occurrence en CamL

    bah pourquoi pas mais que changer pour commencer a chercher de la fin ?

  4. #4
    invitebda71f50

    Re : occurrence en CamL

    for k = (n-1) to 0 ...

  5. A voir en vidéo sur Futura
  6. #5
    invitee12b9505

    Re : occurrence en CamL

    j'y avais pensé et donc essayé mais non ça veut pas dans ce sens là

    Mais en plus je viens de me rendre compte que ma réponse du 1) me donne enfaite le 2) il me donne la derniere occurrence.
    Alors comment trouvé la 1ere dans ce cas là

  7. #6
    invitebda71f50

    Re : occurrence en CamL

    (hum, un minimum de recherche, et tu me corriges en remplaçant 'to' par 'downto' )

    et oui, comme tu continuais à boucler bien sur.

  8. #7
    invitee12b9505

    Re : occurrence en CamL

    ouep voila c'est ça que je cherchais.
    Par contre pour la récurence j'arrive pas du tout.

  9. #8
    invitebda71f50

    Re : occurrence en CamL

    mhouais. c'est chercher un peu la bestiole...
    mais une piste, sans trop s'attarder sur les détails de syntaxe:

    étant une chaine, je me demande si mon 1er caractère est 'c'.
    oui => je retourne mon nombre de caractère, (résultat: position depuis la droite - édit: derniere occurence depuis la droite... mais ça doit pouvoir s'arranger)
    non => je me repose la question en me tronquant d'un caractère à gauche (récurrence)
    mais étant vide, j'exceptionne sur une erreur.

    édit... enfin, si tu cherches encore à cette heure-ci, bien sur ; )

  10. #9
    invite7a8ce750

    Re : occurrence en CamL

    Citation Envoyé par biloute490 Voir le message
    ouep voila c'est ça que je cherchais.
    Par contre pour la récurence j'arrive pas du tout.
    Pourtant c'est la partie importante du cours -_-

    Réflechis à la manière mathématique de l'écrire.
    Il te faut :
    - un cas de base ;
    - une pas de récursivité qui réduit le cas n au cas n-1;

    T'as bien du voir de l'induction en math non ?

  11. #10
    invitee12b9505

    Re : occurrence en CamL

    alors j'ai trouvé la recurcive pour la premiere occurence par contre pour la derniere occurence je bloque.
    Comment faire pour qu'il aille à la dernière sans qu'il s'arrête sur la 1ère ? ou alors faut le faire partir du dernier caractère vers le 1er mais là j'arrive pas à le faire :s

  12. #11
    invitebda71f50

    Re : occurrence en CamL

    Citation Envoyé par biloute490 Voir le message
    ou alors faut le faire partir du dernier caractère vers le 1er mais là j'arrive pas à le faire :s
    Fais voir à quoi elle ressemble ta recursive pour la première.
    Qu'est-ce qui coince pour la retourner ? Un détail de syntaxe ?

Discussions similaires

  1. caml bibliotheque graphique sur windows
    Par invite5478c9cd dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 28/08/2007, 03h13
  2. aide caml light
    Par invite73c41558 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 19/06/2007, 13h05
  3. Cours de CamL en ligne
    Par invitea7fcfc37 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 14/02/2007, 17h02
  4. TIPE Puissance en CaML
    Par invite553243dd dans le forum TPE / TIPE et autres travaux
    Réponses: 0
    Dernier message: 27/04/2006, 14h49
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...