Contenido
MDULO N 1: Algoritmos.
1.1. Terminologa empleada en algoritmos.
1.1.1. Definicin de problema.
1.1.2. Definicin de algoritmo.
1.1.3. Caractersticas de los algoritmos.
1.1.4. Entidades Primitivas para el Desarrollo
de Algoritmos.
1.1.4.1. Tipos de datos.
1.4.1.2. Expresiones.
1.4.1.3. Operadores y Operandos.
1.2. Metodologa de solucin de problemas.
1.2.1. Definicin del Problema.
1.2.2. Anlisis de Problema.
1.2.3. Diseo del Algoritmo.
1.2.4. Codificacin del Programa.
1.2.5. Prueba y Depuracin.
1.2.6. Documentacin.
1.2.7. Mantenimiento.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.1. Terminologa empleada en algoritmos.
Asignacin N 1: Realizar un Wiki con los siguientes Trminos:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Acumulador.
Algoritmo.
Aplicacin.
Bandera.
Bucle.
Condicin Mltiple.
Condicin Simple.
Conector.
Constante.
Contador.
Dato.
Datos Alfabticos.
Datos Alfanumricos.
Datos Lgicos.
Datos Numricos.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Declaracin.
Diagrama de Flujo.
Hardware.
Operadores Lgicos.
Operadores Relacionales.
Palabra Reservada.
Proceso.
Programa.
Pseudocdigo.
Salida.
Software.
Valor.
Variable de Trabajo.
Variable.
Nota: Utilice el sitio http://www.wikispaces.com/ u otro sitio en internet donde pueda hacerlo.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.1.1 Definicin de problema:
La solucin a la medida de un problema por computadora, requiere como en otras disciplinas de una
metodologa que nos ensee de manera gradual, la forma de llegar a estas soluciones. La Metodologa para
la solucin de Problemas por computadora establece 7 pasos, dispuestos de tal forma que cada uno es
dependiente de los anteriores, lo cual indica que se trata de un proceso complementario y por lo tanto cada
paso exige el mismo cuidado en su elaboracin.
1.
2.
3.
4.
5.
Prueba y depuracin.
6.
Documentacin.
7.
Mantenimiento.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.1.2 Definicin de algoritmo.
Un algoritmo se define como un mtodo que se realiza paso a
paso para solucionar un problema que termina en un nmero
finito de pasos.
Es un conjunto de instrucciones o reglas bien definidas,
ordenadas y finitas que permite realizar una actividad mediante
pasos sucesivos que no generen dudas a quien lo ejecute. Los
Algoritmos tienen un inicio y una entrada, siguiendo los pasos
sucesivos por lo general ocurre un proceso y finalmente se
obtiene una salida o una solucin del problema.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.1.3 Caractersticas de los algoritmos.
Debe ser preciso. e indicar el orden de realizacin de cada
paso.
Debe ser definido. Si se sigue un algoritmo dos veces, se
debe obtener el mismo resultado cada vez.
Debe ser finito. Si se sigue un algoritmo, se debe terminar
en algn momento ; o sea debe tener un nmero finito de
pasos.
Debe describir tres partes : Entrada, Proceso y Salida.
Debe ser Sencillo , Legible.
Debe ser Modular.
Debe ser Eficiente y Efectivo.
Debe desarrollarse en el menor tiempo posible. Romper
con el paradigma de Eficiencia vs Eficacia.
Debe ser Correcto. Sin errores.
Debe cero mas entradas.
Debe tener al menos una salida y sta debe ser tangible.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.1.3.1. Algoritmos Cotidianos
En la vida cotidiana se emplean algoritmos en multitud de
ocasiones para resolver problemas. Algunos ejemplos son:
1. Los manuales de usuario, que muestran algoritmos para
usar un aparato, o
2. Las instrucciones que recibe un trabajador por parte de su
patrn.
3. Los pasos de una receta de una ensalada Cesar con Pollo.
4. El cambio de un neumtico.
5. El lavar los platos en la cocina.
6. Los pasos a seguir en un da normal de trabajo.
7. El como cambiar una bombilla elctrica.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.1.3.1. Algoritmos Cotidianos
Disear un algoritmo para cambiar una llanta a un coche.
1.
2.
3.
4.
5.
6.
7.
8.
9.
Inicio.
Traer gato.
Levantar el coche con el gato.
Aflojar tornillos de las llantas.
Sacar los tornillos de las llantas.
Quitar la llanta.
Poner la llanta de repuesto.
Poner los tornillos.
Apretar los tornillos.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.1.3.2. Definicin de los Lenguajes Algortmicos.
El pseudocdigo es un lenguaje de programacin
algortmico; es un lenguaje intermedio entre el lenguaje
natural y cualquier lenguaje de programacin especfico,
como son: C, FORTRAN, Pascal, etc. No existe una notacin
formal o estndar de pseudocdigo, sino que, cada
programador puede utilizar la suya propia.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.1.3.3. Historia y Aplicacin de los Lenguajes Algortmicos.
La palabra algoritmo proviene del nombre del matemtico persa llamado
Abu Abdullah Muhammad bin Musa al-Khwarizmi que vivi entre los
siglos VIII y IX. Su trabajo consisti en preservar y difundir el
conocimiento de la antigua Grecia y de la India. Sus libros eran de fcil
comprensin, he aqu que su principal valor no fuera el de crear nuevos
teoremas o nuevas corrientes de pensamiento, sino el simplificar las
matemticas a un nivel lo suficientemente bajo para que pudiera ser
comprendido por un amplio pblico. Cabe destacar, como l seal las
virtudes del sistema decimal indio, (en contra de los sistemas
tradicionales rabes) y como explic que mediante una especificacin
clara y concisa de cmo calcular sistemticamente, se podran definir
algoritmos que fueran usados en dispositivos mecnicos en vez de las
manos (por ejemplo, bacos). Tambin estudi la manera de reducir las
operaciones que formaban el clculo. Es por esto que aun no siendo l el
creador del primer algoritmo, el concepto lleva aunque no su nombre, s
su pseudnimo.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.1.3.3. Historia y Aplicacin de los Lenguajes Algortmicos.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.1.3.4. Entidades Primitivas para el desarrollo de Algoritmos.
INFORMTICA II.
1.1.3.4.1. Tipos de Datos.
Clasificacin de los tipos de datos simples: Los tipos de
datos simples se clasifican en predefinidos y definidos por
el programador. La clasificacin completa es:
INFORMTICA II.
1.1.3.4.2. Expresiones.
Las expresiones son combinaciones de constantes, variables, smbolos
de operacin, parntesis y nombres de funciones especiales. Por
ejemplo:
a+(b + 3)/c
Cada expresin toma un valor que se determina tomando los valores de las
variables y constantes implicadas y la ejecucin de las operaciones indicadas.
Una expresin consta de operadores y operandos. Segn sea el tipo de datos
que manipulan, se clasifican las expresiones en:
Aritmticas.
Relacinales.
Lgicas.
INFORMTICA II.
1.1.3.4.3. Operadores y Operandos.
Operadores: Son elementos que relacionan de forma
diferente, los valores de una o ms variables y/o
constantes. Es decir, los operadores nos permiten
manipular valores.
Tipos de Operadores:
1.
2.
3.
4.
INFORMTICA II.
1.1.3.4.3. Operadores y Operandos.
Prioridad de los Operadores aritmticos, relacionales, lgicos y de cadena (de mayor a menor) en pseudocdigo).
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.2. Metodologa de solucin de problemas.
1.2.1 Definicin del problema.
Esta fase est dada por el enunciado del problema, el cual
requiere una definicin clara, precisa y completa. Es
importante conocer y delimitar por completo el problema y
que se desea que realice la computadora; mientras esto no
se conozca del todo no tiene mucho caso continuar con la
siguiente paso.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.2. Metodologa de solucin de problemas.
1.2.2 Anlisis del problema.
Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir:
a. Los datos de entrada.
b. Cual es la informacin que se desea producir (salida)
c. Los mtodos y frmulas que se necesitan para procesar los datos.
d. Una recomendacin muy practica es el que nos pongamos en el lugar de la
computadora y analicemos que es lo que necesitamos que nos ordene y en que
secuencia para producir los resultados esperados.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.2. Metodologa de solucin de problemas.
1.2.3 Diseo del Algoritmo.
Las caractersticas de un buen algoritmo son:
a. Debe tener un punto particular de inicio.
b. Debe ser definido, no debe permitir dobles
interpretaciones.
c. Debe ser general, es decir, soportar la mayora de
las variantes que se puedan presentar en la
definicin del problema.
d. Debe ser finito en tamao y tiempo de ejecucin.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.2. Metodologa de solucin de problemas.
1.2.4 Codificacin del Programa.
La codificacin es la operacin de escribir la solucin del
problema (de acuerdo a la lgica del diagrama de flujo o
pseudocdigo), en una serie de instrucciones detalladas, en
un cdigo reconocible por la computadora, la serie de
instrucciones detalladas se le conoce como cdigo fuente, el
cual se escribe en un lenguaje de programacin o lenguaje
de alto nivel.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.2. Metodologa de solucin de problemas.
1.2.5 Prueba y Depuracin.
Los errores humanos dentro de la programacin de computadoras son muchos y
aumentan considerablemente con la complejidad del problema. El proceso de
identificar y eliminar errores, para dar paso a una solucin sin errores se le llama
depuracin. La depuracin o prueba resulta una tarea tan creativa como el
mismo desarrollo de la solucin, por ello se debe considerar con el mismo
inters y entusiasmo. Resulta conveniente observar los siguientes principios al
realizar una depuracin, ya que de este trabajo
depende el xito de nuestra solucin.
Prueba es el proceso de identificar los errores que se presenten durante la
ejecucin del programa; es conveniente que cuando se pruebe un programa
se tomen en cuenta los siguientes puntos:
1. Tratar de iniciar la prueba con una mentalidad saboteadora, casi
disfrutando la tarea de encontrar un error.
2. Sospechar de todos los resultados que arroje la solucin, con lo
cual se debern verificar todos.
3. Considerar todas las situaciones posibles, normales y an las
anormales.
La Depuracin consiste en eliminar los errores que se hayan detectado
durante la prueba, para dar paso a una solucin adecuada y sin errores.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.2. Metodologa de solucin de problemas.
1.2.6 Documentacin.
Es la gua o comunicacin escrita es sus variadas formas, ya sea en enunciados,
procedimientos, dibujos o diagramas. Es la gua o comunicacin escrita que sirve
como ayuda para usar un programa, o facilitar futuras modificaciones. A menudo un
programa escrito por una persona es usado por muchas otras, por ello la
documentacin es muy importante; sta debe presentarse en tres formas: EXTERNA,
INTERNA y AL USUARIO FINAL.
Documentacin Interna:
Consiste en los comentarios o mensajes que se
agregan al cdigo del programa, que explican las funciones que realizan ciertos
procesos, clculos o frmulas para el entendimiento del mismo.
Documentacin Externa:
Tambin conocida como Manual Tcnico, est
integrada por los siguientes elementos: Descripcin del Problema, Nombre del
Autor, Diagrama del Flujo y/o Pseudocdigo, Lista de variables y constantes, y
Codificacin del Programa, esto con la finalidad de permitir su posterior
adecuacin a los cambios.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.2. Metodologa de solucin de problemas.
1.2.7 Mantenimiento.
Se lleva acabo despus de terminado el programa, cuando se detecta
que es necesario hacer algn cambio, ajuste o complementacin al
programa para que siga trabajando de manera correcta. Para poder
realizar este trabajo se requiere que el programa este correctamente
documentado.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.0. Estructuras Algortmicas.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.0.1. Estructura Algortmica Secuencial.
Inicio
Accion1
Accion2
.
.
Accin N
Fin
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.0. 2 Estructuras Algortmicas Condicionales.
Si <condicin> entonces
Accin(es)
Finsi
Si <condicin> entonces
Accin(es)
si no
Accin(es)
Finsi
Si <condicin> entonces
Accin(es)
si no
Si <condicin> entonces
Accin(es)
si no
.
. Varias condiciones
.
Finsi
Finsi
Casos Variable
Op1: Accin(es)
Op2: Accin(es)
OpN: accin
Fincasos
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.0.3. Estructuras Algortmicas Cclicas.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.0.4. Estructuras Algortmicas Cclicas.
Repetir
Accin 1
Accin 2
.
.
Accin N
Hasta <condicin> NO
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.0.5. Estructuras Algortmicas Cclicas.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.0.6. Estructuras Algortmicas Cclicas.
Repetir
Accin 1
Accin 2
.
.
Accin N
Hasta <condicin> NO
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.1. Lenguaje de Pseudocdigo
Sintaxis de un Algoritmo en pseudocdigo.
inicio
acumulador 0
contador 0
hacer mientras
escribir( "Introduzca un nmero entero: " )
leer( numero )
acumulador acumulador + numero
contador contador + 1
escribir( "Ha introducido ", contador, " nmero(s)" )
escribir( "La suma es ", acumulador )
escribir( "Desea introducir otro nmero (s/n)?: " )
leer( seguir )
fin_mientras ( seguir <> 'n' )
escribir( "La media aritmtica es ", acumulador / contador )
fin
algoritmo <nombre_del_algoritmo>
[ constantes
<declaraciones_de_constantes> ]
[ tipos_de_datos
<declaraciones_de_tipos_de_datos> ]
[ variables
<declaraciones_de_variables> ]
inicio
<bloque_de_instrucciones>
fin
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.1. Lenguaje de Pseudocdigo
Levantarse.
Baarse.
Vestirse.
Desayunar.
Cepillarse los dientes.
Salir de casa.
Tomar el autobs.
Llegar la Universidad.
Buscar el aula.
Ubicarse en un asiento.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.2. Diagramas de Accin.
Estructura Condicional de un Diagrama de Accin.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.2. Diagramas de Flujo.
Son la representacin grfica de la solucin
algortmica de un problema. Para disearlos se
utilizan determinados smbolos o figuras que
representan una accin dentro del procedimiento.
Utilizan unos smbolos normalizados, con los pasos
del algoritmo escritos en el smbolo adecuado y
los smbolos unidos con flechas, denominadas
lneas de flujo, que indican el orden en que los
pasos deben ser ejecutados.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.2. Diagramas de Flujo.
1.
2.
3.
4.
5.
6.
7.
8.
9.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.2. Simbologa.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.2. Simbologa.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.2. Diagramas de Flujo.
1.
2.
3.
4.
5.
6.
7.
1.
2.
3.
Ventajas.
Rpida comprensin de las relaciones.
Anlisis efectivo de las diferentes secciones del programa.
Pueden usarse como modelos de trabajo en el diseo de nuevos
programas o sistemas.
Comunicacin con el usuario.
Documentacin adecuada de los programas.
Codificacin eficaz de los programas.
Depuracin y pruebas ordenadas de programas.
Desventajas.
Diagramas complejos y detallados suelen ser laboriosos en su
planteamiento y diseo.
Acciones a seguir tras la salida de un smbolo de decisin, pueden ser
difciles de seguir si existen diferentes caminos .
No existen normas fijas para la elaboracin de los diagramas de flujo
que permitan incluir todos los detalles que el usuario desee introducir.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.4. Diagramas N-S (Nassi-Schneiderman o de Chapin).
Es una herramienta que favorece la programacin estructurada y
rene caractersticas grficas propias de diagramas de flujo y
lingsticas propias de pseudocdigos.
Los diagramas N-S permiten representar de forma sencilla los pasos
que conforman un algoritmo y por su combinacin de texto e imagen
son muy fciles de interpretar.
Constan de una serie de cajas contiguas que se leern siempre de
arriba-abajo al igual que los diagramas de flujo poseen estructuras
lgicas y simbologa.
Es importante mencionar que el diseo de algoritmos no slo
requiere conocer metodologas de representacin, sino tambin
desarrollar el pensamiento lgico para generar soluciones y esto se
consigue mediante el desarrollo de ejercicios.
INFORMTICA II.
MDULO N 1: ALGORITMOS.
1.3 Tcnicas de Diagramacin de Algoritmos.
1.3.4. Diagramas N-S (Nassi-Schneiderman o de Chapin).