Contexto en los resultados de un programa

A continuación, publico el resumen de la clase del 23 de Agosto como lo redactaron y enviaron Jennifer Ocampo y Daniela Rentería, pero con las correcciones que me parecieron pertinentes. El texto original está adjunto para descarga exactamente como fue enviado al final de la entrada. Disfrútenlo.

Información: datos con contexto

Para recordar las diferencias entre datos e información, recomiendo revisar la entrada anterior.

Continuando con el tema de la programación, un buen ejemplo inicial para crear programas son aquellos que permiten hallar el área de figuras geométricas como la elipse, el rectángulo y otras que quedaron como tarea para la casa en la sesión anterior. Sin embargo, cuando se desarrolla un programa, hay que tener en cuenta que el usuario es una persona desconocida cuya interpretación de los resultados, el propósito del programa e incluso las instrucciones que se le dan durante la ejecución del mismo pueden variar muchísimo, por lo tanto es indispensable evitar que éste interprete el programa (o alguna parte de él) equivocadamente. Lo anterior se resume en una típica afirmación de los programadores: «los programas deben ser diseñados a prueba de idiotas» y no se trata de suponer que el usuario es un(a) idiota, sino prever que cualquier persona puede cometer una idiotez, malinterpretar algo y dejar la imagen del diseñador por el suelo, ya que es la responsabilidad del último saber qué puede pensar el usuario. Para evitar problemas como el descrito anteriormente, es indispensable que el programa esté perfectamente contextualizado, de tal manera que el resultado no solo contenga datos sino información. Para darle contexto a un programa el programador debe incluir lo siguiente:

  1. ¿Quién hizo el programa?
  2. ¿Qué propósito tiene el programa?
  3. Indicaciones claras y completas para el usuario: no se le puede dar pie para interpretar de varias formas una misma indicación.
  4. Resultados contextualizados: el resultado en sí mismo debería ser información, incluir todos los datos necesarios y su contexto.

Ejemplos de los puntos anteriores son:

  1. ¿Quién?: ‘Ing. César Cabrera, Informática educativa II, semestre 2 de 2011.’
  2. ¿Qué?: ‘Programa «Área de una elipse», calcula el área en centímetros cuadrados de una elipse, dadas las longitudes de sus semiejes’.
  3. ¿Cómo?: ‘A continuación, digite el número de centímetros que mide el primer semieje’
  4. Resultado: Si el usuario digitó en la primera petición 1 y en la segunda 2, el programa debe terminar imprimiendo el siguiente mensaje: ‘El área de una elipse cuyos semiejes miden 1cm y 2cm, es 6.28 centímetros cuadrados’.

Particularmente, para DFD y su «lenguaje», es indispensable tener en cuenta los siguiente:

  • Todo lo que este entre comillas simples  sale en la pantalla tal cual se escribe y a su vez, cada vez que se soliciten datos al usuario y éstos sean letras o palabras se tienen que encerrar en comillas simples.
  • La coma sirve como operador de concatenación, es decir, junta los valores que haya a lado y lado de ella cuando se espera una cadena, por ejemplo: si la variable a contiene el valor 15, la siguiente expresión

‘El valor es: ‘, a, ‘$ incluido IVA’

  • dentro de un cuadro de salida debería mostrar en la pantalla lo siguiente:

‘El valor es: 15$ incluido IVA’

Tipos de datos

Las variables están asociadas a un nombre, un contenido y a un tipo de datos. De manera muy general, tipos de datos que tiene un programa son:

  • Numéricos: Los operadores numéricos son: ^, sqrt, *, /, +, –
  • Caracteres: letras, se exige que tengan comillas simples.
  • Valores lógicos: Los operadores lógicos son: =, ˂ ˃, ˂= =˃, verdadero/falso. Los operadores lógicos toman variables de cualquier tipo, las comparan y dan como resultado un valor verdadero o falso según el caso, por ejemplo si la variable a contiene el valor 15, la comparación a>18 se evaluaría a falso, ya que 15 no es mayor que 18.
  • Cadenas de caracteres (palabras): Series sucesivas de letras o números que están juntas dentro de comillas (simples, para DFD). Sobre las cadenas se pueden usar las funciones substring y len para obtener una sección de la cadena original en el primer caso y para obtener la longitud de la cadena en el segundo.

Dado que en un programa no se pueden escribir las expresiones como las escribimos los seres humanos, donde el orden del cálculo es evidente, en un PC la expresión se escribe secuencialmente, pero la evaluación secuencial daría como resultado cálculos extraños que no son equivalentes a los cálculos humanos, por lo tanto, existe un orden en el que se evalúan las expresiones en un PC. A tal orden se le llama precedencia de operadores, por ejemplo:

  1. ( )
  2. ^ sqrt
  3. * /
  4. + –

El orden de los operadores significa que cuando una expresión contiene paréntesis, el PC reduce todo lo que esté entre los mismos a un resultado intermedio antes de hacer el resto de la expresión, por otro lado si no existen éstos, el PC reduce cualquier potencia o raíz cuadrada a un resultado intermedio y si no existen éstos o ya se tiene el resultado intermedio, se hacen las multiplicaciones y divisiones (en el orden en el que estén) y finalmente si ya se han reducido todas las operaciones de mayor precedencia se resuelven las sumas y restas. Por ejemplo:

  • 1+2-3*4/5^6, sigue la siguiente secuencia de reducciones: 1+2-3*4/15625 luego 1+2-3*0.000256 luego 1+2-0.000768 luego 3-0.000768 dando como resultado 2.999232
  • 1*2-3+4^5/6, sigue la siguiente secuencia de reducciones: 1*2-3+1024/6 –> 2-3+170.6667 y finalmente daría como resultado final 169.6667
  • 1*2-(3+4)^(5/6), sigue la siguiente secuencia de reducciones: 1*2-7^0.83, luego 1*2-5.028, 2-5.028 y finalmente el resultado sería: -3.028

Verificación de resultados

Como ejemplo de la alteración del orden de los operadores, vimos que el programa para convertir temperaturas en ºC a ºF requiere un par de paréntesis para asegurarse de que el programa haga el cálculo correcto, es decir, una vez que el programa ha sido desarrollado, hay que establecer una serie de pruebas que verifiquen la exactitud del resultado que el programa calcula. Por ejemplo, si yo quiero hacer un programa para conversión de temperaturas, voy a usar un par de datos notables, por ejemplo que 0ºC son 32ºF, que 100ºC son 212ºF o que -40ºC son -40ºF (único caso), con éstos puedo verificar que el programa hace sus cálculos correctamente.

Fuentes adicionales:

Ejercicios/tarea:

A continuación, dejo propuestos algunos ejercicios para aplicar lo visto en clase, no olvide contextualizar perfectamente bien el propósito, indicaciones y resultados. Para los siguientes enunciados, hacer un programa en DFD que cumpla el propósito dado (consulte en Internet las fórmulas necesarias):

  1. Convertir medidas en pulgadas a centímetros.
  2. Convertir medidas en pies a kilómetros.
  3. Promediar tres (3) notas de una materia dada (pedir el nombre de la materia y mostrarlo en el contexto del resultado). Cada nota tiene el mismo peso en la nota definitiva.
  4. Convertir grados ºF (Fahrenheit) a ºC (centígrados).
  5. En un restaurante, se venden 3 tipos de productos, unos con 16% de IVA, otros con 10% de IVA y algunos sin IVA. Hacer un programa que pida los valores sin IVA de cada categoría de productos y calcule el valor total a cobrar.  Por ejemplo, si los productos con 16% de IVA costaron $1000, los de 10% costaron $500 y se compraron $50 en productos sin IVA, la cuenta total sería 1000*1.16+500*1.1+50 = 1760.
  6. Hallar las letras iniciales de un usuario a quien se le solicita el primer nombre y el primer apellido en variables separadas. Use el operador substring.
  7. Haga un programa que pida las longitudes de los lados perpendiculares de un triángulo rectángulo (catetos) medidos en centímetros y halle la longitud de la hipotenusa en centímetros. Por ejemplo, si los dos lados perpendiculares miden 10 cm y 15 cm, la hipotenusa mediría 18.02cm. La fórmula para hallar el resultado es el teorema de Pitágoras, consultelo en Internet. La raíz cuadrada de un número en DFD es sqrt(número o variable).
  8. Haga un programa que halle el perímetro de un triángulo rectángulo dados sus dos lados perpendiculares. Use el resultado del programa anterior.
Esta entrada ha sido publicada en clase y etiquetada como . Guarda el enlace permanente.

14 respuestas a Contexto en los resultados de un programa

  1. María Angélica P dijo:

    Entonces esta es la tarea para la siguiente clase… menos mal pude revisar el blog, porque sino tal vez estaría perdida en la próxima clase con respecto a los puntos por evaluar en la tarea.

  2. Hola Angélica,

    infortunadamente no pude publicar antes del Viernes, pero ése es el día de publicación. Voy a hacer lo posible para que así sea el resto del semestre.

    Gracias y hasta pronto.

  3. paola andrea roman dijo:

    hay no!! es que a mi ese programa no me descarga bien unos me dices q lo decomprima, otros que lo saque de la carpeta, no se que hacer…..
    solo se lo que he practicado en la clase no mas..
    ayuda!!

    • Hola Paola,

      en los enlaces que he dejado en el blog, en uno abre la página de la cual se descarga el programa y en el otro se descarga el archivo mismo. El archivo está comprimido en .zip, por lo que hay que descomprimirlo (preferiblemente en un lugar que no se te olvide), allí queda una carpeta llena de un montón de archivos y tres de ellos son ejecutables (con el ícono del programa): dfd-english.exe, dfd-espanol.exe y dfd-portuges.exe, adivina cuál debes usar 😉

      Gracias y hasta pronto.

  4. Christian Niño Posada dijo:

    Buenas tardes 🙂

    Profe, le informo que no me llegó el correo que usted envió con el link de este resumen y con el trabajo para el día de mañana. Sin embargo, le pedí a una compañera que me enviara el correo.

    Espero que revise bien, porque me preocupa no recibir ningún correo suyo.

    • Hola Christian,

      le recuerdo que en la última clase verificamos que el correo que tengo en la lista sí es el correcto y, adicionalmente, lo acabo de volver a verificar con la dirección que dejó en este comentario. Por favor, revise que no estén quedando en el SPAM.

      Gracias y hasta pronto.

  5. María Angélica P dijo:

    Una pequeña inquietud que salió de la nada…¿La tarea es calificada en la clase?… es demasiado tarde para realizar esa pregunta o es para practicar en casa lo visto en la clase… bueno de todos modos intentare llevar algo que recompense lo aprendido.

    Por favor… díganme que solo es una práctica.

  6. Christian Niño dijo:

    Profe, revisé contadas ocasiones en SPAM, y no aparece ningún correo electrónico. Ni en bandeja de entrada, ni en papelera…

    No me llegan sus correos :S

    • Hola Christian,

      efectivamente, los correos de la Universidad que no provienen de cuentas de la universidad misma están rebotando. Ya hablé con el administrador y no me dijo cuándo se soluciona, por lo pronto me gustaría que me dieras otro correo que no sea de la Universidad.

      Gracias y hasta pronto.

  7. paola andrea roman dijo:

    hay vamos poco a poco pues en la clase de estos momentos la verdad el profe si se ha detenido mas para quienes no entendemos y asi se me facilita ufff, casi q no ..

Deja una respuesta