tag:blogger.com,1999:blog-18863339315300330052024-03-07T20:35:18.758-08:00diagrama de flujomarlonhttp://www.blogger.com/profile/11138668300276494051noreply@blogger.comBlogger2125tag:blogger.com,1999:blog-1886333931530033005.post-62154862153246780512011-05-25T20:10:00.000-07:002011-05-25T20:10:08.871-07:00tecnicas de programacion<span style="color: #073763;">La <b>programación</b> es el proceso de diseñar, escribir, probar, </span><a href="http://es.wikipedia.org/wiki/Depuraci%C3%B3n_de_programas" title="Depuración de programas"><span style="color: #073763;">depurar</span></a><span style="color: #073763;"> y mantener el </span><a href="http://es.wikipedia.org/wiki/C%C3%B3digo_fuente" title="Código fuente"><span style="color: #073763;">código fuente</span></a><span style="color: #073763;"> de </span><a class="mw-redirect" href="http://es.wikipedia.org/wiki/Programas_inform%C3%A1ticos" title="Programas informáticos"><span style="color: #073763;">programas computacionales</span></a><span style="color: #073763;">. El código fuente es escrito en un </span><a href="http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n" title="Lenguaje de programación"><span style="color: #073763;">lenguaje de programación</span></a><span style="color: #073763;">. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero si el diseño del código), aunque si suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.</span><br />
<br />
<span style="color: #073763;">Para crear un </span><a href="http://es.wikipedia.org/wiki/Programa_inform%C3%A1tico" title="Programa informático"><span style="color: #073763;">programa</span></a><span style="color: #073763;">, y que la computadora interprete y ejecute las instrucciones escritas en el, debe usarse un </span><a href="http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n" title="Lenguaje de programación"><span style="color: #073763;">Lenguaje de programación</span></a><span style="color: #073763;">.</span><br />
<span style="color: #073763;">En sus inicios las computadoras interpretaban sólo instrucciones en un lenguaje específico, del más bajo nivel, conocido como </span><a class="mw-redirect" href="http://es.wikipedia.org/wiki/C%C3%B3digo_m%C3%A1quina" title="Código máquina"><span style="color: #073763;">código máquina</span></a><span style="color: #073763;">, siendo éste excesivamente complicado para programar. De hecho sólo consiste en cadenas de números 1 y 0 (</span><a href="http://es.wikipedia.org/wiki/Sistema_binario" title="Sistema binario"><span style="color: #073763;">Sistema binario</span></a><span style="color: #073763;">).</span><br />
<span style="color: #073763;">Para facilitar el trabajo de programación, los primeros científicos que trabajaban en el área decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del </span><a href="http://es.wikipedia.org/wiki/Idioma_ingl%C3%A9s" title="Idioma inglés"><span style="color: #073763;">inglés</span></a><span style="color: #073763;">; codificándolas así y creando un lenguaje de mayor nivel, que se conoce como Assembly o </span><a href="http://es.wikipedia.org/wiki/Lenguaje_ensamblador" title="Lenguaje ensamblador"><span style="color: #073763;">lenguaje ensamblador</span></a><span style="color: #073763;">. Por ejemplo, para sumar se usa la letra A de la palabra inglesa <i>add</i> (sumar). En realidad escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que secuencias de números binarios.</span><br />
<span style="color: #073763;">A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método sencillo para programar. Entonces, se crearon los </span><a href="http://es.wikipedia.org/wiki/Lenguaje_de_alto_nivel" title="Lenguaje de alto nivel"><span style="color: #073763;">lenguajes de alto nivel</span></a><span style="color: #073763;">. Mientras que una tarea tan trivial como multiplicar dos números puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará con solo una.</span><br />
<span style="color: #073763;">Una vez que se termina de escribir un programa, sea en ensamblador o en un lenguaje de alto nivel, es necesario </span><a href="http://es.wikipedia.org/wiki/Compilador" title="Compilador"><span style="color: #073763;">compilarlo</span></a><span style="color: #073763;">, es decir, traducirlo a lenguaje máquina.<sup class="reference" id="cite_ref-0"><a href="http://es.wikipedia.org/wiki/Programaci%C3%B3n#cite_note-0"><span class="corchete-llamada">[</span>1<span class="corchete-llamada">]</span></a></sup></span><br />
<br />
<span class="mw-headline" id="L.C3.A9xico_y_programaci.C3.B3n"><span style="color: red; font-size: x-large;">Léxico y programación</span></span><br />
<span style="color: #073763;">La programación se rige por reglas y un conjunto más o menos reducido de órdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural acotada (en inglés); y que además tienen la particularidad de una reducida ambigüedad. Cuanto menos ambiguo es un lenguaje de programación, se dice, es más potente. Bajo esta premisa, y en el extremo, el lenguaje más potente existente es el binario, con ambigüedad nula (lo cual lleva a pensar así del lenguaje ensamblador).</span><br />
<span style="color: #073763;">En los </span><a class="mw-redirect" href="http://es.wikipedia.org/wiki/Lenguajes_de_programaci%C3%B3n" title="Lenguajes de programación"><span style="color: #073763;">lenguajes de programación</span></a><span style="color: #073763;"> de alto nivel se distinguen diversos elementos entre los que se incluyen el léxico propio del lenguaje y las reglas semánticas y sintácticas.</span><br />
<br />
<span class="mw-headline" id="Programas_y_algoritmos"><span style="color: red; font-size: x-large;">Programas y algoritmos</span></span><br />
<span style="color: #073763;">Un </span><a href="http://es.wikipedia.org/wiki/Algoritmo" title="Algoritmo"><span style="color: #073763;">algoritmo</span></a><span style="color: #073763;"> es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) uno o más algoritmos. Un algoritmo puede expresarse de distintas maneras: en forma gráfica, como un </span><a href="http://es.wikipedia.org/wiki/Diagrama_de_flujo" title="Diagrama de flujo"><span style="color: #073763;">diagrama de flujo</span></a><span style="color: #073763;">, en forma de código como en </span><a href="http://es.wikipedia.org/wiki/Pseudoc%C3%B3digo" title="Pseudocódigo"><span style="color: #073763;">pseudocódigo</span></a><span style="color: #073763;"> o un lenguaje de programación, en forma explicativa, etc.</span><br />
<span style="color: #073763;">Los programas suelen subdividirse en partes menores, llamadas módulos, de modo que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa. Esta es una práctica muy utilizada y se conoce como "refino progresivo".</span><br />
<span style="color: #073763;">Según </span><a href="http://es.wikipedia.org/wiki/Niklaus_Wirth" title="Niklaus Wirth"><span style="color: #073763;">Niklaus Wirth</span></a><span style="color: #073763;">, un programa está formado por los </span><a href="http://es.wikipedia.org/wiki/Algoritmo" title="Algoritmo"><span style="color: #073763;">algoritmos</span></a><span style="color: #073763;"> y la </span><a href="http://es.wikipedia.org/wiki/Estructura_de_datos" title="Estructura de datos"><span style="color: #073763;">estructura de datos</span></a><span style="color: #073763;">.</span><br />
<span style="color: #073763;">Se han propuesto diversas técnicas de programación cuyo objetivo es mejorar tanto el proceso de creación de </span><a href="http://es.wikipedia.org/wiki/Software" title="Software"><span style="color: #073763;">software</span></a><span style="color: #073763;"> como su mantenimiento. Entre ellas, se pueden mencionar las siguientes:</span><br />
<ul><li><a href="http://es.wikipedia.org/wiki/Programaci%C3%B3n_estructurada" title="Programación estructurada"><span style="color: #0645ad;">programación estructurada</span></a> </li>
<li><a href="http://es.wikipedia.org/wiki/Programaci%C3%B3n_modular" title="Programación modular"><span style="color: #0645ad;">programación modular</span></a> </li>
<li><a href="http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos" title="Programación orientada a objetos"><span style="color: #0645ad;">programación orientada a objetos</span></a> (POO) </li>
<li><a href="http://es.wikipedia.org/wiki/Programaci%C3%B3n_declarativa" title="Programación declarativa"><span style="color: #0645ad;">programación declarativa</span></a> </li>
<li><img src="http://perso.wanadoo.es/pictob/imagenes/flujo02.gif" /></li>
</ul>marlonhttp://www.blogger.com/profile/11138668300276494051noreply@blogger.com0tag:blogger.com,1999:blog-1886333931530033005.post-53102364008030727162011-05-22T22:04:00.000-07:002011-05-22T22:15:32.768-07:00Diagrama de flujo<em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Un <b>diagrama de flujo</b> es una </span></em><a href="http://es.wikipedia.org/wiki/Gr%C3%A1fica" title="Gráfica"><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;"><em>representación gráfica</em></span></a><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;"> de un </span></em><a href="http://es.wikipedia.org/wiki/Algoritmo" title="Algoritmo"><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;"><em>algoritmo</em></span></a><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;"> o proceso. Se utiliza en disciplinas como la </span></em><a href="http://es.wikipedia.org/wiki/Programaci%C3%B3n" title="Programación"><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;"><em>programación</em></span></a><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">, la </span></em><a href="http://es.wikipedia.org/wiki/Econom%C3%ADa" title="Economía"><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;"><em>economía</em></span></a><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">, los procesos industriales y la </span></em><a href="http://es.wikipedia.org/wiki/Psicolog%C3%ADa_cognitiva" title="Psicología cognitiva"><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;"><em>psicología cognitiva</em></span></a><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">. Estos diagramas utilizan símbolos con significados bien definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de término.</span></em><br />
<a class="image" href="http://es.wikipedia.org/wiki/Archivo:DiagramaFlujoLampara.svg"><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;"><img alt="" class="thumbimage" height="300px" src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/76/DiagramaFlujoLampara.svg/220px-DiagramaFlujoLampara.svg.png" width="220px" /></span></a><br />
<h2><span class="mw-headline" id="Caracter.C3.ADsticas"><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif; font-size: small;">Características</span></em></span></h2><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Un diagrama de flujo siempre tiene un único punto de inicio y un único punto de término. Además, todo camino de ejecución debe permitir llegar desde el inicio hasta el término.</span></em><br />
<em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Las siguientes son acciones previas a la realización del diagrama de flujo:</span></em><br />
<ul><li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar presentes el dueño o responsable del proceso, los dueños o responsables del proceso anterior y posterior y de otros procesos interrelacionados, otras partes interesadas. </span></em></li>
<li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Definir qué se espera obtener del diagrama de flujo. </span></em></li>
<li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Identificar quién lo empleará y cómo. </span></em></li>
<li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Establecer el nivel de detalle requerido. </span></em></li>
<li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Determinar los límites del proceso a describir. </span></em></li>
</ul><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Los pasos a seguir para construir el diagrama de flujo son:</span></em><br />
<ul><li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente. </span></em></li>
<li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Identificar y listar las principales actividades/subprocesos que están incluidos en el proceso a describir y su orden cronológico. </span></em></li>
<li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Si el nivel de detalle definido incluye actividades menores, listarlas también. </span></em></li>
<li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Identificar y listar los puntos de decisión. </span></em></li>
<li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Construir el diagrama respetando la secuencia cronológica y asignando los correspondientes símbolos. </span></em></li>
<li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Asignar un título al diagrama y verificar que esté completo y describa con exactitud el proceso elegido. </span></em></li>
</ul><h2><span class="mw-headline" id="Ventajas_de_los_diagramas_de_flujo"><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif; font-size: small;">Ventajas de los diagramas de flujo</span></em></span></h2><ul><li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Favorecen la comprensión del proceso a través de mostrarlo como un dibujo. El cerebro humano reconoce fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias páginas de texto. </span></em></li>
<li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos redundantes, los flujos de los re-procesos , los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión. </span></em></li>
<li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas. </span></em></li>
<li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso. </span></em></li>
</ul><h2><span class="mw-headline" id="Tipos_de_diagramas_de_flujo"><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif; font-size: small;">Tipos de diagramas de flujo</span></em></span></h2><ul><li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Formato vertical: En él el flujo o la secuencia de las operaciones, va de arriba hacia abajo. Es una lista ordenada de las operaciones de un proceso con toda la información que se considere necesaria, según su propósito. </span></em></li>
</ul><ul><li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Formato horizontal: En él, el flujo o la secuencia de las operaciones, va de izquierda a derecha. </span></em></li>
</ul><ul><li><em><span style="color: #3d85c6; font-family: "Trebuchet MS", sans-serif;">Formato panorámico: El proceso entero está representado en una sola carta y puede apreciarse de una sola mirada mucho más rápido que leyendo el texto, lo que facilita su comprensión, aun para personas no familiarizadas. Registra no solo en línea vertical, sino también horizontal, distintas acciones simultáneas y la participación de más de un puesto o departamento que el formato vertical no registra. </span></em></li>
</ul><ul><li><span style="font-family: "Trebuchet MS", sans-serif;"><span style="color: #3d85c6;"><em>Formato Arquitectónico: Describe el itinerario de ruta de una forma o persona sobre el plano arquitectónico del área de trabajo. El primero de los flujogramas es eminentemente descriptivo, mientras que los utilizados son fundamentalmente representativos</em>.</span></span></li>
<li><img height="513px" id="il_fi" src="http://i.msdn.microsoft.com/dynimg/IC278455.gif" style="padding-bottom: 8px; padding-right: 8px; padding-top: 8px;" width="348px" /></li>
</ul>marlonhttp://www.blogger.com/profile/11138668300276494051noreply@blogger.com0