Adloun

Reconnaissance

Exercice · OCaml (option informatique), chapitre 18 — Automates finis

Énoncé

Écrire reconnait et l'appliquer pour vérifier que "bba" se termine par a mais pas "bab".

Corrigé

let reconnait a symbole mot =
  let etat = ref a.initial in
  for i = 0 to String.length mot - 1 do
    etat := a.delta.(!etat).(symbole mot.[i])
  done;
  a.acceptants.(!etat)

let sym c = int_of_char c - int_of_char 'a'
(* reconnait termine_par_a sym "bba" = true ; ... "bab" = false *)

Sur "bba" : états (acceptant) true. Sur "bab" : (non acceptant) false.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.