algoritmo y programas: concepto de algoritmo y programas, lenguaje algoritmico y de programacion, partes de algoritmo, caracteristica y elementos para construir un algoritmo, lenguaje natural, pseucodigo y diagrama de flujo, traza de un algoritmo (corrida de frio), estas son las preguntas p reguntas de la unidad uno estas son de la unidad dos: estandares est andares de calidad en el diseño de algoritmo y construccion de programas, introduccion a los estandares de calidad, forma de trazabilizar un algoritmo, formas y tecnicas de documentar algoritmos y programas, introduccion a la elaboracion del manual del sistema, usuario y programas, tecnicas de escritura y pruebas de algoritmos y programas pr ogramas
QUE ES UN ALGORITMO
Un algoritmo es una secuencia de pasos lógicos y ordenados con las cuales le damos solución a un problema prob lema determinado. En la vida diaria cada uno de nosotros diseña y realiza algoritmos para solucionar los problemas cotidianos, es así que al levantarnos de la cama ya tenemos en la mente una serie de pasos que debemos seguir para llegar al sitio de estudio o al sitio de trabajo. Una vez en el sitio de estudio, tenemos en nuestra mente una serie de tareas que debemos realizar en unos horarios ya definidos. Si quisiéramos realizar una comida especial, en nuestra mente construimos un algoritmo o serie de pasos que qu e debemos seguir en un orden específico para que todo nos salga como queremos. Si quisiéramos transcribir estos pasos en una hoja de papel, para que otra persona realizará las mismas tareas y obtenga el mismo resultado que nosotros, debemos seguir una serie ser ie de normas para que esta otra persona nos entienda. Por ejemplo debe estar esctrito en el idioma que ella comprende, se deben enumerar los pasos etc.
Las
normas que se deben seguir al momento de transcribir el algoritmo depende de quien será el encargado de ejecutarlo, por ejemplo si quisieramos escribir la receta para que la ejecute una persona adulta las normas serán diferentes a las que debemos seguir si quisieramos escribir la receta para que le ejecute una niña.
Un programa informático es un conjunto de instrucciones que una vez ejecutadas realizarán una o varias tareas en una computadora. Sin programas, estas máquinas no pueden funcionar. 1 2 Al conjunto general de programas, se le denomina software, que más genéricamente se refiere al equipamiento lógico o soporte lógico de una computadora digital. En informática, se los denomina comúnmente binarios, (propio en sistemas unix, donde debido a la estructura de este último, los ficheros no necesitan hacer uso de extensiones. Posteriormente, los presentaron como ficheros ejecutables, con extensión .exe, en los sistemas operativos de la familia Windows) debido a que una vez que han pasado por el proceso de compilación y han sido creados, las instrucciones que se escribieron en un lenguaje de programación que los humanos usan para escribirlos con mayor facilidad, se han traducido al único idioma que la máquina comprende, combinaciones de ceros y unos llamada código máquina. El mismo término, puede referirse tanto a un programa ejecutable, como a su código fuente, el cual es transformado en un binario cuando es compilado. efinición de Lenguajes Algorítmicos. Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle. La clasificación de los lenguajes para algoritmos puede enunciarse de la siguiente manera : y
Lenguaje Natural.
y
Lenguaje de Diagrama de Flujo.
y
Lenguaje Natural de Programación.
y
Lenguaje de Programación de Algoritmos.
Lenguaje Natural. Es aquél que describe en español, para nuestro caso, los pasos a seguir utilizando un v ocabulario cotidiano. Se le conoce como l enguaje jerga cuando se utilizan términos especializados de una determinada ciencia, profesión o grupo. Lenguaje de Diagrama de Flujo. Es aquél que se vale de diversos símbolos para representar las ideas o acciones a desarrollar. Es útil para organizar las acciones o pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cómputo. Lenguaje Natural de Programación. Son aquéllos que están orientados a la solución de problemas que se definen de una m anera precisa. Generalmente son aplicados para la elaboración de fórmulas o m étodos científicos. El lenguaje natural tiene las siguientes características : y
Evita la ambigüedad (algo confuso que se puede interpretar de v arias maneras).
y
Son precisos y bien definidos.
y
Utilizan términos familiares al sentido común.
y
Elimina instrucciones innecesarias.
Lenguaje de Programación d e Algoritmos. Es aquél que se utiliza para introducir en la computadora un al goritmo específico. Se les conoce también comoLenguaje de Programación. Lenguaje de Programación : Es un conjunto de palabras, símbolos y reglas sintácticas mediante los cuales puede indicarse a la computadora los pasos a seguir para resolver un problema. Los lenguajes de programación pueden clasificarse por diversos criterios, siendo el más común su nivel de semejanza con el lenguaje natural, y su c apacidad de manejo de niveles internos de la máquina. Los principales tipos de lenguajes utilizados son tres : y
Lenguaje Máquina.
y
Lenguaje de bajo Nivel (ensamblador).
y
Lenguajes de Alto Nivel.
Lenguaje Máquina. Son aquéllos que están escritos en lenguajes directamente inteligibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias ( cadenas o series de caracteres de dígitos 0 y 1) que especifican una operación y las posiciones (dirección) de memoria implicadas en la operación se denominan instrucciones de máquina o código máquina. El código máquina es el conocido código binario. V entajas
del Lenguaje Máquina
Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior, lo que supone una velocidad de ejecución superior a cualquier otro lenguaje de programación. Desventajas del Lenguaje Máquina y
Dificultad y lentitud en la codificación.
y
Poca fiabilidad.
y
Gran dificultad para verificar y poner a punto los programas.
y
Los programas solo son ejecutables en el mismo procesador (CPU).
y
En la actualidad, las desventajas superan a las ventajas, lo que hace prácticamente no recomendables a los lenguajes m áquinas.
Lenguajes
de Bajo Nivel.
Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador . Las instrucciones en lenguaje ensamblador son i nstrucciones conocidas como nemotécnicos. Por ejemplo, nemotécnicos típicos de operaciones aritméticas son : en inglés : ADD, SUB, DIV, etc. ; en español : SUM, RES, DIV, etc. Una instrucción típica de suma sería : ADD M, N, P Esta instrucción significa "sumar el contenido en la posición de memoria M al número almacenado en la posición de memoria N y situar el resultado en la posición de memoria P" . Evidentemente es más sencillo recordar la instrucción anterior con un nemotécnico que su equivalente en código máquina. 0110 1001 1010 1011 Un programa escrito en lenguaje ensamblador, requiere de una fase de traducción al lenguaje máquina para poder ser ejecutado directamente por la computadora.
El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje máquina se conoce como programa objeto, el cual ya es directamente entendible por la computadora. V entajas
del lenguaje ensamblador frente al lenguaje máquina.
Mayor facilidad de codificación y, en general, su velocidad de cálculo. Desventajas del lenguaje ensamblador. Dependencia total de la máquina lo que impide la t ransportabilidad de los programas (posibilidad de ejecutar un programa en diferentes máquinas. El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Machintosh. La formación de los programadores es más compleja que l a correspondiente a los programadores de alto nivel, ya que exige no solo las técnicas de programación, sino también el conocimiento del interior de la máquina. Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran básicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrónicos. Lenguajes
de Alto Nivel.
Estos lenguajes son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo m ucho más fácil que los lenguajes máquina y ensambladores. Un programa escrito en lenguaje de alto nivel es independiente de la máquina (las instrucciones no dependen del diseño del hardware o de una computadora en particular), por lo que estos programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras. V entajas
y
y
de los lenguajes de alto nivel.
El tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes. La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos. Nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc.
y
Las modificaciones y puestas a punto de los programas son m ás fáciles.
y
Reducción del costo de los programas.
y
Transportabilidad.
Desventajas de los lenguajes de alto nivel. y
y
Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la máquina que se explotan.
y
mucho mejor en lenguajes máquina y ensambladores.
y
Aumento de la ocupación de m emoria.
y
El tiempo de ejecución de los programas es mucho mayor.
Para una mejor compresión de este tema se definirá el concepto de programa, por ser este un término muy utilizado en el diseño estructurado de algoritmos. Programa
: Es un conjunto de instrucciones escritas en un lenguaje de programación que indican a la computadora la secuencia de pasos para resolver un problema. H istoria
y apliacacion de los lenguajes algoritmicos.
Al igual que los idiomas sirven de vehículo de comunicación entre los seres humanos, ex isten lenguajes que realizan la comunicación entre los seres humanos y las computadoras. Estos lenguajes permiten expresar los programas o el conjunto de instrucciones que el operador humano desea que la computadora ejecute. Los lenguajes de computadoras toman diferentes formas; los de las primeras computadoras, como la ENIAC y la EDSAC, se componían en el lenguaje real de las máquinas mismas. La dificultad de programar las máquinas de esta manera limitaba drásticamente su utilidad y proporcionaba un fuerte incentivo para que se desarrollaran lenguajes de programación más orientados hacia la expresión de soluciones con la notación de l os problemas mismos. Los primeros lenguajes de programación se conocieron como Lenguajes Ensambladores, un ejemplo es: TRANSCODE, desarrollado para la computadora FERUT. En los lenguajes ensambladores se define un código especial llamado mnemónico para cada una de las operaciones de la máquina y se introduce una notación especial para especificar el dato con el cual debe realizarse la operación. A mediados de los años 60's aparecieron los primeros lenguajes de propósito general como FORTRAN, FORTRAN IV, ALGOL, COBOL, BASIC, PL/I, ADA, C,C++, PASCAL, etc. pero el desarrollo de nuevas tecnologías, tanto en arquitectura de computadoras como en lenguajes de programación, continúa a paso acelerado, cada vez con mayor v elocidad, el panorama está cambiando de una etapa de sistemas y lenguajes especialmente desarrollados para aplicaciones individuales. Los lenguajes de programación actuales son los conocidos como Lenguajes visuales, como por ejemplo Visual Fox, Visual Basic, Visual C . efinición de Lenguajes Algorítmicos. Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle. La clasificación de los lenguajes para algoritmos puede enunciarse de la siguiente manera : y
Lenguaje Natural.
y
Lenguaje de Diagrama de Flujo.
y
Lenguaje Natural de Programación.
y
Lenguaje de Programación de Algoritmos.
Lenguaje Natural. Es aquél que describe en español, para nuestro caso, los pasos a seguir utilizando un v ocabulario cotidiano. Se le conoce como l enguaje jerga cuando se utilizan términos especializados de una determinada ciencia, profesión o grupo. Lenguaje de Diagrama de Flujo. Es aquél que se vale de diversos símbolos para representar las ideas o acciones a desarrollar. Es útil para organizar las acciones o pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cómputo. Lenguaje Natural de Programación. Son aquéllos que están orientados a la solución de problemas que se definen de una m anera precisa. Generalmente son aplicados para la elaboración de fórmulas o m étodos científicos. El lenguaje natural tiene las siguientes características : y
Evita la ambigüedad (algo confuso que se puede interpretar de v arias maneras).
y
Son precisos y bien definidos.
y
Utilizan términos familiares al sentido común.
y
Elimina instrucciones innecesarias.
Lenguaje de Programación d e Algoritmos. Es aquél que se utiliza para introducir en la computadora un al goritmo específico. Se les conoce también comoLenguaje de Programación. Lenguaje de Programación : Es un conjunto de palabras, símbolos y reglas sintácticas mediante los cuales puede indicarse a la computadora los pasos a seguir para resolver un problema. Los lenguajes de programación pueden clasificarse por diversos criterios, siendo el más común su nivel de semejanza con el lenguaje natural, y su c apacidad de manejo de niveles internos de la máquina. Los principales tipos de lenguajes utilizados son tres : y
Lenguaje Máquina.
y
Lenguaje de bajo Nivel (ensamblador).
y
Lenguajes de Alto Nivel.
Lenguaje Máquina. Son aquéllos que están escritos en lenguajes directamente inteligibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias ( cadenas o series de caracteres de dígitos 0 y 1) que especifican una operación y las posiciones (dirección) de memoria implicadas en la operación se denominan instrucciones de máquina o código máquina. El código máquina es el conocido código binario. V entajas
del Lenguaje Máquina
Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior, lo que supone una velocidad de ejecución superior a cualquier otro lenguaje de programación. Desventajas del Lenguaje Máquina y
Dificultad y lentitud en la codificación.
y
Poca fiabilidad.
y
Gran dificultad para verificar y poner a punto los programas.
y
Los programas solo son ejecutables en el mismo procesador (CPU).
y
En la actualidad, las desventajas superan a las ventajas, lo que hace prácticamente no recomendables a los lenguajes m áquinas.
Lenguajes
de Bajo Nivel.
Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador . Las instrucciones en lenguaje ensamblador son i nstrucciones conocidas como nemotécnicos. Por ejemplo, nemotécnicos típicos de operaciones aritméticas son : en inglés : ADD, SUB, DIV, etc. ; en español : SUM, RES, DIV, etc. Una instrucción típica de suma sería : ADD M, N, P Esta instrucción significa "sumar el contenido en la posición de memoria M al número almacenado en la posición de memoria N y situar el resultado en la posición de memoria P" . Evidentemente es más sencillo recordar la instrucción anterior con un nemotécnico que su equivalente en código máquina. 0110 1001 1010 1011 Un programa escrito en lenguaje ensamblador, requiere de una fase de traducción al lenguaje máquina para poder ser ejecutado directamente por la computadora.
El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje máquina se conoce como programa objeto, el cual ya es directamente entendible por la computadora. V entajas
del lenguaje ensamblador frente al lenguaje máquina.
Mayor facilidad de codificación y, en general, su velocidad de cálculo. Desventajas del lenguaje ensamblador. Dependencia total de la máquina lo que impide la t ransportabilidad de los programas (posibilidad de ejecutar un programa en diferentes máquinas. El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Machintosh. La formación de los programadores es más compleja que l a correspondiente a los programadores de alto nivel, ya que exige no solo las técnicas de programación, sino también el conocimiento del interior de la máquina. Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran básicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrónicos. Lenguajes
de Alto Nivel.
Estos lenguajes son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo m ucho más fácil que los lenguajes máquina y ensambladores. Un programa escrito en lenguaje de alto nivel es independiente de la máquina (las instrucciones no dependen del diseño del hardware o de una computadora en particular), por lo que estos programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras. V entajas
y
y
de los lenguajes de alto nivel.
El tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes. La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos. Nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc.
y
Las modificaciones y puestas a punto de los programas son m ás fáciles.
y
Reducción del costo de los programas.
y
Transportabilidad.
Desventajas de los lenguajes de alto nivel. y
y
Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la máquina que se explotan.
y
mucho mejor en lenguajes máquina y ensambladores.
y
Aumento de la ocupación de m emoria.
y
El tiempo de ejecución de los programas es mucho mayor.
Para una mejor compresión de este tema se definirá el concepto de programa, por ser este un término muy utilizado en el diseño estructurado de algoritmos. Programa
: Es un conjunto de instrucciones escritas en un lenguaje de programación que indican a la computadora la secuencia de pasos para resolver un problema. H istoria
y apliacacion de los lenguajes algoritmicos.
Al igual que los idiomas sirven de vehículo de comunicación entre los seres humanos, ex isten lenguajes que realizan la comunicación entre los seres humanos y las computadoras. Estos lenguajes permiten expresar los programas o el conjunto de instrucciones que el operador humano desea que la computadora ejecute. Los lenguajes de computadoras toman diferentes formas; los de las primeras computadoras, como la ENIAC y la EDSAC, se componían en el lenguaje real de las máquinas mismas. La dificultad de programar las máquinas de esta manera limitaba drásticamente su utilidad y proporcionaba un fuerte incentivo para que se desarrollaran lenguajes de programación más orientados hacia la expresión de soluciones con la notación de l os problemas mismos. Los primeros lenguajes de programación se conocieron como Lenguajes Ensambladores, un ejemplo es: TRANSCODE, desarrollado para la computadora FERUT. En los lenguajes ensambladores se define un código especial llamado mnemónico para cada una de las operaciones de la máquina y se introduce una notación especial para especificar el dato con el cual debe realizarse la operación. A mediados de los años 60's aparecieron los primeros lenguajes de propósito general como FORTRAN, FORTRAN IV, ALGOL, COBOL, BASIC, PL/I, ADA, C,C++, PASCAL, etc. pero el desarrollo de nuevas tecnologías, tanto en arquitectura de computadoras como en lenguajes de programación, continúa a paso acelerado, cada vez con mayor v elocidad, el panorama está cambiando de una etapa de sistemas y lenguajes especialmente desarrollados para aplicaciones individuales. Los lenguajes de programación actuales son los conocidos como Lenguajes visuales, como por ejemplo Visual Fox, Visual Basic, Visual C . efinición de Lenguajes Algorítmicos. Los algoritmos pueden describirse utilizando diversos lenguajes. Cada uno de estos lenguajes permiten describir los pasos con mayor o menor detalle. La clasificación de los lenguajes para algoritmos puede enunciarse de la siguiente manera : y
Lenguaje Natural.
y
Lenguaje de Diagrama de Flujo.
y
Lenguaje Natural de Programación.
y
Lenguaje de Programación de Algoritmos.
Lenguaje Natural. Es aquél que describe en español, para nuestro caso, los pasos a seguir utilizando un v ocabulario cotidiano. Se le conoce como l enguaje jerga cuando se utilizan términos especializados de una determinada ciencia, profesión o grupo. Lenguaje de Diagrama de Flujo. Es aquél que se vale de diversos símbolos para representar las ideas o acciones a desarrollar. Es útil para organizar las acciones o pasos de un algoritmo pero requiere de etapas posteriores para implementarse en un sistema de cómputo. Lenguaje Natural de Programación. Son aquéllos que están orientados a la solución de problemas que se definen de una m anera precisa. Generalmente son aplicados para la elaboración de fórmulas o m étodos científicos. El lenguaje natural tiene las siguientes características : y
Evita la ambigüedad (algo confuso que se puede interpretar de v arias maneras).
y
Son precisos y bien definidos.
y
Utilizan términos familiares al sentido común.
y
Elimina instrucciones innecesarias.
Lenguaje de Programación d e Algoritmos. Es aquél que se utiliza para introducir en la computadora un al goritmo específico. Se les conoce también comoLenguaje de Programación. Lenguaje de Programación : Es un conjunto de palabras, símbolos y reglas sintácticas mediante los cuales puede indicarse a la computadora los pasos a seguir para resolver un problema. Los lenguajes de programación pueden clasificarse por diversos criterios, siendo el más común su nivel de semejanza con el lenguaje natural, y su c apacidad de manejo de niveles internos de la máquina. Los principales tipos de lenguajes utilizados son tres : y
Lenguaje Máquina.
y
Lenguaje de bajo Nivel (ensamblador).
y
Lenguajes de Alto Nivel.
Lenguaje Máquina. Son aquéllos que están escritos en lenguajes directamente inteligibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias ( cadenas o series de caracteres de dígitos 0 y 1) que especifican una operación y las posiciones (dirección) de memoria implicadas en la operación se denominan instrucciones de máquina o código máquina. El código máquina es el conocido código binario. V entajas
del Lenguaje Máquina
Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior, lo que supone una velocidad de ejecución superior a cualquier otro lenguaje de programación. Desventajas del Lenguaje Máquina y
Dificultad y lentitud en la codificación.
y
Poca fiabilidad.
y
Gran dificultad para verificar y poner a punto los programas.
y
Los programas solo son ejecutables en el mismo procesador (CPU).
y
En la actualidad, las desventajas superan a las ventajas, lo que hace prácticamente no recomendables a los lenguajes m áquinas.
Lenguajes
de Bajo Nivel.
Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador . Las instrucciones en lenguaje ensamblador son i nstrucciones conocidas como nemotécnicos. Por ejemplo, nemotécnicos típicos de operaciones aritméticas son : en inglés : ADD, SUB, DIV, etc. ; en español : SUM, RES, DIV, etc. Una instrucción típica de suma sería : ADD M, N, P Esta instrucción significa "sumar el contenido en la posición de memoria M al número almacenado en la posición de memoria N y situar el resultado en la posición de memoria P" . Evidentemente es más sencillo recordar la instrucción anterior con un nemotécnico que su equivalente en código máquina. 0110 1001 1010 1011 Un programa escrito en lenguaje ensamblador, requiere de una fase de traducción al lenguaje máquina para poder ser ejecutado directamente por la computadora.
El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje máquina se conoce como programa objeto, el cual ya es directamente entendible por la computadora. V entajas
del lenguaje ensamblador frente al lenguaje máquina.
Mayor facilidad de codificación y, en general, su velocidad de cálculo. Desventajas del lenguaje ensamblador. Dependencia total de la máquina lo que impide la t ransportabilidad de los programas (posibilidad de ejecutar un programa en diferentes máquinas. El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Machintosh. La formación de los programadores es más compleja que l a correspondiente a los programadores de alto nivel, ya que exige no solo las técnicas de programación, sino también el conocimiento del interior de la máquina. Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran básicamente en aplicaciones de tiempo real, control de procesos y de dispositivos electrónicos. Lenguajes
de Alto Nivel.
Estos lenguajes son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo m ucho más fácil que los lenguajes máquina y ensambladores. Un programa escrito en lenguaje de alto nivel es independiente de la máquina (las instrucciones no dependen del diseño del hardware o de una computadora en particular), por lo que estos programas son portables o transportables. Los programas escritos en lenguaje de alto nivel pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras. V entajas
y
y
de los lenguajes de alto nivel.
El tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes. La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos. Nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc.
y
Las modificaciones y puestas a punto de los programas son m ás fáciles.
y
Reducción del costo de los programas.
y
Transportabilidad.
Desventajas de los lenguajes de alto nivel. y
y
Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la máquina que se explotan.
y
mucho mejor en lenguajes máquina y ensambladores.
y
Aumento de la ocupación de m emoria.
y
El tiempo de ejecución de los programas es mucho mayor.
Para una mejor compresión de este tema se definirá el concepto de programa, por ser este un término muy utilizado en el diseño estructurado de algoritmos. Programa
: Es un conjunto de instrucciones escritas en un lenguaje de programación que indican a la computadora la secuencia de pasos para resolver un problema. H istoria
y apliacacion de los lenguajes algoritmicos.
Al igual que los idiomas sirven de vehículo de comunicación entre los seres humanos, ex isten lenguajes que realizan la comunicación entre los seres humanos y las computadoras. Estos lenguajes permiten expresar los programas o el conjunto de instrucciones que el operador humano desea que la computadora ejecute. Los lenguajes de computadoras toman diferentes formas; los de las primeras computadoras, como la ENIAC y la EDSAC, se componían en el lenguaje real de las máquinas mismas. La dificultad de programar las máquinas de esta manera limitaba drásticamente su utilidad y proporcionaba un fuerte incentivo para que se desarrollaran lenguajes de programación más orientados hacia la expresión de soluciones con la notación de l os problemas mismos. Los primeros lenguajes de programación se conocieron como Lenguajes Ensambladores, un ejemplo es: TRANSCODE, desarrollado para la computadora FERUT. En los lenguajes ensambladores se define un código especial llamado mnemónico para cada una de las operaciones de la máquina y se introduce una notación especial para especificar el dato con el cual debe realizarse la operación. A mediados de los años 60's aparecieron los primeros lenguajes de propósito general como FORTRAN, FORTRAN IV, ALGOL, COBOL, BASIC, PL/I, ADA, C,C++, PASCAL, etc. pero el desarrollo de nuevas tecnologías, tanto en arquitectura de computadoras como en lenguajes de programación, continúa a paso acelerado, cada vez con mayor v elocidad, el panorama está cambiando de una etapa de sistemas y lenguajes especialmente desarrollados para aplicaciones individuales. Los lenguajes de programación actuales son los conocidos como Lenguajes visuales, como por ejemplo Visual Fox, Visual Basic, Visual C .
Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como lascomputadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. 1 Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene elcódigo fuente de un programa informático se le llama programación.
También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:
El desarrollo lógico del programa para resolver un problema en particular.
Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).
Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
Prueba y depuración del programa.
Desarrollo de la documentación.
Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo HTML (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación, sino un conjunto de instrucciones que permiten diseñar el contenido de los documentos). Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar rel ativamente próximo al lenguaje humano o natural. Una característica relevante de los lenguajes de programación es precisamente que más de un programador pueda usar un conjunto común de instrucciones que sean comprendidas entre ellos para realizar la construcción de un programa de forma colaborativ
En pseudocódigo se describen los algoritmos utilizando una mezcla de lenguaje común, con instrucciones de programación, palabras claves, etc. El objetivo es que el programador se centre en la solución lógica del algoritmo y no en la implementación en un lenguaje de programación concreto (con las posibles complicaciones en las reglas sintácticas), o en otras palabras, sólo ayudan a "pensar" unprograma antes de escribirlo en un lenguaje de programación formal.
Diagrama de flujo
Diagrama de flujo sencillo con los pasos a seguir si una lámpara no funciona.
Un diagrama de f lujo es una representación gráfica de un algoritmo o proceso. Se utiliza en disciplinas como la programación, la economía, los procesos industriales y la psicología cognitiva. 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.
Elementos para construir algoritmos Elementos ( Permiten representar datos, resultados y soluciones intermedias)
Expresiones ( Expresan las operaciones a realizar con los elementos variables y constantes)
variables constantes
aritméticas relacionales lógicas
Instruccion de asignación
( Permite asignar un valor a un elemento variable)
Operaciones de entrada/salida
Leer Escribir
Estructuras
selectivas repetitivas
Otros elementos
Contador, Acumulador, Centinela, Ba