Desde mi punto de vista es necesario pensar en resolver un algoritmo, ya que es necesario determinar a priori los posibles problemas y soluciones a los mismos, así como los recursos del sistema de los que se va a disponer en la resolución.
El plasmar el problema y resolverlo en un algoritmo ayuda a determinar los posibles escenarios y problemas que puedan surgir, evitando tener que re-codificar una y otra ves el programa ahorrándonos tiempo.
Es importante resolver el algoritmo primero que todo porque es allí donde se analiza y se diseña la solución a la situación problema… mientras más tiempo nos demoremos en al análisis y diseño del algoritmo menos tiempo gastaremos en encontrar y solucionar problemas que se presenten cuando lo estemos codificando o programando
Un programa es en si un algoritmo, o mejor dicho es una implementación de un algoritmo que es entendible por la máquina. Entonces, no es posible codear un programa directamente, ya que sería como decir palabras al azar... para que el programa tenga una utilidad primero es necesario saber lo que se quiere "decir".
Como ya mencionaron todos, es importante primero hacer el análisis del problema para ver cual es la mejor solución tomando en cuenta todas las variantes posibles.
Ya que si inicias las programación sin hacer un análisis completo reescribiras más de una ves todo el código para solucionar las variantes que no habías previsto.
Sin importar el tamaño se debe hacer un análisis completo porque si no más adelante se tendrán problemas y si el sistema es grande, pues más grande será el problema
Si somos capaces de resolver un problema, siguiendo paso a paso el algorítmo (efectividad), una máquina también podrá hacerlo. Independientemente del lenguaje en que que se desee o se tenga que codificar. Se podría de esta manera comprobar la eficacia del algoritmo y hasta lograr una mayor eficiencia de este.
Estoy de acuerdo con la mayoría; en primer lugar debemos analizar el problema para estructurar una solución; posteriormente ya podríamos pasar a codificarla en el lenguaje que corresponda. En cuanto a problemas muy grandes, está claro que debemos subdividirlo en problemas más simples y, posteriormente, volver a hacer un todo de cada una de estas partes.
Un algoritmo es la solución de un problema. No es un programa, es la idea que determina al programa. Y si bien en sistemas informáticos el resultado final deba ser un programa (una aplicación, un servicio...), a fines de análisis y diseño de los mismos, un algoritmo es escencial (sobre todo en medianos y grandes proyectos). Pero creo que los límites de los algoritmos son más amplios, sirviendo como grandes comunicadores entre distintos miembros de un desarrollo (por ejemplo, un analista funcional diseña un sistema plasmándolo en un diagrama de flujo, que le servirá al programador a la hora del desarrollo, y al encargado del control de calidad para comprobar que el funcionamiento es el esperado).
Por que al hacer el diseño de un algoritmo para resolver un problema obtenemos una visión general del problema, podemos identificar todas sus entradas, salidas, procesos, etc. Esto nos lleva a que al traducir un algoritmo a un lenguaje de programación tengamos como resultado final, código de calidad, menos propenso a errores y fallas, sin contar todo el tiempo que es posible ahorrarse al evitar la "prueba y error" sobre el interprete/compilador. Saludos!
Resolver un problema con un algoritmo me ayuda a optimizar todos los pasos necesarios para resolverlo, además de que se evita la ambiguedad y redundancia.
Una vez desarrollado el algoritmo ya se puede elegir cual es el lenguaje mas apropiado para codificarlo.
El algoritmo permite entender el problema, ver sus condiciones de entradas, salidas esperadas, restricciones, y como modular (separar en bloques menores) el problema, para luego buscar la solucion a los bloques, o al problema en general...en este punto, se puede recurrir incluso al uso de estrategias de resolucion de problemas ya utilizados, evitando el "reinventar la rueda". Finalmente, se puede escoger la mejor gama de soluciones, rearmar los bloques o procesos, y seguir las reglas básicas de cada algoritmo (que cada entrada siempre tenga la misma salida, que sea una secuencia finita de pasos, etc.)
Saludos!
Recuerdo que una vez un gerente de proyectos nos contó sobre lo sorprendido que estaba de un programador que al inicio de los proyectos pasaba un buen tiempo (exagerado para algunos) analizando y resolviendo primero el problema en su cabeza y en el papel, antes de escribir siquiera una línea de código.
Al final tenían un producto de calidad, a tiempo y dentro de los presupuestos.
Estimados: Agradezco nuevamente su entusiasmo en el foro, como dicen muchos de ustedes es muy importante entender el problema, y crear un algoritmo independiente a su lenguaje, cuando son algoritmos muy grandes es necesario modularizarlos, es decir de un gran problema dividirlo en pequeños problemas.
Desde mi punto de vista es necesario pensar en resolver un algoritmo, ya que es necesario determinar a priori los posibles problemas y soluciones a los mismos, así como los recursos del sistema de los que se va a disponer en la resolución.
Coincido con Alvaro.
El plasmar el problema y resolverlo en un algoritmo ayuda a determinar los posibles escenarios y problemas que puedan surgir, evitando tener que re-codificar una y otra ves el programa ahorrándonos tiempo.
Es importante resolver el algoritmo primero que todo porque es allí donde se analiza y se diseña la solución a la situación problema… mientras más tiempo nos demoremos en al análisis y diseño del algoritmo menos tiempo gastaremos en encontrar y solucionar problemas que se presenten cuando lo estemos codificando o programando
Un programa es en si un algoritmo, o mejor dicho es una implementación de un algoritmo que es entendible por la máquina. Entonces, no es posible codear un programa directamente, ya que sería como decir palabras al azar... para que el programa tenga una utilidad primero es necesario saber lo que se quiere "decir".
Como ya mencionaron todos, es importante primero hacer el análisis del problema para ver cual es la mejor solución tomando en cuenta todas las variantes posibles.
Ya que si inicias las programación sin hacer un análisis completo reescribiras más de una ves todo el código para solucionar las variantes que no habías previsto.
¿Qué pasa cuando el sistema es muy grande?
Podemos hacer un análisis para ver cual es la mejor solución?
Porque sería como construir un edificio sin los planos.
Si el ámbito del problema es muy grande creo que lo mejor sería abordarlo en forma modular.
Sin importar el tamaño se debe hacer un análisis completo porque si no más adelante se tendrán problemas y si el sistema es grande, pues más grande será el problema
Si somos capaces de resolver un problema, siguiendo paso a paso el algorítmo (efectividad), una máquina también podrá hacerlo. Independientemente del lenguaje en que que se desee o se tenga que codificar. Se podría de esta manera comprobar la eficacia del algoritmo y hasta lograr una mayor eficiencia de este.
Estoy de acuerdo con la mayoría; en primer lugar debemos analizar el problema para estructurar una solución; posteriormente ya podríamos pasar a codificarla en el lenguaje que corresponda. En cuanto a problemas muy grandes, está claro que debemos subdividirlo en problemas más simples y, posteriormente, volver a hacer un todo de cada una de estas partes.
Un algoritmo es la solución de un problema. No es un programa, es la idea que determina al programa. Y si bien en sistemas informáticos el resultado final deba ser un programa (una aplicación, un servicio...), a fines de análisis y diseño de los mismos, un algoritmo es escencial (sobre todo en medianos y grandes proyectos). Pero creo que los límites de los algoritmos son más amplios, sirviendo como grandes comunicadores entre distintos miembros de un desarrollo (por ejemplo, un analista funcional diseña un sistema plasmándolo en un diagrama de flujo, que le servirá al programador a la hora del desarrollo, y al encargado del control de calidad para comprobar que el funcionamiento es el esperado).
Por que al hacer el diseño de un algoritmo para resolver un problema obtenemos una visión general del problema, podemos identificar todas sus entradas, salidas, procesos, etc. Esto nos lleva a que al traducir un algoritmo a un lenguaje de programación tengamos como resultado final, código de calidad, menos propenso a errores y fallas, sin contar todo el tiempo que es posible ahorrarse al evitar la "prueba y error" sobre el interprete/compilador. Saludos!
Resolver un problema con un algoritmo me ayuda a optimizar todos los pasos necesarios para resolverlo, además de que se evita la ambiguedad y redundancia.
Una vez desarrollado el algoritmo ya se puede elegir cual es el lenguaje mas apropiado para codificarlo.
El algoritmo permite entender el problema, ver sus condiciones de entradas, salidas esperadas, restricciones, y como modular (separar en bloques menores) el problema, para luego buscar la solucion a los bloques, o al problema en general...en este punto, se puede recurrir incluso al uso de estrategias de resolucion de problemas ya utilizados, evitando el "reinventar la rueda". Finalmente, se puede escoger la mejor gama de soluciones, rearmar los bloques o procesos, y seguir las reglas básicas de cada algoritmo (que cada entrada siempre tenga la misma salida, que sea una secuencia finita de pasos, etc.)
Saludos!
es importante para no tener tantos errores de programacion de este modo solo implementamos el algoritmo pensado al lenguaje de programacion
Para hacerlo bien desde la primera vez!!!
Recuerdo que una vez un gerente de proyectos nos contó sobre lo sorprendido que estaba de un programador que al inicio de los proyectos pasaba un buen tiempo (exagerado para algunos) analizando y resolviendo primero el problema en su cabeza y en el papel, antes de escribir siquiera una línea de código.
Al final tenían un producto de calidad, a tiempo y dentro de los presupuestos.
Estimados: Agradezco nuevamente su entusiasmo en el foro, como dicen muchos de ustedes es muy importante entender el problema, y crear un algoritmo independiente a su lenguaje, cuando son algoritmos muy grandes es necesario modularizarlos, es decir de un gran problema dividirlo en pequeños problemas.
Saludos