Escolar Documentos
Profissional Documentos
Cultura Documentos
Herramientas de
Programación 9°
CTP San Rafael de Poás, Alajuela
Concepto de algoritmo.
Un Algoritmo, se puede definir como una secuencia de instrucciones que representan un modelo de solución
para determinado tipo de problemas. O bien como un conjunto de instrucciones que realizadas en orden
conducen a obtener la solución de un problema. Por lo tanto podemos decir que es un conjunto ordenado y
finito de pasos que nos permite solucionar un problema.
¿Qué es un programa?
Un programa es una serie de instrucciones ordenadas, codificadas en lenguaje de programación que expresa
un algoritmo y que puede ser ejecutado en un computador.
¿Qué es un lenguaje de programación?
Un lenguaje de programación" es un lenguaje diseñado para describir el conjunto de acciones consecutivas que
un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres
humanos puedan dar instrucciones a un equipo.
Los algoritmos son independientes de los lenguajes de programación. En cada problema el algoritmo puede
escribirse y luego ejecutarse en cualquier lenguaje de programación. El algoritmo es la infraestructura de
cualquier solución, escrita luego en cualquier lenguaje de programación para luego convertirse en un programa.
Partes de un algoritmo.
Técnicas de representación.
Para la representación de un algoritmo, antes de ser convertido a lenguaje de programación, se utilizan algunos
métodos de representación escrita, gráfica o matemática. Los métodos más conocidos son:
Diagramación libre (Diagramas de flujo).
Diagramas Nassi-Shneiderman.
Pseudocódigo.
Lenguaje natural (español, inglés, etc.).
Fórmulas matemáticas.
Diseño de algoritmos.
Con el fin de resolver un problema utilizando un sistema de cómputo, debe seguirse una serie de pasos que
permiten avanzar por etapas bien definidas hacia la solución y ejecución de la misma. Esta serie de fases o
pasos deben seguirlas todos los programadores.
Estas etapas son las siguientes:
Definición del problema.
La primera fase en la resolución de un problema por computadora es la definición o análisis del problema. En
donde lo más importante es que conozcamos exactamente lo que debe hacer el programa y "que se desea
obtener al final del proceso”
Para poder definir con precisión el problema se requiere que las especificaciones de entrada y salida sean
descritas con detalle ya que esto es un requisito para lograr una solución eficaz; por lo que es conveniente
hacerse las siguientes preguntas:
¿Qué entradas se requieren? (Tipo Y Cantidad)
¿Cuál es la salida deseada? (Tipo Y Cantidad)
¿Qué método produce la salida deseada?
Análisis de los datos.
Una vez que el problema ha sido definido y comprendido, deben analizarse los siguientes aspectos:
Los resultados esperados.
Los datos disponibles.
Herramientas a nuestro alcance para manipular los datos y alcanzar un resultado.
Esta sería un diagrama de la resolución de un problema en su más mínima expresión. Y mientras esto no se
comprenda no puede pasarse a la siguiente etapa.
Diseño de la solución.
Como todos sabemos, una computadora no tiene capacidad para solucionar problemas más que cuando se le
proporcionan los sucesivos pasos a realizar, esto se refiere a la obtención de un algoritmo que resuelva
adecuadamente el problema.
En caso de que obtengamos varios algoritmos, seleccionaremos uno de ellos utilizando criterios ya conocidos.
Codificación.
Si tras la compilación (prueba) 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.
La Depuración es el proceso de encontrar los errores del programa y corregir o eliminar dichos errores.
Solución de problemas.
Objetivo:
Aplicar los conceptos básicos de diagramas de flujo estructurado como herramienta para resolución de
problemas.
Diagramas de flujo.
Asignación.
Esta instrucción asigna valor a un identificador, cuando se ejecuta una instrucción de proceso se almacena
el valor asignado en la localidad de memoria reservada para el identificador.
Identificador = valor
Ejemplo: Edad = 19
Nombre = ‘Jorge’
Edad = 19
Nombre = ´Jorge´
Lectura
Se define la instrucción Leer para indicar que se debe enviar información desde un dispositivo de entrada de
datos, como el teclado, hacia la memoria. En la memoria los datos serán ubicados a través de su nombre o
identificador asignado.
Leer identificador
Ejemplo:
edad, nombre
Leer edad
Leer nombre
Escribir
Se define la instrucción Escribir para indicar que se va a enviar información desde la memoria hacia un
dispositivo de salida de datos, como la impresora o la pantalla del monitor.
Pseudocódigo Diagrama de flujo
Escribir edad
Escribir nombre, color
Estructuras de decisión
Esta estructura se construye de modo a que se ejecuten o se omitan algunas instrucciones dependiendo del
cumplimiento de una condición; el resultado de evaluar la condición puede tomar un valor lógico verdadero o
falso (V ó F).
La condición puede ser una expresión relacional (por ejemplo a>o) o una expresión lógica (por ejemplo a>b y
b>c), que se construyen utilizando operadores relacionales (>, <, =, =, =, ?) y operadores lógicos (y, o, negación)
Decisión simple
Una decisión es simple, cuando sólo se tiene un curso de acción para el caso que el resultado de evaluar la
condición sea verdadero; es decir que si la condición es verdadera se debe de ejecutar la instrucción o el
conjunto de instrucciones que se indique, y si la condición es falsa se omite la ejecución de dicha instrucción o
conjunto de instrucciones.
Si <condición>
Entonces
<Instrucciones>
Fin_si F
Edad
Ejemplo: >= 18
Una decisión es doble cuando se tiene un curso de acción para el caso que el resultado de evaluar la
condición sea verdadero y otro para cuando sea falso.
Si <condición>
Entonces
<Instrucciones>
Si no F
<Instrucciones> Edad
Fin_si >= 18
Ejemplo: V
Se recomienda mantener uniforme el tamaño de los símbolos, por lo que el texto que se escribe dentro no
debe ser muy extenso, recuérdese que el propio símbolo indica la operación a realizar. La forma en que se
capturan los datos de entrada o se muestran los datos de salida se detallarán al codificar el algoritmo en el
lenguaje de programación.
Se desea crear un algoritmo que calcule la nota de un examen y me muestre un mensaje con el siguiente
formato: El estudiante xxxxxxx obtuvo una nota de xxxx.
- Entender el problema.
Para determinar la secuencia de instrucciones que deben constituir el algoritmo, es importante entender el
problema que se pretende resolver, para asegurarse que entiende el problema el programador debe resolverlo
con papel, lápiz grafito y borrador procurando hacer varios ejercicios de aplicación, generalmente se
encuentran diferentes formas de resolver el problema, por lo que se debe seleccionar la mejor alternativa de
solución.
- Declaración de datos.
Una vez seleccionada la mejor alternativa debe hacerse la declaración de datos, para ello los datos se
clasificarán de la siguiente manera:
Datos de Entrada: Los datos que se suministran.
Datos de Salida: los datos o resultados que se esperan.
Datos de proceso: estos son posiciones de memoria donde se almacenaran resultados de cálculos
intermedios, necesarios para obtener los datos de salida.
El problema anterior se clasifica de la siguiente manera:
Entradas:
Nombre del estudiante, puntos obtenidos, puntos que vale la prueba.
Salidas:
El estudiante xxxxxxx obtuvo una nota de xxxx.
Procesos:
Calcular la nota de la prueba utilizando la siguiente fórmula: Nota = (Puntos obtenidos * 100)/ valor de la
prueba
- Prueba de escritorio.
Se debe ejecutar el algoritmo con diferentes datos de entrada para verificar si se obtienen los datos de salida
esperados, en caso contrario se procede a hacer las modificaciones necesarias al algoritmo.
Por ejemplo para este problema se elige un identificador para cada dato de entrada que serían: Nombre,
Puntobte, Valprueba.
Los identificadores son nombres representativos que se utilizan dentro de los DFDs. Solo falta colocar valores
a cada identificar y probar los resultados.
Nombre = ‘Jorge’
Puntobte = 45
Valprueba = 50
Inicio
Nombre, puntobte,
valpruena
Inicio
Leer Nombre, Puntobte, Valprueba
Nota = (puntobte * 100) / Valprueba
Escribir ‘El estudiante ‘, Nombre,’ obtuvo una nota de ‘, nota
Fin
Si utilizamos los datos anteriores el mensaje fina del programa sería el siguiente: El estudiante Jorge obtuvo
una nota de 90.
A continuación se suministrará una serie de tablas que serán de ayuda durante el curso de algoritmos.
OPERADORES LÓGICOS