jueves, 23 de abril de 2020

ISABELA GONZÁLEZ
DAVID CARVAJAL

¿CÓMO SE ELABORA UN ALGORITMO?


PSEUDOCÓDIGOS


DIAGRAMA DE FLUJO


FORMAS DE REPRESENTAR ALGORITMOS

Lenguaje natural
Son aquellas lenguas que han sido generadas espontáneamente en un grupo de hablantes con propósito de comunicarse, a diferencia de otras lenguas, como puedan ser una lengua construida, los lenguajes de programación o los lenguajes formales usados en el estudio de la lógica formal, especialmente la lógica matemática.
Los algoritmos escritos en este lenguaje se caracterizan por seguir un proceso de ejecución común y lógico, describiendo textualmente paso a paso cada una de las actividades a realizar para resolver un problema determinado.
Los inconvenientes de escribir algoritmos en este lenguaje son: la ambigüedad, la no universalidad y la amplitud del mismo lo cual genera errores y no puede ser interpretado correctamente por el computador.

Pseudocódigo
Es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es utilizado para describir algoritmos en libros y publicaciones científicas, y como producto intermedio durante el desarrollo de un algoritmo, como los diagramas de flujo, aunque presentan una ventaja importante sobre estos, y es que los algoritmos descritos en pseudocódigo requieren menos espacio para representar instrucciones complejas.
El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación. Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo, el pseudocódigo, en general, es comprensible sin necesidad de conocer o utilizar un entorno de programación específico, y es a la vez suficientemente estructurado para que su implementación se pueda hacer directamente a partir de él.

Diagramas de Flujo
Son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO.
Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.

Símbolos para representar diagramas de flujo

Diagramas estructurados (Nassi-Schneiderman)
  • El diagrama estructurado N-S también conocido como diagrama de chapin es como un diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Las acciones sucesivas se pueden escribir en cajas sucesivas y como en los diagramas de flujo, se pueden escribir diferentes acciones en una caja.
  • Los diagramas estructurados, son una técnica que permite formular algoritmos mediante una representación geométrica y de asignación de espacios de un bloque específico.



TIPOS DE OPERADORES



Operadores lógicos
Muy utilizados en InformáticaLógica proposicional y Álgebra booleana, entre otras disciplinas. Los operadores lógicos nos proporcionan un resultado a partir de que se cumpla o no una cierta condición, producen un resultado booleano, y sus operandos son también valores lógicos o asimilables a ellos (los valores numéricos son asimilados a cierto o falso según su valor sea cero o distinto de cero).
 🥇▷【 Operadores lógicos - Lenguaje de programación C 】

Operadores gráficos
Los operadores lógicos se utilizan para usar comparaciones numéricos o no dando como resultado un valor true (verdaderos) o false (falso) a partir de que se cumpla o no una cierta condición, llamados booleano, todos los días utilizamos operadores lógicos un ejemplo cuando hablamos o cuando planeamos una actividad que vamos hacer durante el día, esto quiere decir que los operadores lógicos suelen utilizarse para armar condiciones para las diferentes estructuras de decisión como así también para los bucles
Los operadores lógicos pueden crear condiciones compuestas en una fórmula, como que se deben cumplir dos o más condiciones para elegir un determinado método de cálculo. Con los operadores lógicos, puede describir estas combinaciones de condiciones.
AND (Y) verdadero solo si los dos elementos son verdaderos
OR (O) verdadero si cualquiera de los dos elementos es verdadero
NOT (NEGACION) cambiar el valor de falso.
 Operadores lógicos en Arduino - Panama Hitek

Operadores aritméticos
Los operadores Aritméticos toman valores numéricos (ya sean literales o variables) como sus operandos y retornan un valor numérico único. Los operadores aritméticos estándar son adición o suma (+), sustracción o resta (-), multiplicación (*), y división (/).
Estos operadores trabajan al igual que en la mayoría de otros lenguajes de programación, excepto el operador /, que retorna una división de punto flotante en JavaScript, no una división truncada como en lenguajes tales como C o Java.
En la suma La operación suma se produce mediante la suma de número o strings concatenados.
Ejemplo: 1+2 // 3,   
             False + false // 0
             True + 1 // 2

La resta se produce cuando se sustraen el resultado de los operadores, produciendo su diferencia.
Ejemplos:      5-3 // 2 
                       3-5 // -2
                       Foo – 3  // NaN

La multiplicación produce el producto de la multiplicación de los operandos.
Ejemplos:   2*2 // 4
                   -2*2 // -4
                    Infinito*infinito // infinito

La división se produce el cociente de la operación donde el operando izquierdo es el dividendo y el operando derecho es el divisor.
 Ejemplos:   1 / 2   // devuelve 0.5 a JavaScript  
                    1/ 2   // devuelve 0 en java
                     1.0 / 2.0   // devuelve 0.5 en java y JavaScript

Operadores relacionales  
Los operadores relacionales nos permiten comparar expresiones de tipos compatibles, devolviendo un resultado de tipo lógico: la comparación es verdadera o falsa. Por ejemplo, la expresión (3 + 4) > 12 sería falsa, ya que 7 es menor que 12.
Operadores Relacionales

Los operadores de relación se pueden aplicar a cualquiera de los tipos que hemos visto hasta ahora:

  • entero

  • real

  • lógico

  • carácter y cadena

Las operaciones relacionales o de comparación entre números reales y enteros no merecen mayor comentario, las matemáticas dictan las reglas. Si comparamos expresiones lógicas, lo cual no tiene mucho sentido, hay que saber que el valor falso se considera menor que el valor verdadero.

ALGORITMOS SEGÚN SU ESTRATEGIA

Algoritmos probabilísticos
Es un algoritmo donde el resultado o la manera en que se obtiene el resultado dependen de la probabilidad. A veces también son llamados algoritmos aleatorios. 
En algunas aplicaciones el uso de este tipo de algoritmos es natural, como por ejemplo cuando se simula el comportamiento de algún sistema existente o planeado a lo largo de un tiempo. En este caso el resultado es fortuito.
Ejemplo: decidir si un nº de 1000 cifras es primo.
EPS- UAM, Un algoritmo probabilístico para optimizar soluciones ...

Algoritmos cualitativos
Es el algoritmo más simple y también el más usado. Pues, se basa en la cotidianidad de las personas y en su rutina diaria. Empieza desde que se despiertan, cepillan, comen, trabajan y termina al acostarse.
Pasos para cepillar los dientes - Imagui

Algoritmos heurísticos
Estos algoritmos son aquellos que encuentran soluciones entre todas las posibles, pero no garantizan que la mejor de estas será encontrada. Por ese motivo son considerados como algoritmos aproximados o no precisos.
Usualmente encuentran una solución cercana a la mejor, y además la encuentran rápida y fácilmente. Generalmente este tipo de algoritmos se usa cuando es imposible encontrar una solución por la vía normal.
Ejemplos. Un problema de decisión puede ser formulado de manera tal que dada una entrada requiere una respuesta simple: “si” o “no”.
PPT - Búsqueda Informada PowerPoint Presentation, free download ...

Algoritmo de escalada
Es un algoritmo descendiente, que inicia con soluciones insatisfactorias y a medida que los errores se corrigen, va escalando hasta llegar al resultado correcto. 
Algoritmo hill climbing - Wikipedia, la enciclopedia libreAlgoritmia/Algoritmos de escalada - Wikilibros

Algoritmo voraz
Se aplica en problemas de optimización, mediante soluciones voraces. Es usado a través de decisiones lógicas y analiza cada paso como único, para obtener un resultado global. En este algoritmo se debe tener sumo cuidado, porque luego de implementar un paso no se puede regresar o corregir. Es de esos que cambian el futuro sin poder devolver el tiempo.
Algoritmo voraces

Algoritmo determinista
Este algoritmo es completamente predictivo si se conocen sus entradas. Dicho de otra forma, si se conocen las entradas del algoritmo siempre producirá la misma salida, y la máquina interna pasará por la misma secuencia de estados. 
Técnicas de diseño de algoritmos

ALGORITMOS SEGÚN SU FUNCIÓN


Algoritmo de marcaje.
Este algoritmo utiliza la automatización para fijar los precios de forma dinámica, basándose en factores como el comportamiento del cliente. Es la práctica de fijar automáticamente un precio para los elementos en rebaja, para maximizar la ganancia del vendedor.



Algoritmo de programación dinámica.
La palabra dinámico se refiere al método en el cual el algoritmo computa el resultado. A veces la solución de un elemento del problema depende de la solución de una serie de problemas más pequeños.
Para remediar esto, se puede utilizar la programación dinámica. En este caso básicamente se recuerda el resultado de cada subproblema; cuando se necesite, se utiliza ese valor en vez de computarlo una y otra vez.
Tema 24: Técnicas de diseño ascendente de algoritmos


Algoritmos de vuelta atrás
Son algoritmos que han sido revocados al observar su comportamiento. Típicamente son aproximaciones del algoritmo original que son construidos para propósitos como competición o estudios.
Los algoritmos pueden ser revocados para estudiar su impacto en los mercados, en la economía, en el marcaje de precios, en las operaciones y en la sociedad.
Vuelta atrás - Wikipedia, la enciclopedia libre

Algoritmos de ordenamiento
Algoritmo de ordenamiento es un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser un reordenamiento de la entrada que satisfaga la relación de orden dada.
Los algoritmos de ordenamiento nos permiten, como su nombre lo dice, ordenar información de una manera especial basándonos en un criterio de ordenamiento.
Computación I

Algoritmos de búsqueda
Es un conjunto de instrucciones que están diseñadas para localizar un elemento con ciertas propiedades dentro de una estructura de datos; por ejemplo, ubicar el registro correspondiente a cierta persona en una base de datos, o el mejor movimiento en una partida de ajedrez.
Algoritmo de Búsqueda Exhaustiva. | Download Scientific Diagram

Algoritmos de encantamiento
Son pasos enlazados, para transmitir una información al público. Se basa en teorías comunicacionales adaptativas y estáticas, como la aguja hipodérmica. Así la audiencia recibe pasivamente el mensaje y se ajusta a la circunstancia, llegando al punto de volverse mecánico.
1. Encaminamiento estático - Redes locales y globales

ALGORITMOS SEGÚN SUS SIGNOS

Algoritmos cuantitativos
Son lo contrario de los algoritmos cualitativos, porque se colocan elementos numéricos. Este tipo de algoritmos se utilizan en las matemáticas para realizar cálculos. Por ejemplo, para encontrar una raíz cuadrada o resolver una ecuación.
7222014 ejercicios-resueltos-con-pseint

Algoritmo computacional
Son los algoritmos que se hacen con una computadora; muchos de estos algoritmos son más complejos y por eso necesitan ser realizados a través de una máquina. También pueden ser algoritmos cuantitativos que se optimiza. Por ejemplo, las maquinas industriales.
Qué es un algoritmo en Informática y sus usos?.







Algoritmo no computacional  
Estos algoritmos son aquellos que no pueden realizarse con una computadora. Por ejemplo, la programación de un televisor.


Guía para reprogramar tu TV este 27 de octubre

TIPOS DE ALGORITMOS

Los algoritmos pueden clasificarse en tres (3) secciones:

  • Según sus signos: Alberga algoritmos verbales, matemáticos y computacionales.
  • Según su función: Son algoritmos que ayudan rentabilizar un sistema económico dentro de un comercio.
  • Según la estrategia: Son algoritmos técnicos, que antes de implementarse pasan por un estudio estratégico.

      ¿QUÉ ES UN ALGORITMO?