Está en la página 1de 34

Algoritmos

Unidad 2
Algoritmos y resolucin de
problemas

Contenido

Problemas y categoras de problemas


Anlisis del problema
Entradas y salidas de un algoritmo
Variables constantes y expresiones
Algoritmos en accin
Verificacin del algoritmo

Problemas y categoras de
problemas
Problema:
Descripcin textual o verbal de una situacin en
la que a partir de una serie de supuestos, es
necesario obtener una o varias respuestas
usando una serie de pautas, lineamientos o
mtodos conocidos.

Un problema correctamente definido


contendr:
Estado inicial.
Una o varias incgnitas.
Las pautas para su resolucin.

Problemas y categoras de
problemas (2)
En el rea de ciencias de la
computacin hablamos de dos tipos
de problemas:
Problemas computables:
Existe al menos un algoritmo capaz de
darles solucin.

Problemas no computables:
Carecen de un algoritmo para resolverlos y
no es posible solucionarlos utilizando una
computadora.

Problemas y categoras de
problemas (3)
Caractersticas de las soluciones algortmicas:
Ser completa:
Siempre se debe producir una respuesta al ejecutar el
algoritmo.

Ser correcta:
La respuesta obtenida al ejecutar el algoritmo se encuentre en
el dominio de las soluciones esperadas.

Obtenida mediante un proceso repetible y verificable:


La secuencia de pasos del algoritmo debe ser finita, donde
cada paso esta libre de ambigedad y se identifica lo que
realiza.

Ser determinista:
Para iguales circunstancias iniciales en el algoritmo, llegamos a
las mismas soluciones.

Anlisis del problema


Antes de intentar disear, escribir o
verificar el funcionamiento de una
solucin algortmica es necesario
partir de la compresin del problema,
lo cual implica cierto conocimiento
del contexto del propio problema.
Si deseamos cocinar una galleta
debemos saber que es una galleta.

Anlisis del problema (2)

El objetivo principal del anlisis del problema es


identificar los datos de entrada necesarios para
que trabaje el algoritmo y cules son los
resultados a generar.

Este objetivo se logra respondiendo a preguntas


como:
1. Cules son los valores iniciales del problema?
2. Qu es necesario preguntar para completar los datos
iniciales?
3. De dnde se tomarn los datos iniciales?
4. Qu supuestos se consideran al inicio del problema?
5. Cul es la incgnita o incgnitas?
6. Que necesita resolver el problema?,
7. Qu informacin se debe presentar como resultado?
8. A travs de qu forma se deben entregar los
resultados?

Entradas y salidas de un
algoritmo
Existen tres elementos principales
que intervienen en la estructura de
un algoritmo. stos son:
Datos de entrada
Procesos, y
Salidas o resultados.

Entradas y salidas de un algoritmo


(2)
Primer ejemplo:

Mostrar el nombre del usuario que va a


usar el sistema de cmputo y darle un
mensaje de bienvenida en pantalla.

Entradas y salidas de un algoritmo


(3)
1. Cules son los valores iniciales del
problema?
Los valores iniciales del problema son
generalmente datos que se dan en el texto del
problema y que sern usados en el diseo del
algoritmo.
En este primer ejemplo no contamos con
ningn dato inicial ya que no hay referencia a
ellos en el texto del problema. Los datos que
buscamos como valores iniciales pueden ser:
cantidades numricas, textos, frmulas,
equivalencias, entre otros.

Entradas y salidas de un algoritmo


(4)
2. Qu es necesario preguntar para
completar los datos iniciales?
La pregunta se refiere a datos que se
requieren conocer de antemano para llevar a
cabo un proceso (factores de conversin,
porcentajes, fechas, cantidades, etc.).
En este primer ejemplo, sabemos que
necesitamos el nombre del usuario, pero
desconocemos cul es ese nombre, por lo
tanto necesitamos preguntar este dato.

Entradas y salidas de un algoritmo


(5)
3. De dnde se tomarn los datos
iniciales?
Se refiere a los medios a travs de los
cuales se ingresarn los datos iniciales,
por lo regular son dispositivos de
entrada tales como: teclados, lectores
de cdigo de barras, ratn entre otros.
En este primer ejemplo, no es claro de
donde se tomar el nombre del usuario
ya que el texto del problema no hace

Entradas y salidas de un algoritmo


(6)
4. Cules son los supuestos del problema?

Un supuesto o supuestos son situaciones que


establecemos como ciertas aunque no se
especifiquen en el texto original del problema.
Estos supuestos no deben alterar lo que el
problema solicita.
Para este primer ejemplo, vamos a suponer
que el usuario tiene a su disposicin un
teclado y una pantalla. Observemos que el
problema no dice que exista un teclado, pero
es un supuesto necesario para que el
usuario introduzca su nombre.
El problema tampoco define el contenido del
mensaje de bienvenida. Nosotros asumiremos
que el mensaje diga hola, bienvenido

Entradas y salidas de un algoritmo


(7)
5. Cul es la incgnita o incgnitas?
Las incgnitas se refieren a los datos
que necesitamos mostrar u obtener
como resultado final.
En este primer ejemplo la incgnita
coincide con el dato de entrada que es
el nombre del usuario ya que es lo que
se pide mostrar, conjuntamente con el
saludo.

Entradas y salidas de un algoritmo


(8)
6. Qu necesita resolver el problema?

Se refiere a las acciones que son necesarias


para transformar los datos de entrada en la
salida esperada.
Una estrategia para identificar las acciones a
realizar para resolver un problema consiste en
identificar los verbos en el texto dado.
En este primer ejemplo, ese verbo es mostrar:
mostrar el nombre del usuario y un mensaje
de bienvenida. Es decir, si slo mostramos el
nombre del usuario, la solucin es incompleta.
Si slo mostramos el mensaje de bienvenida,
la solucin es incompleta. Necesitamos
mostrar el nombre y el mensaje de bienvenida
al mismo tiempo.

Entradas y salidas de un algoritmo


(9)
7. Qu informacin se debe presentar
como resultado?
Hace referencia a la forma en el cual
los datos deben ser mostrados como
resultado.
Para este primer ejemplo, el mensaje:
hola, bienvenido seguido del nombre
del usuario.

Entradas y salidas de un algoritmo


(10)
8. A travs de qu medio se deben
entregar los resultados?
Se refiere a los medios a travs de los
cuales deben entregarse los
resultados, por lo regular se trata de
un dispositivo de salida.
Para este primer ejemplo, el texto
seala que el mensaje ser enviado a
pantalla.

Entradas y salidas de un algoritmo


(11)
Las respuestas a las ocho preguntas
previas son una gua para obtener un
problema bien definido. Ahora
podemos describirlo en los siguientes
trminos:
Tenemos un usuario, el cual a travs de
un teclado introducir su nombre.
Posteriormente, deber mostrarse un
mensaje de bienvenida con la leyenda
hola, bienvenido seguido del nombre
del usuario a travs de una pantalla.

Entradas y salidas de un algoritmo


(12)
Adicionalmente, una buena prctica
dentro del diseo de un algoritmo es
tabular las entradas y salidas identificadas
a partir del anlisis del problema:
Entrada
Nombre

Salida
Mensaje de bienvenida,
nombre

Variables, constantes y
expresiones
La elaboracin de un algoritmo requiere del
cumplimiento de ciertas reglas de sintaxis. Estas
reglas permiten cumplir con un objetivo bsico de
los algoritmos: Estar libres de ambigedad.
Los datos de entrada y salida son la materia
prima de un algoritmo, ya que es posible realizar
un sin fin de tareas con ellos.
A nivel de algoritmo, los datos pueden ser de tres
tipos principalmente:
Numricos.
Caracteres.
Lgicos.

Variables, constantes y
expresiones (2)

Los datos numricos se dividen a su vez en:


Enteros
Reales

Los datos numricos tambin pueden ser positivos o


negativos y pueden representar:

Cantidades
Distancias
Temperaturas
Peso
Etc.

Ejemplos:

1
-12.5
3.141516
-9

Variables, constantes y
expresiones (3)
Los datos de tipo carcter representan
textos que pueden contener:
Una simple letra
Una palabra
Una oracin completa

Ejemplos:

a
Juan
hola a todos
1.0
F

Variables, constantes y
expresiones (4)
Los datos de tipo lgico permiten
representar solo dos posible valores:
Falso (F)
Verdadero (V)

Ejemplos:
F
V

Variables, constantes y
expresiones (5)
Variable:
Representa a un dato en particular
alojado en la memoria que es
identificado mediante un nombre
(identificador de la variable)
Las variables pueden ser de tipo:
Numrico
Carcter
Lgico

Variables, constantes y
expresiones (6)
Reglas para los nombres (identificadores)
de las variables:
Debe iniciar con una letra del alfabeto,
mayscula o minscula.
No debe tener espacios en blanco. En su lugar
puede usar el smbolo guin bajo ( _ ) para
separar nombres largos.
Puede incluir nmeros, siempre que no se
presenten al principio del nombre.
Los nombres de variables son sensibles a
maysculas o minsculas. Es decir, aunque un
identificador tenga el mismo nombre que otro,
el orden y uso de maysculas los hara
diferentes.

Variables, constantes y
expresiones (7)

Algoritmo para el primer ejemplo:


1. Iniciar
2. Escribir en pantalla un mensaje solicitando al
usuario que introduzca su nombre
3. Asignar el dato ledo en la variable
nombre_usuario
4. Escribir en pantalla el mensaje hola,
bienvenido seguido de lo almacenado en
nombre_usuario
5. Finalizar

Variables, constantes y
expresiones (8)
Constantes:
Al valor que se le asigna al inicio del
algoritmo a un identificador y
permanece sin cambios en todo el
cuerpo del algoritmo se le denomina
constante.
Por ejemplo: el valor de pi, el nmero de
das de la semana, etc.
Las reglas que aplican para los nombres
de las variables son los mismos que
aplican para los nombres de las

Variables, constantes y
expresiones (9)
La manipulacin de variables y constantes nos
conduce a un nuevo concepto: expresiones. Las
expresiones son una forma de describir las
siguientes acciones:
Operaciones de clculo aritmtico

Son instrucciones que implican el uso de operadores


aritmticos (suma, resta, multiplicacin, divisin, etc.) para
realizar operaciones matemticas y cuyo resultado se
puede o no asignar a una variable

Operaciones lgicas

Corresponden a instrucciones donde comparamos valores,


variables, constantes o resultados de operaciones de
clculo para saber si son iguales, diferentes, si uno es
mayor a otro, etc.

Operaciones de asignacin

Corresponde a instrucciones en donde una variable o


constante: 1) recibe un valor directamente, 2) recibe datos
almacenados en otro identificador, 3) recibe el resultado de
una operacin de clculo, o 4) recibe el resultado de una
operacin lgica

Variables, constantes y
expresiones (10)

Las expresiones u operaciones de asignacin,


establecen el valor que toma una variable o
constante.
Ejemplos:

nombre_usuario = Roberto
edad = 25
estatura_metros = 1.70
pi = 3.1416
edad_nueva = edad

En los ejemplos anteriores debemos advertir dos


cosas:
1. La asignacin siempre se realiza de derecha (dato) a
izquierda (nombre de la variable).
2. Una vez asignado un valor a una variable por primera
vez, dicha variable solo aceptar datos del mismo tipo

Variables, constantes y
expresiones (11)

Las siguientes expresiones u operaciones de asignacin


NO SON CORRECTAS:

Roberto = nombre_usuario NO ES CORRECTO


25 = edad
NO ES CORRECTO
y
edad = edad_nueva NO SIGNIFICA LO MISMO QUE
edad_nueva = edad

Si una variable se inicializa con un dato de tipo carcter,


sera un ERROR asignarle posteriormente un dato de tipo
numrico y viceversa. Sin embargo, hay que tomar en
cuenta que una variable a la que se le asign un valor
numrico se comportar de la siguiente manera:

Si se asign por primera vez un valor de tipo numrico


entero, entonces:

edad = 23.5 ES CORRECTO, PERO EL VALOR ALMACENADO SER


23

Variables, constantes y
expresiones (12)

Las operaciones de clculo aritmtico que


solo involucran enteros dan como
resultado un entero:

Suma = 1 + 1
Res_prod = 2 * 4
Res_division = 9 / 2
4)

(aqu el resultado es

Las operaciones de clculo aritmtico que


involucren al menos un dato real darn
como resultado un real:

Suma_r = 1.0 + 2 + 1
Res_prod_r = 2.5 * 2
Res_div_r = 9.0 / 2
(aqu el resultado es

Variables, constantes y
expresiones (13)
Operadores aritmticos y sus reglas
de prioridad:

cantidad = 2 + 1 * 3

el resultado es 9 o 5 ?

Variables, constantes y
expresiones (14)
Cul es el resultado de las
siguientes expresiones de clculo
aritmtico?:

cantidad2 = -3 * 1 + 7
cantidad3 = 12 - 2 / 2 + 3
cantidad4 = 2 + 2 * 4 / 2
cantidad3_A = (12 - 2)/(2 + 3)
cantidad3_B = 12 - ((2/2)+ 3)

Variables, constantes y
expresiones (15)

Las operaciones de clculo aritmtico generalmente estn


expresadas en los libros usando una notacin algebraica,
debemos reescribir estas operaciones de forma
algortmica para poder utilizarlas.

También podría gustarte