0% encontró este documento útil (0 votos)
22 vistas66 páginas

Algoritmos

Cargado por

Cristian Lopez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
22 vistas66 páginas

Algoritmos

Cargado por

Cristian Lopez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

ALGORITMOS

Instructor: Sivelys Sarmiento Crespo


Contenido
• ¿Qué es un algoritmo?

• Características de un Algoritmo

• Elementos de un Algoritmo

• Tipos de Variables

• Requisitos que debe cumplir un algoritmo

• Fases de un algoritmo
¿Qué es un algoritmo?

• Un algoritmo es un
conjunto prescrito de
instrucciones o reglas bien
definidas, ordenadas y
finitas que permite realizar
una actividad.

El nombre en latín de algoritmo proviene de la traducción que realizó Fibonacci, de


la obra del matemático árabe Al'Khwarizmi llamada , Algoritmi de Numero Indorum.
Características de un Algoritmo

Finito

Definido Concreto

Algoritmo
Preciso Legible

No
Eficiente
Ambiguo

Seleccione una Característica


Características de un Algoritmo - Finito

Debe tener un
Finito
final, y terminar
en algún
momento Definido Concreto

Algoritmo
Preciso Legible

No
Eficiente
Ambiguo

Seleccione una Característica


Características de un Algoritmo - Concreto

Debe Realizar
Finito
las funciones
para la cual se
ha creado Definido Concreto

Algoritmo
Preciso Legible

No
Eficiente
Ambiguo

Seleccione una Característica


Características de un Algoritmo - Legible

Finito
Debe ser de fácil
entendimiento
Definido Concreto

Algoritmo
Preciso Legible

No
Eficiente
Ambiguo

Seleccione una Característica


Características de un Algoritmo - Eficiente
Es eficiente
cuando se ha Finito
utilizado un
mínimo en
recursos Definido Concreto

Algoritmo
Preciso Legible

No
Eficiente
Ambiguo

Seleccione una Característica


Características de un Algoritmo – No Ambiguo

Finito
No debe
contener errores
Definido Concreto

Algoritmo
Preciso Legible

No
Eficiente
Ambiguo

Seleccione una Característica


Características de un Algoritmo - Preciso

Debe existir una Finito


organización en
cada paso
Definido Concreto

Algoritmo
Preciso Legible

No
Eficiente
Ambiguo

Seleccione una Característica


Características de un Algoritmo - Definido

Debe existir el Finito


mismo resultado
siempre
Definido Concreto

Algoritmo
Preciso Legible

No
Eficiente
Ambiguo

Seleccione una Característica


Elementos de la Estructura de un Algoritmo
Elementos
Datos

Proceso

Estructuras de
control

Seleccione un Elemento
Elementos de la Estructura de un Algoritmo Datos
Elementos
Datos Hace referencia a los
datos requeridos para
realizar el algoritmo,
Proceso tales como datos de
entrada y datos de
salida
Estructuras de
control

Seleccione un Elemento
Elementos de la Estructura de un Algoritmo Proceso
Elementos
Datos Son aquellas
instrucciones que nos
ayudan a desarrollar las
Proceso operaciones de los
datos de entradas a
salidas.
Estructuras de
control

Seleccione un Elemento
Elementos de la Estructura de un Algoritmo
Estructuras de Control
Elementos
Datos
Las estructuras de
control son aquellas
que nos determinan
Proceso que el trabajo con los
datos sea realizado

Estructuras de
control

Seleccione un Elemento
Tipos de variables
Definición de
Variables y Se necesita
Constantes identificar
Las quea
instrucciones
ejecutar
datosdebenseránestar
Proceso:
claramente
Entrada Estructuras Salida procesados e
de control estructuradas, tener
ingresados
un orden lógico paray
que deNota:
dispuestas,este
Las modo,
para no
instrucciones son
saber
tener cuales se
inconsistencias
aquellos pasos que
Cuerpo del algoritmo generaran.
se deben cumplir,
para dar solución al
problema del
algoritmo
Diferentes Tipos de variables
Lógicos

Contenido Alfanuméricos

Numéricos
VARIABLES

Contadores
Uso
Acumulador
Requisitos que debe cumplir un Algoritmo
Requisitos Algoritmo

Debe Debe estar Debe


No debe ser
Definir el sobre el resolver el
ambiguo
problema contexto problema

Es de vital Es Crear instrucciones


importancia necesario para analizar el No debe
describir el tener claro problema, hacer decirme dos
problema a lo que se que los pasos del cosas, debe
solucionar. necesita. algoritmo sean estar preciso,
posibles, para que lógico y
Los algoritmos No salirse de este modo, se dé
son creados para del coherente
solución con la
ser resueltos. problema. secuencia creada.
Fases de un Algoritmo
Definición del Problema

Análisis del Problema

Selección de la mejor alternativa

Diagramación

Prueba de escritorio
Definición del Problema
• El caso del problema debe ser Completo y Eficiente.
• Debemos tener claro lo que se desea obtener.
• De esta forma podremos proceder a la siguiente fase.
Análisis del Problema

• Una vez definido el


problema es de
importancia entender y
analizarlo para procesar
a resolverlo a partir de los
datos de entrada que nos
suministran, y así obtener
resultados esperados.
Selección de la Mejor Alternativa
• Durante el análisis del
problema, existe la
posibilidad de
encontrarnos con dos o
más soluciones para
resolverlo. En esta fase
tenemos que elegir de
forma correcta la
solución más eficaz,
lógica y coherente para
solucionar el problema.
Diagramación

• Una vez tengamos todo lo necesario para solucionar el


problema, procedemos a dibujar gráficamente con ayuda
de la coherencia y la lógica, la alternativa seleccionada.
Prueba de Escritorio
• Este tipo de prueba hace referencia a que el analista
necesita dar diferentes datos de entrada al sistema,
siguiendo la secuencia de pasos indicados hasta lograr
obtener las salidas o los resultados, conforme a nuestro
problema.
TEORIA ALGORITMOS
Contenido

• Metodología Solución de Problemas por computadores

• ¿Qué es un Programa de Computadora?

• Tipos de Algoritmos y Diferencia

• Lenguajes algorítmicos
Metodología para la solución de problemas por
medio de computadora:
1
Definición del
Problema
Es Importante el 2
Análisis del
orden de la Problema
metodología. 3 Diseño del
Algoritmo
4
Metodología Codificación
5
Prueba y
Depuración
6
Documentación
7
Mantenimiento
1. Definición del Problema

• Es muy importante tener


una definición clara y
precisa para conocer lo
que se quiere que realice la
computadora.
• Si esto no se cumple es
recomendable no continuar
con la siguiente etapa.
2. Análisis del Problema
Una vez tengamos claro lo
que se necesita que realice
la computadora, es
necesario definir:

• Los Datos de entrada


• La información que se desea producir (salida)
• Los métodos y fórmulas que se necesitan para procesar los
Una recomendación muy practica es el que nos pongamos
datos.
en el lugar de la computadora y analicemos que es lo que
necesitamos que nos ordenen y en qué secuencia, para
producir los resultados esperados.
3. Diseño del Algoritmo
• Se refiere al diseño que
será creado, a partir de la
serie de pasos organizados
que describe el proceso
que se debe seguir.
• Para que sea un buen
algoritmo es necesario las
siguientes características:
• Debe tener un punto particular de inicio.
• Debe ser definido, no debe permitir dobles interpretaciones.
• Debe ser general, soportar las variantes que se puedan presentar
en la definición del problema.
• Debe ser finito en tamaño y tiempo de ejecución.
4. Codificación
Es la operación de escribir la
solución del problema, en
una serie de instrucciones
detalladas, en un lenguaje
reconocible por la
computadora.
5. Prueba y Depuración
• Los errores humanos dentro de la programación de
computadoras son muchos y aumentan
considerablemente con la complejidad del problema.
• Se le llama Depuración a el proceso de identificar y
eliminar errores, para dar paso a una solución sin errores.
6. Documentación

• Hace referencia a la guía o


comunicación escrita en
sus variadas formas, ya
sea en enunciados,
procedimientos, dibujos o
diagramas.
7. Mantenimiento
• Esta fase se lleva al cabo con el fin de mejorar, cambiar o
complementar el sistema de información para que este
obtenga un correcto funcionamiento. Para esto es
necesario tener un documento bien estructurado.
Programa de Computadora

• Se refiere a aquel conjunto de instrucciones que


producirán la ejecución de una determinada tarea. En si,
un programa son las instrucciones para darle solución a
un problema, es aquel medio para conseguir un fin.
Tipos de Algoritmos
Cualitativos

• Se describen los pasos utilizando palabras.

Cuantitativos

• Se utilizan cálculos numéricos para definir


los pasos del proceso.

• Una Diferencia entre estos conceptos, es que los algoritmos cualitativos


son aquellos que están conformados por letras, y los cuantitativos que
se encuentran conformados por cálculos numéricos.
Lenguajes Algorítmicos
• Los lenguajes algorítmicos son aquellos que están
conformados por una serie de símbolos, caracteres y reglas
usadas para describir los procesos. Estos pueden ser:

No Gráficos Gráficos
• Pseudocódigo. • Diagrama de flujo.
• Representan en forma • Representan gráficamente
descriptiva los pasos que los pasos que debe realizar
debe realizar un algoritmo un algoritmo para solucionar
para solucionar el problema. el problema.
• Esta representación gráfica
• El pseudocódigo es una se da cuando varios
mezcla de lenguaje de símbolos, se relacionan
programación y español que entre sí mediante líneas.
se emplea, en programación
estructurada.
EXPRESIONES
Contenido
• ¿Qué es una expresión y sus elementos?

• ¿Qué son los Operandos?

• Clasificaciones que existen tipos de datos

• ¿Qué es una variable?

• Tipos de variables en un algoritmo

• Tipos de Operadores

• Evaluación operadores de tipos diferentes

• Ejemplos de Datos

• Tabla de operadores en programación

• Operadores lógicos más usados


Expresiones
• Las expresiones se refieren a aquellas combinaciones de
operando, operaciones y símbolos de agrupación.

Signos de Paréntesis
Datos Operaciones

Elementos que componen una Expresión

• Cada expresión toma un valor que se determina tomando


los valores de los datos implicados y ejecutando sobre
ellos las operaciones indicadas.
Operandos
• Aquellos datos que son utilizados cuando hay operandos
numéricos para dar resultados numéricos.

Ejemplo:
7+3 = 10 10 Div 4 = 2
7-3 = 4 20 Mod 3 = 2
7*3 = 21 5 Mod 7 = 5
10/4= 2.5 4 ^ 2 = 16
• En la expresión 7+3, los valores 7 y 3 se denominan
operandos.
Clasificaciones que existen Tipos de datos
• Los datos pueden encontrarse clasificados según la clase
de la valor que tengan o según la estabilidad de su valor
en el tiempo:
• Según la clase de valor: Todos los datos tienen un tipo
asociado con ellos, de acuerdo con su valor. Un dato
puede ser un simple carácter.
Según la clase de valor
Numéricos (enteros
• Su clasificación es: y reales)

Simples Lógicos

Alfanuméricos
(carácter y cadenas)

Arreglos (vectores y
Tipos de Datos matrices)

Apuntadores

Estructurados

Registros
Def. por el usuario
(enumerados)
Archivos
Según la estabilidad de su valor en el tiempo
• Según la estabilidad de su valor en el tiempo: Un dato a
lo largo del tiempo pueden conservar su valor o ir
adquiriendo valores diferentes. Acorde a esto, los datos
pueden ser: Numéricas

Por su
Lógicas
contenido
Constantes
Tipos de Datos Alfanuméricas
Variables
De Trabajo

Por su uso Contadores

Acumuladores
Variable
• Es aquel espacio en la memoria del computador que
permite almacenar un dato; su contenido puede cambiar
durante la ejecución del programa. Para identificar una
variable en memoria, es necesario darle un nombre con el
cual podamos mencionarla en un algoritmo.

Ejemplo:

área = pi * radio ^ 2

Variables: radio y área, constante: pi


Tipos de variables en un algoritmo
Existen 6 diferentes tipos de variables, entre las cuales:
• Variable numérica: Es aquella que almacena valores
numéricos, positivos o negativos.
Ejemplo: a=0.15
• Variable lógica: Variable en la cual, solo puede tener dos
valores (cierto o falso).
Ejemplo: sw=”F”, res=”V”
• Variable Alfanumérica: Aquella que contiene carácteres
alfanuméricos (letras, números y carácteres especiales).
Ejemplo: letra=’a’, apellido=’Lopez’, direccion=’Av. Libertad
#190’
Tipos de variables en un algoritmo
• Variable de Trabajo: Es la que recibe el resultado de una
operación matemática.
Ejemplo: suma=a+b
• Variable Contador: Aquella que controla el número de
ocasiones en que se realiza una operación o se cumple
una condición; se incrementa generalmente de uno en
uno.
Ejemplo: cuenta=cuenta+1
• Variable Acumulador: sirve para llevar la suma
acumulativa de una serie de valores que se van leyendo o
calculando progresivamente.
Ejemplo: suma=suma+c
Tipos de Operadores
• Existen tres tipos de operadores, de los cuales:
• Operadores Aritméticos: +, - , *, /, ^ (exponenciación),
mod (módulo, residuo de división entera) y div (cociente
de división entera). Los operadores aritméticos permiten
la realización de operaciones matemáticas sobre los
operandos. La prioridad de los operadores aritméticos es:

Ejemplos:
( ) • 23 * 2 / 5 = 9.2
Λ • 4 + 2 * 5 = 14
*, /, mod, div • 3 + 5 * (10 - (2 + 4)) = 23
+, - • 3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23
• (1.5 + 3.0 * 4.1) = 28.98
Tipos de Operadores
• Operadores Lógicos: Λ (y, and, conjunción), V (o, or,
disjunción), ~ (¬, no, not, negación). Establecen
relaciones entre valores lógicos, que pueden ser
resultado de una expresión relacional. La prioridad de
los operadores lógicos es:

~ (¬, no, not, negación)


Λ (y, and, conjunción
V (o, or, disjunción)
Tipos de Operadores
• Las expresiones con operadores lógicos (proposiciones) se
evalúan usando tablas de verdad, que muestran los valores de
verdad que puede tener una proposición y las condiciones que
los determinan. Una proposición tiene valor verdadero (V) o
falso (F), pero no ambos a la vez.
P Q P^Q P Q PvQ p q p→q p q p↔q
V V V V V V V V V V V V
p p
V F F V F V V F F V F F
V F
F V F F V V F V V F V F
F V
F F F F F F F F V F F V

Ejemplos para a = “V”, b = “V” y c = “F”:


•aVc Verdadero
• aΛ~b Falso
Tipos de Operadores
• Operadores Relacionales: >, <, >=, <=, =, < >
(diferente). Los operadores relacionales se utilizan para
establecer una relación entre dos valores del mismo tipo,
comparándolos entre sí para producir un resultado de
certeza o falsedad. Los operadores relacionales tienen el
mismo nivel de prioridad en su evaluación y tienen menor
prioridad que los aritméticos.
Ejemplos para a = 10, b = 20 y c = 30:
•a+b>c Falso
•a-b<c Verdadero
•a-b=c Falso
•a*b<>c Verdadero
Tipos de Operadores
• Evaluación de operadores de tipos diferentes:
La prioridad a usar es la siguiente:

( )
Λ
(exponenciación)
~ (¬, no, not, negación)
*, /, mod, div, Λ (y, and, conjunción)
+, -, V (o, or, disjunción)
>, <, > =, < =, < >, =
Ejemplos de Datos:
• Numéricos: • Lógicos:
• 2 • Si la persona es hombre y tiene una
• 0.15
estatura ≤ 1.70, puede concursar en
• 35
los juegos intercursos del colegio:
• 6.7
• 45 Persona Genero Estatura p^q
Natalia Mujer 1,71 F
• Alfanuméricos: Armando Hombre 1,68 F
• Ortiz Julio Hombre 1,78 V
• r Andrea Mujer 1,72 F
• Cra. 15F # 66-76 Carlos Hombre 1,80 V
• A
• 1998
• Ronal Ortiz Rivero
Operadores lógicos más usados

Operación Operador lógico Operador lógico Símbolo o


(En español) (En Ingles) carácter
CONJUNCION y And Λ
DISJUNCION o or V
NEGACION No Not ~
Valores de p q
• ¿Para qué valores de p y q es verdadera la proposición (p ^ q)?

Para valores de p verdadero y q verdadero.

• ¿Para qué valores de p y q es falsa la proposición (p v q)?


Para valores de p falso y q falso.
Ejercicios
• Dada las expresiones a = 5, b=2, evalúe según las tablas
de verdad si las siguientes expresiones son falsas o
verdaderas:

• NOT (a = 5) Falso
• NOT (b <> 2) Verdadero
• (a < 4 ) AND (b < 1) Falso
• (a < 4) OR (b < 1) Falso
• (a = 5 ) AND (b <> 2) Falso
• (a >= 2) OR NOT(b < a) Verdadero
LENGUAJE
Contenido
• ¿Qué es un lenguaje?

• ¿Qué es un lenguaje de programación?

• Diferencia entre un lenguaje de máquina, de

bajo nivel y de alto nivel.


• ¿Qué es un intérprete?

• ¿Qué es un compilador?
Lenguaje
Aquella serie de símbolos que sirven para transmitir uno o
más mensajes (ideas) entre dos entidades diferentes. A la
transmisión de mensajes se le conoce comúnmente como
comunicación. Las dos principales reglas son:

• Los mensajes deben tener un solo sentido.

• Deben existir 4 elementos: emisor, receptor, medio de


comunicación y mensaje.
Lenguaje de Programación
• Es un conjunto de símbolos, caracteres y reglas que le
permiten a las personas comunicarse con la
computadora.
Clasificación
Los lenguajes de programación se clasifican en:
• Lenguaje de Máquina: Sus instrucciones son directamente
entendibles por la computadora y no necesitan traducción
para que la CPU pueda comprenderlas y ejecutarlas. Las
instrucciones se expresan en términos de la unidad de
memoria más pequeña: el bit (dígito binario 0 o 1).
• Lenguaje de Bajo Nivel: Ensamblador. Las instrucciones se
escriben en códigos alfabéticos conocidos como
mnemotécnicos para las operaciones y direcciones
simbólicas.
• Lenguaje de Alto Nivel: Visual Basic, C++, Cobol, etc. Las
instrucciones son escritas con palabras similares a los
lenguajes humanos (en general en inglés), lo que facilita la
escritura y comprensión del programa.
Diferencias lenguaje de máquina, de bajo nivel y de alto nivel

• En el Lenguaje de Maquina las instrucciones propuestas


son legibles y entendibles por la CPU, puesto que este no
necesita de traducción para entenderlo. Mientras que en
el Lenguaje de Bajo Nivel las instrucciones son escritas
en códigos alfabéticos. Y en el Lenguaje de Alto Nivel
las instrucciones se escriben con palabras entendibles a
los seres humanos, generalmente en el idioma ingles.
Interprete
• Es aquel traductor que toma un programa fuente escrito
en un lenguaje de alto nivel, lo traduce y lo ejecuta a
medida que lo traduce. Un lenguaje que soporta un
traductor de tipo intérprete se denomina lenguaje
interpretado.

Traduce y
Programa ejecuta
Intérprete
Fuente línea a
línea

Editar, Corregir Error del


sintaxis
Compilador

• Es aquel programa que traduce un programa fuente a un


lenguaje de alto nivel a lenguaje de máquina. El
programa escrito en lenguaje de alto nivel se llama
programa fuente y el programa traducido se llama
programa objeto o código objeto.
Fases de la Compilación
Programa fuente
• El programa objeto obtenido de la
compilación no ha sido traducido a
código máquina sino a ensamblador. Compilador (Traductor)
Para conseguir el programa de
máquina real se debe utilizar un
Programa objeto
programa llamado montador o
enlazador (linker). El proceso de
montaje conduce a un programa en Montador
lenguaje máquina directamente
ejecutable. Programa ejecutable en
lenguaje de maquina
Fin del Material

Gracias por su

También podría gustarte