Está en la página 1de 21

Introducción a los algoritmos

Teoría de la Computación

Ing° Luis A. Loo Parián


¿Qué es un algoritmo?

 Procedimiento detallado para resolver un


problema en pasos y en un tiempo finito.
 Se especifican en base a operaciones básicas
que controlan las variables y el flujo del
algoritmo.
 El algoritmo lleva desde un estado inicial a un
estado final.
 El algoritmo recibe Entradas y entrega Salidas.

2
¿Cómo se describe un algoritmo?

 Lenguaje natural
 Pseudo código
 Lenguaje de programación
 La precisión es importante
 Un algoritmo no puede ser descrito de forma ambigua:
 Todos tienen que entender lo mismo (incluido el
computador!)

3
Llamada telefónica

 Se desea conceptualizar el
problema de efectuar una
llamada telefónica en un teléfono
público que recibe monedas de S/.
1.00, S/. 2.00 y S/. 5.00 El costo
mínimo de la llamada es de S/.1.00
por 5 minutos. El proceso se inicia
desde que se levanta el auricular y
finaliza cuando se cuelga.

4
Árboles de decisión

 Herramienta
útil para
describir
algoritmos que
involucran
gran cantidad
de decisiones.

5
Conceptos Básicos de
Algoritmos

 La forma en que se ejecutan las operaciones


básicas en un computador, es similar a lo que
ocurre en nuestro cerebro.
 Por ejemplo, para sumar dos valores:
 Primero debemos pedirle a alguien que nos diga el
primer valor.
 Luego de que conocemos este valor, debemos
almacenarlo (para recordarlo después) en una neurona
(Suponemos que un valor se puede almacenar en una
neurona).
 Ya conocemos el primer valor y está
almacenado en nuestro cerebro.
Conceptos Básicos de
Algoritmos

 Ahora debemos pedir el segundo valor.


 Una vez conocido, lo almacenamos en otra
neurona distinta de la anterior. ¿ Por qué?
 Ahora que conocemos los dos valores procedemos
a sumarlos, y dicho resultado lo almacenamos en
otra neurona distinta de las anteriores.
 Por último, le decimos el resultado a la persona que
nos entrego los números.
Conceptos Básicos de
Algoritmos

 De lo anterior, al menos necesitamos 3 neuronas para


sumar dos números.
 Le pedimos explícitamente que nos dijeran dichos
valores.
 Le asignamos dichos valores a las neuronas.
 La suma la realizó nuestro cerebro de forma mecánica.
Note que no existen detalles de la operaciones básicas
(*,/,+, -).
 Finalmente se da el resultado.
Conceptos Básicos de
Algoritmos

 Algoritmo para sumar dos números:


 Definimos tres neuronas
 Pedimos el primer valor
 Almacenamos ese valor en la neurona 1.
 Pedimos el segundo valor
 Almacenamos ese valor en la neurona 2.
 Almacenamos la suma de las neuronas 1 y 2 en la
neurona 3
 Entregamos el resultado que se encuentra en la
neurona 3.
Conceptos Básicos de
Algoritmos

 Sin embargo, en los lenguajes no se pueden


usar neuronas, pero podemos definir
variables (Recuerde que las variables
pueden tomar cualquier valor).

 En lugar de usar neurona 1 y neurona 2, se


utilizan espacios de memoria que
llamaremos “var 1” y “var 2”, y así
sucesivamente. También las podemos
llamar “x1” y “x2” ó “x” e “y” ….
Conceptos Básicos de
Algoritmos

Ejercicio: Cree un algoritmo que multiplique tres números.


• Algoritmo para multiplicar tres números:
– Definimos cuatro variables
– Pedimos el primer valor
– Almacenamos ese valor en var 1.
– Pedimos el segundo valor
– Almacenamos ese valor en var 2.
– Pedimos el tercer valor
– Almacenamos ese valor en var 3.
– Almacenamos la multiplicación de las variables en
var 4
– Entregamos el resultado que se encuentra en var 4.
Conceptos Básicos de
Algoritmos

 La manera en que hemos detallado


nuestros dos algoritmos se llama PSEUDO-
CÓDIGO. Y este pseudo-código fue escrito
en lenguaje natural.

 Otra manera de poder detallar nuestros


algoritmos es a través de los diagrama de
flujo. Un diagrama de flujo es una
representación simbólica de la lógica del
algoritmo.
Diagrama de Fujo

 Nomenclatura:
 Inicio del algoritmo Inicio

 Término del algoritmo Termino

 Impresión de mensajes
 Receptor de datos
 Operación de datos
F V
 Bifurcación (Decisión) ?

 Definición de variables
 Conector
Diagrama de Flujo y Pseudo-Código
DIAGRAMA DE FLUJO NOMENCLATURA PSEUDO-CÓDIGO

Inicio Inicio de Algoritmo Inicio

Variables
Entero var1, x , y Definición de variables Entero var1, x, y
Real a, b Real a, b

Escribir
Impresión de mensajes
“Mensaje 1” Escribir (“Mensaje 1”)

Leer
var1,x, y Lectura de mensajes Leer (var1, x, y)

Transformación de datos
a=3*x+ y Operaciones sobre los datos a=3*x+ y
b = a / var1 b = a / var1

Si a > b Entonces
Inicio
F V Bifurcación en la ejecución de
Instrucciones
Si a > b instrucciones
Fin
Sino
Inicio
Instrucciones
Fin
Conector

Fin Fin de algoritmo Fin


Diagrama de Flujo para el
algoritmo que suma dos valores

Inicio

var1,var,var3
Se definen las variables var1, var2, var3

Ingrese el primer valor


Se pide ingresar el primer valor

var 1 Se asocia el número ingresado a var1

Ingrese el segundo valor Se pide ingresar el segundo valor

var 2 Se asocia el número ingresado a var2

var3=var1+var2 Se asigna el resultado de la suma entre var1 y var2 a var3

El resultado es : var3 Se muestra el resultado

Termino
Diagrama de Flujo

 Ejercicio: Cree el diagrama de flujo para el algoritmo


que multiplica tres números y muestre el resultado.
 Ejercicio: Cree el diagrama de flujo para que divida
dos números y muestre el resultado.
 Ejercicio. Usando diagrama de Flujo. Cree un
algoritmos donde una persona ingrese su edad y
muestre por pantalla si es mayor de edad.
Algoritmos

 Operadores Aritméticos:
* multiplicación
/ División
+ Suma
- Resta
% Módulo
Ejemplo de módulo (o residuo de la división):
5%2 es 1
4%2 es 0
Algoritmos

 Operadores
Lógicos:
 Y, And, && Y V F

V V F

F F F
Algoritmos

 Operadores
Lógicos:
 O, Or, || O V F

V V V

F V F
Algoritmos

 Operadores
Lógicos:
No V F
 No, Not, !

F V
Diagrama de Flujo
 Ejercicio: Cree el diagrama de flujo para que divida dos números y
muestre el resultado.
 Ejercicio: Cree el diagrama de flujo para que resuelva la ecuación de
primer grado y muestre el resultado.
 Ejercicio: Cree el diagrama de flujo permita sumar tres números
ingresados por teclado y muestre el resultado.
 Ejercicio: Cree el diagrama de flujo para que resuelva la ecuación de
segundo grado, para valores reales e imaginarios, y muestre el
resultado.
 Ejercicio: Cree el diagrama de flujo que permita sumar “n” números y
muestre el resultado. El valor de “n” debe ser ingresado por teclado al
igual que los números que se sumarán.

También podría gustarte