SlideShare uma empresa Scribd logo
1 de 13
APPS 4ºC
Lorena Rodríguez Turrubiates
1.*Desarrollar el proceso de solución de un
problema.*
1.1. Identificar el problema
Definición del problema
Requiere que el problema sea
definido y comprendido
claramente para que pueda ser
analizado con todo detalle
Está dada por el enunciado del
problema, el cuál debe ser claro y
completo. Es importante que
conozcamos exactamente que se
desea del computador; mientras
qué esto no se comprenda, no
tiene caso pasar a la siguiente
etapa. .
Identifica lo que quieres lograr. Aprender programación de
computadoras permite aprender a crear juegos de computadora, hacer
aplicaciones para tu teléfono celular o construir el próximo sitio web. La
programación de computadoras es un pasatiempo divertido y
gratificante, y tus nuevas habilidades pueden ayudarte a alcanzar tus
metas personales, como el progreso en el trabajo o un cambio de
carrera. Tener una meta en mente te ayudará a empezar y mantener la
concentración.
Elige un lenguaje de computadora. Busca sitios y grupos de discusión
relacionados con tu objetivo y hazte una idea de qué lenguajes están
utilizando otros desarrolladores de software. Por ejemplo, si deseas
desarrollar aplicaciones web, comienza con JavaScript o PHP. C++ y
Java son populares lenguajes de programación de juegos. En los
entornos de negocio, lenguajes .NET, como Visual Basic y C# son de uso
general. No hay respuesta "correcta". Una vez que aprendes a
programar en un lenguaje de programación, descubrirás que el
aprendizaje de un segundo lenguaje es más fácil. Si no estás seguro del
lenguaje para empezar, elige un popular lenguaje orientado a objetos,
como C++, Java o C#.
APPS 4ºC
Lorena Rodríguez Turrubiates
1.2. Análisis del problema
Esta fase requiere una clara
definición del problema, donde
se contemple lo que debe
hacer el programa y el
resultado o solución deseada.
Dado que se busca una
solución por computadora, se
precisan especificaciones
detalladas de entrada y salida.
Para poder definir bien
un problema es conveniente
responder a las siguientes
preguntas:
¿Qué entradas se requieren (tipo y cantidad)?
¿Cuál es la salida deseada (tipo y cantidad)?
¿Qué método produce la salida deseada?
El propósito del análisis de un problema es ayudar al programador para
llegar a una cierta comprensión de la naturaleza del problema. El
problema debe estar bien definido si se desea llegar a una solución
satisfactoria.
Para poder definir con precisión el problema se requiere que las
especificaciones de entrada, proceso y salida sean descritas con
detalles.
 Entrada, son todos los datos que hay que ingresar para la resolución
del problema.
 Proceso, son los diferentes procedimientos en los cuales usare los
datos proporcionados por el usuario en el paso anterior para resolver el
problema.
 Salida, 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 más
importantes para llegar a una solución eficaz.
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?
APPS 4ºC
Lorena Rodríguez Turrubiates
¿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, observar todo lo que rodea el problema.
APPS 4ºC
Lorena Rodríguez Turrubiates
1.3. Elaborar algoritmos de la solución del
problema
Un algoritmo es un conjunto
prescrito de instrucciones o
reglas bien definidas, ordenadas
y finitas que permite realizar
una actividad mediante pasos
sucesivos que no generen dudas
a quien deba realizar dicha
actividad. Dados un estado
inicial y una entrada, siguiendo
los pasos sucesivos se llega a
un estado final y se obtiene una
solución. Los algoritmos son el objeto de estudio de laalgoritmia.1
En la vida cotidiana, se emplean algoritmos frecuentemente para
resolver problemas. Algunos ejemplos son los manuales de usuario, que
muestran algoritmos para usar un aparato, o las instrucciones que
recibe un trabajador por parte de su patrón. Algunos ejemplos
en matemática son el algoritmo de la división para calcular el cociente
de dos números, el algoritmo de Euclides para obtener el máximo
común divisor de dos enteros positivos, o el método de Gauss para
resolver un sistema lineal de ecuaciones.
Algoritmos como funciones
Artículo principal: Teoría de la computabilidad.
Esquemática de un algoritmo solucionando un problema de ciclo ha
miltoniano.
Un algoritmo se puede concebir como una función que transforma los
datos de un problema (entrada) en los datos de una solución (salida).
Más aun, los datos se pueden representar a su vez como secuencias
de bits, y en general, de símbolos cualesquiera.1 9 11 Como cada
secuencia de bits representa a un número natural(véase Sistema
binario), entonces los algoritmos son en esencia funciones de los
números naturales en los números naturales que sí se pueden calcular.
APPS 4ºC
Lorena Rodríguez Turrubiates
Es decir que todo algoritmo calcula una función donde cada
número natural es la codificación de un problema o de una solución.
En ocasiones los algoritmos son susceptibles de nunca terminar, por
ejemplo, cuando entran a un bucle infinito. Cuando esto ocurre, el
algoritmo nunca devuelve ningún valor de salida, y podemos decir que
la función queda indefinida para ese valor de entrada. Por esta razón se
considera que los algoritmos son funciones parciales, es decir, no
necesariamente definidas en todo su dominio de definición.
Cuando una función puede ser calculada por medios algorítmicos, sin
importar la cantidad de memoria que ocupe o el tiempo que se tarde, se
dice que dicha función es computable. No todas las funciones entre
secuencias datos son computables. El problema de la parada es un
ejemplo.
Análisis de algoritmos
Como medida de la eficiencia de un
algoritmo, se suelen estudiar los
recursos (memoria y tiempo) que
consume el algoritmo. El análisis de
algoritmos se ha desarrollado para
obtener valores que de alguna forma
indiquen (o especifiquen) la evolución
del gasto de tiempo y memoria en
función del tamaño de los valores de
entrada.
El análisis y estudio de los algoritmos
es una disciplina de las ciencias de la
computación y, en la mayoría de los
casos, su estudio es completamente
abstracto sin usar ningún tipo de lenguaje de programación ni cualquier
otra implementación; por eso, en ese sentido, comparte las
características de las disciplinas matemáticas. Así, el análisis de los
algoritmos se centra en los principios básicos del algoritmo, no en los de
la implementación particular. Una forma de plasmar (o algunas veces
"codificar") un algoritmo es escribirlo en pseudocódigo o utilizar un
lenguaje muy simple tal como Léxico, cuyos códigos pueden estar en el
idioma del programador.
Algunos escritores restringen la definición de algoritmo a procedimientos
que deben acabar en algún momento, mientras que otros consideran
procedimientos que podrían ejecutarse eternamente sin pararse,
suponiendo el caso en el que existiera algún dispositivo físico que fuera
capaz de funcionar eternamente. En este último caso, la finalización con
éxito del algoritmo no se podría definir como la terminación de este con
APPS 4ºC
Lorena Rodríguez Turrubiates
una salida satisfactoria, sino que el éxito estaría definido en función de
las secuencias de salidas dadas durante un periodo de vida de la
ejecución del algoritmo. Por ejemplo, un algoritmo que verifica que hay
más ceros que unos en una secuencia binaria infinita debe ejecutarse
siempre para que pueda devolver un valor útil. Si se implementa
correctamente, el valor devuelto por el algoritmo será válido, hasta que
evalúe el siguiente dígito binario. De esta forma, mientras evalúa la
siguiente secuencia podrán leerse dos tipos de señales: una señal
positiva (en el caso de que el número de ceros sea mayor que el de
unos) y una negativa en caso contrario. Finalmente, la salida de este
algoritmo se define como la devolución de valores exclusivamente
positivos si hay más ceros que unos en la secuencia y, en cualquier otro
caso, devolverá una mezcla de señales positivas y negativas.
1.4 Elaborar diagramas de flujo de la solución
del problema
Un Diagrama de Flujo representa la esquematización gráfica de un
algoritmo, el cual muestra gráficamente los pasos o procesos a seguir
para alcanzar la solución de un problema Es importante resaltar que el
Diagrama de Flujo muestra el sistema como una red de procesos
funcionales conectados entre sí por " Tuberías " y "Depósitos" de datos
que permite describir el movimiento de los datos a través del Sistema.
Este describirá : Lugares de Origen y Destino de los datos ,
Transformaciones a las que son sometidos los datos, Lugares en los que
se almacenan los datos dentro del sistema , Los canales por donde
circulan los datos.
Es un grafico lógico del plan de trabajo que se ejecutara para la solución
de un determinado problema. A través de él, se planifica la solución del
problema independiente del lenguaje de computación a usar.
Las capacidades humanas necesarias para elaborar un diagrama de flujo
correcto son: Lógico, Prácticas, y Atención.
El empleo de la maquina en las funciones del procediendo de datos han
hecho necesario un flujo ordenado de la información. La secuencia en
que deberán ejecutarse las operaciones tendrá que definirse claramente,
y cuando se combine con los datos a los que debe aplicarse, esa
secuencia creara el flujo de información.
APPS 4ºC
Lorena Rodríguez Turrubiates
No puede hacerse mucho hincapié en documentación, ósea el registro
de Información .Sin Instrucciones escritas y sin representación grafica
del flujo de trabajo sería muy difícil de llevar una tarea de procediendo
de datos en forma apropiada. Hay varios métodos más eficientes
organizados y normalizados, es el de los diagramas de Flujo que el
Futuro programador comprenda la necesidad de los diagrama de flujo.
Es un grafico lógico del plan de trabajo que se ejecutara para la solución
de un determinado problema. A través de él, se planifica la solución del
problema independiente del lenguaje de computación a usar.
Las capacidades humanas necesarias para elaborar un diagrama de flujo
correcto son: Lógico, Prácticas, y Atención.
El empleo de la maquina en las funciones del procediendo de datos han
hecho necesario un flujo ordenado de la información. La secuencia en
que deberán ejecutarse las operaciones tendrá que definirse claramente,
y cuando se combine con los datos a los que debe aplicarse, esa
secuencia creara el flujo de información.
No puede hacerse mucho hincapié en documentación, ósea el registro
de Información .Sin Instrucciones escritas y sin representación grafica
del flujo de trabajo sería muy difícil de llevar una tarea de procediendo
de datos en forma apropiada. Hay varios métodos más eficientes
organizados y normalizados, es el de los diagramas de Flujo que el
Futuro programador comprenda la necesidad de los diagrama de flujo.
APPS 4ºC
Lorena Rodríguez Turrubiates
1.5. Crear Pseudocódigo de la solución del
problema
El pseudocódigo se trata de una herramienta que los analistas de sistemas
utilizan para comunicar a los programadores la estructura del programa
que van a realizar, de forma de tener una idea bien clara de lo que se
necesita programar.
El pseudocódigo es una forma de diagramar un algoritmo para resolver un
determinado problema, sin atenerse a ningún lenguaje de programación
en especial.
Un algoritmo es un conjunto de procedimientos que permiten resolver un
problema.
APPS 4ºC
Lorena Rodríguez Turrubiates
En vez de escribir el programa directamente en un lenguaje de
programación determinado (C, Basic, etc.), crearemos un borrador
entendible para todos, para luego de tener bien en claro lo que se debe
hacer, pasar a la programación propiamente dicha.
El pseudo código se refiere a crear un código para orientar a los
programadores, pero sin la sintaxis ni la estructura propia de ningún
lenguaje.
Utilización en la práctica
En el trabajo de un analista de sistemas, una de las partes más trabajosas
es la de determinar qué es lo que necesitan de un sistema los usuarios
finales. Se dedican muchas horas a hacer un relevamiento de los datos
que serán necesarios, los tipos de procesamientos, las salidas, etc. Y debe
existir una realimentación entre el diseño y el usuario, para garantizar que
el sistema cumpla con los requisitos del usuario.
APPS 4ºC
Lorena Rodríguez Turrubiates
Gracias a esta herramienta, podemos reunir a todos los programadores,
dar las pautas de trabajo, y mediante el pseudocódigo, cada
programador sabrá lo que hace el sistema, y podrá escribir el código
correspondiente.
Incluso dos programadores que dominen el mismo lenguaje pueden tener
metodologías de trabajo distintas. Un problema puede ser resuelto de
muchas maneras, cada una más o menos eficiente que la otra, pero todas
cumplen con el objetivo.
El pseudocódigo elimina estas diferencias, dando libertad a los
programadores para que puedan ajustarse a su metodología de trabajo.
Generalmente, este código se escribe con la participación de todos los
programadores. Esto representa la ventaja de que muchas opiniones
ayudan a elegir la mejor entre todas, logrando una solución efectiva y
eficaz al problema planteado.
Características y partes
Las principales características de este lenguaje son:
1. Se puede ejecutar en un ordenador.
2. Es una forma de representación sencilla de utilizar y de manipular.
3. Facilita el paso del programa al lenguaje de programación.
4. Es independiente del lenguaje de programación que se vaya a
utilizar.
5. Es un método que facilita la programación y solución al algoritmo del
programa.
Todo documento en pseudocódigo debe permitir la descripción de:
1. Instrucciones primitivas.
2. Instrucciones de proceso.
3. Instrucciones de control.
4. Instrucciones compuestas.
5. Instrucciones de descripción.
APPS 4ºC
Lorena Rodríguez Turrubiates
Estructura a seguir en su realización:
1. Cabecera.
1. Programa.
2. Módulo.
3. Tipos de datos.
4. Constantes.
5. Variables.
2. Cuerpo.
1. Inicio.
2. Instrucciones.
3. Fin.
1.6. Prueba de escritorio de la solución del
problema
Se denomina prueba de escritorio a la comprobación que se hace de un
algoritmo para saber si está bien hecho. Esta prueba consiste en tomar
datos específicos como entrada y seguir la secuencia indicada en el
algoritmo hasta obtener un resultado, el análisis de estos resultados
indicará si el algoritmo está correcto o si por el contrario hay necesidad
de corregirlo o hacerle ajustes.
La prueba de escritorio es una herramienta útil para entender que hace
un determinado algoritmo, o para verificar que un algoritmo cumple con
la especificación sin necesidad de ejecutarlo.
Básicamente, una prueba de escritorio es una ejecución „a mano‟ del
algoritmo, por lo tanto se debe llevar registro de los valores que va
tomando cada una de las variables involucradas en el mismo.
APPS 4ºC
Lorena Rodríguez Turrubiates
A continuación se muestra un ejemplo de prueba de escritorio del
siguiente algoritmo:
suma :entero
entrada :entero
menor :entero
leer entrada
menor = entrada
suma = 0
mientras (entrada != 0) haga
si (entrada < menor) entonces
menor =entrada
fin_si
suma = suma + entrada
leer entrada
fin_mientras
escribir “valor Menor:”
escribir menor
escribir “Suma:”
escribir suma
APPS 4ºC
Lorena Rodríguez Turrubiates
INSTRUCCIÓN entrada menor suma Pantalla
leer entrada 10
menor = entrada 10
suma :=0 0
suma :=suma + entrada 10
leer entrada 7
menor = entrada 7
suma :=suma + entrada 17
leer entrada 9
suma :=suma + entrada 26
leer entrada 0
Escribir “valor menor:” Valor Menor
Escribir menor 7
Escribir “Suma:” Suma:
Escribir suma 26
http://www.monografias.com/trabajos40/pseudo-codigo/pseudo-
codigo.shtml
http://es.wikipedia.org/wiki/Pseudoc%C3%B3digo

Mais conteúdo relacionado

Mais procurados

Mais procurados (18)

Fp03
Fp03Fp03
Fp03
 
Diseño Estructurado de Algoritmos
Diseño Estructurado de AlgoritmosDiseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos
 
Resolucion De Problemas Con Computadora
Resolucion De Problemas Con ComputadoraResolucion De Problemas Con Computadora
Resolucion De Problemas Con Computadora
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
ALGORITMOS EN EL SOFTWARE
ALGORITMOS EN EL SOFTWAREALGORITMOS EN EL SOFTWARE
ALGORITMOS EN EL SOFTWARE
 
Paradigmasdeprogramacion
ParadigmasdeprogramacionParadigmasdeprogramacion
Paradigmasdeprogramacion
 
Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02
 
Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02Unidad1 130504213500-phpapp02
Unidad1 130504213500-phpapp02
 
01 texto - módulo n° 1 • algoritmos
01 texto - módulo n° 1 • algoritmos01 texto - módulo n° 1 • algoritmos
01 texto - módulo n° 1 • algoritmos
 
Unidad 1 margie
Unidad 1 margieUnidad 1 margie
Unidad 1 margie
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Analisis y disenio de algoritmos
Analisis y disenio de algoritmosAnalisis y disenio de algoritmos
Analisis y disenio de algoritmos
 
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
ALGORITMO Y METODOLOGÍA PARA LA RESOLUCIÓN PROBLEMAS BASADOS EN EL COMPUTADOR
 
Algorítmos - Conceptos básicos
Algorítmos - Conceptos básicosAlgorítmos - Conceptos básicos
Algorítmos - Conceptos básicos
 
Algoritmos, Pseudocódigos, Diagrama de Flujo y Metodología
Algoritmos, Pseudocódigos, Diagrama de Flujo y MetodologíaAlgoritmos, Pseudocódigos, Diagrama de Flujo y Metodología
Algoritmos, Pseudocódigos, Diagrama de Flujo y Metodología
 
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
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 

Destaque

Destaque (8)

Práctica 28
Práctica 28Práctica 28
Práctica 28
 
Practica 29
Practica 29Practica 29
Practica 29
 
הוד הקיפוד
הוד הקיפודהוד הקיפוד
הוד הקיפוד
 
בוני וחבריו
בוני וחבריובוני וחבריו
בוני וחבריו
 
משי התולעת
משי התולעתמשי התולעת
משי התולעת
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
The intrapreneur within
The intrapreneur withinThe intrapreneur within
The intrapreneur within
 
Own It: Unleashing Your Inner Intrapreneur
Own It: Unleashing Your Inner IntrapreneurOwn It: Unleashing Your Inner Intrapreneur
Own It: Unleashing Your Inner Intrapreneur
 

Semelhante a Unidad 1 (20)

Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Tema n° 1
Tema n° 1Tema n° 1
Tema n° 1
 
Introduccion A La Programacion
Introduccion A La ProgramacionIntroduccion A La Programacion
Introduccion A La Programacion
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
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
 
Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento Desarrollo de habilidades de pensamiento
Desarrollo de habilidades de pensamiento
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad2 compu luis jimenez
Unidad2 compu luis jimenezUnidad2 compu luis jimenez
Unidad2 compu luis jimenez
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Concentrado del Modulo Soluciones de Problemas - Manuel Gonzalez Sanchez
Concentrado del Modulo  Soluciones de Problemas - Manuel Gonzalez SanchezConcentrado del Modulo  Soluciones de Problemas - Manuel Gonzalez Sanchez
Concentrado del Modulo Soluciones de Problemas - Manuel Gonzalez Sanchez
 

Mais de Lorenɑ' Rodrigueʓ♥ (20)

Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Practica 30
Practica 30Practica 30
Practica 30
 
Práctica 24
Práctica 24Práctica 24
Práctica 24
 
Práctica 24
Práctica 24Práctica 24
Práctica 24
 
Practica 27
Practica 27Practica 27
Practica 27
 
Unidad 6
Unidad  6Unidad  6
Unidad 6
 
Practica 25
Practica 25Practica 25
Practica 25
 
Practica 26
Practica 26Practica 26
Practica 26
 
Cuestionario Unidad 4
Cuestionario  Unidad 4Cuestionario  Unidad 4
Cuestionario Unidad 4
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Cuestionario Unidad 5
Cuestionario Unidad 5Cuestionario Unidad 5
Cuestionario Unidad 5
 
Práctica 23
Práctica 23  Práctica 23
Práctica 23
 
Practica22
Practica22Practica22
Practica22
 
Practica21
Practica21Practica21
Practica21
 
Practica20
Practica20Practica20
Practica20
 
Practica 19
Practica 19Practica 19
Practica 19
 
Practica 18
Practica 18Practica 18
Practica 18
 
Practica 17
Practica 17Practica 17
Practica 17
 
Practica 16
Practica 16 Practica 16
Practica 16
 

Unidad 1

  • 1. APPS 4ºC Lorena Rodríguez Turrubiates 1.*Desarrollar el proceso de solución de un problema.* 1.1. Identificar el problema Definición del problema Requiere que el problema sea definido y comprendido claramente para que pueda ser analizado con todo detalle Está dada por el enunciado del problema, el cuál debe ser claro y completo. Es importante que conozcamos exactamente que se desea del computador; mientras qué esto no se comprenda, no tiene caso pasar a la siguiente etapa. . Identifica lo que quieres lograr. Aprender programación de computadoras permite aprender a crear juegos de computadora, hacer aplicaciones para tu teléfono celular o construir el próximo sitio web. La programación de computadoras es un pasatiempo divertido y gratificante, y tus nuevas habilidades pueden ayudarte a alcanzar tus metas personales, como el progreso en el trabajo o un cambio de carrera. Tener una meta en mente te ayudará a empezar y mantener la concentración. Elige un lenguaje de computadora. Busca sitios y grupos de discusión relacionados con tu objetivo y hazte una idea de qué lenguajes están utilizando otros desarrolladores de software. Por ejemplo, si deseas desarrollar aplicaciones web, comienza con JavaScript o PHP. C++ y Java son populares lenguajes de programación de juegos. En los entornos de negocio, lenguajes .NET, como Visual Basic y C# son de uso general. No hay respuesta "correcta". Una vez que aprendes a programar en un lenguaje de programación, descubrirás que el aprendizaje de un segundo lenguaje es más fácil. Si no estás seguro del lenguaje para empezar, elige un popular lenguaje orientado a objetos, como C++, Java o C#.
  • 2. APPS 4ºC Lorena Rodríguez Turrubiates 1.2. Análisis del problema Esta fase requiere una clara definición del problema, donde se contemple lo que debe hacer el programa y el resultado o solución deseada. Dado que se busca una solución por computadora, se precisan especificaciones detalladas de entrada y salida. Para poder definir bien un problema es conveniente responder a las siguientes preguntas: ¿Qué entradas se requieren (tipo y cantidad)? ¿Cuál es la salida deseada (tipo y cantidad)? ¿Qué método produce la salida deseada? El propósito del análisis de un problema es ayudar al programador para llegar a una cierta comprensión de la naturaleza del problema. El problema debe estar bien definido si se desea llegar a una solución satisfactoria. Para poder definir con precisión el problema se requiere que las especificaciones de entrada, proceso y salida sean descritas con detalles.  Entrada, son todos los datos que hay que ingresar para la resolución del problema.  Proceso, son los diferentes procedimientos en los cuales usare los datos proporcionados por el usuario en el paso anterior para resolver el problema.  Salida, 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 más importantes para llegar a una solución eficaz. 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?
  • 3. APPS 4ºC Lorena Rodríguez Turrubiates ¿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, observar todo lo que rodea el problema.
  • 4. APPS 4ºC Lorena Rodríguez Turrubiates 1.3. Elaborar algoritmos de la solución del problema Un algoritmo es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de laalgoritmia.1 En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas. Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos ejemplos en matemática son el algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss para resolver un sistema lineal de ecuaciones. Algoritmos como funciones Artículo principal: Teoría de la computabilidad. Esquemática de un algoritmo solucionando un problema de ciclo ha miltoniano. Un algoritmo se puede concebir como una función que transforma los datos de un problema (entrada) en los datos de una solución (salida). Más aun, los datos se pueden representar a su vez como secuencias de bits, y en general, de símbolos cualesquiera.1 9 11 Como cada secuencia de bits representa a un número natural(véase Sistema binario), entonces los algoritmos son en esencia funciones de los números naturales en los números naturales que sí se pueden calcular.
  • 5. APPS 4ºC Lorena Rodríguez Turrubiates Es decir que todo algoritmo calcula una función donde cada número natural es la codificación de un problema o de una solución. En ocasiones los algoritmos son susceptibles de nunca terminar, por ejemplo, cuando entran a un bucle infinito. Cuando esto ocurre, el algoritmo nunca devuelve ningún valor de salida, y podemos decir que la función queda indefinida para ese valor de entrada. Por esta razón se considera que los algoritmos son funciones parciales, es decir, no necesariamente definidas en todo su dominio de definición. Cuando una función puede ser calculada por medios algorítmicos, sin importar la cantidad de memoria que ocupe o el tiempo que se tarde, se dice que dicha función es computable. No todas las funciones entre secuencias datos son computables. El problema de la parada es un ejemplo. Análisis de algoritmos Como medida de la eficiencia de un algoritmo, se suelen estudiar los recursos (memoria y tiempo) que consume el algoritmo. El análisis de algoritmos se ha desarrollado para obtener valores que de alguna forma indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función del tamaño de los valores de entrada. El análisis y estudio de los algoritmos es una disciplina de las ciencias de la computación y, en la mayoría de los casos, su estudio es completamente abstracto sin usar ningún tipo de lenguaje de programación ni cualquier otra implementación; por eso, en ese sentido, comparte las características de las disciplinas matemáticas. Así, el análisis de los algoritmos se centra en los principios básicos del algoritmo, no en los de la implementación particular. Una forma de plasmar (o algunas veces "codificar") un algoritmo es escribirlo en pseudocódigo o utilizar un lenguaje muy simple tal como Léxico, cuyos códigos pueden estar en el idioma del programador. Algunos escritores restringen la definición de algoritmo a procedimientos que deben acabar en algún momento, mientras que otros consideran procedimientos que podrían ejecutarse eternamente sin pararse, suponiendo el caso en el que existiera algún dispositivo físico que fuera capaz de funcionar eternamente. En este último caso, la finalización con éxito del algoritmo no se podría definir como la terminación de este con
  • 6. APPS 4ºC Lorena Rodríguez Turrubiates una salida satisfactoria, sino que el éxito estaría definido en función de las secuencias de salidas dadas durante un periodo de vida de la ejecución del algoritmo. Por ejemplo, un algoritmo que verifica que hay más ceros que unos en una secuencia binaria infinita debe ejecutarse siempre para que pueda devolver un valor útil. Si se implementa correctamente, el valor devuelto por el algoritmo será válido, hasta que evalúe el siguiente dígito binario. De esta forma, mientras evalúa la siguiente secuencia podrán leerse dos tipos de señales: una señal positiva (en el caso de que el número de ceros sea mayor que el de unos) y una negativa en caso contrario. Finalmente, la salida de este algoritmo se define como la devolución de valores exclusivamente positivos si hay más ceros que unos en la secuencia y, en cualquier otro caso, devolverá una mezcla de señales positivas y negativas. 1.4 Elaborar diagramas de flujo de la solución del problema Un Diagrama de Flujo representa la esquematización gráfica de un algoritmo, el cual muestra gráficamente los pasos o procesos a seguir para alcanzar la solución de un problema Es importante resaltar que el Diagrama de Flujo muestra el sistema como una red de procesos funcionales conectados entre sí por " Tuberías " y "Depósitos" de datos que permite describir el movimiento de los datos a través del Sistema. Este describirá : Lugares de Origen y Destino de los datos , Transformaciones a las que son sometidos los datos, Lugares en los que se almacenan los datos dentro del sistema , Los canales por donde circulan los datos. Es un grafico lógico del plan de trabajo que se ejecutara para la solución de un determinado problema. A través de él, se planifica la solución del problema independiente del lenguaje de computación a usar. Las capacidades humanas necesarias para elaborar un diagrama de flujo correcto son: Lógico, Prácticas, y Atención. El empleo de la maquina en las funciones del procediendo de datos han hecho necesario un flujo ordenado de la información. La secuencia en que deberán ejecutarse las operaciones tendrá que definirse claramente, y cuando se combine con los datos a los que debe aplicarse, esa secuencia creara el flujo de información.
  • 7. APPS 4ºC Lorena Rodríguez Turrubiates No puede hacerse mucho hincapié en documentación, ósea el registro de Información .Sin Instrucciones escritas y sin representación grafica del flujo de trabajo sería muy difícil de llevar una tarea de procediendo de datos en forma apropiada. Hay varios métodos más eficientes organizados y normalizados, es el de los diagramas de Flujo que el Futuro programador comprenda la necesidad de los diagrama de flujo. Es un grafico lógico del plan de trabajo que se ejecutara para la solución de un determinado problema. A través de él, se planifica la solución del problema independiente del lenguaje de computación a usar. Las capacidades humanas necesarias para elaborar un diagrama de flujo correcto son: Lógico, Prácticas, y Atención. El empleo de la maquina en las funciones del procediendo de datos han hecho necesario un flujo ordenado de la información. La secuencia en que deberán ejecutarse las operaciones tendrá que definirse claramente, y cuando se combine con los datos a los que debe aplicarse, esa secuencia creara el flujo de información. No puede hacerse mucho hincapié en documentación, ósea el registro de Información .Sin Instrucciones escritas y sin representación grafica del flujo de trabajo sería muy difícil de llevar una tarea de procediendo de datos en forma apropiada. Hay varios métodos más eficientes organizados y normalizados, es el de los diagramas de Flujo que el Futuro programador comprenda la necesidad de los diagrama de flujo.
  • 8. APPS 4ºC Lorena Rodríguez Turrubiates 1.5. Crear Pseudocódigo de la solución del problema El pseudocódigo se trata de una herramienta que los analistas de sistemas utilizan para comunicar a los programadores la estructura del programa que van a realizar, de forma de tener una idea bien clara de lo que se necesita programar. El pseudocódigo es una forma de diagramar un algoritmo para resolver un determinado problema, sin atenerse a ningún lenguaje de programación en especial. Un algoritmo es un conjunto de procedimientos que permiten resolver un problema.
  • 9. APPS 4ºC Lorena Rodríguez Turrubiates En vez de escribir el programa directamente en un lenguaje de programación determinado (C, Basic, etc.), crearemos un borrador entendible para todos, para luego de tener bien en claro lo que se debe hacer, pasar a la programación propiamente dicha. El pseudo código se refiere a crear un código para orientar a los programadores, pero sin la sintaxis ni la estructura propia de ningún lenguaje. Utilización en la práctica En el trabajo de un analista de sistemas, una de las partes más trabajosas es la de determinar qué es lo que necesitan de un sistema los usuarios finales. Se dedican muchas horas a hacer un relevamiento de los datos que serán necesarios, los tipos de procesamientos, las salidas, etc. Y debe existir una realimentación entre el diseño y el usuario, para garantizar que el sistema cumpla con los requisitos del usuario.
  • 10. APPS 4ºC Lorena Rodríguez Turrubiates Gracias a esta herramienta, podemos reunir a todos los programadores, dar las pautas de trabajo, y mediante el pseudocódigo, cada programador sabrá lo que hace el sistema, y podrá escribir el código correspondiente. Incluso dos programadores que dominen el mismo lenguaje pueden tener metodologías de trabajo distintas. Un problema puede ser resuelto de muchas maneras, cada una más o menos eficiente que la otra, pero todas cumplen con el objetivo. El pseudocódigo elimina estas diferencias, dando libertad a los programadores para que puedan ajustarse a su metodología de trabajo. Generalmente, este código se escribe con la participación de todos los programadores. Esto representa la ventaja de que muchas opiniones ayudan a elegir la mejor entre todas, logrando una solución efectiva y eficaz al problema planteado. Características y partes Las principales características de este lenguaje son: 1. Se puede ejecutar en un ordenador. 2. Es una forma de representación sencilla de utilizar y de manipular. 3. Facilita el paso del programa al lenguaje de programación. 4. Es independiente del lenguaje de programación que se vaya a utilizar. 5. Es un método que facilita la programación y solución al algoritmo del programa. Todo documento en pseudocódigo debe permitir la descripción de: 1. Instrucciones primitivas. 2. Instrucciones de proceso. 3. Instrucciones de control. 4. Instrucciones compuestas. 5. Instrucciones de descripción.
  • 11. APPS 4ºC Lorena Rodríguez Turrubiates Estructura a seguir en su realización: 1. Cabecera. 1. Programa. 2. Módulo. 3. Tipos de datos. 4. Constantes. 5. Variables. 2. Cuerpo. 1. Inicio. 2. Instrucciones. 3. Fin. 1.6. Prueba de escritorio de la solución del problema Se denomina prueba de escritorio a la comprobación que se hace de un algoritmo para saber si está bien hecho. Esta prueba consiste en tomar datos específicos como entrada y seguir la secuencia indicada en el algoritmo hasta obtener un resultado, el análisis de estos resultados indicará si el algoritmo está correcto o si por el contrario hay necesidad de corregirlo o hacerle ajustes. La prueba de escritorio es una herramienta útil para entender que hace un determinado algoritmo, o para verificar que un algoritmo cumple con la especificación sin necesidad de ejecutarlo. Básicamente, una prueba de escritorio es una ejecución „a mano‟ del algoritmo, por lo tanto se debe llevar registro de los valores que va tomando cada una de las variables involucradas en el mismo.
  • 12. APPS 4ºC Lorena Rodríguez Turrubiates A continuación se muestra un ejemplo de prueba de escritorio del siguiente algoritmo: suma :entero entrada :entero menor :entero leer entrada menor = entrada suma = 0 mientras (entrada != 0) haga si (entrada < menor) entonces menor =entrada fin_si suma = suma + entrada leer entrada fin_mientras escribir “valor Menor:” escribir menor escribir “Suma:” escribir suma
  • 13. APPS 4ºC Lorena Rodríguez Turrubiates INSTRUCCIÓN entrada menor suma Pantalla leer entrada 10 menor = entrada 10 suma :=0 0 suma :=suma + entrada 10 leer entrada 7 menor = entrada 7 suma :=suma + entrada 17 leer entrada 9 suma :=suma + entrada 26 leer entrada 0 Escribir “valor menor:” Valor Menor Escribir menor 7 Escribir “Suma:” Suma: Escribir suma 26 http://www.monografias.com/trabajos40/pseudo-codigo/pseudo- codigo.shtml http://es.wikipedia.org/wiki/Pseudoc%C3%B3digo