Está en la página 1de 35

ALGORITMOS

Martes 10 de Marzo 2015


CONCEPTO DE ALGORITMO

Un algoritmo es un método para resolver un problema.


Son un conjunto de instrucciones programadas para
resolver una tarea o problema específico.

Diseño del Programa en


Problema
algoritmo computador

Resolución de un problema
PASOS PARA RESOLVER UN
PROBLEMA

1. Diseño del algoritmo que describe la secuencia


ordenada de pasos – sin ambigüedades – que conducen
a la solución de un problema dado.

2. Expresar el algoritmo como un programa en un lenguaje


de programación adecuado.

3. Ejecución y validación del programa por el computador.

Los algoritmos son independientes tanto del lenguaje de


programación en que se expresan como del computador
que los ejecuta.
PASOS PARA RESOLVER UN
PROBLEMA

En cada problema el algoritmo se puede expresar en un


lenguaje diferente de programación y ejecutarse en un
computador distinto, sin embargo, el algoritmo será siempre el
mismo.

Un lenguaje de programación es tan solo un medio para


expresar un algoritmo y un computador es solo un procesador
para ejecutarlo.

Por ejemplo, una receta de un plato de cocina se puede


expresar en español, inglés o francés, pero cualquiera sea el
lenguaje, los pasos para la elaboración del plato se realizarán
sin importar el idioma del cocinero.
CARACTERÍSTICAS DE
LOS ALGORITMOS

• Un algoritmo debe ser preciso e indicar el orden de


realización de cada paso.

• Un algoritmo debe estar bien definido. Si se sigue un


algoritmo dos veces, se debe obtener el mismo resultado
cada vez.

• Un algoritmo debe ser finito. Si se sigue un algoritmo, se


debe terminar en algún momento, o sea, debe tener un
número finito de pasos.
CARACTERÍSTICAS DE
LOS ALGORITMOS

La definición de un algoritmo debe describir tres partes:


Entrada, Proceso y Salida.

Por ejemplo, en el algoritmo de la receta de cocina


anterior, se tiene:

• Entrada: ingredientes y utensilios empleados


• Proceso: elaboración del plato en la cocina.
• Salida: término del plato (por ejemplo, carbonada).
EJEMPLOS

Diseñar un algoritmo para saber si un número es primo o no.

Análisis: un número es primo si solo puede ser dividido por sí


mismo y por 1. Por ejemplo, 9, 8, 6, 12, etc. no son primos, pues
son divisibles por números distintos a ellos mismos y 1.

¿Cómo sabemos si un número es primo? Por ejemplo, el 7. Lo


dividimos por 7, 6, 5, 4, 3, 2, 1; y como solo da entero al dividir
por sí mismo y el 1, sabemos que es un número primo.

El algoritmo de resolución del problema pasa por dividir


sucesivamente el número dado por 2, 3, 4, etc. hasta llegar al
número mismo.
EJEMPLOS

Resolución:

1. Inicio
2. Poner X igual a 2. ( X = 2, la variable X representa a los
divisores del número que se busca, N).
3. Dividir N por X (N/X).
4. Si el resultado de N/X es entero, entonces N no es un número
primo y se debe ir al punto 7, en caso contrario, continuar el
proceso.
5. Sumar 1 a X (o sea, X  X +1 ).
6. Si X es igual a N, entonces N es un número primo, en caso
contrario, ir al punto 3.
7. Fin.
EJEMPLO

Por ejemplo, si N es 131, los pasos anteriores serían:

1. Inicio.
2. X=2
3. 131/X . O sea, 131/2 = 65,5
4. Como el resultado no es entero, se continúa el proceso.
5. X  2+1 , luego X = 3.
6. Como X no es 131, se pasa al punto 3.
3. 131/X. O sea, 131/3 = 43,6
4. Como el resultado no es entero, se continúa el proceso.
5. X  3+1 , luego X = 4.
6. Como X no es 131, se pasa al punto 3.
3. Y así sucesivamente….. Hasta
5. X  130+1 , luego X = 131.
6. Como X = 131, N es primo.
7. Fin
EJEMPLOS

Realizar la suma de todos los números pares entre 2 y 100.

Análisis: El problema consiste en sumar 2+4+6+8+…+100.


Utilizaremos las palabras SUMA y NUMERO como variables
para representar las sumas sucesivas (2+4) , (2+4+6),
(2+4+6+8), etc.

En la variable SUMA guardaremos la suma de los números, y


la variable NÚMERO se usará para ir aumentando el número
en 2 para luego sumar.
EJEMPLOS

Resolución:

1. Inicio
2. Establecer SUMA = 0.
3. Establecer NUMERO = 2.
4. Sumar NUMERO A SUMA. El resultado será el nuevo
valor de la suma. O sea, SUMA  SUMA + NUMERO.
5. Incrementar NUMERO en dos unidades. O sea
NUMERO  NUMERO + 2.
6. Si NUMERO ≤ 100 pasar al paso 4, en caso contrario,
escribir el último valor de la SUMA y terminar el
proceso.
7. Fin.
HERRAMIENTAS DE
PROGRAMACIÓN

Las dos herramientas más utilizadas comúnmente para diseñar


algoritmos son:

• Diagramas de Flujo: Es una representación gráfica de un


algoritmo.

• Pseudocódigo: Es una herramienta de programación en la


que las instrucciones se escriben en palabras similares al
inglés o español, que facilitan tanto la escritura como lectura
de programas. En esencia, el pseudocódigo se puede definir
como un lenguaje de especificaciones de algoritmos.
ESTRUCTURAS DE
CONTROL

Las estructuras de control de un lenguaje de programación son


métodos de especificar el orden en que las instrucciones de un
algoritmo se ejecutarán. El orden de ejecución de las
sentencias (lenguaje) o instrucciones determinan el flujo de
control.

Estas estructuras so fundamentales en los lenguajes de


programación y en los diseños de algoritmos, especialmente
los pseudocódigos.

Las tres estructuras de control básicas son:

• Secuenciales
• Selectivas
• Repetitivas
ESTRUCTURAS DE
CONTROL

Las tres estructuras de control básicas son:

• Secuenciales: las instrucciones se ejecutan sucesivamente


una después de la otra.

• Selectivas: permite elegir entre dos o más alternativas,


dependo del caso (dos o más conjuntos de instrucciones)
dependiendo de una condición determinada).

• Repetitivas: una serie de instrucciones se repiten una y


otra vez hasta que se cumple una cierta condición.
VARIABLES

Las variables es una posición con nombre en memoria donde


se almacena un valor de un cierto tipo de dato. Las variables
pueden almacenar todo tipo de datos: cadenas, números y
estructuras.

Una constante, es una variable cuyo valor no puede ser


modificado.

A SUMA CONTADOR
A = 13 x 2
26

A=A+1 27
A = 26 + 1

A = 27
Memoria del PC
REPRESENTACIÓN GRÁFICA DE UN
ALGORITMO

Para representar un algoritmo se debe utilizar algún método


que permita independizar dicho algoritmo del lenguaje de
programación elegido. Esto permite que un algoritmo
pueda ser codificado indistintamente en cualquier lenguaje.

Vamos a estudiar:

• Diagrama de Flujo
• Lenguaje de especificación de algoritmos: Pseudocódigo
DIAGRAMAS DE FLUJO

Un diagrama de flujo es una de las técnicas de representación de


algoritmos más utilizada, aunque su empleo ha disminuido
considerablemente, sobre todo, desde la aparición de lenguajes
de programación estructurados.

Es un diagrama que utiliza símbolos estándar y que tiene los


pasos de un algoritmo escritos en «cajas» unidas por flechas,
denominadas líneas de flujo, que indican la secuencia en que se
debe ejecutar.
SIMBOLOGÍA DE
DIAGRAMA DE FLUJO

Símbolo Función

Terminal, representa el comienzo


«inicio» y el final «fin» de un programa.

Entrada/Salida, cualquier tipo de


introducción de datos en la memoria
desde los periféricos.

Proceso, cualquier tipo de operación


que pueda originar cambio de valor,
formato o posición de la información
almacenada en memoria, operaciones
aritméticas, de transferencia, etc.
SIMBOLOGÍA DE
DIAGRAMA DE FLUJO

Símbolo Función

Decisión, indica operaciones lógicas o


de comparación entre datos
si (normalmente dos) y en función del
resultado de la misma determina cuál
de los distintos caminos alternativos
no del programa se debe seguir. Tiene
dos salidas, respuestas SI o NO.

Decisión múltiple, en función del


resultado de la comparación se seguirá
uno de los diferentes caminos de acuerdo
con dicho resultado. A veces puede tener
una condición por defecto.
SIMBOLOGÍA DE
DIAGRAMA DE FLUJO

Símbolo Función

Indicador de dirección o línea de flujo,


indica el sentido de ejecución de las
operaciones

Conector, sirve para enlazar dos partes


cualesquiera de un diagrama a través de
un conector en la salida y otro conector
en la entrada. Se refiere a la conexión en
la misma página del diagrama.

Conector, conexión entre dos puntos del


diagrama situado en páginas diferentes.
RESUMEN SIMBOLOGÍA

Terminal si
Decisión Decisión
múltiple

no

Entrada/
Salida

Conectores

Proceso
DIAGRAMA DE
FLUJO BÁSICO

• Existe una caja etiquetada


«inicio», que es de tipo elíptico

• Existe una caja etiquetada «fin»


de igual forma que la anterior

• Existe una caja en forma de


romboide que corresponde a
entradas y salidas de datos

• Existe una caja rectangular que


corresponde a procesos a llevar a
cabo
DIAGRAMA DE
FLUJO BÁSICO

Se puede escribir más de un paso del


algoritmo en una sola caja
rectangular.

El uso de flechas significa que la caja


no necesita ser «dibujada» debajo
de su predecesora. Sin embargo,
abusar demasiado de esta
flexibilidad conduce a diagramas de
flujo complicados e ininteligibles.
Inicio
EJEMPLOS
SUMA = 0
NÚMERO = 2

Realizar la suma de todos los


SUMA  SUMA +
NÚMERO números pares entre 2 y
100.
NÚMERO 
NÚMERO + 2

si
NÚMERO ≤ 100

no

Escribir
SUMA

Fin
EJERCICIO 1

Dados tres números, determinar si la suma de cualquier


pareja de ellos es igual al tercer número. Si se cumple esta
condición, escribir «Iguales», y en caso contrario, escribir
«Distintos».

Análisis:

En el caso por ejemplo que los números fueran: 3 9 6 , la


respuesta es «Iguales», ya que 3+6=9. Sin embargo, si los
números fueran: 2 3 4, el resultado sería «Distintos».

Para resolver este problema, se puede comparar la suma de


cada pareja con el tercer número. Con tres números,
solamente existen tres parejas distintas y el algoritmo de
resolución del problema será fácil.
EJERCICIO 1

Dados tres números, determinar si la suma de


cualquier pareja de ellos es igual al tercer número. Si se
cumple esta condición, escribir «Iguales», y en caso
contrario, escribir «Distintos».

Algoritmo:

1. Leer los tres valores: A, B y C.


2. Si A + B = C, escribir «Iguales» y parar.
3. Si A + C = B, escribir «Iguales» y parar.
4. Si B + C = A, escribir «Iguales» y parar.
5. Escribir «Distintos y parar.

A continuación, el diagrama de flujo.


EJERCICIO 1
EJERCICIO 2

Calcular la media de una serie de números positivos,


suponiendo que cada uno de los números se leen por
pantalla.
Si el usuario ingresa un valor de cero (como entrada)
indicará que se ha alcanzado el final de la serie de números
positivos.

Análisis:

El primer paso a dar en el desarrollo del algoritmo es


descomponer el problema en una serie de pasos
secuenciales. Para calcular una media se necesita sumar y
contar los valores.
EJERCICIO 2

Algoritmo:

1. Inicializar contador de números C y variable suma S.


2. Leer un número ingresado por el usuario.
3. Si el número leído es cero (no se ingresarán más
números):
1. calcular la media ;
2. imprimir la media por pantalla;
3. Ir al paso 5.
4. Si el número leído no es cero (se ingresarán más
números) :
1. calcular la suma ;
2. incrementar en uno el contador de números ;
3. ir al paso 2.
5. Fin.
EJERCICIO 2
EJERCICIO 3

Sumar solo dos o tres operadores, según indique el usuario.


Considere la opción de que el usuario ingrese otro número
de operador que no sea 2 ó 3.

Análisis:

El usuario debe indicar si desea sumar dos o tres operadores,


por lo que es necesario pedirle esta información.

Además, es necesario validar que el usuario ingrese solo el


valor 2 ó 3. Si ingresa algún valor distinto a esto, se le debe
informar al usuario que ingrese 2 ó 3.

AYUDA: utilizar símbolo de Decisión múltiple.


EJERCICIO 4

Calcular el factorial de un número ingresado por el usuario.


EJERCICIO 4

Calcular el factorial de un
número ingresado por el
usuario.
EJERCICIO 5

Considere que se desea clasificar un triángulo según sus lados.


Se lee la longitud de los tres lados (sin un orden específico) y
luego se debe indicar el tipo de triángulo: equilátero (si los 3
lados son iguales), isósceles (si 2 son iguales y 1 es diferente), o
bien es escaleno (si los 3 lados son diferentes). Si los valores
dados no conforman un triángulo, se debe indicar tal situación.

Ejemplos:

Lado 1: 10 Lado 1: 10 Lado 1: 70


Lado 2: 12 Lado 2: 15 Lado 2: 40
Lado 3: 43 Lado 3: 8 Lado 3: 70

NO es un Triángulo Triángulo
triángulo Escaleno Isósceles
EJERCICIO 5
Análisis:

El usuario ingresa tres valores, que tienen que ser necesariamente


positivos ya que son longitudes (es necesario validar).

Se debe conocer cuál de los tres lados es el mayor, y sabiendo


esto, sumar los otros dos lados, y con ello:

• Si la suma de los lados es mayor al lado mayor, se continúa con


el algoritmo
• Si la suma de los lados es menor al lado mayor, se indica por
pantalla que el triángulo con esos lados no existe.

Luego de ello, se deben realizar las siguientes condiciones:

• Ver si los tres lados son iguales


• Ver si dos lados son iguales y uno distinto
• Ver si los tres lados son distintos

También podría gustarte