Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.84 KB | None | 0 0
  1. from AlgoPy import *
  2.  
  3. def chiffreSoundex(pC):
  4.     """
  5.     chiffreSoundex : fonction : int
  6.         renvoie chiffre assigne a lettre pC
  7.  
  8.     parametres :
  9.         pC : char : lettre dans le mot donne par l'utilisateur
  10.  
  11.     local :
  12.  
  13.     return :
  14.         chiffre : int : chiffre assigne a lettre pC
  15.  
  16.     """
  17.  
  18.     if (pC == 'a') or (pC == 'e') or (pC == 'h') or (pC == 'i') or (pC == 'o') or (pC == 'u') or (pC == 'w') or (pC == 'y'):
  19.         chiffre = 0
  20.  
  21.     elif (pC == 'b') or (pC == 'f') or (pC == 'p') or (pC == 'v'):
  22.         chiffre = 1
  23.  
  24.     elif (pC == 'c') or (pC == 'g') or (pC == 'j') or (pC == 'k') or (pC == 'q') or (pC == 's') or (pC == 'x') or (pC == 'z'):
  25.         chiffre = 2
  26.  
  27.     elif (pC == 'd') or (pC == 't'):
  28.         chiffre = 3
  29.  
  30.     elif (pC == 'l'):
  31.         chiffre = 4
  32.  
  33.     elif (pC == 'm') or (pC == 'n'):
  34.         chiffre = 5
  35.  
  36.     else:
  37.         chiffre = 6
  38.  
  39.     return chiffre
  40.  
  41. def soundex(pMot):
  42.     """
  43.     soundex : fonction : chaine
  44.         code soundex d'un mot
  45.  
  46.     parametres :
  47.         pMot : chaine : le mot a coder
  48.  
  49.     local :
  50.         i : entier : indice dans pMot de la lettre souhaitee
  51.         lettre : char : lettre d'indice de pMot
  52.         chiffre : char : chiffre associe a la lettre d'indice i
  53.         prec : char :  chiffre associe a la lettre precedente, '0' pour une voyelle
  54.  
  55.     return :
  56.         code : chaine : le code soundex de pMot
  57.  
  58.     pre : le mot ne contient que des caracteres alphabetiques minuscules
  59.  
  60.     """
  61.  
  62.     code = ""
  63.     i = 0
  64.  
  65.     while (code.size() < 4):
  66.         if i< pMot.size():
  67.             lettre = pMot[i]
  68.             chiffre = chiffreSoundex(lettre)
  69.         else:
  70.             chiffre = 'o'
  71.         if i == 0:
  72.             code = code.add(lettre)
  73.         elif (i < pMot.size()):
  74.             if (chiffre != prec and chiffre != 0):
  75.                 code = code.add(str(chiffre))
  76.         else:
  77.             code = code.add(str(chiffre))
  78.         prec = chiffre
  79.  
  80.  
  81.         i = i+1
  82.  
  83.     return code
  84.  
  85.  
  86.  
  87.  
  88. def main():
  89.     """
  90.  
  91.     """
  92.     mot = input("Saisir un mot : ",str)
  93.     sound = soundex(mot)
  94.  
  95.     print(sound)
  96.  
  97.  
  98. execute(main)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement