2. 5.1. COMPUTABILIDAD Y CONCEPTO DE
ALGORITMO : MAQUINA DE TURING
Existieron varios intentos de formalizar la noción de procedimiento efectivo, pero
el primero en ser aceptado se llevó a cabo por Alan Turing en los años 30, dando
como resultado la máquina de Turing; la importancia de este trabajo, radica en
que es el primer análisis general para comprender como es que se realiza un
cálculo, y condujo a una abstracción convincente y ampliamente aceptada del
concepto de procedimiento efectivo.
Es importante mencionar que el análisis de Turing fue hecho antes de la
invención de las calculadoras de escritorio y que sus resultados condujeron más
o menos de forma directa a la invención de la computadora digital de John
von Neumann en los años 40, una máquina que básicamente tiene la misma
arquitectura que las computadoras actuales.
Además, es importante notar que para Turing una “computadora” es una
persona que resuelve un problema computacional en una forma mecánica y no
se refiere a una máquina.
4. 5.1. COMPUTABILIDAD Y CONCEPTO DE
ALGORITMO : MAQUINA DE TURING
Una máquina de Turing consiste de una cabeza de
lectura/escritura y una cinta infinita dividida en
cuadros como lo muestra la figura. Cada celda de la
cinta puede estar en blanco o tener almacenado un
símbolo de un alfabeto finito de símbolos. La cinta
puede estar inicialmente vacía (todas las celdas en
blanco), o tener un número finito de celdas que
contienen algún símbolo. En cualquier momento, la
cabeza puede leer el contenido de la celda y
posteriormente borrar el símbolo, dejarlo igual ó
sustituirlo con algún otro símbolo. Después, la
cabeza puede moverse una posición a la derecha,
una posición a la izquierda ó quedarse en la misma
posición. Si la celda se encuentra vacía, la cabeza
puede dejarla vacía o grabar algún símbolo.
5. 5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE DATOS
Los algoritmos permiten encontrar la solución a
problemas computables.
Intuitivamente las personas efectuamos cotidianamente una
serie de pasos, procedimientos o acciones que nos permitan
alcanzar algún resultado o resolver un problema (al bañarnos, al
desayunar, al ir a la universidad). En realidad todo el tiempo
estamos aplicando algoritmos para resolver problemas.
6. 5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE DATOS
Un algoritmo es una lista bien definida, ordenada y
finita de operaciones que permite hallar la solución a
un problema.
Dado un estado inicial y una entrada, a través de
pasos sucesivos y bien definidos se llega a un estado
final, obteniendo una solución.
7. 5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE DATOS
Etapas o pasos para la creación de un programa
1.Definición del problema. La cual deberá ser clara y precisa.
2.Análisis del problema:
a)
b)
c)
Inf. que se necesita para obtener el resultado seseado (datos de entrada).
Inf. que se desea producir (datos de salida).
Métodos y fórmulas para procesar datos y producir esa salida.
3.Diseño y técnicas para la formulación de un algoritmo.
Se centra en desarrollar el algoritmo basándonos en las
especificaciones de la etapa del análisis y esto lo haremos mediante
un diagrama de flujo o un pseudocódigo.
8. 5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE DATOS
4. Codificación. Se transcribe el algoritmo definido en la etapa
de diseño e algún lenguaje de programación al cual se le conoce
como código fuente.
5. Prueba y depuración. Consiste en capturar datos hasta que
el programa funcione correctamente. A la actividad de localizar
errores se le llama depuración . Existen dos tipos de sintaxis de
y de lógica.
a)
Sintaxis: es la prueba más sencilla y la realiza el compilador del
programa cada vez que se ejecuta el programa hasta que el código no
presente errores , es decir que la sintaxis que requiere el lenguaje sea la
correcta.
b)
Prueba lógica: Es la más complicada por que esta la realiza e
programador; consiste en la captura de diferentes valores y revisar que el
resultado sea el deseado.
9. 5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE DATOS
6. Documentación. Es la guía o comunicación que
permite al programador o al usuario conocer la
funcionalidad del programa:
a)
Interna: Se genera con el mismo código y generalmente es mediante
comentarios.
b)
Externa: Son los manuales es independiente del programa. También
puede ser la ayuda en el mismo sw.
7. Mantenimiento. En algunas ocasiones será necesario
realizarle al programa ciertas modificaciones o ajustes para que siga
funcionando perfectamente.
10. 5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE DATOS
Reglas de los algoritmos:
› Preciso: implica el orden de realización de cada uno de los pasos
› Definido: si se sigue dos veces, se obtiene el mismo resultado.
› Finito: Tiene un numero determinado de pasos, implica que tiene un
fin
› Correcto.
› Debe tener al menos una salida.
› Debe ser sencillo y legible.
11. 5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE DATOS
La solución de un problema complejo puede requerir muchos
pasos, es necesario dividir el problema en sub problemas más
sencillos de resolver.
• Este método se denomina divide y vencerás y es aplicable a la resolución y
escritura de algoritmos y programas para computadora.
• Este método de división de un problema en otros sub problemas más
sencillos se puede expresar para conseguir su solución en una computadora,
mediante el método denominado diseño descendente.
• El proceso de la rotura de un problema principal en etapas o
subproblemas más sencillos se denomina refinamiento paso a
paso o sucesivos.
12. 5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE DATOS
Problema del
cálculo
Del área del
rectángulo
Entrada
de
Datos
Entrad
a altura
Entrad
a base
Calculo
del area
Area =
base x
altura
Salida del
resultado
Salida
Altura
Salida
Base
Salida
Area
13. 5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE DATOS
TIPOS DE ALGORITMOS
Cualitativos.
Son aquellos en los que se describen los pasos
utilizando palabras.
Ejemplos:
La elaboración de un a receta
Búsqueda de un número telefónico
El cambio de una llanta
14. 5.2. ELEMENTOS DE LOS
ALGORITMOS Y TIPOS DE DATOS
Cuantitativos
Son aquellos en los que se utilizan cálculos numéricos para
definir los pasos del proceso.
Ejemplos:
›
›
›
Pasos a seguir para resolver una ecuación de segundo grado.
Pasos a seguir para calcular los sueldos de los empleados de
una empresa.
Instrucciones para calcular los impuestos a pagar de los
vecinos de un municipio.
15. 5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE FLUJO Y
PSEUDOCÓDIGO)
Pseudocódigo
Es la combinación del lenguaje natural, símbolos, términos utilizados
dentro de la programación.
Algoritmo para calcular el área de un triángulo
1. Inicio.
2. Solicitar y leer los datos (base y altura)
3. A=(bxh)/2
4. Mostrar A
5. Fin
17. 5.3. REPRESENTACIÓN DE LOS ALGORITMOS
(DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
Definir si un numero es positivo o negativo
1.Inicio
2.escribir "introduce un número: "
3. leer número
4. si número >= 0 entonces
5. escribir "es positivo"
6. sino
7. escribir "es negativo"
8. fin si
9.fin
18. 5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE FLUJO Y
PSEUDOCÓDIGO)
1.Inicio
2.ESCRIBIR "Introduce un número: "
3. LEER numero
4. SI (numero mod 2=0) ENTONCES
5. ESCRIBIR "es par"
6. SINO
7. ESCRIBIR "es impar"
8. FIN SI
9.FIN PROGRAMA
19. 5.3. REPRESENTACIÓN DE LOS ALGORITMOS
(DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
Diagramas de flujo
Los diagramas de flujo son una manera de representar
visualmente el flujo de datos a través de sistemas de
tratamiento de información. Los diagramas de flujo
describen que operaciones y en que secuencia se
requieren para solucionar un problema dado.
20. 5.3. REPRESENTACIÓN DE LOS
ALGORITMOS (DIAGRAMA DE FLUJO Y
PSEUDOCÓDIGO)
›Todo diagrama debe tener un inicio y un
fin.
Se deben se usar solamente líneas de flujo
horizontales y/o verticales.
›Se debe evitar el cruce de líneas utilizando
los conectores.
Se deben usar conectores solo cuando sea
necesario.
No deben quedar líneas de flujo sin
conectar.
›Se deben trazar los símbolos de manera que
se puedan leer de arriba hacia abajo y de
›
›
›
21. 5.3. REPRESENTACIÓN DE LOS ALGORITMOS
(DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
›Todo texto escrito dentro de un símbolo
deberá ser escrito claramente, evitando el
uso de muchas palabras.
Evitar la terminología de un lenguaje de
programación o máquina.
Utilizar comentarios ya sea al margen o
mediante el símbolo grafico comentarios
para que este sea entendible por cualquier
persona que lo consulte.
Si el diagrama abarca mas de una hoja es
conveniente enumerarlo e identificar de
donde viene y a donde se dirige.
›
›
›
22.
23. 5.3. REPRESENTACIÓN DE LOS ALGORITMOS
(DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
Diagrama de flujo para
obtención del área del
triángulo
26. 5.3. REPRESENTACIÓN DE LOS ALGORITMOS
(DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
Diagrama de flujo para
obtención del mayor de dos
números
27. 5.3. REPRESENTACIÓN DE LOS ALGORITMOS
(DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
Números pares o impares
1.Inicio
2.ESCRIBIR "Introduce un número: "
3. LEER numero
4. SI (x mod 2=0) ENTONCES
5. ESCRIBIR "es par"
6. SINO
7. ESCRIBIR "es impar"
28. 5.3. REPRESENTACIÓN DE LOS ALGORITMOS
(DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
Area del circlo y volumen con el
mismo radio
1.Inicio
2.cte pi 3.1416
3.Principal ()
4.Inicio
5.real r, area, vol
6.Imprimir “area y volumen de un esfera en
cm”
7.Imprime “Dame el radio”
8.Leer radio
9.area = pi *r*r
10.Imprimir “Area del circulo es =”, area
29. 5.3. REPRESENTACIÓN DE LOS ALGORITMOS
(DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
Imprimir si la persona es niño, adolescente, adulto o anciano.
a)0 a 12 es niño
b)13 a 17 es adolescente
c)18 a 80 es adulto
d)Mayor a 80 es anciano
30. 5.3. REPRESENTACIÓN DE LOS ALGORITMOS
(DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
Inicio
Entero edad
imprimir “Dame tu edad”
leer edad
Si (edad<=12)
imprimir “niño”
Si no
si (edad<=17)
imprimir “adolescente”
Si no
si (edad<=80)
imprimir “adulto”
Si no
32.
5.3. REPRESENTACIÓN DE LOS ALGORITMOS
(DIAGRAMA DE FLUJO Y PSEUDOCÓDIGO)
Mostrar los primeros 10 números positivos
Inicio
Entero i
i=1
Mientras (i<=10)
Inicio
Imprimir i
i=i+1
Fin
Fin