home

=Estructura de un algoritmo=

Algoritmo
Un algoritmo consiste en una lista ordenada de operaciones que tienen el propósito de buscar la solución a un problema en matemática, informática y disciplinas afines. Es un conjunto de pasos lógicos y estructurados que nos permiten dar solución aún problema. La importancia de un algoritmo radica en desarrollar un razonamiento lógico matemático a través de la comprensión y aplicación de metodologías para la resolución de problemáticas, éstas problemáticas bien pueden ser de la propia asignatura o de otras disciplinas como matemáticas, química y física que implican el seguimiento de algoritmos, apoyando así al razonamiento critico deductivo e inductivo. ||
 * [[image:manikins_b_plan.jpg width="129" height="92"]] || ===1. Concepto e importancia===

2.1.1 Definición del problema En esta etapa se deben establecer los resultados y objetivos que se desea obtenerlos para poder saber si los datos que se tienen son suficientes a fin de lograr los fines propuestos. 2.1.2 Análisis 1 Una vez definido el problema se deberán organizar los datos de tal manera que sean susceptibles de usar en los cálculos siguientes.
 * ===2. Metodología para la descomposición de un algoritmo.===
 * 2.1 Conceptos**

2.2.1 Identificadores Un identificador es el nombre que se le asigna a los datos de un programa (constantes, variables, tipos de datos), y que nos permiten el acceso a su contenido. Ejemplo: //Calf1// (Abreviatura de Calificación 1) //Num_cta// (Abreviatura de número de cuenta) Num_hrs (Abreviatura de núnmero de horas) || ===Video=== media type="youtube" key="zdpbQ1uqYYM" width="560" height="315" || = = = =
 * 2.2 Análisis del Problema**

=Tipos de datos=

Son los valores que puede tomar una constante o variable. Por ejemplo, para representar los datos de un alumno como: Nombre, Num_cta, calf1, etc. Los tipos de datos más utilizados son: Representan un valor entero y real. Ejemplo: Entero: 250, -5 Real: 3.1416, -27.5 || **Lógicos** Solo pueden tener dos valores (verdadero o falso) y son el resultado de una comparación. || **Alfanuméricos** Representan una serie de caracteres que sirven para representar y manejar datos como nombres de personas, artículos, productos, direcciones, etc. ||
 * [[image:programa.jpg width="248" height="169"]] || [[image:valor_logico.jpg]] || [[image:Manikins_noticias.jpg width="212" height="172"]] ||
 * **Numéricos**

Constantes y variables
durante la ejecución del algoritmo ó programa. Toda variable tiene un nombre que sirve para identificarla. Ejemplo: prom=(calf1+calf2+calf3)/3 Las variables son: prom, calf1, calf2, calf3 y oueden cambiar de valor. || Son datos numéricos o alfanuméricos que contienen un valor y que no cambia durante la ejecución del algoritmo ó programa. Ejemplos: PI=3.1416 El valor constante de PHI no varía a lo largo de los procesos. ||
 * [[image:variables dados.jpg width="76" height="50"]]**Variables** || **[[image:pi.png width="59" height="49"]]Constantes** ||
 * Permite almacenar de forma temporal un valor y el cual puede cambiar

Operadores y Expresiones
__Expresiones:__ Es un conjunto de constantes, variables, operadores con lo que se realizan las operaciones y permite obtener un resultado. Ejemplo: resultado <- a*(2*b+5)/c

__Operadores:__ Es un símbolo que permite manipular los valores de variables y/o constantes. || **Operador de asignación** || **Operadores de relación** || **Operadores Lógicos o booleanos**
 * **Operadores matemáticos**

||
 * 1) * div mod
 * 1) * div mod

Los operadores con igua l nivel de prioridad se evalúan de izquierda a derecha ||= # = ó <-

Sirve para recuperar o guardar los valores obtenidos al realizarse o ejecutarse una expresión ||= * Son empleados para comparar dos ó más valores. En caso de haber dos ó más operadores con el mismo nivel de prioridad, siempre se ejecutan de izquierda a derecha.
 * Su //resultado// produce valores como verdadero y falso.
 * Tienen el mismo nivel de prioridad. ||= * Son empleados para comparar dos valores (Falso y verdadero)
 * Su resultado produce valores como verdadero y falso.
 * Los tres tienen el mismo nivel de prioridad. ||
 * Prioridad entre los Operadores:** 1) Matemáticos; 2) Relacionales; 3) Lógicos; 4) De asignación

Existen alternativas de solución precisas y confiables para los algoritmos. Estas pueden ser a través de: //1)Diagramas de flujo (DFD).-// Es la forma de representar la secuencia lógica de ejecución de instrucciones a través de represntaciónes gráficas. //2)Pseudocódigo.-// Se describen los algoritmos utilizando una mezcla de lenguaje común, con instrucciones de programación, palabras claves, etc

Es empleado para representar la solución de un algoritmo empleando figuras geométricas, donde cada una de ellas representa en particular una tarea especifica que realizar. Las más comunes son:
 * Diagrama de flujo**


 * **Pseudocódigo.-** Es empleado para representar la solución de un algoritmo empleando lenguaje natural escrito estableciendo la secuencia de pasos sin imprecisiones y de manera clara.

Ejemplo: Proceso FinProceso || ||
 * Leer lista_de_variables;
 * variable<-expresion;
 * Escribir lista_de_expresiones;

Fin
 * Tipos de estructuras**
 * Uso del Diagrama de flujo, pseudocódigo para los tipos de estructuras**
 * 1) Secuenciales.-** Implica escribir un paso tras de otro, donde el primero que se haya escrito es el primero que se ejecutará.
 * Pseudocódigo || Diagramas de flujo ||
 * Inicio
 * Acción1
 * Acción2
 * AcciónN
 * AcciónN
 * AcciónN

Inicio Fin || ||
 * Leer a,b
 * suma=a+b
 * imprimir suma


 * 2) Selectivas.-** Las utilizamos cuando en el desarrollo de la solución a un problema debemos tomar una decisión, para establecer un proceso o señalar un camino alternativo a seguir.


 * 3) Repetitivas.-** Evitan repetir una accion varias veces. Estas sirven para que una acción se ejecute un determinado numero de veces, y depende del cumplimiento de una determinada acciones (una condición).

=Estructuras Condicionales, Repetitivas y de Selección=

Estructuras Selectivas:
Utilizada para TOMAR DECISIONES. Lo que se hace es EVALUARla condición, si la condición es verdadera realiza la acción, en caso contrario termina el programa. Si  entonces Fin-si
 * Pseudocódigo || DFD ||
 * **Selectivas Simples**
 * Acción(es)

//Ejemplo:// Inicio Fin || ||
 * Leer compra
 * //si// compra>1000 entonces
 * descuento=compra*0.10
 * pago=compra–descuento
 * imprimir pago
 * //fin si//

Luego de evaluar una condición si esta se cumple, es decir si es verdadera realiza una serie de acciones, y si esta es falsa se realiza otra serie de acciones distinta a la primera. Si  entonces Fin-si
 * Pseudocódigo || DFD ||
 * **Selectivas Doble**
 * Acción(es)
 * si no
 * Acción(es)

Ejemplo: Inicio Fin || ||
 * Leer edad
 * si edad>=18 entonces
 * imprimir “Mayor de edad”
 * si no
 * imprimir “Menor de edad”
 * fin si

Se realiza a partir de anidar estructuras simples y/o dobles, de manera tal que se realicen diferentes acciones con base a varias comparaciones, así habrá tantas opciones como se requieran. Si  entonces Acción(es) si no Si entonces si no. . fin si Fin si
 * Pseudocódigo || DFD ||
 * **Selectiva Múltiple**
 * Acción(es)
 * Varias condiciones.

//Ejemplo:// Inicio Leer numero si numero=0 entonces si no fin si Fin || ||
 * imprimir “Número cero”
 * si numero>0
 * imprimir “Número positivo”
 * si no
 * imprimir “Número negativo”
 * fin si

Estructuras Repetitivas:
Este tipo de estructura se utilizan para ejecutar acciones repetidamente, esto se hace posible mediante una secuencia de instrucciones que se repiten una y otra vez y así evitamos escribir múltiples veces las mismas instrucciones. Esta estructura ejecuta los pasos de la solución del algoritmo un número definido de veces y de modo automático controla el número de iteraciones o pasos a través del cuerpo del ciclo. Para el control se utiliza un contador en el cual se va acumulando el número de veces que se ha repetido las instrucciones. Hacer para V.C = LI a L.S Acción1 Acción2 . . AcciónN Fin para V.C Variable de control de ciclo L.I Límite inferior L
 * Pseudocódigo || DFD ||
 * **Para**

Ejemplo: Proceso sin_titulo FinProceso || ||
 * Para datos<-1 Hasta 5 Con Paso 1 Hacer
 * Leer num1,num2;
 * suma<-num1+num2;
 * Escribir "el resultado de sumar ",num1," + ",num2," = ",suma;
 * FinPara

Este se utiliza cuando NO sabemos el número de veces que se ha de repetir un ciclo, los ciclos se determinan por una condición que se evalúa al inicio del ciclo, es decir, antes de ejecutarse todas los pasos. Hacer mientras  Fin-mientras
 * Pseudocódigo || DFD ||
 * **Mientras**
 * Accion1
 * Accion2
 * AccionN
 * AccionN

//Ejemplo// Proceso sin_titulo Escribir "Hay alumno"; Leer alum; Mientras alum="s" Hacer FinMientras FinProceso || ||
 * Leer calif1,calif2;
 * prom<-(calif1+calif2)/2;
 * Escribir "El promedio del alumno es ",prom;
 * Escribir "Hay alumno";
 * Leer alum;

En esta estructura el ciclo se va a repetir hasta que la condición se cumpla, a diferencia de las estructuras anteriores la condición se escribe al finalizar la estructura. Repetir Hasta
 * Pseudocódigo || DFD ||
 * **Hacer – Mientras**
 * ó Repetir hasta que**
 * Accion1
 * Accion2
 * AccionN
 * AccionN

//Ejemplo// Proceso sin_titulo Repetir Leer salario; sal_fin<-salario*1.15; Hasta Que emplea="n" FinProceso || ||
 * Escribir "El salario con aumento es",sal_fin;
 * Escribir "hay otro empleado";
 * Leer emplea;

Conocidas tambian como estructuras de selección simple. Comparan una variable contra otro(s)valor (es), con base en la comparación, se sigue un curso de acción dentro de la búsqueda de una solución a un problema.
 * Pseudocódigo || DFD ||
 * **Estructura condicional**

Si  verdadera Fin-si || ||
 * Acción(es)