Ejercicio: 3Eva2012TII_T1 Alfabeto radiofónico
radiofonico =
[['A','Alfa'], ['B','Bravo'],
['C','Charlie'],['D','Delta'],
['E','Echo'], ['F','Foxtrot'],
['G','Golf'], ['H','Hotel'],
['I','India'], ['J','Juliet'],
['K','Kilo'], ['L','Lima'],
['M','Mike'], ['N','November'],
['O','Oscar'], ['P','Papa'],
['Q','Quebec'], ['R','Romeo'],
['S','Sierra'], ['T','Tango'],
['U','Uniform'],['V','Victor'],
['W','Whiskey'],['X','X-ray'],
['Y','Yankee'], ['Z','Zulu']]
Para resolver el ejercicio de alfabeto radiofónico en Python, se propone usar el algoritmo de búsqueda sobre una lista con las parejas [letras,código].
literal a
Para la función coderadio(), la palabra ingresada se convierten todas sus letras a mayúsculas con .upper(), así se facilita la búsqueda sobre la lista radiofónico.
>>> coderadio('ESPOL')
Echo Sierra Papa Oscar Lima
Se aplica el algoritmo de búsqueda usando cada letra de la palabra sobre cada pareja de lista radiofónico, usando la bandera encontre para salir del bucle de búsqueda. La variable donde indica la posición de coincidencia entre la letra de la palabra y la letra de la lista radiofónico.
# Buscar letra en radiofonico
encontre = 0
donde = -1
j = 0
while not(j>=m or encontre==1):
if (letra == radiofonico[j][0]):
encontre = 1
donde = j
equivale = radiofonico[j][1]
j = j + 1 # busca la siguiente fila
literal b
El proceso contrario con la función decoradio(), se toma la primera letra de cada palabra de la frase ingresada.
>>> decoradio('Echo Sierra Papa Oscar Lima')
ESPOL
partes = frase.split(' ')
n = len(partes)
palabra = ''
i = 0
while not(i>=n):
palabra = palabra + partes[i][0]
i = i + 1
Algoritmo en Python
El detalle de instrucciones se presenta a continuación.
# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 3Eva_IIT2012_T1 Alfabeto radiofónico
# Tarea: En la segunda función considerar
# que se pueden dar palabras que no son radiofónicas.
# mejorar la función usando la tabla radiofónico.
# literal a
def coderadio(palabra,radiofonico):
# analizar secuencia a codificar
palabra = palabra.upper()
frase = ''
n = len(palabra)
m = len(radiofonico)
i = 0
while not(i>=n):
letra = palabra[i]
# Buscar letra en radiofonico
encontre = 0
donde = -1
j = 0
while not(j>=m or encontre==1):
if (letra == radiofonico[j][0]):
encontre = 1
donde = j
equivale = radiofonico[j][1]
j = j + 1 # busca la siguiente fila
# completa la frase
if len(frase)==0:
espacio = ''
else:
espacio = ' '
frase = frase + espacio + equivale
i = i + 1 # cambia letra de palabra
return(frase)
# literal b
def decoradio(frase,radiofonico):
# Solo un ejemplo para decodificar,
# Tarea, considerar que pueden enviar
# una palabra que no se encuentra en tabla
partes = frase.split(' ')
n = len(partes)
palabra = ''
i = 0
while not(i>=n):
palabra = palabra + partes[i][0]
i = i + 1
return(palabra)
Tarea: Continuar con el tema 2 para crear el menú con las partes para practicar el alfabeto radiofónico.