Você está na página 1de 41

ALGORITMOS

Algoritmos.

A pensar !!!!!! Siga la serie


a b c
1 2 3
A1 B1 C1
a bb ccc
A1 Bb2 Ccc3
0 1 1
Algoritmos.
Describa lo que hace desde que
se levanta hasta llegar a clase.

Calcular el rea de un
rectngulo

Todos lo hicieron de la misma


forma??
Algoritmos. Definicin

Entonces podemos decir que el


algoritmo, no es ms que un
conjunto de actividades,
ubicadas secuencialmente, una
a continuacin de otra, en forma
ordenada y que nos permite
llegar a un fin.
Algoritmos. Caractersticas
Finito

Debe terminar en algn momento

Preciso

Definirse de manera rigurosa, sin dar lugar a ambigedades

Definido

Cada vez que se realice llega siempre al mismo resultado

Otras caractersticas:

Objetivo, Claro, Eficientes, modificables, modulares y universal


Algoritmos. Tipos

Un algoritmo es
cualitativo
cuando en sus Los algoritmos
pasos o cuantitativos
instrucciones no involucran
estn clculos
involucrados numricos.
clculos
numricos.
Algoritmos. Componentes
En un algoritmo se debe considerar tres
partes:
Entrada: Informacin dada al algoritmo
Proceso: Operaciones o clculos necesarios
para encontrar la solucin del problema
Salida: Respuestas dadas por el algoritmo o
resultados finales de los clculos

Entrada Proceso salida


Algoritmos. Representacin

Diagramas de flujo de datos


DFD
Diagramas Nassi-Shneiderman
o Chapin
Pseudocdigo
Diagramas de flujo de datos.

Utilizan smbolos estandarizados


para representar de forma clara
el flujo de acciones definidas en
un algoritmo, existen reglas para
su elaboracin y la idea es que
cualquier persona que conozca
los pueda emplear.
DFD.Smbolos
smbolo Funcin Smbolo Funcin

Terminal Indicar el inicio y fin Flechas de Flujo Indica la direccin


del diagrama del flujo de la
informacin
Entrada/salida Entrada o salida Conectores Une dos partes del
simple de diagrama a la misma
informacin o diferente pgina

Proceso Realizar cualquier Introducir datos


operacin o calculo Teclado manualmente por el
con la informacin teclado
Decisin Indica operaciones Salida a Impresora Salida de informacin
lgicas o de a la impresora
comparacin y
tienen dos salidas Salida a Pantalla Mostrar informacin
dependiendo del de salida a la
resultado. pantalla
Recomendaciones para elaborar
DFD
Se deben trazar los flujos de arriba hacia abajo y
de izquierda a derecha.
Cada uno de los smbolos debe tener nicamente
un flujo de entrada.
A excepcin de la decisin y los conectores, todos
deben tener una salida.
Se deben usar lneas de flujo rectas (horizontales
y/o verticales)
Se debe evitar el cruce de lneas.
No deben quedar lneas de flujo sin conectar.
El texto dentro de los smbolos debe ser breve y
claro.
DFD.

Secuencia de acciones
Decisin de accin
Ciclos de accin.
DFD. Ejercicio

Preparar una taza de caf


Realizar una llamada telefnica
Sumar, restar, multiplicar 2 nmeros
Calcular rea de un tringulo
Calcular rea de una circunferencia
Indicar cual es el mayor de 2 nmeros
dados
Escribir la serie del nmero indicado hasta
en limite indicado
PSEUDOCDIGO
El pseudocdigo es una manera de
escribir algoritmos de forma poco estricta
(con una sintaxis relajada) o estructuras de
datos poco detalladas, pero intentando
acercar las ideas del algoritmos a
estructuras y sintaxis parecidas a las de los
lenguajes de alto nivel en los que vamos a
programar el algoritmo.

Es para ser ledo por personas, por tanto no


se preocupa en detalles sintcticos.
PSEUDOCDIGO
Es un lenguaje de especificacin de
algoritmos, pero muy parecido a cualquier
lenguaje de programacin, por lo que luego
su traduccin al lenguaje de programacin
es muy sencillo, pero con la ventaja de que
no se rige por las normas de un lenguaje en
particular. Nos centramos ms en la lgica
del problema.

El pseudocdigo tambin va a utilizar una


serie de palabras claves o palabras
especiales que va indicando lo que significa
el algoritmo.
Pseudocdigo - Sintaxis Utilizada.

1. INICIO y FIN: Por donde empieza y acaba el algoritmo.

2. DATOS: Aqu se declaran e inicializan las variables que


utilizar el algoritmo.

3. ALGORITMO: En esta seccin se escribe el algoritmo.

Pseudocdigo de un algoritmo genrico:

INICIO.
DATOS: ** esto es un comentario **
entero a ; ** declaracin de una variable entera **
real b = 0 ; ** declaracin e inicializacin de una variable **

ALGORITMO:
leer a ;
b=a+5;
escribir b ;
FIN.
16 Juan Ignacio Talpone
Conceptos de Algoritmos
Qu es un Dato?

Cualquier valor que sirva como entrada o


salida al proceso de transformacin en
informacin y que representa una
caracterstica o atributo de un concepto
compartido por los humanos.
Ejemplo: (edad) 25, (ciudad domicilio) Quito.
Los datos se sitan en objetos llamados
variables
Conceptos de Algoritmos
Variables
Una variable es una localizacin en la
memoria principal que almacena un
dato que puede cambiar a lo largo de la
ejecucin del programa.
Llevan un nombre llamado
identificador.
Tiene asociada un identificador y un tipo de
dato
Conceptos de Algoritmos
Identificadores

Son palabras para dar nombre a los datos de un


programa (constantes, variables, tipos de datos),
y que nos permiten el acceso a su contenido.

Asignaciones. Se realizan con el operador de =


Ejemplo: C = 2 ( A la variable C le asigna el valor
2)
Conceptos de Algoritmos
Identificadores
Reglas para formar un Identificador

Debe empezar con una letra, y no contener


espacios.
Puede tener Letras , nmeros y el carcter _
Ser lo ms significativo posible, que no sea una
palabra reservada del lenguaje de programacin
La longitud depende del lenguaje utilizado.
Conceptos de Algoritmos
Constantes

Una constante es un dato que no


cambia durante la ejecucin del
programa
Ejemplo, el valor de Pi (3,141516)
Conceptos de Algoritmos
Tipos de Datos

Es el conjunto de valores que


puede tomar una constante o
variable.
Por ejemplo, para representar los
datos de un alumno como:
Nombre, Num_cta, calf1, calf2.
Conceptos de Algoritmos
Tipos de Datos

Hay dos clases : Simples y Compuestos o


Estructurados

Simples: Almacena un solo valor.

Compuestos: Pertenecen las estructuras


de datos. Almacenan ms de un
valor, e incluso de diferentes
tipos de datos.
Clasificacin de los Datos Simples
1. Numricos : representan cifras con las
que se puede realizar operaciones
aritmticas.
1. Enteros
2. Reales : con parte decimal o
fraccionaria.
2. Carcter (un solo carcter) o Cadena de
caracteres (conjunto de caracteres). Se
denotan entre o
3. Lgicos: Sus valores son Verdadero o
Falso, resultado de una comparacin.
Conceptos de Algoritmos
Declaracin
Podemos imaginar que la memoria RAM esta
representada por una colmena, y en la medida
que necesitamos almacenar datos, nos ser
asignado un espacio, que debe tener un nombre y
a este se le asignarn los valores, que pertenecen
a los tipos de datos descritos anteriormente.

Luego, una Declaracin es la aclaracin que se


hace en un programa para indicarle al computador
que datos se utilizarn. Se realiza indicando el
TIPO DE DATOS a contener y los
IDENTIFICADORES (Variables y Constantes) de los
Datos.
Conceptos de Algoritmos
Expresin

Una expresin es la combinacin de


variables y constantes a travs de
smbolos de operacin denominados
operadores con los que se realizan
las operaciones y permite obtener un
resultado.
Ejemplo: resultado = a*(2*b+5)/c
Ojo <-
Conceptos de Algoritmos
Operadores

Operador es un smbolo o palabra que


significa que se ha de realizar cierta
accin entre uno o dos valores que son
llamado operandos.
TIPOS DE OPERADORES:
Asignacin
Aritmticos
Relacionales
Lgicos
Operadores

Operador de asignacin

1) =
Sirve para recuperar o guardar los valores
obtenidos al realizarse o ejecutarse una
expresin
Operadores

Operadores aritmticos
Son utilizados para realizar operaciones
matemticas

1)^ POTENCIA
2)* MULTIPLICACION
3) / DIVISION
4) mod, div
5)+ SUMA
6) - RESTA
Operadores

Operadores de relacin
1)Mayor que >
2)Menor que <
3)Mayor igual que >=
4)Menor igual que <=
5)Igual =
6)Diferencia < > !=

Son empleados para comparar dos ms valores.


Su resultado produce valores como verdadero y
falso.
Operadores
Operadores lgicos
Cuando se necesita unir varias condiciones se
utilizan los operadores lgicos, tomando muy en
cuenta las tablas de verdad de cada operador.
Y (AND) O (OR) No (NOT)
val1 val2 Resul val1 val2 Resul val1 Resul

V V V V V V V F
V F F V F V F V
F V F F V V
F F F F F F

Son empleados para comparar dos valores (Falso y


verdadero
Su resultado produce valores como verdadero y
falso.
Precedencia de los Operadores
Significa, que operacin debe realizarse
primero, La jerarqua es la siguiente:

1 () los parntesis desde los mas internos


2 ^ exponenciacin (alt+94)
3 * o / multiplicacin y divisin
4 + - suma o resta
5 >, < = ..... Los operadores relacionales
6 not no lgico
7 or y and lgico o y
Estructuras de Control Secuenciales.

Asignacin: promedio = (n1+n2)/2

Entrada: Leer nombre

Salida: Escribir Hola


Escribir sin saltar

33
Estructuras de Control Selectivas.

Si: Si la Condicin es Verdadera, se ejecuta la Accin, sino el


algoritmo continua con su ejecucin.

No

Condicin
Verdadera?

Si < Condicin > entonces


Si
<Accin>
Fin_Si
Accin

34
Estructuras de Control Selectivas.

Si Sino: Si la Condicin es Verdadera, se ejecuta la Accin 1,


sino el algoritmo ejecuta la Accin 2. Luego el algoritmo continua
con su ejecucin.

No
Condicin
Verdadera?
Si < Condicin > entonces
< Accin 1 >
Si
Sino
< Accin 2 >
Accin 1 Accin 2

Fin_Si

35
Estructuras de Control Selectivas.
Si Sino Si: Si la Condicin 1 es Verdadera, se ejecuta la Accin 1, sino el algoritmo
evala la Condicin 2. Si es Verdadera, ejecuta la Accin 2 y sino la Accin 3.

Si < Condicin 1 >


< Accin 1 >
Sino
Cond. 1 No Si < Condicin 2 >
Verdade < Accin 2 >
ra?
Sino
< Accin 3 >
Cond. 2 No fin Si
Si
Verdade
ra?
Fin_Si
Accin 1

Si

Accin 2 Accin 3

36
Estructuras de Control Selectivas.
Segn (alternativa mltiple): Se evala una condicin o expresin
que puede tomar n valores. Segn el valor que la expresin tenga
en cada momento se ejecutan las acciones correspondientes al
valor. El valor con el que se compara la expresin, va a depender de
los lenguajes, de lo que sea ese valor. En general ese valor puede
ser un valor constante, un rango de valores o incluso otra condicin.

Segn <expresin>
Expresin
o < Valor 1 >: < Accin 1 >
Condicin
< Valor 2 >: < Accin 2 >
< Otro >: < Acciones >

Fin_Segn

Accin 1 Accin 2 Accin n

37
Estructuras de Control Repetitivas.
Mientras: Se evala la Condicin. Si es Verdadera, se ejecuta la
Accin y se evala nuevamente la Condicin. En el momento en el
que la Condicin sea Falsa se sale del bucle y se continua con la
ejecucin del algoritmo. Al evaluarse la Condicin, al principio, antes
de entrar en el bucle, si la condicin es Falsa, nunca se entrar en el
bucle. Por lo tanto se utiliza obligatoriamente este tipo de bucle en el
caso de que exista la posibilidad de que el bucle pueda ejecutarse 0
veces.

No
Condicin
Verdadera?
Mientras < Condicin >
< Accin >
Si Fin_Mientras

Accin

38
Estructuras de Control Repetitivas.

Hacer - Mientras: En primera instancia se ejecuta la Accin.


Posteriormente, se evala la Condicin. Si es Verdadera, se ejecuta
nuevamente la Accin. Si es Falsa, se contina con la ejecucin del
algoritmo. Se repite el bucle mientras la condicin sea Verdadera. La
Condicin se evala siempre al final del bucle, si es Verdadera se
ejecuta nuevamente la Accin, si es Falsa se sale del bucle. Como la
Condicin se evala al final, incluso aunque la primera vez ya sea Falsa,
el bucle (la Accin) se habr ejecutado al menos una vez.

Accin

Hacer < Accin >


Mientras < Condicin >

No
Condicin
Verdadera?

39
Si
Estructuras de Control Repetitivas.
Desde - Hasta: Se utiliza cuando se sabe el nmero exacto de
veces que hay que iterar. Para ello el bucle llevar asociado una
variable ndice, a la que se le asigna un valor inicial y se
determina cual va a ser su valor final y adems se va a
incrementar (o decrementar) en cada iteracin de bucle en un
valor constante.

Inicio

Variable = Inicio ; Condicin? ;


Inc. n No
Si
Condicin No
Verdadera
Accin
?

Si

Accin

Para var = Vi, var < Vf, Inc var


<Accin> Accin 2
40
Fin_Para
Ejemplo: Mostrar el producto de nmeros enteros positivos entrados por
teclado hasta el ingreso de un nmero negativo.
Pseudocdigo:
INICIO
Mdulo: Principal
INICIO
DATOS:
Entero P, num P, num: entero
P=1
ALGORITMO:

Leer num P1

Leer num
No
Num >=
0? Mientras num >= 0
P p * num
Si Leer num
Fin_mientras
Escribir
P = P * num
num Escribir p
FIN

Leer num

FIN