El
Computador es una máquina que no puede trabajar por sí sola, únicamente realiza
aquellas ordenes
que el
hombre le indique. Esas órdenes tienen que ser realizadas de tal forma que el
computador las entienda,
siendo
esta la causa por la cual se hace necesario darle instrucciones agrupadas. Esto
constituye el software,
el cual
es pensado y realizado por el hombre. El software está conformado por el “conjunto
de programas que se diseñan
para el funcionamiento del computador”. Deben estar escritos en un lenguaje de programación.
El Software
se divide en dos grandes tipos: software del sistema y software de aplicación
El software del Sistema es el
conjunto de programas necesarios para que la maquina funcione, estos programas
son básicamente, el Sistema
Operativo, los Editores de texto, los Compiladores, Interpretes y los Programas
de utilidad. El software
de aplicación son los que realizan tareas concretas, nominas, contabilidad,
analisis estadísticos, etc., es decir
todos aquellos programas que pueden ser escritos en un Lenguaje de Programacion.
1 La Resolución
de Problemas utilizando la Computadora
Aunque el
proceso de diseñar programas es un proceso creativo, se pueden considerar tres
pasos que ayudan al
programador en este proceso:
·
* Análisis
del problema
· *
Diseño del algoritmo
·
* Resolución
del algoritmo en la computadora
Las fases
de análisis y diseño del algoritmo requieren la descripción del problema en
subproblemas y una
herramienta
de programación: Diagrama de flujo, Pseudocódigo o Diagrama N-S (diagramas de
Nassi-
Schneider).
En la tercera fase se implementa este algoritmo en un código escrito en un
lenguaje de programación, reflejando las ideas obtenidas en las fases de análisis
y diseño.
Antes de
conocer las tareas a realizar en cada fase, definiremos el concepto de
algoritmo.
1. Definición
1.1. Algoritmo.
Un algoritmo es un método para resolver un problema mediante una serie de
pasos
precisos, definidos y finitos.
Se deriva
de la traducción al latín de la palabra árabe Alkhowarismi, nombre de un matemático
y astrónomo árabe que escribió un tratado sobre manipulación de números y
ecuaciones en el siglo IX.
Características
del Algoritmo
· Preciso: tiene que indicar el orden de realización
en cada paso.
· Definido:
si el algoritmo se prueba dos veces, en estas dos pruebas, se debe obtener el
mismo resultado
· Finito: tiene un número determinado de pasos y debe
producir un resultado en un tiempo finito.
Veamos
algunos ejemplos.
Ejemplo
1.2. Ver una película. 1. Buscar el videocasete de la película. 2. Si el
televisor y la video-casetera se
encuentran apagados, encenderlos. 3. Sacar el video del estuche. 4.
Introducirlo en la video-casetera. 5. Tomar
el control del televisor y la video. 6. Dirigirme a el sofá. 7. Ponerme cómodo
8. Ajustar el volumen. 9.
Disfrutar la película
Ejemplo
1.3. Cocinar arroz. 1. Lavar bien el arroz. 2. Buscar un recipiente
(caldero) de tamaño adecuado.
3.
Agregar el agua necesaria de acuerdo a la cantidad de arroz. 4. Agregar aceite,
sal, cebolla, ajoporro. 5. Colocar
el recipiente en la cocina. 6. Encender la hornilla. 7. Esperar a que hierva el
agua. 8. Agregar el
arroz al agua hirviendo. 9. Dejar el recipiente en el fuego hasta que el arroz
este blando. 10. Apagar la hornilla.
11. Servir. 12. Comer. ¡¡Buen provecho!!
Estos pequeños
algoritmos cumplen con los requisitos descritos arriba, ya que cada paso
precisa un orden
y tiene
un orden de pasos finitos. Los
algoritmos se pueden expresar por formulas, diagramas de flujo, y pseudocódigos
conocidos como herramientas
de programación. Esta última representación es la más utilizada por su
sencillez y parecido a el
lenguaje humano. El hecho de que un algoritmo sea una representación paso a
paso, implica que está
compuesto por instrucciones elementales que no involucran ambigüedades, es
decir que no pueden interpretarse
de diferentes maneras
2 Fases
para la Resolución de Problemas
1. Análisis
del Problema. En la fase de análisis en el proceso de programación se determina
que hace el
programa.
Esta fase requiere una clara definición donde se contemple exactamente lo que
debe hacer el
programa
y el resultado o solución deseada. Dado que se busca una solución se precisan
especificaciones
de
entrada y salida. Para poder definir bien un problema es conveniente responder
a las siguientes
preguntas:
¿Que entradas se requieren? (cantidad y tipo) ¿Cuál es la salida deseada?
(cantidad y
tipo) ¿Qué
método produce la salida deseada?
2. Diseño
del Algoritmo. En la fase de diseño se determina como hace el programa la tarea
solicitada. Los
métodos
utilizados para el proceso del diseño se basan en el conocido divide y vencerás:
la resolución de
un
problema complejo se realiza dividiendo el problema en subproblemas y a continuación
dividir estos
en otros
de nivel más bajo, hasta que sea implementada una solución en la computadora.
Este método se
conoce técnicamente
como diseño descendente (top-down) o modular. El programa principal (el módulo
de nivel más
alto) llama a subprogramas (módulos) de nivel más bajo, que a su vez pueden llamar
a otros
subprogramas. Estos módulos pueden ser planeados, codificados, comprobados y
depurados
independientemente
y luego combinarlos entre sí. Este proceso implica la ejecución de estos pasos
hasta que
el programa se ha terminado. El diseño del algoritmo es independiente del
lenguaje de
programación
en el que se vaya a codificar posteriormente.
3. Implementación
del Algoritmo. Para implementar un algoritmo en la computadora, se debe
ejecutar
los
siguientes pasos: Codificación y documentación, Compilación y ejecución, Verificación
y finalmente
la Depuración.
(a) Codificación
y documentación. Es la escritura en un lenguaje de programación de la representación
de un
algoritmo, en el caso de este curso se utilizan como lenguajes Octave o Matlab.
La codificación
se conoce como programa fuente. La documentación puede ser interna y externa.
La documentación
interna es la contenida en líneas de comentarios. La documentación externa
incluye análisis,
diagramas de flujo y/o pseudocódigos, manuales de usuarios con instrucciones
para
ejecutar el programa y para interpretar los resultados. La documentación es
vital cuando se
desea
corregir posibles errores futuros o bien cambiar el programa. Estos cambios se
denominan
mantenimiento
del programa. Además es de buena costumbre para todo buen programador, dejar
comentado
su código, para que el futuro programador pueda darle mantenimiento fácilmente
a el
programa,
o incluso, si es el mismo creador quien debe darle mantenimiento. La importancia
de
la documentación
debe ser destacada por su influencia en la etapa final, ya que programas
pobremente
documentados
son difíciles de leer, más difíciles de depurar y casi imposibles de mantener
y
modificar.
(b) Compilación
y ejecución. Una vez que el algoritmo se ha convertido en un programa fuente,
debe
ser
traducido a lenguaje máquina. Este proceso se realiza con el compilador y el
sistema operativo
que se
encarga prácticamente de la compilación. Si al compilar el programa fuente se
presentan
errores
(errores de compilación), es necesario volver a editar el programa, corregir
los errores y
compilar
de nuevo. Esto se repite hasta que ya no se presenten más errores, obteniéndose
el
programa
objeto. Cuando no existen errores en el programa fuente se debe instruir al
sistema
operativo
para que efectúe la fase de montaje o enlace, del programa fuente con las librerías
del
programa
del compilador. Este proceso de montaje produce un programa ejecutable. Cuando
se
ha creado
un programa ejecutable este se puede ya ejecutar desde el sistema operativo con
solo
teclear
su nombre. Suponiendo que no existen errores durante la ejecución (errores en
tiempo de
ejecución),
se obtendrá la salida de resultados correctos del programa.
(c) Verificación
y depuración. Es el proceso de ejecución del programa con una amplia variedad
de datos
de entrada, llamados datos de test o prueba como son: valores normales de entrada,
valores
extremos de entrada que comprueben los límites del programa y valores de
entrada que
comprueben
aspectos especiales del programa. Estos determinaran si el programa contiene
errores
o no.
Esta información fué obtenida de http://prof.usb.ve/mvillasa/compcient/resolucion.pdf en nuestra opinión es la explicación mas concisa que hemos conseguido en internet,
les aseguramos que encontraran información de
mucha utilidad AQUÍ