SlideShare una empresa de Scribd logo
1 de 20
UNIDAD 4:
METODOLOGÍA PARA EL ANÁLISIS Y
PLANTEAMIENTO DE PROBLEMAS
ALGORÍTMICAY PROGRAMACIÓN
Profa. Yenny Salazar
Identificar los métodos y pasos para realizar el
análisis y planteamiento de problemas.
CONTENIDO
Planteamiento del Problema
Definición del Problema
Análisis del Problema
Identificación de entradas
Identificación de Procesos
Identificación de Salidas
Diseño de la Solución
Diseño de algoritmos
Codificación
Documentación
Ejemplos
Actividades
Referencias
Metodología para el Análisis y
Resolución de Problemas
La metodología para analizar y resolver problemas mediante el uso de
algoritmos y programas de computadora se puede dividir en las
siguientes fases:
Planteamiento del Problema
Análisis del Problema
Diseño de la Solución
Codificación
Documentación
Planteamiento del Problema
El Problema:
Es una cuestión que se plantea para hallar un dato desconocido a
partir de otros datos conocidos, o para determinar el método que hay
que seguir para obtener un resultado dado. Se propone con la finalidad
y ánimo de aclarar o resolver una determinada situación, a través de
una metodología determinada.
Definición del problema
Se requiere que el problema sea definido claramente, para que el
programador pueda analizarlo con todo detalle. La definición es una
frase, oración o proposición expresada en términos positivos y no en
forma de pregunta o interrogación. Por ejemplo, frente al «problema»
de no encontrar un lápiz, no se pregunta ¿se perdió el lápiz?, sino que
se plantea: «se perdió el lápiz», porque esa es la realidad y por tanto es
fácil de entender y resolver.
El problema debe estar bien definido si se desea llegar a una solución
satisfactoria.
El análisis del problema exige una lectura previa del problema, a fin
de obtener una idea general de lo que se solicita.
La segunda lectura deberá servir para responder a las preguntas:
¿Qué información debe proporcionar la resolución del problema?
¿Qué datos se necesitan para resolver el problema?
La respuesta a la primera pregunta indicara los resultados deseados o
las salidas del problema. La respuesta a la segunda pregunta indicara
que datos proporcionan o las entradas del problema.
En esta fase debemos aprender a analizar la documentación
de la empresa, investigar y observar todo lo que rodea
el problema.
Análisis del Problema
Tiene como propósito ayudar al programador para llegar a una cierta
comprensión de la naturaleza del problema.
Esta fase, requiere que el problema esté definido claramente, donde
se contemple exactamente lo que debe hacer el programa y el resultado
o solución deseada.
Para poder identificar y definir bien las características del problema y
hallar su solución por computadora, se precisan especificaciones
detalladas de entrada y salida, por tanto es conveniente responder a las
siguientes preguntas:
¿Qué entradas se requieren? (tipo de datos con los cuales se trabaja
y cantidad).
¿Cuál es la salida deseada? (tipo de datos de los resultados y
cantidad).
¿Qué método produce la salida deseada?
Requisitos o requerimientos adicionales y restricciones a la
solución.
Análisis del Problema
Respondiendo acertadamente estas interrogantes, se pueden definir
las características del problema, estableciendo detalladamente las
especificaciones de entradas, procesos y salidas, sabiendo que:
Las entrada: son todos los datos que hay que ingresar para la
resolución del problema.
Los procesos: son las diferentes acciones, instrucciones y/o
procedimientos, que usaran los datos proporcionados por el usuario
en el paso anterior, para resolver el problema.
Las salidas: son los datos esperados y/o la resolución del problema.
Una buena definición del problema, junto con una descripción
detallada de las especificaciones de entrada y
salida, son los requisitos mas importantes para
llegar a una solución eficaz.
Análisis del Problema
Una computadora no tiene la capacidad para solucionar más que
cuanto se le proporcionan los sucesivos pasos a realizar. Estos pasos
sucesivos que indican las instrucciones a ejecutar por la máquina,
constituyen como ya sabemos, el algoritmo.
La información proporcionada al algoritmo componen sus entradas y
la información producida por el algoritmo representan las salidas.
Los problemas complejos se pueden resolver más eficazmente con la
computadora cuando se descomponen en subproblemas que sean más
fáciles de solucionar que el original.
La descomposición del problema original en subproblemas más
simples y a continuación dividir estos subproblemas en
otros más simples que puedan ser implementados para su
solución en la computadora de denomina diseño
descendente (top - down design).
Diseño de la Solución
El diseño tiene como palabra clave: «Cómo»
¿Cómo alcanzar la respuesta requerida?
Para realizar esta fase existen métodos que facilitan este proceso:
representar el problema mediante un algoritmo, empleando
herramientas como los diagramas de flujo o pseudocódigo. Ambas,
permiten presentar una solución para el problema, y en realidad son
intercambiables, es decir que a partir del pseudocódigo puede crearse
un diagrama de flujo, y viceversa.
El diseño de algoritmos es un método específico para poder crear un
modelo matemático ajustado a determinado problema para resolverlo.
Finalizando el desarrollo de los algoritmos es necesario
verificar que se ha incluido soluciones para todas las
formas en que se presente el problema. A este tipo
de prueba se le denomina prueba de escritorio.
Diseño de la Solución
Es el algoritmo traspasado a la computadora a través de un lenguaje
de programación, debe ser escrito de acuerdo a las reglas gramaticales o
sintaxis del mismo. Se genera un algoritmo, el cual se denomina
código, y al pasarlo a un lenguaje de programación se le llama código
fuente.
Compilación: el lenguaje de programación seleccionado revisa que
ya no existan errores en el código fuente.
Ejecución: ejecutar el programa después del ser compilado.
Verificación y Pruebas: revisar que el programa produzca los
resultados que el usuario requiere. Hay que verificar si se produce
algún error de tipo lógico, de semántica o de ejecución.
Depuración: corregir los errores encontrados en la
etapa anterior, si hubiese algún error se tiene que
regresar hasta la etapa que sea necesaria para que la
solución sea la que el usuario requiere.
Codificación
Son todos los comentarios y referencias desde que se dio el problema
hasta que se encontró la solución.
a. Documentación interna: es el encabezado,
descripción, declaración del problema, son
todos los comentarios que puedan llegar a
servir dentro del código fuente.
b.Documentación externa: son los manuales
que se hacen para una mejor ejecución del
programa, ahí se explicara como usar el
programa.
Documentación
Problema: Realizar un algoritmo para determinar el área de un rectángulo.
Análisis:
• El área del rectángulo se calcula multiplicando base por altura. Por lo tanto, la entrada
es el valor de la base y de la altura. El proceso lo conforma una operación aritmética
que se le asigna a una variable que denominaremos “area”. Esa operación consiste en
multiplicar el valor de la base por el valor de la altura. La salida corresponde al valor
del área del rectángulo. Se requieren tres variables: el valor de la base que se
denominará “base”, el valor de la altura que tendrá por nombre “altura” y el área del
rectángulo que se denominará “area”. En síntesis, el análisis quedaría de la siguiente
manera:
Entrada: Valor de la base (base)
Valor de la altura (altura)
Proceso: area = base * altura
Salida: Área del rectángulo (area)
Algoritmo: Calcular el área de un rectángulo
Inicio
entero base, altura, area
Leer base, altura
area = base * altura
Escribir area
Fin
Ejemplo 1
Problema: Realice un algoritmo que determine el área de un cuadrado
Análisis:
• El área de un cuadrado se calcula multiplicando lado por lado. Por tanto, la entrada es el
valor del lado. El proceso lo conforma una operación aritmética que se le asigna a una
variable que denominaremos “areaCuadrado”. Esa operación consiste en multiplicar el
valor del lado por lado. La salida corresponde al valor del área del cuadrado. Se
requieren dos variables: el valor del lado que se denominará “lado” y el área del
cuadrado que se denominará “areaCuadrado”. En síntesis, el análisis quedaría de la
siguiente manera:
Entrada: Valor del lado (lado)
Proceso: areaCuadrado = lado * lado
Salida: área del cuadrado (areaCuadrado)
Algoritmo: Calcular el área de un cuadrado
Inicio
entero lado, areaCuadrado
Leer lado
areaCuadrado = lado * lado
Escribir areaCuadrado
Fin
Ejemplo 2
Problema: Realice un algoritmo para convertir una temperatura dada en grados Celsius a
grados Fahrenheit.
Análisis:
• La converción de grados Celsius a Fahrenheit se calcula mediante la siguiente fórmula: F = (9 / 5)
C + 32, donde F son los grados Fahrenheit y C los grados Celsius. Por tanto, la entrada es el valor
en grados Celsius. El proceso lo conforma una operación aritmética que se le asigna a una variable
que denominaremos “tempF”. Esa operación consiste en multiplicar el cociente de 9 entre 5 por el
valor de los grados Celsius que se identificará con la variable “tempC” y sumarle 32. La salida
corresponde al valor en grados Fahrenheit. Se requieren dos variables: el valor de grados Celsius
que se denominará “tempC” y los grados Fahrenheit que se denominará “tempF”. En síntesis, el
análisis quedaría de la siguiente manera:
Entrada: Temperatura en grados Celsius (tempC)
Proceso: tempF = (9/5)*tempC+32
Salida: Temperatura en grados Fahrenheit (tempF)
Algoritmo: Convertir temperatura en grados Celsius a Fahrenheit
Inicio
real tempC, tempF
Leer tempC
tempF = (9/5) * tempC + 32
Escribir tempF
Fin
Ejemplo 3
Problema: Realice un algoritmo para determinar el monto de la comisión de un
vendedor que corresponde a un 10% de sus ventas.
Análisis:
Entrada: Monto de las ventas (ventas)
Proceso: monto_comision = ventas * 10 / 100
Salida: Monto de la comisión (monto_comision)
Algoritmo: Calcular la comisión del 10% sobre las ventas.
Inicio
real monto_comision, ventas
Leer ventas
monto_comision = ventas * 10 / 100
Escribir monto_comision
Fin
Ejemplo 4
Problema: Realice un algoritmo para determinar el monto a pagar a un trabajador
sabiendo que además de su sueldo base, tiene un bono especial de $ 100 por cada
año de servicio.
Análisis:
Entrada: Sueldo base (sueldo_b), años de servicio (a_servi)
Proceso: pago = sueldo_b + (a_servi * 100)
Salida: Monto a pagar (pago)
Algoritmo:
Inicio
entero a_servi
real sueldo_b, pago
Leer sueldo_b, a_servi
pago = sueldo_b + (a_servi * 100)
Escribir pago
Fin
Ejemplo 5
ACTIVIDADES
1.- Realizar el análisis de los siguientes problemas:
a. El CNE está interesado en saber el número de personas mayores de 18
años, tanto hombres como mujeres en el Municipio Bermúdez. Calcule e
imprima el resultado de esta investigación. Se deben leer registros que
contienen cada uno el sexo y la edad de cada persona.
b. Encuentre la calificación promedio para un gran número, aunque
desconocido, de calificaciones de exámenes. Estas vienen grabadas en
registros. La calificación más alta posible es 10.0
c. Una tienda de libros y géneros diversos al menudeo ofrecen un descuento
de cortesía del 10% para profesores. Muestre como la computadora puede
calcular e imprimir el 10% de $1.00, $1.10, $1.20, etc. hasta $25.00.
d. Un vendedor desea calcular su comisión total en bolívares, sobre la venta
de varios artículos. Al vendedor le corresponde el 5% de comisión sobre
artículos cuyo precio es menor de $20 y el 7.5% de comisión sobre
aquellos artículos cuyo precio es de $20 o más. Suponga que el vendedor
hizo N ventas.
ACTIVIDADES
2.- Realizar el análisis de los siguientes problemas y escribir su algoritmo en
pseudocódigo:
a. La LVBP está interesado en promover el béisbol y para ello desea listar los
siguientes datos: nombre, apellido, cédula de identidad y dirección de jóvenes
que tengan las siguientes características: edad máxima de 18 años, estatura
mínima de 1.80 metros, peso máximo de 80 kilos, de un grupo de N aspirantes.
b. Se tiene un registro con los datos de los estudiantes de una universidad: código
del estudiante, nombre del estudiante, valor por crédito, número de créditos
tomados, valor del recargo por inscripción. Se requiere leer los registros e
imprimir un listado con la siguiente información por estudiante: código, nombre
del estudiante, valor crédito, número de créditos, valor del recargo, valor total
pagado por estudiante. También se debe calcular e imprimir al final del listado el
total pagado por todos los estudiantes y el promedio por estudiante. Use código
de centinela 9999.
c. Se tiene un conjunto de registros de los empleados de una compañía, cada
registro contiene los siguientes datos: número del empleado, nombre del
empleado, salario básico por hora, horas trabajadas en el mes, deducciones. Se
requiere leer los registros e imprimir un listado con la siguiente información por
empleado: número del empleado, nombre del empleado, salario básico por hora,
horas trabajadas, deducciones, salario mensual. También se debe calcular e
imprimir al final del listado, el total de salarios pagados a todos los empleados y
el promedio salarial por empleado.
ACTIVIDADES
3.- Mini Proyecto (parte1)
• Seleccionar un caso de estudio, teniendo en cuenta que éste pueda
aplicarse una solución a través de un programa.
• Realizar el planteamiento del problema, definiendo detalladamente el
problema.
• Identificar entradas-procesos-salidas.
UNIDAD 4:
METODOLOGÍA PARA EL ANÁLISIS Y PLANTEAMIENTO DE PROBLEMAS
ALGORÍTMICA Y PROGRAMACIÓN
Profa. Yenny Salazar
REFERENCIAS
Corona, M. y Ancona M. 2011. Diseño de algoritmos y su
codificación en lenguaje C. McGraw-Hill. México.
Joyanes, L. y Zahonero, I. 2002. Programación en C.
Metodología, algoritmos y estructura de datos. McGraw-Hill.
Joyanes, L. 2008. Fundamentos de Programación, Algoritmos,
Estructura de Datos y Objetos. Cuarta edición. McGraw-Hill.
López, J. Algoritmos y Programación. 2009. Segunda Edición.
Eduteka.

Más contenido relacionado

La actualidad más candente

Metodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesMetodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesEmmanuel Fontán
 
Proyecto socio tecnologico I
Proyecto socio tecnologico IProyecto socio tecnologico I
Proyecto socio tecnologico Iadrianfl
 
Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Yaskelly Yedra
 
diapositivas algoritmos
diapositivas algoritmos diapositivas algoritmos
diapositivas algoritmos TiffanyMartinez
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesIsrael Castillo Cruz
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareElvisAR
 
Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Lis Pater
 
Gestión de proyectos de software - Tema 3: Planificación del proyecto
Gestión de proyectos de software - Tema 3: Planificación del proyectoGestión de proyectos de software - Tema 3: Planificación del proyecto
Gestión de proyectos de software - Tema 3: Planificación del proyectoJair Valenz
 
Fundamentos de la ingenieria del software
Fundamentos de la ingenieria del softwareFundamentos de la ingenieria del software
Fundamentos de la ingenieria del softwarealberto calatayu
 
Proyecto diapositiva
Proyecto diapositivaProyecto diapositiva
Proyecto diapositivaJOHANA FLOREZ
 
Ejemplos de herramientas case más utilizadas
Ejemplos de herramientas case más utilizadasEjemplos de herramientas case más utilizadas
Ejemplos de herramientas case más utilizadasKenny Cash
 
LINUX EN LA ADMINISTRACIÓN PÚBLICA
LINUX EN LA ADMINISTRACIÓN PÚBLICALINUX EN LA ADMINISTRACIÓN PÚBLICA
LINUX EN LA ADMINISTRACIÓN PÚBLICAmoki_m
 
Importancia del análisis de requerimientos
Importancia del análisis de requerimientosImportancia del análisis de requerimientos
Importancia del análisis de requerimientosalmarza1
 
Ingeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosIngeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosRafael Fdo Lopez Castillo
 
Metricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccionMetricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccionJose Diaz Silva
 
Proceso del software
Proceso del softwareProceso del software
Proceso del softwareTensor
 
Metodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudMetodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudEliud Cortes
 
Gestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativosGestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativoschikscorpion_23
 

La actualidad más candente (20)

Metodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentesMetodología de desarrollo de software basada en componentes
Metodología de desarrollo de software basada en componentes
 
Proyecto socio tecnologico I
Proyecto socio tecnologico IProyecto socio tecnologico I
Proyecto socio tecnologico I
 
Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)Ingenieria de software (conceptos básicos)
Ingenieria de software (conceptos básicos)
 
diapositivas algoritmos
diapositivas algoritmos diapositivas algoritmos
diapositivas algoritmos
 
Lenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretesLenguajes de programacion tema 2_compiladores e interpretes
Lenguajes de programacion tema 2_compiladores e interpretes
 
Clasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de softwareClasificación de las metodologías de desarrollo de software
Clasificación de las metodologías de desarrollo de software
 
Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema
 
Gestión de proyectos de software - Tema 3: Planificación del proyecto
Gestión de proyectos de software - Tema 3: Planificación del proyectoGestión de proyectos de software - Tema 3: Planificación del proyecto
Gestión de proyectos de software - Tema 3: Planificación del proyecto
 
Fundamentos de la ingenieria del software
Fundamentos de la ingenieria del softwareFundamentos de la ingenieria del software
Fundamentos de la ingenieria del software
 
Proyecto diapositiva
Proyecto diapositivaProyecto diapositiva
Proyecto diapositiva
 
Ejemplos de herramientas case más utilizadas
Ejemplos de herramientas case más utilizadasEjemplos de herramientas case más utilizadas
Ejemplos de herramientas case más utilizadas
 
LINUX EN LA ADMINISTRACIÓN PÚBLICA
LINUX EN LA ADMINISTRACIÓN PÚBLICALINUX EN LA ADMINISTRACIÓN PÚBLICA
LINUX EN LA ADMINISTRACIÓN PÚBLICA
 
Ensamblador y lenguaje c
Ensamblador y lenguaje cEnsamblador y lenguaje c
Ensamblador y lenguaje c
 
Importancia del análisis de requerimientos
Importancia del análisis de requerimientosImportancia del análisis de requerimientos
Importancia del análisis de requerimientos
 
Ingeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosIngeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelos
 
Metricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccionMetricas del proyecto de Software - introduccion
Metricas del proyecto de Software - introduccion
 
Proceso del software
Proceso del softwareProceso del software
Proceso del software
 
Metodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudMetodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliud
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Gestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativosGestión de procesos en sistemas operativos
Gestión de procesos en sistemas operativos
 

Similar a Unidad 4 Metodología para el Análisis y Planteamiento de Problemas

Similar a Unidad 4 Metodología para el Análisis y Planteamiento de Problemas (20)

Clase 1 Itinerario
Clase 1 ItinerarioClase 1 Itinerario
Clase 1 Itinerario
 
algotiritmo:análisis de problemas
algotiritmo:análisis de problemasalgotiritmo:análisis de problemas
algotiritmo:análisis de problemas
 
Metodología para la solución de problemas con el uso de algoritmos
Metodología para la solución de problemas con el uso de algoritmosMetodología para la solución de problemas con el uso de algoritmos
Metodología para la solución de problemas con el uso de algoritmos
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Metodología para la solución de problemas
Metodología para la solución de problemasMetodología para la solución de problemas
Metodología para la solución de problemas
 
Lenguajes de programación parte i.3
Lenguajes de programación parte i.3Lenguajes de programación parte i.3
Lenguajes de programación parte i.3
 
Cuestionario
CuestionarioCuestionario
Cuestionario
 
Cuestinario
CuestinarioCuestinario
Cuestinario
 
Qué es un problema
Qué es un problemaQué es un problema
Qué es un problema
 
CUESTIONARIO
CUESTIONARIOCUESTIONARIO
CUESTIONARIO
 
Qué es un problema?
Qué es un problema?Qué es un problema?
Qué es un problema?
 
Tema n° 1
Tema n° 1Tema n° 1
Tema n° 1
 
Diseño de pseudocodigo
Diseño de pseudocodigoDiseño de pseudocodigo
Diseño de pseudocodigo
 
Algoritmos y programas estructuras
Algoritmos y programas estructurasAlgoritmos y programas estructuras
Algoritmos y programas estructuras
 
1. conceptos básicos sobre algoritmos adsi
1. conceptos básicos sobre algoritmos adsi1. conceptos básicos sobre algoritmos adsi
1. conceptos básicos sobre algoritmos adsi
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del software
 
Herramientas de Programación
Herramientas de ProgramaciónHerramientas de Programación
Herramientas de Programación
 
Clase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemasClase de metodologia para analisis y planteamiento de problemas
Clase de metodologia para analisis y planteamiento de problemas
 

Más de Yenny Salazar

3.3.- Operadores y Expresiones
3.3.- Operadores y Expresiones3.3.- Operadores y Expresiones
3.3.- Operadores y ExpresionesYenny Salazar
 
3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y ConstantesYenny Salazar
 
2.3.- Documentación
2.3.- Documentación2.3.- Documentación
2.3.- DocumentaciónYenny Salazar
 
Tema 1.3.- Programación
Tema 1.3.- ProgramaciónTema 1.3.- Programación
Tema 1.3.- ProgramaciónYenny Salazar
 
Tema 2.2.- Estilos de Programación
Tema 2.2.- Estilos de ProgramaciónTema 2.2.- Estilos de Programación
Tema 2.2.- Estilos de ProgramaciónYenny Salazar
 
Tema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadTema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadYenny Salazar
 
1.2.3.- Pseudocódigo
1.2.3.- Pseudocódigo1.2.3.- Pseudocódigo
1.2.3.- PseudocódigoYenny Salazar
 
Tema 1.2.2.- Diagramas de Flujo
Tema 1.2.2.- Diagramas de FlujoTema 1.2.2.- Diagramas de Flujo
Tema 1.2.2.- Diagramas de FlujoYenny Salazar
 
1.1. Conceptos básicos de Algorítmica y Programación
1.1. Conceptos básicos de Algorítmica y Programación1.1. Conceptos básicos de Algorítmica y Programación
1.1. Conceptos básicos de Algorítmica y ProgramaciónYenny Salazar
 
Principios Fundamentales para el Proceso de la toma de decisiones
Principios Fundamentales para el Proceso de la toma de decisionesPrincipios Fundamentales para el Proceso de la toma de decisiones
Principios Fundamentales para el Proceso de la toma de decisionesYenny Salazar
 

Más de Yenny Salazar (11)

3.3.- Operadores y Expresiones
3.3.- Operadores y Expresiones3.3.- Operadores y Expresiones
3.3.- Operadores y Expresiones
 
3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes3.2.- Identificadores, Variables y Constantes
3.2.- Identificadores, Variables y Constantes
 
3.1.- Tipo de Datos
3.1.- Tipo de Datos3.1.- Tipo de Datos
3.1.- Tipo de Datos
 
2.3.- Documentación
2.3.- Documentación2.3.- Documentación
2.3.- Documentación
 
Tema 1.3.- Programación
Tema 1.3.- ProgramaciónTema 1.3.- Programación
Tema 1.3.- Programación
 
Tema 2.2.- Estilos de Programación
Tema 2.2.- Estilos de ProgramaciónTema 2.2.- Estilos de Programación
Tema 2.2.- Estilos de Programación
 
Tema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de CalidadTema 2.1.- Estándares de Calidad
Tema 2.1.- Estándares de Calidad
 
1.2.3.- Pseudocódigo
1.2.3.- Pseudocódigo1.2.3.- Pseudocódigo
1.2.3.- Pseudocódigo
 
Tema 1.2.2.- Diagramas de Flujo
Tema 1.2.2.- Diagramas de FlujoTema 1.2.2.- Diagramas de Flujo
Tema 1.2.2.- Diagramas de Flujo
 
1.1. Conceptos básicos de Algorítmica y Programación
1.1. Conceptos básicos de Algorítmica y Programación1.1. Conceptos básicos de Algorítmica y Programación
1.1. Conceptos básicos de Algorítmica y Programación
 
Principios Fundamentales para el Proceso de la toma de decisiones
Principios Fundamentales para el Proceso de la toma de decisionesPrincipios Fundamentales para el Proceso de la toma de decisiones
Principios Fundamentales para el Proceso de la toma de decisiones
 

Unidad 4 Metodología para el Análisis y Planteamiento de Problemas

  • 1. UNIDAD 4: METODOLOGÍA PARA EL ANÁLISIS Y PLANTEAMIENTO DE PROBLEMAS ALGORÍTMICAY PROGRAMACIÓN Profa. Yenny Salazar Identificar los métodos y pasos para realizar el análisis y planteamiento de problemas.
  • 2. CONTENIDO Planteamiento del Problema Definición del Problema Análisis del Problema Identificación de entradas Identificación de Procesos Identificación de Salidas Diseño de la Solución Diseño de algoritmos Codificación Documentación Ejemplos Actividades Referencias
  • 3. Metodología para el Análisis y Resolución de Problemas La metodología para analizar y resolver problemas mediante el uso de algoritmos y programas de computadora se puede dividir en las siguientes fases: Planteamiento del Problema Análisis del Problema Diseño de la Solución Codificación Documentación
  • 4. Planteamiento del Problema El Problema: Es una cuestión que se plantea para hallar un dato desconocido a partir de otros datos conocidos, o para determinar el método que hay que seguir para obtener un resultado dado. Se propone con la finalidad y ánimo de aclarar o resolver una determinada situación, a través de una metodología determinada. Definición del problema Se requiere que el problema sea definido claramente, para que el programador pueda analizarlo con todo detalle. La definición es una frase, oración o proposición expresada en términos positivos y no en forma de pregunta o interrogación. Por ejemplo, frente al «problema» de no encontrar un lápiz, no se pregunta ¿se perdió el lápiz?, sino que se plantea: «se perdió el lápiz», porque esa es la realidad y por tanto es fácil de entender y resolver. El problema debe estar bien definido si se desea llegar a una solución satisfactoria.
  • 5. El análisis del problema exige una lectura previa del problema, a fin de obtener una idea general de lo que se solicita. La segunda lectura deberá servir para responder a las preguntas: ¿Qué información debe proporcionar la resolución del problema? ¿Qué datos se necesitan para resolver el problema? La respuesta a la primera pregunta indicara los resultados deseados o las salidas del problema. La respuesta a la segunda pregunta indicara que datos proporcionan o las entradas del problema. En esta fase debemos aprender a analizar la documentación de la empresa, investigar y observar todo lo que rodea el problema. Análisis del Problema
  • 6. Tiene como propósito ayudar al programador para llegar a una cierta comprensión de la naturaleza del problema. Esta fase, requiere que el problema esté definido claramente, donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada. Para poder identificar y definir bien las características del problema y hallar su solución por computadora, se precisan especificaciones detalladas de entrada y salida, por tanto es conveniente responder a las siguientes preguntas: ¿Qué entradas se requieren? (tipo de datos con los cuales se trabaja y cantidad). ¿Cuál es la salida deseada? (tipo de datos de los resultados y cantidad). ¿Qué método produce la salida deseada? Requisitos o requerimientos adicionales y restricciones a la solución. Análisis del Problema
  • 7. Respondiendo acertadamente estas interrogantes, se pueden definir las características del problema, estableciendo detalladamente las especificaciones de entradas, procesos y salidas, sabiendo que: Las entrada: son todos los datos que hay que ingresar para la resolución del problema. Los procesos: son las diferentes acciones, instrucciones y/o procedimientos, que usaran los datos proporcionados por el usuario en el paso anterior, para resolver el problema. Las salidas: son los datos esperados y/o la resolución del problema. Una buena definición del problema, junto con una descripción detallada de las especificaciones de entrada y salida, son los requisitos mas importantes para llegar a una solución eficaz. Análisis del Problema
  • 8. Una computadora no tiene la capacidad para solucionar más que cuanto se le proporcionan los sucesivos pasos a realizar. Estos pasos sucesivos que indican las instrucciones a ejecutar por la máquina, constituyen como ya sabemos, el algoritmo. La información proporcionada al algoritmo componen sus entradas y la información producida por el algoritmo representan las salidas. Los problemas complejos se pueden resolver más eficazmente con la computadora cuando se descomponen en subproblemas que sean más fáciles de solucionar que el original. La descomposición del problema original en subproblemas más simples y a continuación dividir estos subproblemas en otros más simples que puedan ser implementados para su solución en la computadora de denomina diseño descendente (top - down design). Diseño de la Solución
  • 9. El diseño tiene como palabra clave: «Cómo» ¿Cómo alcanzar la respuesta requerida? Para realizar esta fase existen métodos que facilitan este proceso: representar el problema mediante un algoritmo, empleando herramientas como los diagramas de flujo o pseudocódigo. Ambas, permiten presentar una solución para el problema, y en realidad son intercambiables, es decir que a partir del pseudocódigo puede crearse un diagrama de flujo, y viceversa. El diseño de algoritmos es un método específico para poder crear un modelo matemático ajustado a determinado problema para resolverlo. Finalizando el desarrollo de los algoritmos es necesario verificar que se ha incluido soluciones para todas las formas en que se presente el problema. A este tipo de prueba se le denomina prueba de escritorio. Diseño de la Solución
  • 10. Es el algoritmo traspasado a la computadora a través de un lenguaje de programación, debe ser escrito de acuerdo a las reglas gramaticales o sintaxis del mismo. Se genera un algoritmo, el cual se denomina código, y al pasarlo a un lenguaje de programación se le llama código fuente. Compilación: el lenguaje de programación seleccionado revisa que ya no existan errores en el código fuente. Ejecución: ejecutar el programa después del ser compilado. Verificación y Pruebas: revisar que el programa produzca los resultados que el usuario requiere. Hay que verificar si se produce algún error de tipo lógico, de semántica o de ejecución. Depuración: corregir los errores encontrados en la etapa anterior, si hubiese algún error se tiene que regresar hasta la etapa que sea necesaria para que la solución sea la que el usuario requiere. Codificación
  • 11. Son todos los comentarios y referencias desde que se dio el problema hasta que se encontró la solución. a. Documentación interna: es el encabezado, descripción, declaración del problema, son todos los comentarios que puedan llegar a servir dentro del código fuente. b.Documentación externa: son los manuales que se hacen para una mejor ejecución del programa, ahí se explicara como usar el programa. Documentación
  • 12. Problema: Realizar un algoritmo para determinar el área de un rectángulo. Análisis: • El área del rectángulo se calcula multiplicando base por altura. Por lo tanto, la entrada es el valor de la base y de la altura. El proceso lo conforma una operación aritmética que se le asigna a una variable que denominaremos “area”. Esa operación consiste en multiplicar el valor de la base por el valor de la altura. La salida corresponde al valor del área del rectángulo. Se requieren tres variables: el valor de la base que se denominará “base”, el valor de la altura que tendrá por nombre “altura” y el área del rectángulo que se denominará “area”. En síntesis, el análisis quedaría de la siguiente manera: Entrada: Valor de la base (base) Valor de la altura (altura) Proceso: area = base * altura Salida: Área del rectángulo (area) Algoritmo: Calcular el área de un rectángulo Inicio entero base, altura, area Leer base, altura area = base * altura Escribir area Fin Ejemplo 1
  • 13. Problema: Realice un algoritmo que determine el área de un cuadrado Análisis: • El área de un cuadrado se calcula multiplicando lado por lado. Por tanto, la entrada es el valor del lado. El proceso lo conforma una operación aritmética que se le asigna a una variable que denominaremos “areaCuadrado”. Esa operación consiste en multiplicar el valor del lado por lado. La salida corresponde al valor del área del cuadrado. Se requieren dos variables: el valor del lado que se denominará “lado” y el área del cuadrado que se denominará “areaCuadrado”. En síntesis, el análisis quedaría de la siguiente manera: Entrada: Valor del lado (lado) Proceso: areaCuadrado = lado * lado Salida: área del cuadrado (areaCuadrado) Algoritmo: Calcular el área de un cuadrado Inicio entero lado, areaCuadrado Leer lado areaCuadrado = lado * lado Escribir areaCuadrado Fin Ejemplo 2
  • 14. Problema: Realice un algoritmo para convertir una temperatura dada en grados Celsius a grados Fahrenheit. Análisis: • La converción de grados Celsius a Fahrenheit se calcula mediante la siguiente fórmula: F = (9 / 5) C + 32, donde F son los grados Fahrenheit y C los grados Celsius. Por tanto, la entrada es el valor en grados Celsius. El proceso lo conforma una operación aritmética que se le asigna a una variable que denominaremos “tempF”. Esa operación consiste en multiplicar el cociente de 9 entre 5 por el valor de los grados Celsius que se identificará con la variable “tempC” y sumarle 32. La salida corresponde al valor en grados Fahrenheit. Se requieren dos variables: el valor de grados Celsius que se denominará “tempC” y los grados Fahrenheit que se denominará “tempF”. En síntesis, el análisis quedaría de la siguiente manera: Entrada: Temperatura en grados Celsius (tempC) Proceso: tempF = (9/5)*tempC+32 Salida: Temperatura en grados Fahrenheit (tempF) Algoritmo: Convertir temperatura en grados Celsius a Fahrenheit Inicio real tempC, tempF Leer tempC tempF = (9/5) * tempC + 32 Escribir tempF Fin Ejemplo 3
  • 15. Problema: Realice un algoritmo para determinar el monto de la comisión de un vendedor que corresponde a un 10% de sus ventas. Análisis: Entrada: Monto de las ventas (ventas) Proceso: monto_comision = ventas * 10 / 100 Salida: Monto de la comisión (monto_comision) Algoritmo: Calcular la comisión del 10% sobre las ventas. Inicio real monto_comision, ventas Leer ventas monto_comision = ventas * 10 / 100 Escribir monto_comision Fin Ejemplo 4
  • 16. Problema: Realice un algoritmo para determinar el monto a pagar a un trabajador sabiendo que además de su sueldo base, tiene un bono especial de $ 100 por cada año de servicio. Análisis: Entrada: Sueldo base (sueldo_b), años de servicio (a_servi) Proceso: pago = sueldo_b + (a_servi * 100) Salida: Monto a pagar (pago) Algoritmo: Inicio entero a_servi real sueldo_b, pago Leer sueldo_b, a_servi pago = sueldo_b + (a_servi * 100) Escribir pago Fin Ejemplo 5
  • 17. ACTIVIDADES 1.- Realizar el análisis de los siguientes problemas: a. El CNE está interesado en saber el número de personas mayores de 18 años, tanto hombres como mujeres en el Municipio Bermúdez. Calcule e imprima el resultado de esta investigación. Se deben leer registros que contienen cada uno el sexo y la edad de cada persona. b. Encuentre la calificación promedio para un gran número, aunque desconocido, de calificaciones de exámenes. Estas vienen grabadas en registros. La calificación más alta posible es 10.0 c. Una tienda de libros y géneros diversos al menudeo ofrecen un descuento de cortesía del 10% para profesores. Muestre como la computadora puede calcular e imprimir el 10% de $1.00, $1.10, $1.20, etc. hasta $25.00. d. Un vendedor desea calcular su comisión total en bolívares, sobre la venta de varios artículos. Al vendedor le corresponde el 5% de comisión sobre artículos cuyo precio es menor de $20 y el 7.5% de comisión sobre aquellos artículos cuyo precio es de $20 o más. Suponga que el vendedor hizo N ventas.
  • 18. ACTIVIDADES 2.- Realizar el análisis de los siguientes problemas y escribir su algoritmo en pseudocódigo: a. La LVBP está interesado en promover el béisbol y para ello desea listar los siguientes datos: nombre, apellido, cédula de identidad y dirección de jóvenes que tengan las siguientes características: edad máxima de 18 años, estatura mínima de 1.80 metros, peso máximo de 80 kilos, de un grupo de N aspirantes. b. Se tiene un registro con los datos de los estudiantes de una universidad: código del estudiante, nombre del estudiante, valor por crédito, número de créditos tomados, valor del recargo por inscripción. Se requiere leer los registros e imprimir un listado con la siguiente información por estudiante: código, nombre del estudiante, valor crédito, número de créditos, valor del recargo, valor total pagado por estudiante. También se debe calcular e imprimir al final del listado el total pagado por todos los estudiantes y el promedio por estudiante. Use código de centinela 9999. c. Se tiene un conjunto de registros de los empleados de una compañía, cada registro contiene los siguientes datos: número del empleado, nombre del empleado, salario básico por hora, horas trabajadas en el mes, deducciones. Se requiere leer los registros e imprimir un listado con la siguiente información por empleado: número del empleado, nombre del empleado, salario básico por hora, horas trabajadas, deducciones, salario mensual. También se debe calcular e imprimir al final del listado, el total de salarios pagados a todos los empleados y el promedio salarial por empleado.
  • 19. ACTIVIDADES 3.- Mini Proyecto (parte1) • Seleccionar un caso de estudio, teniendo en cuenta que éste pueda aplicarse una solución a través de un programa. • Realizar el planteamiento del problema, definiendo detalladamente el problema. • Identificar entradas-procesos-salidas.
  • 20. UNIDAD 4: METODOLOGÍA PARA EL ANÁLISIS Y PLANTEAMIENTO DE PROBLEMAS ALGORÍTMICA Y PROGRAMACIÓN Profa. Yenny Salazar REFERENCIAS Corona, M. y Ancona M. 2011. Diseño de algoritmos y su codificación en lenguaje C. McGraw-Hill. México. Joyanes, L. y Zahonero, I. 2002. Programación en C. Metodología, algoritmos y estructura de datos. McGraw-Hill. Joyanes, L. 2008. Fundamentos de Programación, Algoritmos, Estructura de Datos y Objetos. Cuarta edición. McGraw-Hill. López, J. Algoritmos y Programación. 2009. Segunda Edición. Eduteka.