Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivo: Conocer y aplicar la metodología para resolver problemas. Identificar los pasos de la
metodología y saber que hacer en cada uno de ellos.
INTRODUCCIÓN
Todos tenemos la capacidad para analizar y resolver problemas, en esta unidad conoceremos la
metodología necesaria para solucionar cualquier tipo de problema de manera ordenada, para
así, aprender a explicar y representar la solución necesaria.
1.….GENERALIDADES
1.1….Problema: Es una situación real, con ciertas condiciones y/o restricciones, que se
1
necesita transformar. De acuerdo a Edward Krick , un problema proviene del deseo de lograr la
transformación de un estado de cosas en otro. Ejemplos:
Obtener hielo.
Ir de una ciudad a otra.
Ingresar a la Universidad de El Salvador
Ordenar alfabéticamente una lista de nombres
Calcular la distancia entre los puntos P (X ,Y ) y P (X ,Y )
1 1 1 2 2, 2
1.2 Solución: es un medio de lograr la transformación deseada. Un problema cuya solución sea
única es bastante raro, la mayoría de los problemas tienen varias soluciones posibles; por
ejemplo, para obtener hielo, usted puede poner a congelar el agua, comprarlo en una tienda o
hasta puede pedir a su vecino que le regale un poco. Para ir de una ciudad a otra, piense en
todas las formas de viajar y en las posibles rutas con las que pueden combinarse y obtener
medios alternativos para realizar su traslado.
Además, un problema involucra algo más que darle una solución; requiere la mejor forma de
lograr la transformación deseada; es decir, que entre todas las posibles soluciones, se debe
elegir cual es la óptima; por ejemplo, el medio de transporte debe ser el mejor con respecto al
costo, rapidez, seguridad, comodidad y confiabilidad. Una norma de preferencia para seleccionar
de entre varias soluciones se conoce como criterio.
1
INTRODUCCIÓN A LA INGENIERIA Y AL DISEÑO EN LA INGENIERIA. Edward V. Krick. 2ª. Edición, Editorial
Limusa, 1991.
Datos Numéricos: como su nombre lo indica, están formados por uno o varios dígitos y
representan cantidades que pueden ser operables.
Datos Alfanuméricos: Son los que están formados por caracteres: letras, dígitos y símbolos;
además, no representan cantidades operables. Ejemplo:
"PEDRO MARTINEZ", "INGENIERIA CIVIL", "AM93021", "2235-4852", "$125.30"
Los datos también se clasifican de acuerdo al número de veces que pueden cambiar de valor en:
Datos Constantes y Datos Variables.
Datos Constantes: Se considera un dato constante, numérico o alfanumérico, aquel dato que
no cambia durante un período determinado de tiempo (para nuestro caso, son aquellos datos
que durante la ejecución del algoritmo no cambian y además se mantienen de una ejecución del
algoritmo a otra)
Ejemplos: cantidad de empleados en una determinada empresa, impuesto al valor agregado IVA,
número de materias del plan de estudios de la carrera de Ingeniería de Sistemas Informáticos,
nombre de una determinada empresa, nombre de una determinada institución educativa, nombre de
un determinado establecimiento, la constante de gravedad g, el valor de π, el valor de е.
En todo caso, la clave para identificar una constante esta en: a) Sabemos que dicho valor se mantiene
constante en el tiempo (constantes de física, matemática, tasas de impuesto, tasas de descuento, etc.) ó
b) el ámbito ó campo de acción del algoritmo a diseñar es tal que un determinado dato no cambiará en
ejecuciones sucesivas del algoritmo, por ejemplo el número de materias del plan de estudios es constante
cuando el algoritmo es para procesar datos sobre una carrera específica (ya que los planes de estudio se
actualizan cada 5 años, durante ese tiempo es constante dicho dato)
Datos Variables: Un dato variable es aquel que cambia en un período determinado de tiempo.
Los datos variables pueden ser numéricos o alfanuméricos. Ejemplos: la temperatura ambiente
en un día, notas de un examen parcial, cantidad de estudiantes que asisten a una clase, etc.
(para nuestro caso, son aquellos datos que cambian durante la ejecución del algoritmo y de una
ejecución del algoritmo a otra)
Según el valor que se le dé, las variables pueden ser numéricas o alfanuméricas.
Numéricas son aquellas que solo pueden contener valores numéricos y son operables.
Dentro de las variables numéricas tenemos dos tipos: Entero y Real, en donde las
variables de tipo Entero las empleamos para almacenar números sin parte fraccionaria, y
las variables de tipo Real las empleamos para almacenar números con parte
fraccionaria.
Alfanuméricas: son aquellas que contienen una combinación de letras, números y/o
caracteres especiales, y se escriben dentro de comillas dobles verticales
Reglas para nombrar variables: por convención la estructura que utilizaremos para los
nombres de las variables en la asignatura, deberá cumplir las siguientes reglas:
El primer carácter deberá ser una letra alfabeto inglés a-z, no incluye ñ,Ñ, ni acentos
(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) estas letras son las que se puede usar
En caso de usar más de un carácter para el nombre de la variable, los siguientes
caracteres pueden ser letras o números (0-9)
La longitud máxima debe ser de 10 caracteres.
El único carácter permitido, distinto de letras y dígitos es el guión de subrayado o
guión bajo: _
Ejemplos: libro, val1, Valor25, pago_total, nom_alumno, carrera, codigo, numero.
En esta fase del proceso, se debe identificar la transformación que se desea expresando en
términos generales el problema particular, ignorando los detalles por el momento y
concentrándose en la identificación de los estados A y B, llamado también estado inicial y estado
final. Para el caso específico de formulación de problemas en informática se les llama Entrada
de Datos y Salida de Datos, respectivamente .
Para representar la Formulación del Problema en forma esquemática, se hace uso del método
de la “Caja Negra”, así:
¿Cómo estamos? ¿Cómo queremos estar?
Estado A Estado B
En el estado A de la formulación del problema se coloca información en prosa sobre los datos
con los que se cuenta y con los que no se cuenta pero son necesarios para producir las salidas
(posteriormente cuando se este analizando la segunda fase del proceso solucionador de
problemas, definiremos si dichos datos se manejaran como variables de entrada o como
constantes). De la misma forma en el estado B se coloca información en prosa acerca de los
Estado A Estado B
Entrada de Datos Salida de Datos
Solicitud de Confirmación de
reserva
Reservación y boletos; o presentación
de las alternativas
disponibles
En general, se debe tratar siempre de formular un problema de modo que comprenda o incluya
la situación completa (o problema total). Para la etapa de formulación del problema, lo que
ocurra dentro de la caja negra no se conoce o carece de interés.
II. Análisis del problema:
En la formulación del problema es suficiente identificar el estado A y el estado B (Entrada de
Datos y Salida de Datos), sin embargo, para resolver el problema es necesario saber más acerca
de la entrada y la salida. Por lo tanto, durante esta etapa de la metodología , se especifican los
estados A y B determinando las características cualitativas y cuantitativas de ambos estados y
básicamente, consiste en:
a. Definir las variables de salida
¿Qué se nos pide?, ¿Qué resultados queremos?, ¿Cuáles incógnitas debemos obtener?
Para cada variable de salida definiremos un nombre, tipo de dato y una descripción.
b. Definir las variables de entrada
¿Qué datos tenemos?, ¿Qué datos necesitamos?
Para aquellos datos (son datos de entrada constantes) que ya tenemos o conocemos, la
opción de usarlos directamente o definir una constante con nombre para almacenarlos. En
cuanto a los datos que necesitamos conocer (no sabemos su valor de antemano, son datos
de entrada variables) debemos definir variables para almacenarlos, esto según el tipo de dato
que se requiere almacenar en dichas variables. Para cada variable de entrada definiremos un
nombre, tipo de dato y una descripción.
c. Que restricciones existen
¿Existen limitantes para las variables de entrada? Las restricciones que deben de cumplir las
variables de entrada se especificarán usando los operadores relacionales de acuerdo con la
tabla siguiente:
TABLA DE OPERADORES RELACIONALES
Operador usado en Libros Matemática Operador usado en Programación
> >
< <
≥ >=
≤ <=
≠ !=
= ==
Nota: con el propósito de facilitar la enseñanza/aprendizaje de la asignatura y para estandarizar, se emplearán los
e. Proceso:
¿Qué fórmulas, ecuaciones, procedimientos, modelos, etc. Necesitamos?
Detallar los procedimientos necesarios (cálculos) para transformar el estado A en estado B,
es decir, la Entrada de Datos en Salida de Datos.
Importante : con el propósito de facilitar la enseñanza/aprendizaje de la asignatura y para
estandarizar, se emplearán los operadores y funciones del lenguaje de programación C, para la
especificación del proceso (cálculos y fórmulas) y para la elaboración de la solución (véase etapa
III, pág.8), es decir, para la elaboración de algoritmos narrados y flujogramas.
Para especificar dichas formulas, cálculos, etc. emplearemos los operadores y funciones que
se especifican en las tablas siguientes:
TABLA DE OPERADORES ARITMETICOS
Operación Operador usado en Programación
División /
Producto *
Suma +
Resta -
Nota Importante: Los operandos pueden ser enteros o reales, haciendo la aclaración de que cuando
ambos sean enteros el resultado será entero, de lo contrario será real. Un operando es real si posee parte
fraccionaria de lo contrario es entero, por otro lado sí se usan variables para los cálculos cuando ambas son
enteras el resultado será entero, mientras que sí una de ellas es real el resultado será real.
Importante: para escribir el proceso emplearemos los nombres de variable de salida como
estén definidos en el literal a de ésta etapa, y el nombre de variable de entrada como esté
definido en el literal b de ésta etapa (véase ejemplos de aplicación pág.11). En cuanto a las
variables de proceso, es aquí donde aparecen y por tanto para ellas empleamos el nombre más
adecuado, para que en el literal siguiente definamos los tipos y descripciones de dichas
variables.
f. Definir las variables de proceso. Si éstas son necesarias, las variables de proceso son
aquellas que se generan o producen durante el proceso, para obtener el estado B, pero no son
de entrada ni de salida, en otras palabras, nos sirven para guardar cálculos intermedios y para
hacer más claro y comprensible el proceso. Estas variables se definen después del proceso
(literal anterior), debido a que, cuando estamos analizando los cálculos y formulas que
necesitamos, es donde nos damos cuenta de la necesidad de dichas variables intermedias.
Para cada variable de proceso definiremos un nombre, tipo de dato y una descripción.
g. Definición de Constantes. Son todos los datos que sirven para realizar el proceso y no
cambian en el tiempo, y a los cuales accederemos por un nombre. Para cada constante
definiremos un nombre, tipo, descripción y valor que contendrá.
Definición de Algoritmo: Es una descripción ordenada y breve de los pasos a seguir para
realizar una tarea o actividad y con ello resolver un problema manualmente o por medio de una
máquina.
Todo algoritmo debe ser especificado en forma precisa, mediante un número finito de
pasos. Esta propiedad trata de eliminar ambigüedades, de tal forma que cualquier
persona pueda comprender y ejecutar el algoritmo y obtener el mismo resultado.
El algoritmo se debe diseñar de forma general, o sea que debe resolver el problema,
según los datos que sean proporcionados.
4º Leer cada variable de entrada a continuación del mensaje correspondiente, con el siguiente
formato:
Leer: nombre_variable
En donde:
Leer es la acción a desarrollar
nombre_variable es la variable que almacenará el dato leído. Para leer más de una variable
se separan sus nombres por comas, aunque se recomienda por el momento solo leer
una variable a la vez.
Ejemplo: despliegue de mensaje y lectura de variables ( pasos 3o y 4o ); debido a que están
asociados iran uno después del otro.
Desplegar: "Introduzca el radio (un valor positivo) del círculo (unidades): "
Leer: radio
5º Procesar los datos para producir la salida. Consiste en realizar cada una de las acciones
necesarias para transformar los datos de entrada en salida (proceso) usando el siguiente
formato:
Ejemplo:
EJEMPLO 1.
Enunciado del problema:
Elabore un algoritmo que permita sumar dos números dados.
S O L U C I ÓN
I. Planteamiento del Problema
Entrada de Datos Salida de Datos
c. Restricciones: no existen (los números pueden ser positivos, negativos o incluso cero )
d. Proceso:
S = N1 + N2
*
Al aplicar la metodología se ponen todos y cada uno de los apartados que corresponden. En los casos
que un apartado no se defina, se indicará dicha situación, pero nunca se omitirá. Como ilustración para el
primer ejemplo no existen variables de proceso ni constantes, dichos apartados no se omiten al contrario
están presentes, pero se aclara que no se han empleado, que no existen variables de proceso o constantes.
Otro punto que debe quedar claro a la hora de aplicar la metodología es que no se emplean las unidades
de medida, monetarias o de otra naturaleza en lo que respecta a restricciones, proceso y diseño de
algoritmos, todos los cálculos son adimensionales.
S O L U C I ÓN
I. Planteamiento del Problema
Entrada de datos Salida de datos
-Nombre del empleado -Desplegar Nombre del
-Horas trabajadas Empleado
-Pago por hora ($6.50) -Desplegar Horas
Trabajadas
-Salario
c. Restricciones:
Horas > 0
d. Proceso:
Pago_H = 6.50
Salario = Pago_H * Horas
e. Definición de Variables de Proceso: No se requieren, en este caso
f. Definición de Constantes:
Nombre Tipo Descripción Valor
Pago_H Real Valor fijo a pagar por hora al empleado 6.50
Es importante aclarar que los datos constantes, forman parte de los datos de entrada en el
Planteamiento o Formulación del problema, pero no se definen como variables de entrada
en el análisis, sino en el literal f, porque son constantes no variables. (Nota: en la página 7, esta
definición aparece como literal g, pero recuerde que los criterios no se tomarán en cuenta en los
ejemplos y ejercicios, por lo que cambia el literal ).
En el ejemplo anterior, sin conocer el pago por hora ($6.50) que gana el empleado no se le
puede calcular el salario, por lo tanto es un dato de entrada, pero como no cambia, es
constante. Por norma general, cuando desde el planteamiento ya conocemos el valor de un
dato, se considera un dato constante.
EJEMPLO 3.
Enunciado del problema:
Un almacén deportivo realiza una campaña promocional, que consiste en otorgar un 20% de
descuento sobre las compras realizadas por sus clientes. Diseñe un algoritmo que imprima el
monto total de la compra y el total a pagar por el cliente.
S O L U C I ÓN
I. Planteamiento del problema:
Entrada de Datos Salida de Datos
c. Restricciones:
monto > 0
d. Proceso:
desc = 0.2 * monto
pago_total = monto – desc
EJEMPLO 4.
Enunciado del problema:
Diseñar un algoritmo que permita procesar cuatro números enteros N1, N2, N3 y N4; calcular la
suma de todos los números y el promedio de dichos números.
S O L U C I ÓN
I. Planteamiento del Problema
Entrada de Datos Salida de Datos
c. Restricciones : No existen (los números pueden ser positivos, negativos o incluso cero )
d. Proceso
S = N1 + N2 + N3 + N4
P=S/4
EJEMPLO 5
Enunciado del Problema:
Un vendedor de vehículos obtendrá en concepto de comisión sobre ventas del mes un 8% extra sobre su
salario base. Tomando en cuenta que el vendedor realizo la venta de un vehiculo en el mes. Diseñe un
algoritmo que permita conocer cual será la comisión y el salario total para el presente mes. El salario base
mínimo que puede ganar un empleado es de $150.00
S O L U C I ÓN
I. Planteamiento del Problema
Entrada de Datos Salida de Datos
EJEMPLO 6
Enunciado del Problema:
Una escalera de longitud cualquiera se coloca contra una pared, de manera que su extremo inferior esta a
una distancia determinada de la base del edificio. Diseñe un algoritmo que permita conocer a que altura
del edificio esta apoyada la escalera.
S O L U C I ÓN
I. Planteamiento del Problema
Entrada de Datos Salida de Datos
c. Restricciones :
Longitud > 0
Distancia > 0
d. Proceso:
LE = pow (Longitud, 2 )
Altura Longit
DBE = pow (Distancia, 2)
ud
Dif = LE – DBE
Altura = sqrt (Dif)
Distanc
ia
IAI-115 17 CICLO I-2004
e. Definición de Variables de Proceso :
Nombre Tipo Descripción
LE Real Representa el cuadrado de la longitud de la escalera.
Representa el cuadrado de la distancia que existe entre la escalera y la
DBE Real
base del edificio.
Representa la diferencia entre el cuadrado de la longitud de la escalera y
Dif Real
el cuadrado de la distancia desde la base del edificio hacia la escalera.