Este documento define qué es un algoritmo y describe sus características principales. Un algoritmo es un conjunto finito de instrucciones ordenadas que permiten resolver un problema mediante pasos sucesivos. Los algoritmos pueden expresarse a través de lenguajes de programación, pseudocódigo o diagramas de flujo. El documento también presenta ejemplos de algoritmos para sumar números y multiplicar tres números.
2. PEMO-2015
¿Qué es un algoritmo?
• Se denomina algoritmo a un grupo finito de operaciones
organizadas de manera lógica y ordenada que permite
solucionar un determinado problema.
• Se trata de una serie de instrucciones o reglas establecidas
que, por medio de una sucesión de pasos, permiten obtener
un resultado o solución.
• Pueden ser expresados a través de lenguajes de
programación, pseudocódigo, el lenguaje natural y también a
través de símbolos que son conocidos como diagramas de flujo
• En resumen podemos decir que es un conjunto prescrito de
instrucciones o reglas bien definidas, ordenadas y finitas que
permite realizar una actividad mediante pasos sucesivos que
no generen dudas a quien deba realizar dicha actividad
3. PEMO-2015
Algoritmos
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 solicitar el primer valor y almacenarlo (para
recordarlo después) en una neurona (Suponemos que un valor se
puede almacenar en una neurona).
– Ahora debemos pedir el segundo valor y 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.
4. PEMO-2015
Algoritmos
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.
– Sumamos los valores almacenados en las primeras dos
neuronas.
– Almacenamos el resultados de la operación en la tercera
neurona
– Entregamos el resultado que se encuentra en la
neurona_3.
5. PEMO-2015
Algoritmos
Conceptos Básicos de Algoritmos
• En la realidad no es posible manejar las neuronas con
facilidad, pero podemos podemos usar algún receptáculo
(variables) que nos permitan almacenar cualquier valor.
• En el caso de una aplicación computacional las variables
representan espacios de memoria física del computador que
nos permitirá almacenar información de nuestras operaciones.
• Las variables las podemos designar con cualquier nombre que
sea entendible por las personas y por lo general hacen alusión
al contenido almacenado.
6. PEMO-2015
Algoritmos
Ejemplo de pseudocódigo
• Algoritmo para multiplicar tres números:
– Definir cuatro variables (var1/2/3/4)
– Solicitar 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.
– Multiplicar el contenido de va1, var2 y var 3
– Almacenamos el resultado en var 4
– Entregamos el resultado que se encuentra en var 4.
8. PEMO-2015
Algoritmos
Síntesis
• La manera en que hemos detallado los dos algoritmos
anteriores 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
9. PEMO-2015
Algoritmos
Diagramas de flujo
Nomenclatura:
– Inicio del algoritmo
– Término del algoritmo
– Impresión de mensajes
– Receptor de datos
– Operación de datos
– Bifurcación (Decisión)
– Definición de variables
– Conector
Inicio
Termino
?
F V
10. PEMO-2015
Inicio
Escribir
“Mensaje 1”
Fin
Leer
var1,x, y
a = 3 * x + y
b = a / var1
Entero var1, x , y
Real a, b
Si a > b
VF
Inicio de Algoritmo
Definición de variables
Impresión de mensajes
Lectura de mensajes
Transformación de datos
Operaciones sobre los datos
Bifurcación en la ejecución de
instrucciones
Conector
Fin de algoritmo
DIAGRAMA DE FLUJO NOMENCLATURA PSEUDO-CÓDIGO
Inicio
Variables
Entero var1, x, y
Real a, b
Escribir (“Mensaje 1”)
Leer (var1, x, y)
a = 3 * x + y
b = a / var1
Si a > b Entonces
Sino …..
Fin
Algoritmos
Diagrama de Flujo y Pseudo-Código
11. PEMO-2015
Inicio
Termino
var1,var,var3
Ingrese el primer valor
var 1
Ingrese el segundo valor
var 2
var3=var1+var2
El resultado es : var3
Se pide ingresar el segundo valor
Se pide ingresar el primer valor
Se asocia el número ingresado a var1
Se definen las variables var1, var2, var3
Se asocia el número ingresado a var1
Se asigna el resultado de la suma entre var1 y var2 a var3
Se muestra el resultado
Algoritmos
Diagrama de Flujo para sumar dos números
12. PEMO-2015
• Cree el diagrama de flujo para el algoritmo que multiplica tres números y
muestre el resultado
• Desarrollar un diagrama de flujo que reciba dos números, si el primero es
mayor que el segundo, mostrar el mensaje “el 1° es mayor” y restarle el
segundo, en caso que sean iguales mostrar el mensaje “son iguales” y
multiplicarlos, en caso que el 2° sea mayor mostrar el mensaje “ el segundo
es mayor” y sumar los valores, finalmente mostrar el resultado que
corresponda.
• Desarrollar un diagrama de flujo para resolver la ecuación de segundo grado
• Usando diagrama de Flujo, crear un algoritmos donde una persona ingrese su
edad y muestre por pantalla si es mayor de edad.
Diagramas de flujo
Ejercicios
14. PEMO-2015
– Del ejemplo anterior podemos observar que la bifurcación
permite seguir el flujo adecuado dada una condición.
– Las condiciones que se evalúan en las bifurcaciones son siempre
verdaderas o falsas.
– Por ende, hay que colocar las instrucciones adecuadas a los
valores que se evalúan en las bifurcaciones.
– También es posible que existan bifurcaciones contiguas.
– En las bifurcaciones o estructura de control, se evalúan
proposiciones utilizando:
• Operadores lógicos (&&, ||, Not)
• Operadores aritméticos (+, -, *, /, %)
• Operadores Relacionales
Diagramas de flujo
Resumen
15. PEMO-2015
• Ejercicio. Crear un algoritmo en pseudocódigo y diagrama de
flujos que muestre en forma ordenada tres número enteros
ingresados desde teclado.
Diagramas de flujo
Ejercicio final del tema
16. PEMO-2015
Inicio
var1,var,var3
Ingrese el
primer valor
var1
Ingrese el
segundo
valor
var2
Ingrese el
tercer valor
var3
1
1
var1>var2 &&
var1>var3
var2>var3
El orden es
var1,var2,
var3
El orden es
var1,var3
var2
Fin
var2>var3 var1>var3
El orden es
var2,var1,
var3
El orden es
var2,var3
var1
var2>var1
El orden es
var3,var2
var1
El orden es
v3,var1
var2
si
No
si
si si
si
No
No No
No
17. PEMO-2015
1. Crear un diagrama de flujo para el algoritmo que multiplica tres
números y muestre el resultado
2. Desarrollar el diagrama de flujo para que divida dos números y
muestre el resultado
3. Cree el diagrama de flujo para que resuelva la ecuación de primer
grado y muestre el resultado
4. Cree el diagrama de flujo para que resuelva la ecuación de
segundo grado, para valores reales e imaginarios, y muestre el
resultado
5. Cree el diagrama de flujo permita sumar tres números ingresados
por teclado y muestre el resultado
6. 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.
Diagramas de flujo
Ejercicios
18. PEMO-2015
Por lo general, en un programa las instrucciones se ejecutan
una después de otra en el orden en que están escritas.
Este proceso se conoce con el nombre de ejecución
secuencial. Varias instrucciones de Java permiten al
programador especificar que la siguiente instrucción a
ejecutarse talvez no sea la siguiente en la secuencia.
Esto se conoce como transferencia de control, entre estas
estructuras se encuentran las ESTRUCTURAS SELECTIVAS Y
LOS CICLOS REPETITIVOS.
Estructuras de control
Introducción
19. PEMO-2015
Desarrollar un diagrama de flujo que permita calcular la
multiplicación entre dos numeros. En primer lugar debe
solicitar y recibir las entradas correspondientes, desarrollar la
operación y mostrar el resultado. Para el desarrollo considere
que el computador sólo puede realizar operaciones que
permiten sumar.
Estructuras de control
Introducción
20. PEMO-2015
Una condición es la comparación que puede ser entre variable,
constante o expresión-numérica contra otra variable,
constante o expresión-numérica. A este tipo de condición se le
llama condición simple. La condición simple utiliza los
siguientes operadores para efectos de la expresión lógica en
Java:
Estructuras de control
Desiciones
Operador Significado
== igualdad
!= Diferente
> Mayor que
< Menor que
>= Mayor o igual
<= Menor o igual
22. PEMO-2015
Encuentre el valor de las siguientes expresiones relacionales
2 != 7
3 > 2
-1 <= -2
(5 – 7) > (3 – 4)
(3*2 + 5*4) == (8*5/2 + 4*4 – 10)
Estructuras de control
Ejercicios
23. PEMO-2015
La sentencia if permite decidir ejecutar o no una instrucción o un bloque
de instrucciones.
Sintaxis
if (condición)
Instrucción o bloque;
Un bloque es una secuencia de instrucciones englobadas entre llaves
(“{}”).
La condición esta formada por una expresión booleana.
Estructuras de control
Sentencia if
condición
sentencias
verdadero
falso
25. PEMO-2015
Este estamento sirve para realizar alguna(s) instrucción(es)
en vez de otra(s) de acuerdo condición resultante.
La versión simple de la instrucción if de java permite que un
programa tome una decisión, dependiendo de si una condición
es verdadera o falsa.
Pseudo código
Decisión simple: si <Expresión_Lógica> entonces
<acciones>
fin_si
JAVA
instrucción if: if ( Expresion_Logica ){
acciones
}
Estructuras de control
Sentencia if
26. PEMO-2015
La sentencia if – else permite decidir entre ejecutar una instrucción (o un
bloque de instrucciones) y otra instrucción (o un bloque de instrucciones)
Sintaxis
if (condición)
Instrucción o bloque;
else
Instrucción o bloque;
Estructuras de control
Sentencia if - else
condición
sentencias
verdadero
sentencias
falso
28. PEMO-2015
Comparar tres números
• Se desea comparar 3 números leídos desde el teclado, imprimiendo el
mayo de ellos.
• Se puede resolver comparando el primero con el segundo, luego si el
primero es mayor, se compara el primero con el tercero.
• Si el primero no es mayor que el segundo, entonces se compara el
segundo con el tercero.
Estructuras de control
Sentencia if - else
a>b
b>c a>c
“a mayor”“c mayor”“b mayor” “c mayor”
verdadero
verdadero falso falso verdadero
32. PEMO-2015
La sentencia switch permite elegir entre varias alternativas.
Sintaxis
switch (<expresión>){
case <constante>:[case <constante>:]<sentencias>;break;
...
[default:<sentencias>;break;]
}
Estructuras de control
Sentencia switch
caso a
caso b
Acción del
caso a
break;
Acción del
caso b
break;
caso z
Acción del
caso z
break;
Acción por
omisión
33. PEMO-2015
Permiten ejecutar de forma repetida un bloque específico de
instrucciones.
Las instrucciones se repiten mientras o hasta que se cumpla una
determinada condición. Esta condición se conoce como condición de
salida.
Tipos de estructuras repetitivas:
• while
• do – while
• for
Estructuras de control
Estructuras iterativas o repetitivas
34. PEMO-2015
Las instrucciones se repiten mientras la condición sea cierta.
La condición se comprueba al principio del bucle por lo
que las acciones se pueden ejecutar 0 ó más veces.
La ejecución de un bucle while sigue los siguientes pasos:
1. Se evalúa la condición.
2. Si el resultado es false las instrucciones no se ejecutan y el
programa sigue ejecutándose por la siguiente instrucción a
continuación del while.
3. Si el resultado es true se ejecutan las instrucciones y se vuelve
al paso 1
Estructuras de control
Ciclo while
35. PEMO-2015
Ejemplo en Java
Programa que lee números por teclado. La lectura termina cuando
el número introducido sea negativo. El programa calcula y muestra
la suma de los números leídos.
Estructuras de control
Ciclo while
36. PEMO-2015
La estructura do while es otra estructura repetitiva, la cual
ejecuta al menos una vez su bloque repetitivo, a diferencia
del while o del for que podían no ejecutar el bloque.
Esta estructura repetitiva se utiliza cuando conocemos de
antemano que por lo menos una vez se ejecutará el bloque
repetitivo.
La condición de la estructura está abajo del bloque a repetir,
a diferencia del while o del for que está en la parte superior.
La ejecución de un bucle do - while sigue los siguientes
pasos:
1. Se ejecutan las instrucciones a partir de do
2. Se evalúa la condición.
3. Si el resultado es false el programa sigue ejecutándose por
la siguiente instrucción a continuación del while.
4. Si el resultado es true se vuelve al paso 1
Estructuras de control
Ciclo do - while
37. PEMO-2015
Ejemplo:
Escribir un programa que
solicite la carga de un número
entre 0 y 999, y nos muestre un
mensaje de cuántos dígitos
tiene el mismo. Finalizar el
programa cuando se cargue el
valor 0
Estructuras de control
Ciclo do - while
39. PEMO-2015
Hace que una instrucción o bloque de instrucciones se repitan
un número determinado de veces mientras cumpla la
condición.
La estructura general de una instrucción for en Java es la
siguiente:
for(inicialización; condición; incremento/decremento){
instrucción 1;
...........
instrucción N;
}
Estructuras de control
Ciclo for
42. PEMO-2015
• Leer 10 número y mostar la media y la sumatoria.
• Determinar si se ha adivinado o acertado un número dado,
el que es comparado con un numero aleatorio definido
inicilamente. Considere que debe consultar si desea seguir
probando aciertos
Estructuras de control
Ejercicios
43. PEMO-2015
Validación de la fecha, consideraciones
• Ingresar 3 datos: día, mes y año
• Si el mes es = 1,3,5,7,8,10,12 y dia > 31 fecha invalida
• Si el mes es = 4,6,9,11 y dia > 30 fecha invalida
• Si el mes es = 2 y si el año es bisiesto y dia > 29 fecha invalida
• Si el mes es = 2 y si el año no es bisiesto y dia > 28 fecha invalida
• Para calcular el año bisiesto dividir el año por 4 y si el resto es = 0
año bisiesto en caso contrario año no bisiesto
•
Estructuras de control
Ejercicios
44. PEMO-2015
Validación RUT
1. Multiplicar cada dígito del RUT desde el dígito menos significativo
a partir de 2 y hasta 7 y volver a 2 nuevamente
2. Sumar las multiplicaciones parciales.
3. Calcular el resto de la división por 11
4. El Dígito Verificador es 11 menos el resultado anterior. Si es 10,
se cambia por 'k'.
Estructuras de control
Ejercicios