CONSTRUCCION DE
ALGORITMOS
Programación Básica
Análisis de Sistemas
Abril 2009.
1
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
1
ALGORITMO
• Secuencia de pasos que resuelve un determinado problema.
Técnicas para Construir Algoritmos:
•
•
Diagramas de Flujo
• Pseudocódigo
Programa: Algoritmo escrito en
(Lenguaje de programación)
2
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
2
DIAGRAMAS DE FLUJO
INICIO
Definir Ingredientes y
Materiales
Agregar Sal
Obtener
Ingredientes.
Obtener
Materiales.
Apagar Cocina
Traspasar de Sarten a
plato
Encender Cocina
Calentar sartén con
Aceite
Servir y
comer
huevo
SI
Quebrar y hechar huevo
a Sartén
FIN
Revolver Huevo
NO
¿Está Frito?
3
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
3
SIMBOLOGIA D. FLUJO
Proceso o Actividad
Entradas o Salidas
Condición
Repetición o Iteración
Inicio o Fin
Conector
4
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
4
ELEMENTOS DE ALGORITMOS
1.
Variables
•
•
Almacenan un determinado dato en memoria.
Posee un nombre que la identifica, el cual debe comenzar con una
letra y no debe contener espacios en blanco ni caracteres.
Puede variar su valor en el transcurso del algoritmo.
Debe tener un tipo de dato definido, en relación al valor que
almacena, que no puede modificarse en la secuencia del
algoritmo.
•
•
5
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
5
TIPOS DE DATOS VARIABLES
Tipo de Dato
Definición
Ejemplos
ENTERO
Almacena valores
numéricos enteros
4, 7, -8, 24, 76,
876
REAL
Almacena valores
numéricos reales
5, 7, 5.8, 4.9, 4,...
CARACTER
Almacena sólo un valor
alfanumérico
a , b, c, *, $, ...
CADENA
Almacena un con-junto
alfanumérico
casa, auto, perro,
estre&&$, ...
BOOLEAN
Almacena un valor u otro.
FALSO
VERDADERO
6
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
6
DETERMINAR VARIABLES
•
Ejemplo
Problema: Determinar y mostrar en pantalla la suma de dos números
ingresados desde teclado.
¿Qué datos necesita el problema para su solución?
• Variable para almacenar el primer número ingresado por teclado.
• Variable para almacenar el segundo número ingresado por teclado.
• Variable para almacenar la suma.
Nombre identificador
Tipo de dato
Qué almacena
numero1
ENTERO
Primer número
numero2
ENTERO
Segundo número
suma
ENTERO
Suma dos numeros
7
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
7
VARIABLES
•
Sintaxis definición de Variables
<TIPO DE DATO>
•
<nombre variable>
Ejemplo:
ENTERO numero
•
Representación en Pseudocódigo
ALGORITMO SUMA
INICIO
ENTERO numero1, numero2
REAL suma
...
...
8
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
8
ELEMENTOS ALGORITMOS
2. Entradas y Salidas
Las entradas y salidas se obtienen de la definición del problema.
•
Entradas : ¿qué datos se necesitan para resolver el problema?
Son los datos que el algoritmo requiere antes de realizar las
actividades que resuelven el problema.
•
Salidas: ¿qué información debe entregar la solución del
problema? Son los datos que el algoritmo entregará como resultado
de las actividades realizadas.
9
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
9
ELEMENTOS ALGORITMOS
2. Entradas y Salidas
•
Ejemplo
Problema: Determinar y mostrar en pantalla la suma de dos números
ingresados desde teclado.
Entradas
Salidas
 Primer número de tipo entero.
 Segundo número de tipo entero.
 Suma de dos números enteros.
10
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
10
ENTRADAS Y SALIDAS
•
Sintaxis de entradas
LEER <nombre variable>
•
Sintaxis de salidas
MOSTRAR <nombre variable>
•
•
Representación en Diagrama de
Flujo
Obtener Número
LEER numero1
Obtener
Número
LEER numero2
Representación en Pseudocódigo
ALGORITMO SUMA
INICIO
/*Definición de variables*/
ENTERO numero1
ENTERO numero2
ENTERO suma
/*Entradas*/
LEER numero1
LEER numero2
...
Mostrar Resultado
IMPRIMIR numero1
Programación Básica 2009
Construcción de Algoritmos
/*Salidas*/
MOSTRAR suma
FIN
Natalia Voitmann Rocha
11
11
ENTRADAS Y SALIDAS
•
•
•
•
•
En los algoritmos las entradas se expresan a través de la palabra clave LEER.
Las entradas son datos que se obtienen generalmente desde teclado y su valor debe
almacenarse en memoria, es decir en variables, por lo tanto, la instrucción LEER siempre
va acompañada de una variable.
•
Ejemplo:
LEER numero1
Significa que el valor ingresado por teclado quedará almacenado en la variable
numero1
Las salidas se expresan con la palabra clave MOSTRAR.
Las salidas son datos que están almacenados en memoria y se mostrarán en pantalla, por lo
tanto generalmente MOSTRAR va acompañada de un variable. También puede acompañarse
de texto.
Ejemplos:
MOSTRAR suma
Significa que el valor mostrado en pantalla,
será el valor que en ese instante posee la
variable suma.
MOSTRAR “Hola mundo”
Significa que en pantalla se mostrara el texto
“Hola mundo”.
12
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
12
ELEMENTOS DE ALGORITMOS
3. Instrucciones de asignación
Son instrucciones que asignan o entregan a una variable a través del
símbolo “=“. Los contenidos a entregar son los siguientes:
•
•
El resultado de una expresión matemática, la cual puede contener uno o
varios operadores matemáticos del tipo: +, - , * , / , DIV, MOD.
El contenido de otra variable.
•
El resultado de una función.
13
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
13
ASIGNACIONES
•
Operadores Matemáticos
Ejemplos:
mayor = num1
doble = numero * 2
resultado = 3 * x + 5
suma = numero1 + numero2
+
Suma
-
Resta
*
Multiplicación
/
División
%
Resto
•
El resultado de la expresión debe ser del mismo tipo de dato que
nombre_variable. Ej. NO se puede asignar la palabra “Hola” a una
variable de nombre numero, definida como tipo ENTERO.
•
Instrucción incorrecta : numero = “HOLA”
Porque no son del mismo tipo de dato.
14
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
14
ASIGNACIONES
•
•
Sintaxis de entradas
<nombre variable> = <expresión>
•
Representación en Diagrama de
Flujo
Calcular Suma
suma=numero1+numero2
Calcular Doble
doble = numero1 * 2
Representación en Pseudocódigo
ALGORITMO SUMA
INICIO
/*Definición de variables*/
ENTERO numero1, numero2
ENTERO suma
/*Entradas*/
LEER numero1
LEER numero2
/*Obtener suma*/
suma=numero1+numero2
/*Salidas*/
MOSTRAR suma
FIN
15
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
15
ELEMENTOS ALGORITMOS
4 . Instrucciones condicionales
•
•
Las instrucciones condicionales evalúan una pregunta. Si la condición se
cumple, realiza una alternativa de instrucciones, sino, realiza la otra
alternativa de instrucciones.
La condición que evalúa el algoritmo, se construye con uno de los
siguientes operadores condicionales:
Operadores Condicionales
>
Mayor a
<
Menor a
==
Igual a
!=
Distinto a
>=
Mayor o igual a
<=
Menor o igual a
16
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
16
CONDICIONES
•
Ejemplos:
(numero > 2)
(nombre == “Juan”)
(numero1 <= numero2)
(numero2 != numero1)
•
La evaluación puede tener una o varias condiciones, las cuales se agrupan a través de
operadores lógicos del tipo: AND o Y, OR u O.
•
Ejemplos:
(numero>0) Y (numero<10)
(num1>num2) Y (num2<10)
(nombre=”Juan”) O ( nombre=”Pedro”)
(letra=”a”) O (letra=”A”)
17
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
17
REPRESENTACION
•
Representación en Diagrama de
Flujo
SI
numero1 >
numero2
Mostrar Resultado
IMPRIMIR numero1
NO
Mostrar Resultado
IMPRIMIR numero2
•
Representación en
Pseudocódigo
ALGORITMO SUMA
INICIO
/*Definición de variables*/
ENTERO numero1,numero2
/*Entradas*/
LEER numero1
LEER numero2
/*Obtener suma*/
SI (numero1>numero2)
MOSTRAR numero1
SINO
MOSTRAR numero2
FIN
18
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
18
ELEMENTOS ALGORITMOS
5.
Instrucciones de Repetición
•
Las instrucciones de Repetición permiten realizar varias veces una serie
de instrucciones.
•
Las instrucciones de Repetición, a diferencia de las condicionales, se
pueden plantear distintas formas, según el problema a resolver:
–
Repetir la serie de instrucciones un número FIJO de veces, por lo tanto, es
necesario especificar la cantidad de veces.
Repetir la serie de instrucciones un número VARIABLE de veces, lo que
también puede realizarse de dos forma:
–
•
•
Comenzar la serie de instrucciones y LUEGO evaluar una condición.
Preguntar PRIMERO si se cumple una condición y luego comenzar la serie de
repeticiones.
19
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
19
REPETICIONES O ITERACIONES
1. Repetir las instrucciones una cantidad FIJA de veces.
•
•
•
•
Este tipo de instrucciones necesita definir una variable que controle el ciclo de
repeticiones. Debe especificar
En qué valor comienza la variable.
En qué valor finalizará la variable.
Cuanto será su incremento en cada repetición.
Ejemplo: Imprimir en pantalla los primeros 100 números
enteros.
Variable : Entero i
Comienzo
: i=1
Fin
: i<N
Incremento
: i++
20
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
20
REPETICIONES O ITERACIONES
•
•
Representación en Diagrama de
Flujo
INICIO
DEFINIR VARIABLES
ENTERO i
i=1, i<=100, i++
Representación en
Pseudocódigo
ALGORITMO IMPRIMIR
INICIO
/*Definición de variables*/
ENTERO i
/*Mostrar números*/
PARA (i=1, i<=100, i++)
INICIO
Mostrar Resultado
IMPRIMIR i
MOSTRAR i
FIN
FIN
FIN
21
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
21
REPRESENTACION
EXPLICACION DIAGRAMA Y PSEUDOCODIGO
•
La instrucción MOSTRAR i, se repetirá 100 veces, ya que está dentro del
símbolo (en diagrama de flujo) o palabras (en Pseudocódigo) relacionadas a
repeticiones. Para esto, se especifica lo siguiente:
–
–
–
–
–
La variable de nombre i, controlará las repeticiones.
La variable i comenzará el ciclo de repeticiones con el valor 1.
Las repeticiones finalizarán cuando la variable i alcance el valor 100.
En cada repetición la variable i incrementará su valor en 1
La instrucción a repetir es MOSTRAR i
22
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
22
REPETICIONES
2. Repetir las instrucciones un número VARIABLE de veces
Instrucciones y luego la Condición.
•
Este tipo de instrucciones necesita especificar primero una serie de instrucciones, y
luego, una condición que permita controlar el ciclo de repeticiones. Mientras la
condición se cumpla, las instrucciones se repetirán. Si la condición no se cumple se
terminará el ciclo de repeticiones
•
Ejemplo: Leer números desde teclado mientras el valor de éstos sea menor a cero.
23
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
23
REPETICIONES
•
Representación en Diagrama de
Flujo
Representación en
Pseudocódigo
ALGORITMO LEER
INICIO
/*Definición de variables*/
ENTERO numero
HACER
INICIO
DEFINIR VARIABLES
ENTERO numero
SI
•
Leer número
LEER numero
INICIO
/*Leer números*/
numero < 0
LEER numero
NO
FIN
FIN
MIENTRAS (numero<0)
FIN
24
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
24
REPETICIONES
EXPLICACION DIAGRAMA Y PSEUDOCODIGO
•
La instrucción LEER numero, se repetirá mientras el valor leído sea
menor a cero, ya que está dentro del símbolo(en diagrama de flujo) o
palabras (en Pseudocódigo) relacionadas a repeticiones. Entonces:
–
–
–
–
Primero ejecuta la instrucción LEER numero.
Verifica si se cumple la condición (numero <0)
Si la condición se cumple, repite la instrucción LEER numero.
Si la condición no se cumple, finalizará las repeticiones, asegurando que el
valor almacenado en la variable numero será igual o superior a cero.
25
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
25
REPETICIONES
2. Repetir las instrucciones un número VARIABLE de veces
Condición y luego Instrucciones.
•
Este tipo de instrucciones necesita especificar primero una condición
que controle el ciclo de repeticiones y luego la serie de instrucciones a
repetir. Mientras la condición se cumpla, las instrucciones continuarán
repitiéndose.
•
Ejemplo: Leer un número y comenzar una suma, mientras esa suma
sea menor a 10, sumar 2 a la suma.
26
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
26
REPETICIONES
•
Representación en Diagrama de
Flujo
DEFINIR VARIABLES
ENTERO numero
ENTERO suma
Obtener número
LEER numero
Iniciar suma
suma=numero
/*Iniciar suma*/
suma=0
MIENTRAS (suma<10)
suma < 10
NO
Sumar 2 a suma
suma = suma + 2
Mostrar suma
IMPRIMIR suma
FIN
Programación Básica 2009
Construcción de Algoritmos
Representación en
Pseudocódigo
ALGORITMO SUMAR
INICIO
/*Definición de variables*/
ENTERO numero, suma
/*Leer número*/
LEER numero
INICIO
SI
•
INICIO
/*Sumar 2 a suma*/
suma=suma+2
FIN
/*Mostrar suma*/
MOSTRAR suma
FIN
Natalia Voitmann Rocha
27
27
REPETICIONES
EXPLICACION DIAGRAMA Y PSEUDOCODIGO
•
La instrucción suma=suma+2, se repetirá mientras la suma sea menor a 0,
valor leído sea menor a cero, ya que está dentro del símbolo (en diagrama de
flujo) o palabras (en Pseudocódigo) relacionadas a repeticiones. Entonces:
–
–
–
–
Primero se lee el valor de numero y se asigna ese valor a la variable suma.
Luego evalua o Verifica si se cumple la condición que suma sea menor a 10 (suma
<10)
Si la condición se cumple, agrega 2 a la variable suma, es decir, repite la instrucción
suma=suma+2.
Si la condición no se cumple, finalizará las repeticiones, mostrando en pantalla el valor
de la variable suma a través de la instrucción IMPRIMIR suma.
28
Programación Básica 2009
Construcción de Algoritmos
Natalia Voitmann Rocha
28