SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
UNIVERSIDAD DE MARGARITA
VISERRECTORADO ACADEMICO
DECANATO DE INGENIERIA Y AFINES
ALGEBRA DISCRETA
SECCION TARDE 02
ALGORITMOS
Realizado por:
RODOLFO A. SALAZAR R.
C.I: 30.065.455
ALGORITMOS
Dada la conceptualización suministrada y estudiada de algoritmo,
entendemos que son una herramienta versátil para facilitar el paso a paso, y llegar
fácilmente a construir el camino hacia un fin determinado, llámese tarea, receta,
planes o guías para, planes de acceso o planes de emergencia de entrada o salida, etc.
Ésta aplicación depende del sitio de estudio, investigación, trabajo, donde se busque
la sistematización y avance bien sea de una empresa u otra organización para el
desarrollo de sistemas estandarizados y mejorar el rendimiento laboral y empresarial.
También hemos estado trabajando y estudiado otros puntos que se encuentran
en este contenido y son igual de importantes ya que cada uno de ellos nos facilita el
trabajo a la hora de programación y elaboración de algoritmos.
Con este contenido el objetivo es facilitar el método de estudio con esta
investigación completa y bien estructurada.
¿QUE ES UN ALGORITMO?
Es un conjunto ordenado y finito de operaciones que
nos permiten ejecutar una acción o resolver un
problema mediante una serie de instrucciones
definidas, ordenadas y finitas. Así, dado un estado
inicial y una entrada, y siguiendo los sucesivos pasos
indicados, se llega al estado final y se obtiene una
solución
DISEÑO DE UN ALGORITMO
Es un método específico para poder crear un
modelo matemático ajustado a un problema
específico para resolverlo. Existen varias
técnicas de diseño de algoritmos que
permiten desarrollar la solución al problema
planteado.
MEDIOS DE EXPRESIÓN DE UN ALGORITMO
Los algoritmos pueden ser expresados de muchas maneras,
incluyendo al lenguaje natural, pseudocódigo, diagramas de
flujo y lenguajes de programación entre otros.
Las descripciones en lenguaje natural tienden a ser ambiguas y
extensas. El usar pseudocódigo y diagramas de flujo evita
muchas ambigüedades del lenguaje natural.
Dichas expresiones son formas más estructuradas para
representar algoritmos; no obstante, se mantienen
independientes de un lenguaje de programación específico.
La descripción de un algoritmo usualmente se hace en tres
niveles:
• Descripción de alto nivel: Se establece el problema, se
selecciona un modelo matemático y se explica el algoritmo
de manera verbal, posiblemente con ilustraciones y
omitiendo detalles.
• Descripción formal: Se usa pseudocódigo para describir
la secuencia de pasos que encuentran la solución.
• Implementación: Se muestra el algoritmo expresado en
un lenguaje de programación específico o algún objeto
capaz de llevar a cabo instrucciones.
Tipos de datos
Datos numéricos: permiten representar valores
escalares de forma numérica, esto incluye a los
números enteros y los reales. Este tipo de datos
permiten realizar operaciones aritméticas
comunes.
Datos lógicos: son aquellos que solo pueden
tener dos valores (cierto o falso) ya que
representan el resultado de una comparación
entre otros datos (numéricos o alfanuméricos).
Datos alfanuméricos (string): es una secuencia
de caracteres alfanuméricos que permiten
representar valores identificables de forma
descriptiva, esto incluye nombres de personas,
direcciones, etc. Es posible representar
números como alfanuméricos, pero estos
pierden su propiedad matemática, es decir no
es posible hacer operaciones con ellos. Este
tipo de datos se representan encerrados entre
comillas.
ANÁLISIS DEL PROBLEMA
El análisis de problemas permite determinar las causas
más relevantes de un problema social. Este análisis se
realiza bajo la consideración de que su conocimiento
sirve como pauta para la selección de alternativas de
solución. El análisis de problemas ofrece una primera
idea del impacto social que tendría el proyecto, en la
medida que permite identificar los efectos o
consecuencias que serían evitados si el problema fuera
solucionado. Desde el punto de vista cognitivo, el análisis
de problemas es un estudio transversal: busca establecer
relaciones causales en torno a un problema, en un
momento dado, a través del descubrimiento de
interrelaciones entre las distintas variables.
DIAGRAMA DE FLUJO
Son la representación gráfica de la secuencia de actividades de un proceso en los
algoritmos. Consiste en símbolos para representar los pasos de un algoritmo. Cada
símbolo tiene un significado que representa una acción a ser seguida,
correspondiente a un paso del algoritmo. Cada símbolo se conecta a través de
flechas, denominadas líneas de flujo, que indican el orden en que los pasos deben
ser ejecutados.
Puesto que un diagrama de flujo es la representación gráfica de un algoritmo,
también debe tener: ENTRADA – PROCESO – SALIDA.
Para comprender mejor los diagramas de flujo, se tiene que respetar las reglas de
construcción. Al realizar una prueba manual, se debe tomar un conjunto de datos
significativos de entrada y comenzar a recorrer el Flujograma de arriba hacia abajo
y de izquierda a derecha; según sea la forma representada, para ver cómo se
comporta el Flujograma y si los resultados obtenidos son correctos y coherentes.
EJEMPLO:
Queremos hacer un programa informático que nos sume dos número y nos dé el
resultado en pantalla.
SOLUCIÓN DEL EJEMPLO:
DESVENTAJAS
• No provee una representación gráfica del algoritmo, por lo que
puede ser difícil entender la lógica compleja de un
pseudocódigo.
• Si el pseudocódigo contiene demasiadas condiciones anidadas
puede ser difícil de entender.
Ejemplo
Escribir un Pseudocódigo de un programa que permita leer la edad
y peso de una persona y posteriormente imprimirla.
Inicio
Variables Numéricas: edad, peso.
Imprimir "Escribir los datos (Edad, Peso):";
Leer Edad, Leer Peso;
Escribir "Tu peso es: ", peso, " y tu edad es: ", edad.;
Fin
PSEUDOCÓDIGO
El pseudocódigo es un tipo de descripción que incluye un poco de lenguaje natural y de
instrucciones estandarizadas para los lenguajes de programación. Podemos decir que es un
lenguaje intermedio entre el lenguaje natural (nuestra forma normal de expresarnos) y
cualquier lenguaje de programación específico, como por ejemplo C, Fortran, Pascal, etc.
VENTAJAS
• Es más fácil y rápido de elaborar en comparación con el
Flujograma.
• Es más fácil detectar errores y hacer cambios.
• No necesita ser reescrito si se hacen cambios, ya que cada
paso es independiente y puede ser modificado sin alterar
los otros pasos.
• Es fácil su traducción a cualquier lenguaje de
programación. Esto no se logra con los flujogramas y
tablas de decisión, ya que el formato usado por el
pseudocódigo es similar a un programa. Ambos contienen
un grupo de instrucciones secuenciales usando un grupo
de instrucciones definidas.
• Es un lenguaje algorítmico similar al español u otro
idioma
• Es una imitación de las instrucciones reales para una
computadora
• Permite representar en forma fácil operaciones repetitivas
complejas.
• Al seguir las reglas se pueden observar claramente los
niveles que tiene cada operación.
VARIABLE, CONSTANTE Y PROCESOS
Variable
Cada variable debe ser declarada
antes de ser utilizada en el
programa. Como las variables se
almacenan en la memoria RAM, es
necesario reservar el espacio para
ellas (uno, dos o más bytes). Al
escribir un programa, usted sabe
qué tipo de datos quiere utilizar y
qué tipo de datos espera como
resultado de una operación,
mientras que el compilador no lo
sabe. No se olvide de que el
programa maneja las variables con
los nombres asignados. El
compilador las reconoce como
números en la memoria RAM sin
conocer su tamaño y formato.
Constante
Similar a las variables, las
constantes deben ser declaradas
antes de ser utilizadas en el
programa. En mikroC, no es
obligatorio especificar el tipo
de constante al declararla. Por
otra parte, las constantes deben
ser inicializadas a la vez que se
declaran. El compilador
reconoce las constantes por su
prefijo constante utilizado en la
declaración.
Procesos
Cuando son ejecutables varios
procesos, el sistema operativo
debe decidir cuál conviene
ejecutar si el CPU se encuentra
disponible. El elemento del
sistema quien toma esta
decisión se llama
PLANIFICADOR y
el algoritmo del cual hace uso
se denomina ALGORITMO
PLANIFICADOR.
ESTRUCTURA DE CONTROL
Los algoritmos vistos hasta el momento han
consistido en simples secuencias de instrucciones;
sin embargo, existen tareas más complejas que no
pueden ser resueltas empleando un esquema tan
sencillo, en ocasiones es necesario repetir una
misma acción un número determinado de veces o
evaluar una expresión y realizar acciones
diferentes en base al resultado de dicha
evaluación. Para resolver estas situaciones existen
las denominadas estructuras de control que poseen
las siguientes características:
• Una estructura de control tiene un único punto
de entrada y un único punto de salida.
• Una estructura de control se compone de
sentencias o de otras estructuras de control. Tales
características permiten desarrollar de forma muy
flexible todo tipo de algoritmos aún cuando sólo
existen tres tipos fundamentales de estructuras de
control:
• Secuencial.
• Alternativa.
• Repetitiva. A lo largo de esta lección se
presentarán las distintas estructuras de control, la
forma de representarlas en la notación algorítmica
y las correspondientes sentencias FORTRAN para
poder utilizarlas en nuestros programas.
ESTRUCTURAS SECUENCIALES
Son problemas en los que, para su
solución se emplea una serie de
acciones ejecutadas invariablemente
en un orden secuencial.
Las tareas suceden de tal modo que
la salida de una es la entrada de la
siguiente y así sucesivamente hasta el
fin del proceso.
Dentro de este tipo podemos
encontrar operaciones de inicio/fin,
inicialización de variables,
operaciones de asignación, cálculo,
sumarización, etc.
Este tipo de estructura se basa en las
5 fases de que consta todo algoritmo
o programa:
•Definición de variables
(Declaración)
•Inicialización de variables.
•Lectura de datos
•Cálculos
•Salida
REPRESENTACIÓN GRÁFICA:
ESTRUCTURAS SELECTIVAS
Las estructuras selectivas se utilizan para tomar decisiones lógicas; de
ahí que también se conocen como estructuras decisión o alternativas.
En las estructuras selectivas se evalúa una condición, y en función del
resultado de la misma se toma un camino u otro.
Las condiciones se establecen usando expresiones lógicas.
La representación de una estructura selectiva se hace con palabras (Si-
entonces-si_no), con una figura geométrica en forma de rombo, que
incluye dos salidas. La salida que se utiliza depende del resultado de
evaluar la expresión lógica que se encuentra en la parte interna del
rombo.
SELECTIVA DOBLE (ALTERNATIVA)
La estructura selectiva si entonces/sino permite que el flujo del diagrama se
bifurque por dos ramas diferentes en el punto de la toma de decisión(es). Si
al evaluar la condición (o condiciones) el resultado es verdadero, entonces
se sigue por un camino específico y se ejecuta(n) cierta(s) operación(es). SI
el resultado es falso entonces se sigue por otro camino y se ejecuta(n) otra(s)
operación(es).
SELECTIVA MULTIPLE
La estructura selectiva si múltiple permite que el flujo del diagrama se bifurque
por varias ramas en el punto de la toma de decisión(es), esto en función del
valor que tome el selector. Así si el selector toma el valor 1 se ejecutará la
acción 1, si toma el valor 2 se ejecutará la acción 2, si toma el valor N se
realizará la acción N, y si toma un valor distinto de los valores comprendidos
entre 1 y N, se continuará con el flujo normal del diagrama realizándose la
acción N + 1.
ESTRUCTURAS ITERATIVAS:
Son estructuras con instrucciones de repetición, de iteración o bucles,
que facilitan la repetición de un bloque de instrucciones, un número
determinado de veces o mientras se cumpla una condición. Por lo
general, existen dos tipos de estructuras iterativas o bucles en los
lenguajes de programación. El tipo de bucle que se ejecuta un
número preestablecido de veces, que es controlado por un contador o
índice, incrementado en cada iteración y el bucle que se ejecuta
mientras se cumple una condición. Esta condición se comprueba al
principio o el final de la construcción.
• BUCLE MIENTRAS O BUCLE WHILE
Es un ciclo repetitivo basado en los resultados
de una expresión lógica; se encuentra en la
mayoría de los lenguajes de programación
estructurados. El propósito es repetir un bloque
de código mientras una condición se mantenga
verdadera.
• BUCLE HACER O BUCLEDO
El bucle do, bucle hacer, hacer-mientras o también
llamado ciclo do-while, es una estructura de
control de la mayoría de los lenguajes de
programación estructurados cuyo propósito es
ejecutar un bloque de código y repetir la ejecución
mientras se cumpla cierta condición expresada en
la cláusula while. La diferencia con el bucle while
radica en que este evalúa la condición al principio,
y si esta no se cumple, el código que está
encerrado dentro del cuerpo no se ejecuta. En
cambio, el bucle do-while evalúa la condición para
seguir ejecutándose luego de haber ejecutado el
código dentro de su cuerpo; es decir, siempre se
ejecuta por lo menos una vez el código.
TIPOS DE BUCLE
• BUCLE PARA O BUCLE FOR
El bucle for es una estructura de
control en programación en la que se
puede indicar de antemano el número
mínimo de iteraciones.​ Está
disponible en casi todos los lenguajes
de programación imperativos. Su uso
principal se orienta a los vectores,
pudiendo modificar, agregar, eliminar
o consultar datos que se encuentren
según el índice. Por esto último, una
condición mínima del vector es que
debe ser ordenado, porque si se
intenta leer un dato inexistente, esto
genera un error de programación.
• BUCLE REPETIR
El bucle repetir comprueba la condición de
finalización al final del cuerpo del bucle, y
si ésta es cierta continua con el resto del
programa, a veces esto resulta más
adecuado. La instrucción se ejecutará al
menos una vez. El cuerpo del bucle es el
fragmento de programa que será repetido en
cada iteración.
La condición es una variable o una función
reducible a valor booleano.
• BUCLE PARA CADA O FOR
EACH
Este bucle es una evolución del concepto
del bucle para en algunos lenguajes.
Se utiliza para recorrer estructuras
repetitivas de datos de forma más simple
y ágil.
El bucle For Each puede describirse
genéricamente (en pseudolenguaje) de la
siguiente manera:
POR CADA elemento DE
tipo EN conjunto
HACER
Cuerpo
FIN FOR EACH
ALGORITMO DE BUSQUEDA
Un algoritmo 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.
ALGORIDMO DE ORDENACIÓN
En computación y matemáticas un 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
una permutación —o reordenamiento— de la entrada que satisfaga la relación
de orden dada. Las relaciones de orden más usadas son el orden numérico y
el orden lexicográfico. Ordenamientos eficientes son importantes para
optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que
requieren listas ordenadas para una ejecución rápida. También es útil para
poner datos en forma canónica y para generar resultados legibles por humanos.
EJEMPLO
ubicar el registro correspondiente a cierta
persona en una base de datos, o el mejor
movimiento en una partida de ajedrez.
La variante más simple del problema es la
búsqueda de un número en un vector.
ORDENAR = ['a','s','o','r','t','i','n','g','e','x','a','m','p','l','e'],
el algoritmo va a recorrer el arreglo de izquierda a derecha. Primero toma el
segundo dato 's' y lo asigna a v y i toma el valor de la posición actual de v.
Luego compara esta 's' con lo que hay en la posición j-1, es decir, con 'a'.
Debido a que 's' no es menor que 'a' no sucede nada y avanza i.
Ahora v toma el valor 'o' y lo compara con 's', como es menor recorre a la 's'
a la posición de la 'o'; decrementa j, la cual ahora tiene la posición en dónde
estaba la 's'; compara a 'o' con a[j-1] , es decir, con 'a'. Como no es menor
que la 'a' sale del for y pone la 'o' en la posición a[j]. El resultado hasta este
punto es el arreglo siguiente: a = ['a','o','s','r',....]
Así se continúa y el resultado final es el arreglo ordenado :
a = ['a','a','e','e','g','i','l','m','n','o','p','r','s','t','x']
EJEMPLO:

Más contenido relacionado

La actualidad más candente

Analisis y diseño algoritmos
Analisis y diseño algoritmosAnalisis y diseño algoritmos
Analisis y diseño algoritmos
Enrique Y Ch
 
Seudocodigos1
Seudocodigos1Seudocodigos1
Seudocodigos1
jafp21
 

La actualidad más candente (19)

Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacion
 
Tema6
Tema6Tema6
Tema6
 
Diagrama estructurado-pseudocódigo
Diagrama estructurado-pseudocódigoDiagrama estructurado-pseudocódigo
Diagrama estructurado-pseudocódigo
 
Algoritmos y-diagramacion
Algoritmos y-diagramacionAlgoritmos y-diagramacion
Algoritmos y-diagramacion
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Descripción de un Algoritmo
Descripción de un AlgoritmoDescripción de un Algoritmo
Descripción de un Algoritmo
 
Tecnicatura en programacion
Tecnicatura en programacionTecnicatura en programacion
Tecnicatura en programacion
 
Algoritmo Y Pseudocódigo
Algoritmo Y PseudocódigoAlgoritmo Y Pseudocódigo
Algoritmo Y Pseudocódigo
 
Algoritmos, Pseudocódigos, Diagrama de Flujo y Metodología
Algoritmos, Pseudocódigos, Diagrama de Flujo y MetodologíaAlgoritmos, Pseudocódigos, Diagrama de Flujo y Metodología
Algoritmos, Pseudocódigos, Diagrama de Flujo y Metodología
 
Analisis y diseño algoritmos
Analisis y diseño algoritmosAnalisis y diseño algoritmos
Analisis y diseño algoritmos
 
Presentacion algoritmo
Presentacion algoritmoPresentacion algoritmo
Presentacion algoritmo
 
Seudocodigos1
Seudocodigos1Seudocodigos1
Seudocodigos1
 
Algoritmos y diagramas de flujo
Algoritmos y diagramas de flujoAlgoritmos y diagramas de flujo
Algoritmos y diagramas de flujo
 
Unidad5- 3er bimestre
Unidad5- 3er bimestreUnidad5- 3er bimestre
Unidad5- 3er bimestre
 
Conceptos basicos de la programacion
Conceptos basicos de la programacionConceptos basicos de la programacion
Conceptos basicos de la programacion
 
Algoritmos, dfd, pseudocodigo
Algoritmos, dfd, pseudocodigoAlgoritmos, dfd, pseudocodigo
Algoritmos, dfd, pseudocodigo
 
pseint
pseintpseint
pseint
 
Programacion logica 1
Programacion logica 1Programacion logica 1
Programacion logica 1
 
Unidad I Algoritmos
Unidad  I    AlgoritmosUnidad  I    Algoritmos
Unidad I Algoritmos
 

Similar a ALGORITMOS

Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujo
Clariza
 

Similar a ALGORITMOS (20)

Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programa
 
Algoritmos, especificación y pseudocódigos.pptx
Algoritmos, especificación y pseudocódigos.pptxAlgoritmos, especificación y pseudocódigos.pptx
Algoritmos, especificación y pseudocódigos.pptx
 
Tecnicatura en programacion
Tecnicatura en programacionTecnicatura en programacion
Tecnicatura en programacion
 
ALGORITMOS
ALGORITMOS ALGORITMOS
ALGORITMOS
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 
Evaluacion de algoritmo
Evaluacion de algoritmoEvaluacion de algoritmo
Evaluacion de algoritmo
 
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
Algoritmos y seudocódigos (orangel rodriguez) (30.736.401)
 
Apartes De Algoritmos
Apartes De AlgoritmosApartes De Algoritmos
Apartes De Algoritmos
 
ALGORITMOS y ejemplo en java.pptx
ALGORITMOS  y ejemplo en java.pptxALGORITMOS  y ejemplo en java.pptx
ALGORITMOS y ejemplo en java.pptx
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamientoDesarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 
Algoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujoAlgoritmos y diagramas_de_flujo
Algoritmos y diagramas_de_flujo
 
Los algoritmos
Los    algoritmosLos    algoritmos
Los algoritmos
 
Flujogramas
FlujogramasFlujogramas
Flujogramas
 
Algoritmos, Pseudocódigo, diagramas de flujos y la metodologia para resolver ...
Algoritmos, Pseudocódigo, diagramas de flujos y la metodologia para resolver ...Algoritmos, Pseudocódigo, diagramas de flujos y la metodologia para resolver ...
Algoritmos, Pseudocódigo, diagramas de flujos y la metodologia para resolver ...
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
ALGORITMOS EN EL SOFTWARE
ALGORITMOS EN EL SOFTWAREALGORITMOS EN EL SOFTWARE
ALGORITMOS EN EL SOFTWARE
 
Jacky informatica
Jacky informaticaJacky informatica
Jacky informatica
 
Jacky informatica
Jacky informaticaJacky informatica
Jacky informatica
 
Jacky informatica
Jacky informaticaJacky informatica
Jacky informatica
 

Último

Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
Yanitza28
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (17)

Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...
 
Retornamos a la escuela y nos organizamos para convivir en armonía
Retornamos a la escuela y nos organizamos para convivir en armoníaRetornamos a la escuela y nos organizamos para convivir en armonía
Retornamos a la escuela y nos organizamos para convivir en armonía
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 

ALGORITMOS

  • 1. UNIVERSIDAD DE MARGARITA VISERRECTORADO ACADEMICO DECANATO DE INGENIERIA Y AFINES ALGEBRA DISCRETA SECCION TARDE 02 ALGORITMOS Realizado por: RODOLFO A. SALAZAR R. C.I: 30.065.455
  • 2. ALGORITMOS Dada la conceptualización suministrada y estudiada de algoritmo, entendemos que son una herramienta versátil para facilitar el paso a paso, y llegar fácilmente a construir el camino hacia un fin determinado, llámese tarea, receta, planes o guías para, planes de acceso o planes de emergencia de entrada o salida, etc. Ésta aplicación depende del sitio de estudio, investigación, trabajo, donde se busque la sistematización y avance bien sea de una empresa u otra organización para el desarrollo de sistemas estandarizados y mejorar el rendimiento laboral y empresarial. También hemos estado trabajando y estudiado otros puntos que se encuentran en este contenido y son igual de importantes ya que cada uno de ellos nos facilita el trabajo a la hora de programación y elaboración de algoritmos. Con este contenido el objetivo es facilitar el método de estudio con esta investigación completa y bien estructurada.
  • 3. ¿QUE ES UN ALGORITMO? Es un conjunto ordenado y finito de operaciones que nos permiten ejecutar una acción o resolver un problema mediante una serie de instrucciones definidas, ordenadas y finitas. Así, dado un estado inicial y una entrada, y siguiendo los sucesivos pasos indicados, se llega al estado final y se obtiene una solución DISEÑO DE UN ALGORITMO Es un método específico para poder crear un modelo matemático ajustado a un problema específico para resolverlo. Existen varias técnicas de diseño de algoritmos que permiten desarrollar la solución al problema planteado. MEDIOS DE EXPRESIÓN DE UN ALGORITMO Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico. La descripción de un algoritmo usualmente se hace en tres niveles: • Descripción de alto nivel: Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles. • Descripción formal: Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución. • Implementación: Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
  • 4. Tipos de datos Datos numéricos: permiten representar valores escalares de forma numérica, esto incluye a los números enteros y los reales. Este tipo de datos permiten realizar operaciones aritméticas comunes. Datos lógicos: son aquellos que solo pueden tener dos valores (cierto o falso) ya que representan el resultado de una comparación entre otros datos (numéricos o alfanuméricos). Datos alfanuméricos (string): es una secuencia de caracteres alfanuméricos que permiten representar valores identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc. Es posible representar números como alfanuméricos, pero estos pierden su propiedad matemática, es decir no es posible hacer operaciones con ellos. Este tipo de datos se representan encerrados entre comillas. ANÁLISIS DEL PROBLEMA El análisis de problemas permite determinar las causas más relevantes de un problema social. Este análisis se realiza bajo la consideración de que su conocimiento sirve como pauta para la selección de alternativas de solución. El análisis de problemas ofrece una primera idea del impacto social que tendría el proyecto, en la medida que permite identificar los efectos o consecuencias que serían evitados si el problema fuera solucionado. Desde el punto de vista cognitivo, el análisis de problemas es un estudio transversal: busca establecer relaciones causales en torno a un problema, en un momento dado, a través del descubrimiento de interrelaciones entre las distintas variables.
  • 5. DIAGRAMA DE FLUJO Son la representación gráfica de la secuencia de actividades de un proceso en los algoritmos. Consiste en símbolos para representar los pasos de un algoritmo. Cada símbolo tiene un significado que representa una acción a ser seguida, correspondiente a un paso del algoritmo. Cada símbolo se conecta a través de flechas, denominadas líneas de flujo, que indican el orden en que los pasos deben ser ejecutados. Puesto que un diagrama de flujo es la representación gráfica de un algoritmo, también debe tener: ENTRADA – PROCESO – SALIDA. Para comprender mejor los diagramas de flujo, se tiene que respetar las reglas de construcción. Al realizar una prueba manual, se debe tomar un conjunto de datos significativos de entrada y comenzar a recorrer el Flujograma de arriba hacia abajo y de izquierda a derecha; según sea la forma representada, para ver cómo se comporta el Flujograma y si los resultados obtenidos son correctos y coherentes. EJEMPLO: Queremos hacer un programa informático que nos sume dos número y nos dé el resultado en pantalla. SOLUCIÓN DEL EJEMPLO:
  • 6. DESVENTAJAS • No provee una representación gráfica del algoritmo, por lo que puede ser difícil entender la lógica compleja de un pseudocódigo. • Si el pseudocódigo contiene demasiadas condiciones anidadas puede ser difícil de entender. Ejemplo Escribir un Pseudocódigo de un programa que permita leer la edad y peso de una persona y posteriormente imprimirla. Inicio Variables Numéricas: edad, peso. Imprimir "Escribir los datos (Edad, Peso):"; Leer Edad, Leer Peso; Escribir "Tu peso es: ", peso, " y tu edad es: ", edad.; Fin PSEUDOCÓDIGO El pseudocódigo es un tipo de descripción que incluye un poco de lenguaje natural y de instrucciones estandarizadas para los lenguajes de programación. Podemos decir que es un lenguaje intermedio entre el lenguaje natural (nuestra forma normal de expresarnos) y cualquier lenguaje de programación específico, como por ejemplo C, Fortran, Pascal, etc. VENTAJAS • Es más fácil y rápido de elaborar en comparación con el Flujograma. • Es más fácil detectar errores y hacer cambios. • No necesita ser reescrito si se hacen cambios, ya que cada paso es independiente y puede ser modificado sin alterar los otros pasos. • Es fácil su traducción a cualquier lenguaje de programación. Esto no se logra con los flujogramas y tablas de decisión, ya que el formato usado por el pseudocódigo es similar a un programa. Ambos contienen un grupo de instrucciones secuenciales usando un grupo de instrucciones definidas. • Es un lenguaje algorítmico similar al español u otro idioma • Es una imitación de las instrucciones reales para una computadora • Permite representar en forma fácil operaciones repetitivas complejas. • Al seguir las reglas se pueden observar claramente los niveles que tiene cada operación.
  • 7. VARIABLE, CONSTANTE Y PROCESOS Variable Cada variable debe ser declarada antes de ser utilizada en el programa. Como las variables se almacenan en la memoria RAM, es necesario reservar el espacio para ellas (uno, dos o más bytes). Al escribir un programa, usted sabe qué tipo de datos quiere utilizar y qué tipo de datos espera como resultado de una operación, mientras que el compilador no lo sabe. No se olvide de que el programa maneja las variables con los nombres asignados. El compilador las reconoce como números en la memoria RAM sin conocer su tamaño y formato. Constante Similar a las variables, las constantes deben ser declaradas antes de ser utilizadas en el programa. En mikroC, no es obligatorio especificar el tipo de constante al declararla. Por otra parte, las constantes deben ser inicializadas a la vez que se declaran. El compilador reconoce las constantes por su prefijo constante utilizado en la declaración. Procesos Cuando son ejecutables varios procesos, el sistema operativo debe decidir cuál conviene ejecutar si el CPU se encuentra disponible. El elemento del sistema quien toma esta decisión se llama PLANIFICADOR y el algoritmo del cual hace uso se denomina ALGORITMO PLANIFICADOR.
  • 8. ESTRUCTURA DE CONTROL Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando un esquema tan sencillo, en ocasiones es necesario repetir una misma acción un número determinado de veces o evaluar una expresión y realizar acciones diferentes en base al resultado de dicha evaluación. Para resolver estas situaciones existen las denominadas estructuras de control que poseen las siguientes características: • Una estructura de control tiene un único punto de entrada y un único punto de salida. • Una estructura de control se compone de sentencias o de otras estructuras de control. Tales características permiten desarrollar de forma muy flexible todo tipo de algoritmos aún cuando sólo existen tres tipos fundamentales de estructuras de control: • Secuencial. • Alternativa. • Repetitiva. A lo largo de esta lección se presentarán las distintas estructuras de control, la forma de representarlas en la notación algorítmica y las correspondientes sentencias FORTRAN para poder utilizarlas en nuestros programas. ESTRUCTURAS SECUENCIALES Son problemas en los que, para su solución se emplea una serie de acciones ejecutadas invariablemente en un orden secuencial. Las tareas suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. Dentro de este tipo podemos encontrar operaciones de inicio/fin, inicialización de variables, operaciones de asignación, cálculo, sumarización, etc. Este tipo de estructura se basa en las 5 fases de que consta todo algoritmo o programa: •Definición de variables (Declaración) •Inicialización de variables. •Lectura de datos •Cálculos •Salida REPRESENTACIÓN GRÁFICA:
  • 9. ESTRUCTURAS SELECTIVAS Las estructuras selectivas se utilizan para tomar decisiones lógicas; de ahí que también se conocen como estructuras decisión o alternativas. En las estructuras selectivas se evalúa una condición, y en función del resultado de la misma se toma un camino u otro. Las condiciones se establecen usando expresiones lógicas. La representación de una estructura selectiva se hace con palabras (Si- entonces-si_no), con una figura geométrica en forma de rombo, que incluye dos salidas. La salida que se utiliza depende del resultado de evaluar la expresión lógica que se encuentra en la parte interna del rombo. SELECTIVA DOBLE (ALTERNATIVA) La estructura selectiva si entonces/sino permite que el flujo del diagrama se bifurque por dos ramas diferentes en el punto de la toma de decisión(es). Si al evaluar la condición (o condiciones) el resultado es verdadero, entonces se sigue por un camino específico y se ejecuta(n) cierta(s) operación(es). SI el resultado es falso entonces se sigue por otro camino y se ejecuta(n) otra(s) operación(es). SELECTIVA MULTIPLE La estructura selectiva si múltiple permite que el flujo del diagrama se bifurque por varias ramas en el punto de la toma de decisión(es), esto en función del valor que tome el selector. Así si el selector toma el valor 1 se ejecutará la acción 1, si toma el valor 2 se ejecutará la acción 2, si toma el valor N se realizará la acción N, y si toma un valor distinto de los valores comprendidos entre 1 y N, se continuará con el flujo normal del diagrama realizándose la acción N + 1.
  • 10. ESTRUCTURAS ITERATIVAS: Son estructuras con instrucciones de repetición, de iteración o bucles, que facilitan la repetición de un bloque de instrucciones, un número determinado de veces o mientras se cumpla una condición. Por lo general, existen dos tipos de estructuras iterativas o bucles en los lenguajes de programación. El tipo de bucle que se ejecuta un número preestablecido de veces, que es controlado por un contador o índice, incrementado en cada iteración y el bucle que se ejecuta mientras se cumple una condición. Esta condición se comprueba al principio o el final de la construcción. • BUCLE MIENTRAS O BUCLE WHILE Es un ciclo repetitivo basado en los resultados de una expresión lógica; se encuentra en la mayoría de los lenguajes de programación estructurados. El propósito es repetir un bloque de código mientras una condición se mantenga verdadera. • BUCLE HACER O BUCLEDO El bucle do, bucle hacer, hacer-mientras o también llamado ciclo do-while, es una estructura de control de la mayoría de los lenguajes de programación estructurados cuyo propósito es ejecutar un bloque de código y repetir la ejecución mientras se cumpla cierta condición expresada en la cláusula while. La diferencia con el bucle while radica en que este evalúa la condición al principio, y si esta no se cumple, el código que está encerrado dentro del cuerpo no se ejecuta. En cambio, el bucle do-while evalúa la condición para seguir ejecutándose luego de haber ejecutado el código dentro de su cuerpo; es decir, siempre se ejecuta por lo menos una vez el código. TIPOS DE BUCLE
  • 11. • BUCLE PARA O BUCLE FOR El bucle for es una estructura de control en programación en la que se puede indicar de antemano el número mínimo de iteraciones.​ Está disponible en casi todos los lenguajes de programación imperativos. Su uso principal se orienta a los vectores, pudiendo modificar, agregar, eliminar o consultar datos que se encuentren según el índice. Por esto último, una condición mínima del vector es que debe ser ordenado, porque si se intenta leer un dato inexistente, esto genera un error de programación. • BUCLE REPETIR El bucle repetir comprueba la condición de finalización al final del cuerpo del bucle, y si ésta es cierta continua con el resto del programa, a veces esto resulta más adecuado. La instrucción se ejecutará al menos una vez. El cuerpo del bucle es el fragmento de programa que será repetido en cada iteración. La condición es una variable o una función reducible a valor booleano. • BUCLE PARA CADA O FOR EACH Este bucle es una evolución del concepto del bucle para en algunos lenguajes. Se utiliza para recorrer estructuras repetitivas de datos de forma más simple y ágil. El bucle For Each puede describirse genéricamente (en pseudolenguaje) de la siguiente manera: POR CADA elemento DE tipo EN conjunto HACER Cuerpo FIN FOR EACH
  • 12. ALGORITMO DE BUSQUEDA Un algoritmo 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. ALGORIDMO DE ORDENACIÓN En computación y matemáticas un 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 una permutación —o reordenamiento— de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos. EJEMPLO ubicar el registro correspondiente a cierta persona en una base de datos, o el mejor movimiento en una partida de ajedrez. La variante más simple del problema es la búsqueda de un número en un vector. ORDENAR = ['a','s','o','r','t','i','n','g','e','x','a','m','p','l','e'], el algoritmo va a recorrer el arreglo de izquierda a derecha. Primero toma el segundo dato 's' y lo asigna a v y i toma el valor de la posición actual de v. Luego compara esta 's' con lo que hay en la posición j-1, es decir, con 'a'. Debido a que 's' no es menor que 'a' no sucede nada y avanza i. Ahora v toma el valor 'o' y lo compara con 's', como es menor recorre a la 's' a la posición de la 'o'; decrementa j, la cual ahora tiene la posición en dónde estaba la 's'; compara a 'o' con a[j-1] , es decir, con 'a'. Como no es menor que la 'a' sale del for y pone la 'o' en la posición a[j]. El resultado hasta este punto es el arreglo siguiente: a = ['a','o','s','r',....] Así se continúa y el resultado final es el arreglo ordenado : a = ['a','a','e','e','g','i','l','m','n','o','p','r','s','t','x'] EJEMPLO: