Constantes y variables
Los programas de computadora contienen ciertos valores que no deben cambiar durante su ejecución. Tales valores se llaman constantes. De igual forma, existen otros valores que cambiarán durante la ejecución del programa; a estos valores se les llama variables. Una constante es un dato que permanece sin cambios durante todo el desarrollo del algoritmo o durante la ejecución del programa.
Constantes reales válidas
1.234
–0.1436
Constantes reales en notación científica
3.374562E equivale a 3.374562 × 102
Una constante tipo carácter o constante de caracteres consiste en un carácter válido encerrado dentro de apóstrofos; por ejemplo, 'B' '+' '4' ';'
Constantes lógicas (boolean)
Sólo existen dos constantes lógicas o boolean: verdadero falso
La mayoría de los lenguajes de programación permiten diferentes tipos de constantes: enteras, reales, caracteres y boolean o lógicas, y representan datos de esos tipos.
Una variable es un objeto o tipo de datos cuyo valor puede cambiar durante el desarrollo del algoritmo o ejecución del programa. Dependiendo del lenguaje, hay diferentes tipos de variables, tales como enteras, reales, carácter, lógicas y de cadena. Una variable que es de un cierto tipo puede tomar únicamente valores de ese tipo. Una variable de carácter, por ejemplo, puede tomar como valor sólo caracteres, mientras que una variable entera puede tomar sólo valores enteros.
Si se intenta asignar un valor de un tipo a una variable de otro tipo se producirá un error de tipo.
Una variable se identifica por los siguientes atributos: nombre que lo asigna y tipo que describe el uso de la variable.
Los nombres de las variables, a veces conocidos como identificadores, suelen constar de varios caracteres alfanuméricos, de los cuales el primero normalmente es una letra. No se deben utilizar como nombres de identificadores palabras reservadas del lenguaje de programación.
A510 NOMBRES Letra SalarioMes
NOTAS Horas SegundoApellido
NOMBRE _APELLIDOS2 Salario Ciudad
Los nombres de las variables elegidas para el algoritmo o el programa deben ser significativos y tener relación con el objeto de que representan, como pueden ser los casos siguientes:
NOMBRE para representar nombres de personas
PRECIOS para representar los precios de diferentes artículos
NOTAS para representar las notas de una clase
Existen lenguajes en los que es posible darles nombre a determinadas constantes típicas utilizadas en cálculos matemáticos, financieros, etc. Por ejemplo, las constantes 𝜋 = 3.141592... y 𝒆 = 2.718228 (base de los logaritmos naturales) se les pueden dar los nombres PI y E (Joyanes Aguilar, Fundamentos de Programación. Algoritmos, estructura de datos y objetos, 2008, pág. 94).
PI = 3.141592
E = 2.718228
Fases en la resolución de problemas
El proceso de resolución de un problema con una computadora conduce a la escritura de un programa y a su ejecución en la misma. Aunque el proceso de diseñar programas es, esencialmente, un proceso creativo, se puede considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programadores.
• Análisis del problema
• Diseño del algoritmo
• Codificación
• Compilación y ejecución
• Verificación
• Depuración
• Mantenimiento
• Documentación
Las características más sobresalientes de la resolución de problemas son:
- Análisis: el problema se analiza teniendo presente la especificación de los requisitos dados por el cliente de la empresa o por la persona que encarga el programa.
- Diseño: una vez analizado el problema, se diseña una solución que conducirá a un algoritmo que resuelva el problema.
- Codificación (implementación): la solución se escribe en la sintaxis del lenguaje de alto nivel (por ejemplo, C++, C# .NET, Java, Basic .NET) y se obtiene un programa fuente que se compila a continuación.
- Ejecución, verificación y depuración: el programa se ejecuta, se comprueba rigurosamente y se eliminan todos los errores (denominados “bugs”, en inglés) que puedan aparecer.
- Mantenimiento: el programa se actualiza y modifica, cada vez que sea necesario, de modo que se cumplan todas las necesidades de cambio de sus usuarios.
- Documentación: escritura de las diferentes fases del ciclo de vida del software, esencialmente el análisis, diseño y codificación, unidos a manuales de usuario y de referencia, así como normas para el mantenimiento.
Las fases de compilación y ejecución traducen y ejecutan el programa. En las fases de verificación y depuración el programador busca errores de las etapas anteriores y los elimina. Comprobará que mientras más tiempo se gaste en la fase de análisis y diseño, menos se gastará en la depuración del programa. Por último, se debe realizar la documentación del programa.
Antes de conocer las tareas a realizar en cada fase, se considera el concepto y significado de la palabra algoritmo.
La palabra algoritmo se deriva de la traducción al latín de la palabra Alkhôwarîzmi2, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX. Un algoritmo es un método para resolver un problema mediante una serie de pasos precisos, definidos y finitos (Joyanes Aguilar, 2008, pág. 46).
Características de un algoritmo
• Preciso: indica el orden de realización en cada paso
• Definido: si se sigue dos veces, obtiene el mismo resultado cada vez
• Finito: tiene fin; un número determinado de pasos
Ejemplos de algoritmos son: instrucciones para montar en una bicicleta, hacer una receta de cocina, obtener el máximo común divisor de dos números, etc. Los algoritmos se pueden expresar por fórmulas, diagramas de flujo o N-S y pseudocódigos. Esta última representación es la más utilizada para su uso con lenguajes estructurados como Pascal.
ALGORITMOS QUE UTILIZAMOS A DIARIO
En nuestra vida diaria utilizamos algoritmos para hacer las cosas de manera lógica y organizada. Por ejemplo si vamos en un auto y la llanta se pincha realizaremos los siguientes pasos:
- Inicio
- Detener el auto y apagarlo
- Sacar las herramientas y la llanta de repuesto
- Aflojar las tuercas que aseguran las llantas
- Levantar el auto con la gata
- Terminar de sacar las tuercas
- Retirar la llanta pinchada
- Colocar la llanta de repuesto
- Colocar nuevamente las tuercas
- Bajar el auto de la gata
- Asegurar las tuercas
- Guardar las herramientas y la llanta pinchada
- Fin
ACTIVIDAD
Elabora un algoritmo con los pasos que debes realizar para ir al colegio.
Elabora un algoritmo para organizar una fiesta de 15 años.
Análisis del problema
La primera fase de la resolución de un problema con computadora es el análisis del problema. Esta fase requiere una clara definición, donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada.
Según (Joyanes Aguilar, 2008), para poder identificar y definir bien un problema es conveniente responder a las siguientes preguntas:
• ¿Qué entradas se requieren? (tipo de datos con los cuales se trabaja y cantidad).
• ¿Cuál es la salida deseada? (tipo de datos de los resultados y cantidad).
• ¿Qué método produce la salida deseada?
• Requisitos o requerimientos adicionales y restricciones a la solución.
Diseño del algoritmo
En la etapa de análisis del proceso de programación se determina qué hace el programa. En la etapa de diseño se determina cómo hace el programa la tarea solicitada. Los métodos más eficaces para el proceso de diseño se basan en el conocido divide y vencerás. Es decir, la resolución de un problema complejo se realiza dividiendo el problema en subproblemas y a continuación dividiendo estos
subproblemas en otros de nivel más bajo, hasta que pueda ser implementada una solución en la computadora. Este método se conoce técnicamente como diseño descendente (top- down) o modular. El proceso de romper el problema en cada etapa y expresar cada paso en forma más detallada se denomina refinamiento sucesivo.
El proceso que convierte los resultados del análisis del problema en un diseño modular con refinamientos sucesivos que permitan una posterior traducción a un lenguaje se denomina diseño del algoritmo.
Herramientas de programación
Las dos herramientas más utilizadas comúnmente para diseñar algoritmos son: diagramas de flujo y pseudocódigos.
Un diagrama de flujo (flowchart) es una representación gráfica de un algoritmo. Los símbolos utilizados han sido normalizados por el Instituto Norteamericano de Normalización (ANSI), y los más frecuentemente empleados se muestran en la Figura 2.2, junto con una plantilla utilizada para el dibujo de los diagramas de flujo (Figura 2.3). En la Figura 2.4., se representa el diagrama de flujo que resuelve el Problema 2.1.
El pseudocódigo es una herramienta de programación en la que las instrucciones se escriben en palabras similares al inglés o español, que facilitan tanto la escritura como la lectura de programas. En esencia, el pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos.
Algoritmo
1. Leer Horas, Tarifa, Tasa
2. Calcular PagaBruta = Horas * Tarifa
3. Calcular Impuestos = PagaBruta * Tasa
4. Calcular PagaNeta = PagaBruta - Impuestos
5. Visualizar PagaBruta, Impuestos, PagaNeta
Codificación de un programa
La codificación es la escritura en un lenguaje de programación de la representación del algoritmo desarrollada en las etapas precedentes. Dado que el diseño de un algoritmo es independiente del lenguaje de programación utilizado para su implementación, el código puede ser escrito con igual facilidad en un lenguaje o en otro.
Para realizar la conversión del algoritmo en programa se deben sustituir las palabras reservadas en español por sus homónimos en inglés, y las operaciones/instrucciones indicadas en lenguaje natural por el lenguaje de programación correspondiente.
{Este programa obtiene una tabla de depreciaciones acumuladas y valores reales de cada año de un determinado producto}
algoritmo primero
real Coste, Depreciacion, Valor_Recuperacion, Valor_Actual, Acumulado Valor_Anual:
entero Año, Vida_Util;
inicio
escribir('introduzca coste, valor recuperación y vida útil')
leer(Coste, Valor_Recuperacion, Vida_Util)
escribir('Introduzca año actual')
leer(Año)
Valor_Actual ← Coste;
Depreciacion ← (Coste-Valor_Recuperacion)/Vida_Util
Acumulado ← 0
escribir('Año Depreciación Dep. Acumulada')
mientras (Año < Vida_Util)
Acumulado ← Acumulado + Depreciacion
Valor_Actual ← Valor_Actual – Depreciacion
escribir('Año, Depreciacion, Acumulado')
Año ← Año + 1;
fin mientras
fin
Compilación y ejecución de un programa
Una vez que el algoritmo se ha convertido en un programa fuente, es preciso introducirlo en memoria mediante el teclado y almacenarlo posteriormente en un disco. Esta operación se realiza con un programa editor. Posteriormente el programa fuente se convierte en un archivo de programa que se guarda (graba) en disco.
El programa fuente debe ser traducido a lenguaje máquina, este proceso se realiza con el compilador y el sistema operativo que se encarga prácticamente de la compilación.
Si tras la compilación se presentan errores (errores de compilación) en el programa fuente, es preciso volver a editar el programa, corregir los errores y compilar de nuevo. Este proceso se repite hasta que no se producen errores, obteniéndose el programa objeto que todavía no es ejecutable directamente.
Suponiendo que no existen errores en el programa fuente, se debe instruir al sistema operativo para que realice la fase de montaje o enlace (link), carga, del programa objeto con las bibliotecas del programa del compilador. El proceso de montaje produce un programa ejecutable. La Figura 2.5 describe el proceso completo de compilación/ejecución de un programa.
Una vez que el programa ejecutable se ha creado, ya se puede ejecutar (correr o rodar) desde el sistema operativo. Suponiendo que no existen errores durante la ejecución (llamados errores en tiempo de ejecución), se obtendrá la salida de resultados del programa.
Verificación y depuración de un programa
La verificación o compilación de un programa es el proceso de ejecución del programa con una amplia variedad de datos de entrada, llamados datos de test o prueba, que determinarán si el programa tiene o no errores (“bugs”). Para realizar la verificación se debe desarrollar una amplia gama de datos de test: valores normales de entrada, valores extremos de entrada que comprueben los límites del programa y valores de entrada que comprueben aspectos especiales del programa.
La depuración es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores.
Cuando se ejecuta un programa, se pueden producir tres tipos de errores:
1. Errores de compilación. Se producen normalmente por un uso incorrecto de las reglas del lenguaje de programación y suelen ser errores de sintaxis. Si existe un error de sintaxis, la computadora no puede comprender la instrucción, no se obtendrá el programa objeto y el compilador imprimirá una lista de todos los errores encontrados durante la compilación.
2. Errores de ejecución. Estos errores se producen por instrucciones que la computadora puede comprender, pero no ejecutar. Ejemplos típicos son: división por cero y raíces cuadradas de números negativos. En estos casos se detiene la ejecución del programa y se imprime un mensaje de error.
3. Errores lógicos. Se producen en la lógica del programa y la fuente del error suele ser el diseño del algoritmo. Estos errores son los más difíciles de detectar, ya que el programa puede funcionar y no producir errores de compilación ni de ejecución, y sólo puede advertirse el error por la obtención de resultados incorrectos. En este caso se debe volver a la fase de diseño del algoritmo, modificar el algoritmo, cambiar el programa fuente y compilar y ejecutar una vez más.
Documentación y mantenimiento
La documentación de un programa puede ser interna y externa.
La documentación interna es la que se incluye dentro del código del programa fuente mediante comentarios que ayudan a la comprensión del código. El programa no los necesita y la computadora los ignora. Estas líneas de comentarios sólo sirven para hacer los programas más fáciles de comprender. El objetivo del programador debe ser escribir códigos sencillos y limpios.
La documentación externa incluye análisis, diagramas de flujo y/o pseudocódigos, manuales de usuario con instrucciones para ejecutar el programa y para interpretar los resultados.
La documentación es vital cuando se desea corregir posibles errores futuros o bien cambiar el programa. Tales cambios se denominan mantenimiento del programa. Después de cada cambio la documentación debe ser actualizada para facilitar cambios posteriores. Es práctica frecuente numerar las sucesivas versiones de los programas 1.0, 1.1, 2.0, 2.1, etc. (Si los cambios introducidos son
importantes, se varía el primer dígito [1.0, 2.0,...]; en caso de pequeños cambios sólo se varía el segundo dígito [2.0, 2.1…].) (Joyanes Aguilar, 2008, pág. 53)
ACTIVIDADES
- Realiza un organizador gráfico acerca de las Constantes y variables.
- Sintetiza las fases en la resolución de problemas elaborando un cartel o una tabla.
Para conocer más sobre este tema revisa los siguientes videos:
https://youtu.be/eoTravXOsTk
https://youtu.be/60jx0tDRnYA
No hay comentarios.:
Publicar un comentario