domingo, 18 de junio de 2017

"ALGORITMO = PSEUDOCODIGO + DIAGRAMA DE FLUJO"

       Un Algoritmo es una serie ordenada de instrucciones, pasos o procesos que llevan a la solución de un determinado problema. Los hay tan sencillos y cotidianos como seguir la receta del médico, abrir una puerta, lavarse las manos, etc; hasta los que conducen a la solución de problemas muy complejos.

        Ejemplo de un Algoritmo en la vida Cotidiana:
Veamos que algo tan común como los pasos para cambiar una bombilla (foco) se  
pueden expresar en forma de Algoritmo:



  1. Ubicar una escalera o un banco debajo de la bombilla a cambiar
  2. Tomar una bombilla nueva
  3. Subir por la escalera o al banco
  4. Sujetar y girar la bombilla a cambiar hacia la izquierda hasta retirarla del plafón.
  5. Enroscar la bombilla nueva hacia la derecha en el plafón hasta apretarla.
  6. Bajar de la escalera o del banco
  7. Fin



CARACTERÍSTICAS DE UN ALGORITMO: Todo algoritmo debe tener las siguientes características:

1. Debe ser Preciso, porque cada uno de sus pasos debe indicar de manera precisa e inequívoca que se debe hacer.

2. Debe ser Finito, porque un algoritmo debe tener un número limitado de pasos.

3. Debe ser Definido, porque debe producir los mismos resultados para las mismas condiciones de entrada.

4. Puede tener cero o más elementos de entrada.

5. Debe producir un resultado. Los datos de salida serán los resultados de efectuar las instrucciones.

Estructuras Algorítmicas Básicas:

Secuencial: la estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso.

   Ejemplo:


       Los algoritmos que necesitan de estructuras secuenciales para su solución son los mas difíciles de comprender y mas sencillos de identificar los procesos que realizará el programa que nos llevarán a la solución del mismo.
       En algunos algoritmos se omite la declaración de variables, en casos que el algoritmo no es complicado.
Ejercicio.
Hacer el rastreo manual para:
a = 2
a = a + 1
b = a * 2
b = b – 1
c = a + 2 * b
Presentar "c".
RASTREO: Para el rastreo hay que asignarle a cada línea un número, de la siguiente manera, de antemano ya nos habremos fijado que el valor de salida es el de la variable c, el problema sería saber el valor de esta variable c que se mostrará finalmente.
1) a = 2
2) a = a + 1
3) b = a * 2
4) b = b – 1
5) c = a + 2 * b
6) Presentar "c".
Línea 1: a=2
Línea 2: a=2+1=3
Línea 3: b=3*2=6
Línea 4: b=6–1=5
Línea 5: c=3+2*5=13
Línea 6: Se presenta 13
El valor de la variable c será 13.
Selectiva:

      Se utilizan para tomar decisiones lógicas; de ahí que se suelan denominar también estructuras de decisión o alternativas.En las estructuras selectivas se evalúa una condición y en función del resultado la misma se realiza una opción u otra. Las condiciones se especifican usando expresiones lógicas. La representación de una estructura selectiva se hace con palabras en pseudocódigo (if, then, else o bien en español si, entonces, sino).


Ejemplo:


Repetitiva:

        Es todos los algoritmos realizados hasta este punto, cada instrucción se ha ejecutado sólo una vez ya sea en forma secuencias o en forma selectiva. Sin embargo, con frecuencia, cierto tipo de problemas requieren de la ejecución reiterada o repetida de un grupo de instrucciones.

Ejemplo:



Pseudocódigo o Falso lenguaje:

         La palabra pseudocódigo formada por el prefijo “pseudo“, que según el diccionario de la RAE (Real Academia Española) significa “falso“, de ahí parte para que también sea conocido como “falso lenguaje”.


       Un pseudocodigo es un lenguaje simplificado entre el programador y la máquina, hecho por el programador en su propio idioma, para describir un algoritmo y  poder comprender mejor la estructura de dicho programa, donde el lenguaje simplificado no puede ser compilado, ejecutado ni corrido por la máquina. Siendo una herramienta que se encuentra previa al lenguaje formal de programación.



           Ejemplo: Realizar el pseudocódigo de un programa que permita calcular el área de un rectángulo. Se debe introducir la base y la altura para poder realizar el cálculo..

Programa; área

Entorno: BASE, ALTURA, ÁREA son número enteros

Algoritmo:

escribir “Introduzca la base y la altura”

leer BASE, ALTURA

calcular ÁREA = BASE * ALTURA

escribir “El área del rectángulo es “ÁREA


Fin del programa

Diagrama de Flujo o de Procesos:

        Un diagrama de flujo, también llamado Diagrama de Procesos, representa la secuencia o los pasos lógicos (ordenados) para realizar una tarea mediante unos símbolos. Dentro de los símbolos se escriben los pasos a seguir. Un diagrama de flujo debe proporcionar una información clara, ordenada y concisa de todos los pasos a seguir.


Como Hacer un Diagrama de Flujo Normalmente para realizar un diagrama de flujo primero se hace lo que se llama el algoritmo. Un algoritmo es una secuencia de PASOS LÓGICOS a seguir para resolver un problema de forma escrita. 

Un ejemplo para cocinar un huevo para otra persona sería:

- Pregunto si quiere el huevo frito.
- Si me dice que si, lo frio, si me dice que no, lo hago hervido.
- Una vez cocinado le pregunto si quiere sal en el huevo.
- Si me dice que no, lo sirvo en el Plato, si me dice que si, le hecho sal y después lo sirvo en el plato.

        Si te fijas los pasos no pueden cambiar su posición. Sería imposible preguntarle si lo quiere frito después de haberlo hervido, por ejemplo. Es muy importante que los pasos seán una secuencia lógica y ordenada.

        Ahora que ya sabemos todos los pasos, mediante el algoritmo, podemos hacer un esquema con estos pasos a seguir. Este esquema será el Diagrama de Flujo.



ESTRUCTURAS DE DIAGRAMA DE FLUJO Y PSEUDOCODIGO:
Formación de Algoritmos de ordenamiento

  • Ordenación por Inserción: es similar al proceso típico de ordenar tarjetas de nombres (cartas de una baraja) por orden alfabético, que consiste en insertar un nombre en su posición correcta dentro de una lista o archivo que ya está ordenado. Así, por ejemplo, el proceso en el caso de la lista de enteros A = 50, 20, 40, 80, 30. Algoritmo de ordenación por inserción. El algoritmo correspondiente a la ordenación por inserción contempla los siguientes pasos: 1) El primer elemento A [0] se considera ordenado; es decir, la lista inicial consta de un elemento. 2) Se inserta A [1] en la posición correcta, delante o detrás de A[0], dependiendo de que sea menor o mayor. 3) Por cada bucle o iteración i (desde i=1 hasta n-1) se explora la sublista A [i-1] . . A [0] buscando la posición correcta de inserción; a la vez se mueve hacia abajo (a la derecha en la sublista) una posición todos los elementos mayores que el elemento a insertar A[i], para dejar vacía esa posición. 4) Insertar el elemento a la posición correcta. Ordenación Shell. La ordenación Shell debe el nombre a su inventor, D. L. Shell. Se suele denominar también ordenación por inserción con incrementos decrecientes. Se considera que el método Shell es una mejora de los métodos de inserción directa.
  • Ordenación por selección: consiste en buscar o seleccionar el elemento menor del arreglo y colocarlo en la primera posición, si el ordenamiento es ascendente. Luego se busca el segundo elemento más pequeño y se lo ubica en la segunda posición y así sucesivamente hasta llegar al último elemento. Por basarse este mecanismo en obtener los menores y ubicarlos en la posición ideal, recibe el nombre de obtención sucesiva de menores. Por ejemplo: Con este mecanismo, si pretendemos ordenar en forma creciente una tabla que posee 100 elementos, el método obliga a recorrer la tabla tantas veces como elementos tenga menos uno. En el primer recorrido se averigua cual es el elemento menor y se intercambia con el que esté en la primera posición de la tabla. En el segundo recorrido se averigua el menor entre los restantes elementos y se lo intercambia con el que está en la segunda posición. El resto de los recorridos utilizará la misma lógica.

Formación de Algoritmos de búsqueda:

  • Búsqueda Secuencial: La búsqueda secuencial es la técnica más simple para buscar en una lista de datos. Este método consiste en recorrer una lista o arreglo en forma secuencial y comparar cada elemento del arreglo con el valor deseado, hasta que éste se encuentre o finalice el arreglo. Normalmente cuando la función de búsqueda termina con éxito, es decir encontró el dato buscado, interesa conocer en qué posición fue encontrado el dato buscado. Esta idea se puede generalizar en todos los métodos de búsqueda. La búsqueda secuencial no requiere ningún requisito para el arreglo, y por lo tanto no necesita estar ordenado. 


  • Búsqueda Binaria:  Binaria o Dicotómica se puede decir que es una resolución que se basa en el algoritmo de divisiones sucesivas en mitades
         Con cada iteración del método el espacio de búsqueda se reduce a la mitad, por lo tanto el número de comparaciones disminuye considerablemente en cada iteración. Esta disminución es más significativa cuanto mayor sea el número de elementos de la lista. En Pseudocódigo:

 Comenzar

 Leer X

Ingresar V(I) I = 1,100
 ULTIMO = 100
 PRIMERO = 1

 Hasta PRIMERO <= ULTIMO 
CENTRAL = [(PRIMERO + ULTIMO) / 2]

 Si V(CENTRAL) = X 
Entonces

 Imprimir “Registro encontrado “ V(CENTRAL)
Parar

 Fin_si 
Si V(CENTRAL) > X
 Entonces
ULTIMO = CENTRAL – 1
 Si_no
PRIMERO = CENTRAL + 1
 Fin_si 

Fin_Hasta 

Imprimir 

“Registro no encontrado” 

Parar



No hay comentarios:

Publicar un comentario