Comúnmente nos enfrentamos a problemas o a situaciones que deben ser resueltos y
pueden ser cosas tan sencillas como decidir la mejor forma de llegar hasta nuestro sitio de
trabajo o realizar las compras para la comida, o quizá algunas más complicadas como
desarrollar un brazo mecánico que soporte cierto peso y se mueva de cierta manera o idear
un plan que nos facilite alguna tarea susceptible de ser sistematizada. Todas estas
situaciones tienen algo en común, necesitan una solución o un conjunto de pasos que
permita llegar hasta la meta propuesta. Comúnmente se llama algoritmo a aquello que nos
permite pasar de un estado inicial "A" a un estado final "B", justo lo que deseamos. Sin
embargo, existe mucho más involucrado en el momento de resolver un problema que tan
sólo el conjunto de instrucciones necesarias para ello. Al plantear la solución de un
problema, existen mucho aspectos que deben tenerse en cuenta: El problema mismo, las
personas involucradas, las herramientas a disposición, la solución, la presentación de la
misma, etc.
El proceso de resolución de un problema es el siguiente:
Análisis
Diseño
Implementación
Mantenimiento
Desarrollar el Proceso de
Solución de un Problema
• Se tiene un problema cuando se desea
encontrar uno o varios objetos desconocidos
(ya sean estos números, diagramas, figuras,
demostraciones, decisiones, posiciones,
algoritmos, u otras cosas), que cumplen
condiciones y/o relaciones, previamente
definidas, respecto a uno o varios objetos
conocidos. De esta manera, solucionar un
problema es encontrar los objetos
desconocidos de dicho problema.
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 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?
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 Los diagramas de flujo
sirven para a continuación es la descripción de las diferentes
representar algoritmos de manera construcciones disponibles para
el diseño de gráfica algoritmos.
III Elaborar Algoritmos para la
Solución de Problemas
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 nuestra la descripción de n acciones separadas por punto y coma
(símbolo que habitualmente se emplea como separador)
• 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 nuestra la descripción
de n acciones separadas por punto y coma (símbolo que
habitualmente se emplea como separador).
• 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.
• Mezcla de lenguaje de programación y español (o ingles o
cualquier otro idioma) que se emplea, dentro de la programación
estructurada, para realizar el diseño de un programa. Es la
representación narrativa de los pasos que debe seguir un
algoritmo Pseudocódigo: lenguaje de especificaciones de
algoritmos para dar solución a un problema determinado. El
Pseudocódigo utiliza palabras que indican el proceso a realizar.
• Ejemplo:
• Aplicación de pseudocódigo
• Prender una televisión
• Inicio Tomar el cable Introducirlo a una fuente de luz Presionar el
botón Power
• Fin
• 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

Unidad 1

  • 2.
    Comúnmente nos enfrentamosa problemas o a situaciones que deben ser resueltos y pueden ser cosas tan sencillas como decidir la mejor forma de llegar hasta nuestro sitio de trabajo o realizar las compras para la comida, o quizá algunas más complicadas como desarrollar un brazo mecánico que soporte cierto peso y se mueva de cierta manera o idear un plan que nos facilite alguna tarea susceptible de ser sistematizada. Todas estas situaciones tienen algo en común, necesitan una solución o un conjunto de pasos que permita llegar hasta la meta propuesta. Comúnmente se llama algoritmo a aquello que nos permite pasar de un estado inicial "A" a un estado final "B", justo lo que deseamos. Sin embargo, existe mucho más involucrado en el momento de resolver un problema que tan sólo el conjunto de instrucciones necesarias para ello. Al plantear la solución de un problema, existen mucho aspectos que deben tenerse en cuenta: El problema mismo, las personas involucradas, las herramientas a disposición, la solución, la presentación de la misma, etc. El proceso de resolución de un problema es el siguiente: Análisis Diseño Implementación Mantenimiento
  • 3.
    Desarrollar el Procesode Solución de un Problema
  • 4.
    • Se tieneun problema cuando se desea encontrar uno o varios objetos desconocidos (ya sean estos números, diagramas, figuras, demostraciones, decisiones, posiciones, algoritmos, u otras cosas), que cumplen condiciones y/o relaciones, previamente definidas, respecto a uno o varios objetos conocidos. De esta manera, solucionar un problema es encontrar los objetos desconocidos de dicho problema.
  • 5.
    Cuando un usuarioplantea 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 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?
  • 6.
    Un algoritmo consisteen 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 Los diagramas de flujo sirven para a continuación es la descripción de las diferentes representar algoritmos de manera construcciones disponibles para el diseño de gráfica algoritmos.
  • 7.
    III Elaborar Algoritmospara la Solución de Problemas 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 nuestra la descripción de n acciones separadas por punto y coma (símbolo que habitualmente se emplea como separador)
  • 8.
    • 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 nuestra la descripción de n acciones separadas por punto y coma (símbolo que habitualmente se emplea como separador).
  • 9.
    • Un Diagramade 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.
  • 10.
    • Mezcla delenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. Es la representación narrativa de los pasos que debe seguir un algoritmo Pseudocódigo: lenguaje de especificaciones de algoritmos para dar solución a un problema determinado. El Pseudocódigo utiliza palabras que indican el proceso a realizar. • Ejemplo: • Aplicación de pseudocódigo • Prender una televisión • Inicio Tomar el cable Introducirlo a una fuente de luz Presionar el botón Power • Fin
  • 11.
    • La pruebade 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