Resolucion

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 10

NOMBRE: Julio Cesar.

APELLIDO: Ramón Suero.

MATRICULA: 1-23-3916.

MATERIA: Programación I.

TEMA: Resolución de problemas de la programación.

PROFESOR: Víctor Victoriano.


Resolución de problemas de programación

La 'resolución de un problema' mediante un ordenador consiste en el proceso


que, a partir de la descripción de un problema, expresado habitualmente en
lenguaje natural y en términos propios del dominio del problema, permite
desarrollar un programa que resuelva dicho problema.

Este proceso exige los siguientes pasos:

 Definición del problema.


 Análisis del problema.
 Diseño o desarrollo de un algoritmo.
 Transformación del algoritmo en un programa (codificación).
 Ejecución y validación del programa.

Los dos primeros pasos son los más difíciles del proceso. Una vez analizado
el problema y obtenido un algoritmo que lo resuelva, su transformación a un
programa de ordenador es una tarea de mera traducción al lenguaje de
programación deseado.

Análisis del problema informático:

Cuando un usuario plantea a un programador un problema que resolver


mediante su ordenador, por lo general ese usuario tendrá conocimientos más
o menos amplios sobre el dominio del problema, pero no es habitual que
tenga conocimientos de informática. Por ejemplo, un contable que necesita
un programa para llevar la contabilidad de una empresa será un experto en
contabilidad (dominio del problema), pero no tiene por qué ser experto en
programación.

Del mismo modo, el informático que va a resolver un determinado problema


puede ser un experto programador, pero en principio no tiene por qué
conocer el dominio del problema; siguiendo el ejemplo anterior, el
informático que hace un programa no tiene por qué ser un experto en
contabilidad.

Por ello, al abordar un problema que se quiere resolver mediante un


ordenador, el programador e informático necesita de la experiencia del
experto del dominio para entender el problema. Al final, si se quiere llegar a
una solución satisfactoria es necesario que:
 El problema esté bien definido con el máximo detalle
 Las especificaciones de las entradas y salidas del problema, deben ser
descritas también en detalle:

¿Qué datos son necesarios para resolver el problema?

¿Qué información debe proporcionar la resolución del problema?

Diseño del algoritmo

Un algoritmo consiste en una especificación clara y concisa de los pasos


necesarios para resolver un determinado problema, pero para poder diseñar
algoritmos es necesario disponer de una notación, que llamaremos ‘notación
algorítmica’, que permita:

 Describir las operaciones puestas en juego (acciones, instrucciones,


comandos)

 Describir los objetos manipulados por el algoritmo


(datos/informaciones)

 Controlar la realización de las acciones descritas, indicando la forma


en que estas se organizan en el tiempo

Para poder describir cualquier tipo de acción de las que intervienen en un


algoritmo, diversos autores proponen el uso de un conjunto de
construcciones lógicas (secuencia, decisión e iteración) con las que es
posible escribir cualquier programa. Lo que sigue a continuación es la
descripción de las diferentes construcciones disponibles para el diseño de
algoritmos.

Acciones elementales

Se entiende por acciones elementales aquellas que el ordenador es capaz de


realizar y que serán de dos tipos:

 Aritmético – lógicas: Operaciones que, a partir de unos determinados


datos, realizan un cálculo aritmético (suma, resta, multiplicación,) o
un cálculo lógico (mayor que, menor que, igual que,). Las primeras
devuelven un valor numérico (4, -5. 67,) y las segundas un valor lógico
(verdadero o falso).
 De entrada – salida: Acciones que permiten capturar datos para su
posterior tratamiento (las de entrada) y guardar los resultados de dicho
tratamiento (las de salida).

Secuencia de acciones elementales

Cuando en un algoritmo se deben ejecutar varias acciones sucesivamente,


éstas se describen una detrás de otra según el orden en que deban ejecutarse.
Si se desea se puede emplear algún tipo de símbolo para separar dos acciones
consecutivas. En el siguiente ejemplo se muestra la descripción de dichas y
subjetivas acciones separadas por punto y coma (símbolo que habitualmente
se emplea como separador).

Acción 1;
Acción 2;
...
Acción n;

Composición condicional

Cuando en un algoritmo se quiere indicar que cierta acción solo se debe


ejecutar bajo cierta condición se indica del siguiente modo:

Si Condición Entonces
Acción;
FinSi

Solo si la Condición (operación lógica) es verdadera se ejecutará la Acción.


En este caso, la Acción puede referirse tanto a una acción elemental como a
un conjunto de ellas.

Composición condicional doble (alternativa)

En ocasiones, se deben ejecutar unas acciones u otras dependiendo de la


ocurrencia de una determinada condición. Esta especificación se realiza del
siguiente modo:

Si Condición Entonces
Acción A;
SiNo
Acción B;
FinSi
Composición condicional múltiple

También es posible que a la hora de especificar la ejecución de una acción


haya que escoger ésta entre varias dependiendo del valor de una determinada
variable (o indicador). Este caso se expresa del siguiente modo:

Según Indicador Hacer

Caso Valor 1:
Acción 1;
Caso Valor 2:
Acción 2;
...
Caso Valor n:
Acción n;
[De Otro Modo:
Acción X;]
FinSegun

En esta construcción Indicador debe tener un determinado valor que en caso


de coincidir con alguno de los n valores provocará la ejecución de la acción
asociada a dicho valor. Si el valor del Indicador no coincidiera con ninguno
de los especificados se ejecutará la Acción X. No tiene por qué haber una
Acción X para cuando el Indicador' no coincida con ninguno de los n valores;
en ese caso, si el Indicador' no coincide con ningún valor no se ejecutaría
ninguna acción.

Al igual que en los casos anteriores, todas las acciones que aparecen en esta
estructura (Acción 1, Acción 2, Acción n y Acción X) pueden referirse a una
única acción o a un conjunto de ellas.

Composición iterativa o bucle

Cuando una acción o conjunto de acciones debe ejecutarse varias veces se


recurre a una estructura iterativa o bucle. En este tipo de estructuras se
necesita una condición que determine cuando terminan las iteraciones.

Dependiendo de si esa condición se evalúa al principio o al final de la


estructura y de si la condición para que las iteraciones continúen debe ser
verdadera o falsa, se pueden definir cuatro construcciones iterativas distintas:
La condición de terminación ha de ser FALSA La condición de
terminación ha de ser VERDADERA

Condición al principio de la estructura

(Estructura 1)
Mientras Condición Hacer

Acción;
FinMientras

(Estructura 2)
Hasta Condición Hacer

Acción;
FinHasta

Condición al final de la estructura (Estructura 3)


Hacer

Acción;
Mientras Condición;

(Estructura 4)
Hacer

Acción;
Hasta Condición;

Sobre cuatro construcciones que se acaban de presentar cabe hacer las


siguientes observaciones:

 Si en las estructuras 1 y 2, cuando se evalúa la ‘Condición’, ésta toma


por primera vez un valor tal que no permita ejecutar la ‘Acción’
(FALSO en la 1 y VERDADERO en la 2), ésta no se ejecutará ninguna
vez. Es decir, puede ocurrir que la ‘Acción’, en las estructuras 1 y 2,
no se ejecute nunca.

 En las estructuras 3 y 4, al estar la ‘Condición’ de terminación al final,


la ‘Acción’ se ejecutará antes de que la condición se evalúe por
primera vez, por lo que, aunque la ‘Condición’ tome un valor tal que
no se permita realizar más iteraciones, la ‘Acción’ se ejecutará al
menos una vez.
 Si las ‘Condiciones’ de las estructuras 1 y 2 son complementarias, es
decir, que siempre que una es verdadera la otra es falsa y viceversa
(ejemplo: [a > b] y [a ≤ b] son condiciones complementarias),
entonces ambas estructuras son equivalentes ya que en ambas la
‘Acción’ se ejecutará el mismo número de veces.

 De forma análoga, si las ‘Condiciones’ de las estructuras 3 y 4 son


complementarias también ambas estructuras serán equivalentes.

Existe una construcción especial para indicar una repetición de acciones que
se suele emplear cuando se quiere que dicha repetición se realice un número
determinado de veces:

Para i = 1 Hasta n Hacer


Acción;
FinPara

En este caso la ‘Acción’ se repetirá n veces e ‘i’ será una variable que tomará
todos los valores entre 1 y n (ambos inclusive) en cada una de las sucesivas
repeticiones. Esta construcción, aunque de apariencia diferente a las
anteriores, se podría expresar como un caso particular de la estructura 1 del
siguiente modo:

i = 1;
Mientras i <= n Hacer
Acción;
i = i + 1;
FinMientras

En este caso la condición de finalización del bucle es que la variable ‘i’ sea
mayor que ‘n’ y siempre, al finalizar la ejecución de la ‘Acción’, ‘i’ se
incrementa en una unidad antes de volver a evaluar la ‘Condición’ para el
nuevo valor de ‘i’.
1. Entiende el problema. Lee y analiza cuidadosamente. Lee una
vez más. Ahora pregúntate: “¿qué debo encontrar?”

2. Diseña un plan. Haz un diagrama, o resuelve un problema similar


pero más sencillo. Si una fórmula o solución es aplicable, úsala.
Usa el sentido común.

3. Pon en marcha el plan. Si surgen obstáculos, se persistente. Si


fuera fácil no sería un problema.

4. Revisa y comprueba. Pregúntate: “¿he resuelto todas las


cuestiones implicadas en el problema?”

El proceso de resolución de un problema con una computadora conduce a la


escritura de un programa y a su ejecución en la misma.

1. Análisis. El problema se analiza teniendo presente la especificación de los


requisitos dados para realizar el programa.

Para poder identificar y definir bien un problema 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.

2. Diseño. Una vez analizado el problema, se diseña una solución que


conducirá a un algoritmo que resuelva el problema.

Características de un algoritmo
• preciso (indica el orden de realización en cada paso),
• definido (si se sigue dos veces, obtiene el mismo resultado cada vez),
• finito (tiene fin; un número determinado de pasos).
El diseño del algoritmo es independiente del lenguaje de programación en el
que se vaya
a codificar posteriormente.
3. Codificación (implementación. es la escritura en un lenguaje de
programación de la representación del algoritmo desarrollada en las etapas
precedentes.

Para realizar la conversión del algoritmo en programa se deben sustituir las


palabras reservadas en español por sus homónimos en inglés,

4. Ejecución, verificación y depuración. El programa se ejecuta, se


comprueba rigurosamente y se eliminan todos los errores (denominados
“bugs”, en inglés) que puedan aparecer.

Una vez que el algoritmo se ha convertido en un programa fuente, es preciso


introducirlo en memoria mediante el teclado y almacenarlo posteriormente
en un disco. Esta operación se realiza con un programa editor.

5. Mantenimiento. El programa se actualiza y modifica, cada vez que sea


necesario, de modo que se cumplan todas las necesidades de cambio de sus
usuarios.

6. Documentación. Escritura de las diferentes fases del ciclo de vida del


software, esencialmente el análisis, diseño y codificación, unidos a manuales
de usuario y de referencia, así como normas para el mantenimiento.

También podría gustarte