[Obligatorio 2][Definición de errores al codificar/decodificar un mensaje]

[Obligatorio 2][Definición de errores al codificar/decodificar un mensaje]

de Raul Manuel Rodriguez Bratschi -
Número de respuestas: 2

Buen día,

Dejo un par de dudas que me surgieron:

  1. ¿Es posible agregar más errores al enumerado CodigoError?
  2. En el caso que un símbolo o un código no se encuentre, ¿qué retornamos?

Yo me definí 3 errores adicionales dentro del enum CodigoError:
SIMBOLO_NO_ENCONTRADO: para el caso en el que se codifica y no encuentra el símbolo.
CODIGO_NO_ENCONTRADO: para el caso en el que se decodifica y no encuentra el código. (Del modo en que lo implementé podría retornar CODIGO_MUY_LARGO pues supera los 4 bytes, pero la semántica queda poco entendible en ese contexto)
GENERIC_ERROR: para errores genéricos que pueden llegar a dar cuando me llega un puntero de archivo en NULL u otros casos (reviso variable errno).

Si bien entiendo que un enumerado es de tipo int, puedo retornar -1 u otro valor, pero si es posible agregalos dentro del enum CodigoError me parece más prolijo y comprensible, ya que las funciones para codificar y decodificar están definidas para retornar ese enumerado.

Saludos,
Manuel.

En respuesta a Raul Manuel Rodriguez Bratschi

Re: [Obligatorio 2][Definición de errores al codificar/decodificar un mensaje]

de Alberto Daniel Sanchez Latronico -
Hola Raul, Gregory ya dijo que la letra no pide nada de eso y que la tabla viene sin errores de ningun tipo
Saludos Daniel.
En respuesta a Alberto Daniel Sanchez Latronico

Re: [Obligatorio 2][Definición de errores al codificar/decodificar un mensaje]

de Raul Manuel Rodriguez Bratschi -

Hola Alberto, 

La tabla de codificación puede estar correctamente sin errores, pero no ser completa para los símbolos del mensaje a codificar, por lo que no habría errores en la lectura de la tabla de codificación, si no, que el error aparecería recién en la codificación del mensaje, pues no encontró un símbolo del mensaje en la respectiva tabla de codificación que se utilice. Por ejemplo, usar la codificación ASCII (no extendido) y tener el mensaje "ñandú", donde los símbolos "ñ" y "ú" están solo en el ASCII extendido, y usando la tabla de codificación ASCII (no extendido) no se los va a encontrar. 

Por otra parte, la función indiceEnTabla que debe utilizar la función decodificarConTabla retorna -1 cuando no encuentra un código (indicado en la letra), el cual no se corresponde a ningún valor del enum CodigoError. Análogamente uno se puede definir una función buscarSimboloEnTabla para buscar un símbolo, que actúa de la misma manera, pero para el caso de buscar un símbolo (luego de leída la tabla de codificación).
Por lo tanto, cuando la función indiceEnTabla no encuentra un código, entonces, la decodificación debe abortar retornando el código de error correspondiente, que asumiría yo sea un código dentro del enum CodigoError asociado a, por ejemplo, CODIGO_NO_ENCONTRADO.

Saludos,
Manuel.