El razonamiento de las computadoras es diferente al de los seres humanos, es por ello que a quienes comienzan a programar les resulta una tarea difícil. El primer paso es no desesperarse, después se debe entender cómo razonan los humanos y posteriormente analizar cómo lo haría una computadora. Es importante hacer hincapié en que la parte más compleja de este proceso es el desarrollo de un algoritmo (diagrama de flujo o pseudocódigo), ya que constituye la parte lógica. Codificar, independientemente del lenguaje, es simplemente trascribir un algoritmo al lenguaje respectivo. El concepto de algoritmo lo utilizamos, en general, todas las disciplinas basadas en las matemáticas y la física, por ende en la programación, y es la etapa previa a la codificación.
1. ¿QUÉ
ES UN ALGORITMO?
Un
algoritmo es un método para resolver un problema.
Un ser humano piensa y se
comporta como tal siguiendo una secuencia lógica de acciones. Esta misma
asociación podría acoplarse en cuanto al rol de una computadora se refiere.
Afirmando que una computadora
es una máquina electrónica capaz de realizar y manejar datos en memoria
siguiendo una secuencia lógica de pasos, para aquellos que haya sido
programada.
Los
algoritmos poseen hoy una gran importancia tanto
para informática , robótica y ciencias de la computación ,
por medio de algoritmos se llega a un orden de ideas y un proceso
correcto en la elaboración de maquinarias y robots lo que conlleva a un
avance en la tecnología y un mayor progreso a nivel mundial
Los algoritmos conllevan a llevar un proceso y un orden de ideas en todos los aspectos , pues cada actividad por mínima que sea requiere un orden que se da por medio de los grandes algoritmos que creamos así sean mentales.
Los algoritmos conllevan a llevar un proceso y un orden de ideas en todos los aspectos , pues cada actividad por mínima que sea requiere un orden que se da por medio de los grandes algoritmos que creamos así sean mentales.
La resolución
de problemas exige el diseño de un algoritmo que resuelva el problema
propuesto.
2. ¿QUÉ ES UN LENGUAJE DE PROGRAMACIÓN?
Tendemos a
pensar como lenguaje natural aquel medio utilizado por una persona para
expresar algún sentimiento o emoción, es decir de manera más general un proceso
pues nos permite interactuar en muchos
sentidos.
En el rol de
una computadora es más o menos lo mismo pues definimos como lenguaje de
programación aquel conjunto de normas o reglas lógicas definidas por medio de
símbolos o palabras claves (reservadas)
que nos permitan construir un programa o simplemente otorgar la solución a un
problema.
El lenguaje
de programación es la combinación de símbolos y reglas que permiten la
elaboración de programas con los cuales la computadora puede realizar tareas o
resolver problemas de manera eficiente.
3. RELACIÓN ENTRE EL DISEÑO DE ALGORITMOS Y LOS LENGUAJES DE PROGRAMACIÓN
Los
algoritmos son independientes tanto del lenguaje de programación en que se
expresan como de la computadora que los ejecuta.
En cada
problema el algoritmo se puede expresar en un lenguaje diferente de
programación y ejecutarse en una computadora distinta; sin embargo, el
algoritmo será el mismo. Así por ejemplo una persona puede expresar una receta
de cocina en español, inglés, francés, etc. los pasos para la elaboración del
plato serán los mismos sin importar lo mismo.
En la ciencia
dela computación y la programación, los algoritmos son más importantes que los
lenguajes de programación o las computadoras. Un lenguaje de programación es
tan solo un medio para expresar un algoritmo y una computadora es solo un
procesador para ejecutarlo. Tanto el lenguaje de programación como la
computadora son los medios para obtener un fin: conseguir que el algoritmo se
ejecute y se efectué el proceso correspondiente.
4. FASES PARA LA RESOLUCIÓN DE PROBLEMAS INFORMÁTICOS
La Principal razón para que las personas
aprendan a programar en general y los
lenguajes de programación en particular es utilizar la computadora como
herramienta para la resolución de problemas. Ayudando por una computadora, la resolución de un problema se puede dividir en
3 fases importantes:
4.1. Análisis del Problema:
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 de estar bien definido si se desea llegara
una solución satisfactoria.
Para poder definir con precisión el problema se requiere que
las especificaciones de entrada y salida sean descritas con detalle.
Ejemplo:
Leer el radio de un círculo y calcular e imprimir
su superficie y la longitud de la
circunferencia.
Análisis:
* Definición del Problema:Calcular e imprimir su superficie y la longitud de la circunferencia.
* Especificaciones de entrada: Los datos de entrada en este problema se concretan en el radio del círculo.
* Especificaciones de Salida: Las salidas serán 2 variables que son la superficie y la longitud de la circunferencia
* Definición del Problema:Calcular e imprimir su superficie y la longitud de la circunferencia.
* Especificaciones de entrada: Los datos de entrada en este problema se concretan en el radio del círculo.
* Especificaciones de Salida: Las salidas serán 2 variables que son la superficie y la longitud de la circunferencia
4.2. Diseño de Algoritmo:
Una
Computadora no tiene la capacidad de solucionar problemas más que cuando se le
proporciona los sucesivos pasos a realizar.Estos Pasos sucesivos que se
indican las instrucciones a ejecutar por la maquina constituye, como ya
conocemos, el algoritmo.
La información
proporcionada al algoritmo constituye su entrada y la información producida por
el algoritmo constituye su salida.
Los
problemas más complejos se pueden subdividir en sub problemas que sean más
fáciles de solucionar que el original (Divide
y vencerás).
La
descomposición del problema original en sub problemas más simples y a
continuación dividir estos en sub problemas en otros más simples que pueden ser
implementados para su solución en la computadora se denomina diseño descendente.
A. DISEÑO DESCENDENTE (DIVIDE Y VENCERÁS): El diseño
descendente es una forma de afrontar un proyecto de programación que consiste
en empezar por lo más general e ir avanzando nivel a nivel hacia lo más
particular.Consiste en dividir el problema en sub problemas
más pequeños, que se pueden tratar de forma separada.
B. REFINAMIENTO
POR PASOS: El diseño de un algoritmo no se hace de una sola
vez, sino que se va resolviendo en una secuencia de pasos (llamados pasos de refinamiento).
En cada paso el problema es refinado agregando
detalles significativos, por lo que el método se conoce como: método de los refinamientos sucesivos.
Como es natural, dependiendo de la complejidad del
problema se necesitaran diferentes y sucesivos niveles de refinamiento antes de
que pueda obtenerse un algoritmo con suficiente nivel de detalle.
Ejemplo:
El
problema del cálculo de la circunferencia y superficie de un círculo se puede
descomponer en sub problemas más simples: leer datos de entrada, calcular
superficie y longitud, y escribir resultados.
C. HERRAMIENTAS DE REPRESENTACIÓN GRÁFICA DE ALGORITMOS:
Los
algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje
natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre
otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas.
El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del
lenguaje natural. Dichas expresiones son formas más estructuradas para
representar algoritmos; no obstante, se mantienen independientes de un lenguaje
de programación específico.
PSEUDOCODIGO
El pseudocódigo es una herramienta utilizada para el diseño de programas
que permite al programador expresar sus pensamientos de una forma clara
utilizando su lenguaje natural y mostrando el orden de ejecución de las
sentencias del programa sin ninguna ambigüedad.
- Publicación acerca del uso de Pseudocodigo (Pronto).
DIAGRAMAS DE FLUJO:
Un diagrama
de flujo utiliza símbolos estándar en el que
cada paso del algoritmo se visualiza dentro del símbolo y en el orden en que estos pasos se ejecutan,
se indica conectándolos con flechas llamadas líneas de flujo, ya que indican el
flujo lógico del algoritmo.
- Publicación acerca del uso de Diagramas de Flujo (Pronto).
DIAGRAMAS N-S
Son una
herramienta que favorece la programación estructurada y reúne características
gráficas propias de diagramas de flujo y lingüísticas propias de pseudocódigos.
Constan de una serie de cajas contiguas que se leerán siempre de arriba-abajo y
sus estructuras lógicas son las siguientes:
- Publicación acerca del uso de Diagramas N-S (Pronto).
Excelente aporte, muchas gracias, me sirvio mucho para mi tarea.
ResponderEliminar