Lenguajes de programación y proceso de programación

Anuncio
CONTENIDO
LENGUAJES DE PROGRAMACION Y EL PROCESO DE PROGRAMACION. CREACION DE
PROGRAMAS DE COMPUTACION
• PROGRAMACION
• Concepto de programación-----------------------------------------------------• TIPOS DE PROGRAMACION
• 2.1: Programación estructurada (PE)
♦ 2.1.1 Estructura Secuencial
♦ 2.1.2 Estructura Selectiva o de Selección
♦ 2.1.3 Estructura Iterativa
• 2.2: Programación orientada a objetos (POO)
♦ 2.2.1 CaracterÃ−sticas de la Programación Orientada a Objetos.
• 2.3 Programación Orientada a Eventos
♦ 2.3.1 Eventos
♦ 2.3.2 Propiedades
♦ 2.3.3 Métodos
• LENGUAJES DE PROGRAMACION
• 3.1: Concepto de lenguaje de programación
• 3.2: Clasificación de los lenguajes de programación
♦ 3.2.1 lenguajes de alto nivel
♦ 3.2.2 lenguajes de bajo nivel
♦ 3.2.2.1 CaracterÃ−sticas Lenguajes de Bajo Nivel
• 3.3Clasificación de los Lenguajes de alto nivel.
• 3.4 Generaciones de Lenguajes
♦ 3.4.1 Lenguajes de Maquina (1ra Generación)
♦ 3.4.2 Lenguaje ensamblador (2da Generación)
♦ 3.4.3 Lenguaje de Procedimientos (3ra Generación)
♦ 3.4.4 Lenguajes Orientado a Problemas (4ta Generación)
♦ 3.3.5 Lenguajes Naturales (5ta Generación)
♦ ALGORITMO COMPUTACIONAL
◊ 4.1 Generalidades
◊ 4.2: Pasos para la elaboración de algoritmos
◊ 4.3 Análisis de algoritmos
◊ 4.4: Diseño de algoritmos
⋅ 4.4.1 Consideración y diseño para la elaboración de un algoritmo
◊ 4.5 CaracterÃ−sticas de Algoritmos
5- DIAGRAMAS DE FLUJO DE DATOS (DFD)
5.1 Definición de Diagramas de flujo de datos
5.2 Algunos de los sÃ−mbolos utilizados para hacer diagramas de flujo de datos
5.3 CaracterÃ−sticas de los diagramas de flujo de datos
1
5.4 Tipos de Diagrama de Flujo de Datos.
5.5 Desarrollo de Diagramas de Flujo de Datos
5.6 Ventajas de Utilizar Diagramas de Flujo de Datos
6- PSEUDOCODIGO
◊ 6.1: Definición de Pseudocódigo
◊ 6.2 Funciones y operaciones
◊ 6.3: Definición de estructuras de control
⋅ 6.3.1 Secuencial
⋅ 6.3.2 Selectiva
⋅ 6.3.3 Selectiva Doble (Alternativa)
◊ 6.4: Desarrollo de algoritmos
◊ 6.5: Ventajas de utilizar un Pseudocódigo a un diagrama de flujo
♦ COMPILADOR
◊ 7.1 Compilador o traductor
⋅ 7.2 Clasificación de los Compiladores
⋅ 7.3 Función de un Compilador
⋅ 7.3 Ventajas de Compilar
◊ ELABORACION DE PROGRAMAS
⋅ 8.1: Análisis de la necesidades
⋅ 8.2: Diseño del Programa
⋅ 8.3: Desarrollo
⋅ 8.4: Implementación
⋅ 8.5: Mantenimiento
Introducción
Primeramente le damos gracias a Dios por habernos permitido la creación del
material que ya han empezado a leer. El presente material que lleva como tÃ−tulos:
“LENGUAJES DE PROGRAMACION Y EL PROCESO DE
PROGRAMACION, CREACION DE PROGRAMAS DE COMPUTACION”,
esta destinado a todo aquel que le interese conocer lo básico de la programación y
elaboración de software.
Este material contiene información sacada de varias fuentes Bibliograficas que le
serán de gran utilidad a usted estimado lector. Incluyendo en este trabajo
Informaciones de modo grafica, asÃ− como también varios ejemplos de temas que
se desarrollan en este material y que lo ameritan los mismos. Esperando que al
finalizar de esta breve reseña de “LENGUAJES DE PROGRAMACION Y EL
PROCESO DE PROGRAMACION, CREACION DE PROGRAMAS DE
COMPUTACION”, les sea de gran utilidad, les dan las gracias de ante lectura el
grupo: “GRAPLEX”.
1. Programación.
1.1 Concepto de Programación
Se conoce como programación al proceso para convertir especificaciones generales
de un sistema en instrucciones utilizables por la maquina, que produzcan los
2
resultados deseados. A esto también se le conoce como Desarrollo de Software.
2. Tipos de programación
2.1 Programación Estructurada (PE)
La programación estructurada es una forma de escribir programas de ordenador
(programación de computadora) de forma clara. Para ello utiliza únicamente tres
estructuras: secuencia, selección e iteración; siendo innecesario el uso de la
instrucción o instrucciones de transferencia incondicional (GOTO, EXIT
FUNCTION, EXIT SUB o múltiples RETURN).
El teorema del programa estructurado, demostrado por Böhm-Jacopini, demuestra
que todo programa puede escribirse utilizando únicamente las tres instrucciones de
control siguientes:
- Secuencia
- Selección
- Iteración (bucle de instrucciones) con condición al principio.
Solamente con estas tres estructuras se pueden escribir todos los programas y
aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor
repertorio de estructuras de control, éstas pueden ser construidas mediante las tres
básicas.
2.1.1 Estructura Secuencial
Una estructura de programa es secuencial si se ejecutan una tras otra a modo de
secuencia, es decir que una instrucción no se ejecuta hasta que finaliza la anterior.
2.1.2 Estructura Selectiva o Selección
La estructura selectiva permite la realización de una instrucción u otra según un
criterio, solo una de estas instrucciones se ejecutara.
Ejemplo:
IF a > b THEN
PRINT a ; "es mayor que" ; b
ELSE
PRINT a ; "no es mayor que" ; b
END IF
2.1.3 Estructura Iterativa.
Un bucle iterativo o iteración de una secuencia de instrucciones, hace que se repitan
3
mientras se cumpla una condición, en un principio el número de iteraciones no
tiene porque estar determinado.
Ejemplo:
a= 0
b= 7
WHILE b > a DO
PRINT a
a= a + 1
WEND
Esta instrucción tiene tres palabras reservadas WHILE, DO y WEND.
WHILE: señala el comienzo del bucle y después de esta palabra se espera la
condición de repetición, si la condición es cierta se pasa al cuerpo del bucle, si no
al final de la instrucción mientras.
DO: señala el final de la condición, lo que esté después será el cuerpo del
bucle.
WEND: señala el final del cuerpo del bucle y de la instrucción WHILE.
2.2 Programación Orientada a Objetos
La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés)
es un paradigma de programación que usa objetos y sus interacciones para diseñar
aplicaciones y programas de computadora.
La programación orientada a objetos es una nueva forma de programar que trata de
encontrar una solución a los problemas de la programación orientada a Eventos.
2.2.1 CaracterÃ−sticas de la Programación Orientada a Objetos
Abstracción: Denota las caracterÃ−sticas esenciales de un objeto, donde se capturan
sus comportamientos.Cada objeto en el sistema sirve como modelo de un "agente"
abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse"
con otros objetos en el sistema sin revelar cómo se implementan estas
caracterÃ−sticas. Los procesos, las funciones o los métodos pueden también ser
abstraÃ−dos y cuando lo están, una variedad de técnicas son requeridas para
ampliar una abstracción.
Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse
pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite
aumentar la cohesión de los componentes del sistema. Algunos autores confunden
este concepto con el principio de ocultación, principalmente porque se suelen
emplear conjuntamente.
4
Principio de ocultación: Cada objeto está aislado del exterior, es un módulo
natural, y cada tipo de objeto expone una interfaz a otros objetos que especÃ−fica
cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las
propiedades de un objeto contra su modificación por quien no tenga derecho a
acceder a ellas, solamente los propios métodos internos del objeto pueden acceder
a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un
objeto de maneras inesperadas, eliminando efectos secundarios e interacciones
inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos
internos del objeto de una manera controlada y limitando el grado de abstracción. La
aplicación entera se reduce a un agregado o rompecabezas de objetos.
Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden
compartir el mismo nombre, al llamarlos por ese nombre se utilizará el
comportamiento correspondiente al objeto que se esté usando. O dicho de otro
modo, las referencias y las colecciones de objetos pueden contener objetos de
diferentes tipos, y la invocación de un comportamiento en una referencia producirá
el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto
ocurre en "tiempo de ejecución", esta última caracterÃ−stica se llama asignación
tardÃ−a o asignación dinámica. Algunos lenguajes proporcionan medios más
estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y
la sobrecarga de operadores de C++.
Herencia: las clases no están aisladas, sino que se relacionan entre sÃ−, formando
una jerarquÃ−a de clasificación. Los objetos heredan las propiedades y el
comportamiento de todas las clases a las que pertenecen. La herencia organiza y
facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos
y creados como tipos especializados de objetos preexistentes. Estos pueden compartir
(y extender) su comportamiento sin tener que volver a implementarlo. Esto suele
hacerse habitualmente agrupando los objetos en clases y estas en árboles o
enrejados que reflejan un comportamiento común. Cuando un objeto hereda de
más de una clase se dice que hay herencia múltiple.
2.3 Programación Orientada a Eventos
La programación orientada a eventos es el tipo de programación en el que los
programas dependerán de sucesos (eventos) para la realización de la tareas para las
que fueron programados
Los programas orientados a eventos son los programas tÃ−picos de Windows, tales
como Netscape, Word, Excel, PowerPoint y otros. Cuando uno de estos programas ha
arrancado, lo único que hace es quedarse a la espera de las acciones del usuario, que
en este caso son llamadas eventos.
El usuario dice si quiere abrir y modificar un fichero existente, o bien comenzar a
crear un fichero desde el principio. Estos programas pasan la mayor parte de su
tiempo esperando las acciones del usuario (eventos) y respondiendo a ellas. Las
acciones que el usuario puede realizar en un momento determinado son
variadÃ−simas, y exigen un tipo especial de programación: la programación
orientada a eventos. Este tipo de programación es sensiblemente más complicada
que la secuencial y la interactiva, pero con los lenguajes visuales de hoy, se hace
sencilla y agradable.
5
2.3.1 Eventos
Las acciones del usuario sobre el programa se llaman eventos. Son eventos tÃ−picos
el clic sobre un botón, el hacer doble clic sobre el nombre de un fichero para abrirlo,
el arrastrar un icono, el pulsar una tecla o combinación de teclas, el elegir una
opción de un menú, el escribir en una caja de texto, o simplemente mover el
ratón. Más adelante se verán los distintos tipos de eventos reconocidos por
Windows 95 y por Visual Basic. Cada vez que se produce un evento sobre un
determinado tipo de control, Visual Basic arranca una determinada función o
procedimiento que realiza la acción programada por el usuario para ese evento
concreto. Estos procedimientos se llaman con un nombre que se forma a partir del
nombre del objeto y el nombre del evento, separados por el carácter (_), como por
ejemplo txtBox_click, que es el nombre del procedimiento que se ocupará de
responder al evento clic en el objeto txtBox..
Además de los eventos, la mayor parte de los objetos, como los formularios y los
controles, son suministrados con propiedades y métodos.
2.3.2 Propiedades
Una propiedad es una asignación que describe algo sobre un objeto como un
formulario. Dependiendo de la propiedad, se la puede asignar en tiempo de diseño
usando la ventana Propiedades y/o en tiempo de ejecución al programar.
A continuación se describen dos ejemplos de las propiedades del formulario de
Visual Basic:
MinButton. Esta propiedad puede asignarse como TRUE (verdadero) o FALSE
(falso). Dependiendo de la asignación, el formulario tendrá o no tendrá un botón
minimizar.
BackColor. Asignando esta propiedad a un valor expresado como hexadecimal RGB
(Rojo Verde Azul) o como una constante se cambia el color del fondo del formulario.
Se pueden consultar las constantes usando el examinador de objetos (Seleccione
VER, EXAMINADOR DE OBJETOS) y en la Biblioteca VBRUN (Columna clase)
bajo "ColorConstants" y "SystemColorConstants".
2.3.3 Métodos
Los métodos son funciones que también son llamadas desde programa, pero a
diferencia de los procedimientos no son programadas por el usuario, sino que vienen
ya pre-programadas con el lenguaje. Los métodos realizan tareas tÃ−picas,
previsibles y comunes para todas las aplicaciones. de ahÃ− que vengan con el
lenguaje y que se libere al usuario de la tarea de programarlos. Cada tipo de objeto o
de control tiene sus propios métodos.
En general solo pueden ser ejecutados en tiempos de ejecución no en tiempo de
diseño. Algunos ejemplos de métodos de formularios son el método MOVE,
que mueve un formulario en un espacio de dos dimensiones en la pantalla, y el
método ZORDER que sitúa el formulario delante o detrás de otras ventanas.
Los métodos son invocados dando nombres al objeto y cuyo método se está
6
llamando, listando el operador punto (.), y después listando el nombre del
método.
3. Lenguajes de Programación
3.1Concepto de lenguaje de programación
Es un conjunto de sÃ−mbolos junto a un conjunto de reglas para combinar dichos
sÃ−mbolos que se usan para expresar programas. Constan de un léxico, una
sintaxis y una semántica.
Léxico: Conjunto de sÃ−mbolos permitidos o vocabulario
Sintaxis: Reglas que indican cómo realizar las construcciones del lenguaje
Semántica: Reglas que permiten determinar el significado de cualquier
construcción del lenguaje.
3.2 Tipos de Lenguajes de Programación
Atendiendo al número de instrucciones necesarias para realizar una tarea
especÃ−fica podemos clasificar los lenguajes informáticos en dos grandes bloques:
· Bajo Nivel
· Alto Nivel
3.2.1 Lenguaje de Bajo Nivel
Es el tipo de lenguaje que cualquier computadora es capaz de entender. Se dice que
los programas escritos en forma de ceros y unos están en lenguaje de máquina,
porque esa es la versión del programa que la computadora realmente lee y sigue.
3.2.2 Lenguajes de alto Nivel
Son lenguajes de programación que se asemejan a las lenguas humanas usando
palabras y frases fáciles de entender.
En un lenguaje de bajo nivel cada instrucción corresponde a una acción ejecutable
por el ordenador, mientras que en los lenguajes de alto nivel una instrucción suele
corresponder a varias acciones.
3.2.2.1 CaracterÃ−sticas del Lenguaje de Alto Nivel
Son independientes de la arquitectura fÃ−sica de la computadora. Permiten usar los
mismos programas en computadoras de diferentes arquitecturas (portabilidad), y no
es necesario conocer el hardware especÃ−fico de la máquina. La ejecución de un
programa en lenguaje de alto nivel, requiere de una traducción del mismo al
lenguaje de la computadora donde va a ser ejecutado. Una sentencia en un lenguaje
de alto nivel da lugar, al ser traducida, a varias instrucciones en lenguaje entendible
por el computador. Utilizan notaciones cercanas a las usadas por las personas en un
determinado ámbito. Se suelen incluir instrucciones potentes de uso frecuente que
son ofrecidas por el lenguaje de programación.
3.3 Clasificación de los lenguajes de Alto Nivel
7
Lenguajes de propósito general:
3.4 Generaciones de los Lenguajes
Al igual que las generaciones de la computadoras, los lenguajes de programación
fueron evolucionando de la forma siguiente.
3.4.1 Lenguajes de Maquina (1ra generación)
Es el lenguaje que la computadora entiende, su estructura está totalmente adaptada a
los circuitos de la máquina y la programación es tediosa porque los datos se
representan por ceros y unos. Es de bajo nivel. Es un conjunto de instrucciones
codificadas en binario que son capaces de relacionarse directamente con los registros
y circuiterÃ−a del microprocesador de la computadora y que resulta directamente
ejecutable por éste, sin necesidad de otros programas intermediarios. Los datos se
referencian por medio de las direcciones de memoria donde se encuentran y las
instrucciones realizan operaciones simples. Estos lenguajes están Ã−ntimamente
ligados a la CPU y por eso no son transferibles. (baja portabilidad). Para los
programadores es posible escribir programas directamente en lenguaje de máquina,
pero las instrucciones son difÃ−ciles de recordar y los programas resultan largos y
laboriosos de escribir y también de corregir y depurar.
3.4.2 Lenguaje Ensamblador (2da Generación)
Es otro lenguaje de programación de bajo nivel, pero simbólico porque las
instrucciones se construyen usando códigos de tipo mnemotécnico, lo cual facilita
la escritura y depuración de los programas pero no los acorta puesto que para cada
acción se necesita una instrucción. El programa ensamblador va traduciendo
lÃ−nea a lÃ−nea a la vez que comprueba la existencia de errores. Si localiza alguno
da un mensaje de error. Algunas caracterÃ−sticas que lo diferencian del lenguaje de
máquina son que permite el uso de comentarios entre las lÃ−neas de instrucciones;
en lugar de direcciones binarias usa identificadores como total, x, y, etc. Y los
códigos de operación se representan por mnemotécnica siempre tienen la
desventaja de repertorio reducido de instrucciones, rÃ−gido formato para las
instrucciones, baja portabilidad y fuerte dependencia del hardware. Tiene la ventaja
del uso óptimo de los recursos hardware, permitiendo la obtención de un código
muy eficiente. Ejemplo de algunos códigos mnemónicos son: STO para guardar un
dato, LOA para cargar algo en el acumulador, ADD para adicionar un dato, INP para
leer un dato, STO para guardar información, MOV para mover un dato y ponerlo en
un registro, END para terminar el programa, etc. Con la tercera generación
avanzamos a los lenguajes de alto nivel, muchos de los cuales se consideran
exportables. Esto es, pueden correr en más de un tipo de computadoras, se les puede
exportar de una máquina a otra.
3.4.3 Lenguaje de Procedimientos (3ra Generación)
Son lenguajes de alto nivel similares al habla humana pero requieren cierta
capacitación para su uso.
Ventajas:
8
a. Independencia de la arquitectura fÃ−sica de la computadora (portabilidad), esto
significa que un mismo lenguaje puede funcionar (al menos en teorÃ−a) en distintos
computadores, por lo que tanto el lenguaje como los programas escritos con él
serán transportables de un computador a otro. En la práctica, esta caracterÃ−stica
resulta limitada por la gran diversidad de versiones y dialectos que se constituyen
para cada lenguaje.
b. una sentencia en un lenguaje de alto nivel da lugar, al ser traducida, a varias
instrucciones en lenguaje máquina. Se llaman de procedimientos porque están
diseñados para expresar la lógica capaz de resolver problemas generales.
Entre estos tenemos:
Basic
Pascal
Cobol
C
Fortran
Para que el lenguaje de procedimientos pueda funcionar debe traducirse a lenguaje de
máquina a fin de que la computadora lo entienda. Para ello se han de usar
programas traductores que realicen dicho proceso. Tienen la capacidad de soportar
programación estructurada.
3.4.4 Lenguajes orientados a problemas (4ta Generación)
Resultan más eficaces para la resolución de un tipo de problemas a costa de una
menor eficiencia para otros. Requieren poca capacitación especial de parte del
usuario Son considerados de muy alto nivel Diseñados para resolver
problemas especÃ−ficos
Incluye: lenguajes de consulta y generador de aplicaciones
Lenguajes de consulta:
Permiten a no programadores usar ciertos comandos de fácil comprensión para la
búsqueda y generación de reportes a partir de una base de datos.
Generador de aplicaciones:
Quiere decir que cuando se diseña uno de estos lenguajes, se tiene en cuenta que su
finalidad es la resolución de problemas, prescindiendo de la arquitectura del
computador. Contiene varios módulos que han sido preprogramados para cumplir
varias tareas.
3.4.5 Lenguajes Naturales (5ta Generación)
Lenguajes orientados a aplicaciones en inteligencia artificial, como lisp y prolog.
Dentro de este campo destacan las aplicaciones en sistemas expertos, juegos, visión
artificial (Jurasic Park) y robótica. Lisp es un lenguaje para procesamiento de listas
y manipulación de sÃ−mbolos. Prolog es un lenguaje basado en la lógica, para
aplicaciones de bases de datos e Inteligencia Artificial.
9
Podemos decir entonces, que los lenguajes de alto nivel, tienen las ventajas de mayor
legibilidad de los programas, portabilidad, facilidad de aprendizaje y facilidad de
modificación.
4. Algoritmos
4.1 Generalidades
El programador de computadoras es ante que nada una persona que resuelve
problemas, por lo que para llegar a ser un programador eficaz se necesita aprender a
resolver problemas de un modo riguroso y sistemático( o sea en un orden
establecido) . A la metodologÃ−a necesaria para resolver problemas mediante
programas se denomina MetodologÃ−a de la Programación. El eje central de esta
metodologÃ−a es el concepto de algoritmo.
Un algoritmo es un método para resolver un problema.
4.2 Pasos que se deben seguir en la elaboración de algoritmos:
Leer el enunciado del problema cuantas veces sea necesario asta entenderlo
completamente.
Determinar claramente con que datos de entrada se cuenta para la solucion del
problema.
Aclarar y determinar la información o resultados que se solicitan.
a) información intermedia
b) información final.
Definir que calculo y comparaciones se necesitan para llegar al resultado final .
Cálculos y comparaciones intermedia.
Cálculos y comparación final.
Generen cuenta toda clase de condiciones y restricciones para la solución del
problema.
La falta de análisis de algunos de estos términos causara problema en el trascurso
del desarrollo del algoritmo.
4.3 Análisis de Algoritmos
Un algoritmo es mejor cuantos menos recursos consuma. Criterio empresarial:
Maximizar la eficiencia; y se encarga de los siguientes análisis:
Eficiencia: Relación entre los recursos consumidos y los productos conseguidos.
Recursos consumidos:
Tiempo de ejecución.
Memoria principal:
Entradas/salidas a disco.
10
Comunicaciones, procesadores, etc.
Lo que se consigue:
Resolver un problema de forma exacta, forma aproximada o algunos casos.
Recursos consumidos (Analizar los recursos de hardware que consumiria)
4.4 Diseño de Algoritmos.
En la etapa de diseño se determina como hace el programa la tarea solicitada. La
resolución de un problema complejo se realiza dividiendo el problema en sub
problemas y a continuación dividir estos sub problemas en otros de nivel mas bajo,
hasta que pueda ser implementada una solución en la computadora. Este método
se conoce técnicamente como diseño descendente o modular. El proceso de
romper el problema en cada etapa y expresar cada paso en forma
mas detallada se denomina refinamiento sucesivo.
Cada sub programa es resuelto mediante un modulo que tiene un solo punto de
entrada Y un punto de salida
Cualquier programa bien diseñado consta de un programa principal (modulo de
nivel mas alto) que llama a sub programas (módulos de nivel mas bajo) que a su vez
pueden llamar a otros sub programas. Los programas estructurados de esta forma se
dice que tienen un diseño modular y el método de romper el programa en
módulos más pequeño se llama Programación Modular. Los módulos pueden
ser planeados, codificados, comprobados y depurados independientemente (incluso
por diferentes programadores) y a continuación combinarlos entre si. El proceso
implica la ejecución de los siguientes pasos hasta que el programa se termina:
Programar modulo.
Comprobar el modulo.
Si es necesario, depurar el modulo.
Combinar el modulo con los módulos anteriores.
El proceso que convierte los resultados del análisis del problema en un diseño
modular con refinamiento sucesivo que permitan una posterior traducción al
lenguaje se denomina diseño de algoritmo.
El diseño del algoritmo es independiente del lenguaje de programación en el que
se vaya a codificar posteriormente.
El acto de diseñar un algoritmo puede considerarse como una tarea que
difÃ−cilmente podrá ser del todo automatizada.
Todo problema algorÃ−tmico es un reto para su diseñador, algunos resultan
inmediatos de resolver, otros son bastante complejos. La investigación en esta área
ha permitido descubrir un conjunto de métodos o esquemas de diseño hacia los
11
cuales puede orientarse la realización de muchos algoritmos.
No obstante, y a pesar de que resulta mas adecuado en bastantes casos utilizar alguno
de estos esquemas que realizar un diseño desde cero, idear un algoritmo continua
siendo una labor bastante creativa donde los conocimientos y la experiencia del
propio diseñador tiene un papel fundamental.
El diseño de un algoritmo que resuelva un problema es, en general, una tarea
difÃ−cil. Una forma de facilitar esta labor consiste en recurrir a técnicas conocidas
de diseño de algoritmos, se decir, a esquemas muy generales que pueden adaptarse
a un problema particular al detallar las partes generales del esquema.
Muchos problemas pueden resolverse buscando una solución fácil y directa pero, a
la vez bastante ineficiente. Este método, llamado de fuerza bruta, puede ser muy
directo, pero con un poco de análisis puede encontrarse algoritmos más eficientes.
El esquema mas sencillo quizás sea el llamado divide y vencerás, basado en la
descomposición de un problema en subproblemas. Otros esquemas requieren un
análisis minucioso del problema de forma que la solución se vaya construyendo en
etapas. Si puede preverse que decisión conviene en cada etapa para producir cierto
tipo de mejor resultado, tenemos una solución voraz, si la decisión en una etapa,
solo puede tomarse tras considerar varias soluciones de otras etapas mas simples, la
solución es dinámica. Aun asÃ−, hay problemas cuya solución no puede hallarse
sino mediante un proceso de búsqueda, a pesar de lo complejas que son las
operaciones de búsqueda, su uso adecuado mediante el esquema de búsqueda con
retroceso (o backtracking) permite ganar gran eficiencia respecto a soluciones de
fuerza bruta. Por ultimo, conviene conocer otros métodos de diseño de
algoritmos que también resultan de utilidad práctica.
Nos estamos refiriendo a métodos basados en la mejora de la eficiencia (por
ejemplo, el uso de parámetros de acumulación al resolver problemas utilizando
divide y vencerás, y el empleo de tablas como estructura auxiliar para la resolución
eficiente de problemas donde se aplica programación dinámica), y a métodos
basados en transformaciones del dominio para encontrar una solución mas
fácilmente a un problema en un dominio transformado, siendo dicha solución
finalmente adaptada al dominio original.
4.4.1 Consideraciones y Criterios para Diseñar Algoritmos
Algunas consideraciones estilÃ−sticas pueden contribuir a mejor la calidad de los
algoritmos (y programas) mediante la reducción del numero de errores que aparecen
al desarrollar los. También influyen haciendo que nuestro algoritmo resulten más
fáciles de leer y entender para otras personas.
Los criterios de estilo pueden reflejarse en un conjunto de normas de estilo de
codificación. Ello asegura que tanto algoritmos como programa resulten legibles y
puedan modificarse fácilmente en caso de necesidad. Generalmente, estas normas
de estilo se dirigen hacia aspectos como la forma de construir los nombres de
variables o tipo de datos que aparezcan., la tipografÃ−a seguida ala hora de escribir
nombres de variables, subprogramas, palabras claves, etc. El modo de encolumnar las
distintas partes de un algoritmo para facilitar su lectura y comprensión, y la normas
sobre como y donde deben de introducirse
los comentarios.
Estilo y calidad de los programas van fuertemente unidos. Ante la pregunta
¿Cuáles son las caracterÃ−stica de un buen algoritmo?, las siguientes
respuestas reflejan, cierta medida, los factores que identifican la calidad en ellos.
12
Corrección, el algoritmo debe funcionar.
Nunca se debe olvidar que la caracterÃ−stica más simple e importante de un
algoritmo es que funcione. Puede aparecer obvio, pero resulta difÃ−cil de asegurar en
algoritmos complejos.
Eficiencia, el algoritmo no debe desaprovechar recursos. La eficiencia de un
algoritmo se mide por los recursos que este consume. En particular, se habla de la
memoria y del tiempo de ejecución . A pesar de que con la reducción de los costes
del hardware es posible diseñar computadores más rápidos y con más memoria,
no hay que desperdiciar estos recursos y tratar de desarrollar algoritmos más
eficientes.
Claridad, el algoritmo debe estar bien documentación. La documentación ayuda a
comprender el funcionamiento de los algoritmos. Ciertos detalles o algunas partes
especiales de los mismos pueden olvidarse fácilmente o quedar oscura si no están
adecuadamente comentadas.
4.5 CaracterÃ−sticas de los Algoritmos
Las caracterÃ−sticas fundamentales que debe cumplir todo algoritmo son:
Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener
el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo se debe terminar en algún
momento; o sea, debe tener un numero finito de pasos.
La definición de un algoritmo debe definir tres partes: Entrada, Proceso y Salida.
En el algoritmo de receta de cocina se tendrá:
Entrada: ingrediente y utensilios empleados.
Proceso: elaboración de la receta en la cocina.
Salida: terminación del plato.
5. Diagramas de Flujo de Datos (DFD)
5.1 Definición de diagramas de flujo de datos
Es la representación gráfica de flujo de un algoritmo o de secuencia rutinarias. Se
basan en la utilización de diversos sÃ−mbolos para representar operaciones
especÃ−ficas. Se les llama diagramas de flujo porque los sÃ−mbolos utilizados se
conectan por medio de flechas para indicar la secuencia de la operación.
5.2 Algunos de los sÃ−mbolos utilizados para hacer diagramas de flujo de datos
Los sÃ−mbolos que se utilizan para diseño se someten a una normalización, es
decir, se hicieron sÃ−mbolos casi universales, ya que, en un principio cada usuario
podrÃ−a tener sus propios sÃ−mbolos para representar sus procesos en forma de
Diagrama de flujo. Esto trajo como consecuencia que sólo aquel que conocÃ−a sus
13
sÃ−mbolos, los podÃ−a interpretar. La simbologÃ−a utilizada para la elaboración
de diagramas de flujo es variable y debe ajustarse a las normas preestablecidas
universalmente para dichos sÃ−mbolos o datos.
5.3 CaracterÃ−sticas de los diagramas de flujo de datos
En los diagramas de flujo se presuponen los siguientes aspectos:
⋅ Existe siempre un camino que permite llegar a una solución (finalización
del algoritmo).
⋅ Existe un único inicio del proceso.
⋅ Existe un único punto de fin para el proceso de flujo (salvo del rombo que
indica una comparación con dos caminos posibles).
5.4 Tipos de Diagrama de Flujo de Datos.
⋅ 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.
⋅ Formato horizontal: En él, el flujo o la secuencia de las operaciones, va de
izquierda a derecha.
⋅ 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.
⋅ 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.
5.5 Desarrollo de Diagramas de Flujo de Datos
Las siguientes son acciones previas a la realización del diagrama de flujo:
⋅ 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.
⋅ Definir qué se espera obtener del diagrama de flujo.
⋅ Identificar quién lo empleará y cómo.
⋅ Establecer el nivel de detalle requerido.
⋅ Determinar los lÃ−mites del proceso a describir. Los pasos a seguir para
construir el diagrama de flujo son :
⋅ 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.
⋅ Identificar y listar las principales actividades/subprocesos que están
incluidos en el proceso a describir y su orden cronológico.
⋅ Si el nivel de detalle definido incluye actividades menores, listarlas
también.
⋅ Identificar y listar los puntos de decisión.
⋅ Construir el diagrama respetando la secuencia cronológica y asignando los
14
correspondientes sÃ−mbolos.
⋅ Asignar un tÃ−tulo al diagrama y verificar que esté completo y describa
con exactitud el proceso elegido.
5.6 Ventajas de Utilizar Diagramas de Flujo de Datos
⋅ 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.
⋅ 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.
⋅ Muestran las interfaces cliente-proveedor y las transacciones que en ellas se
realizan, facilitando a los empleados el análisis de las mismas.
⋅ 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.
6. Pseudcodigos
6.1 Definición de Pseudocódigo
Pseudocódigo es la descripción de un algoritmo que asemeja a un lenguaje de
programación pero con algunas convenciones del lenguaje natural. Tiene varias
ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco
espacio que se requiere para representar instrucciones complejas. El pseudocódigo
no está regido por ningún estándar. pseudo viene de falso y por ende es un
código al que aunque es entendible no se aplica al proceso que debe realizar la
maquina.
6.2 Funciones y operaciones
Cada autor usa su propio pseudocódigo con sus respectivas convenciones. Por
ejemplo, considere la instrucción "Reemplace el valor de la variable x por el valor
de la variable y":
asigne a el valor de
Las operaciones aritméticas se representan de la forma usual en matemáticas.
y las operaciones complejas se representan del mismo modo:
6.3: Definición de estructuras de control
Se consideran tres estructuras de control para desarrollar los procedimientos que son:
6.3.1 Secuencial
Las instrucciones se siguen en una secuencia fija que normalmente viene dada por el
número de renglón. Es decir que las instrucciones se ejecutan de arriba hacia abajo.
Las instrucciones se ejecutan dependiendo de la condición dada dentro del
15
algoritmo.
6.3.2 Selectiva
La instrucción selectiva determina si una determinada instrucción se ejecuta o no,
según el cumplimiento de una condición P.
Diagrama de flujo que muestra el funcionamiento de la instrucción condicional
La condición P es una variable booleana o una función reducible a booleana
(lógica, Verdadero/Falso). Si esta condición es cierta se ejecuta Instrucciones1, si
no es asÃ−, ésta no se ejecuta.
6.3.3 Selectiva doble (alternativa)
La instrucción selectiva realiza una instrucción de dos posibles, según el
cumplimiento de una condición P.
Diagrama de flujo que muestra el funcionamiento de la instrucción condicional
La condición P es una variable booleana o una función reducible a booleana
(lógica, Verdadero/Falso). Si esta condición es cierta se ejecuta Instrucciones1, si
no es asÃ−, entonces se ejecuta Instrucciones2.
6.4: Desarrollo de algoritmos
Con un buen pseudocódigo se puede desarrollar cualquier algoritmo que:
⋅ Tenga un único punto de inicio.
⋅ Tenga un número finito de posibles puntos de término.
⋅ Haya un número finito de caminos, entre el punto de inicio y los posibles
puntos de término.
6.5 Ventajas de utilizar un Pseudocódigo a un diagrama de flujo
Ocupan mucho menos espacio en el desarrollo del problema.
Permite representar de forma fácil operaciones repetitivas complejas.
Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación
formal.
Si se siguen las reglas de indentación se puede observar claramente los niveles en la
estructura del programa.
En los procesos de aprendizaje de los alumnos de programación, estos están más
cerca del paso siguiente (codificación en un lenguaje determinado, que los que se
inician en esto con la modalidad Diagramas de Flujo).
Mejora la claridad de la solución de un problema.
16
7. Compilador
7.1 Compilador o Traductor
En el caso de que el lenguaje fuente sea un lenguaje de programación de alto nivel y
el objeto sea un lenguaje de bajo nivel (ensamblador o código de máquina), a
dicho traductor se le denomina compilador. Un ensamblador es un compilador cuyo
lenguaje fuente es el lenguaje ensamblador. Un intérprete no genera un programa
equivalente, sino que toma una sentencia del programa fuente en un lenguaje de alto
nivel y la traduce al código equivalente y al mismo tiempo lo ejecuta.
Históricamente, con la escasez de memoria de los primeros ordenadores, se puso de
moda el uso de intérpretes frente a los compiladores, pues el programa fuente sin
traducir y el intérprete juntos daban una ocupación de memoria menor que la
resultante de los compiladores. Por ello los primeros ordenadores personales iban
siempre acompañados de un intérprete de BASIC (Spectrum, Commodore
VIC-20, PC XT de IBM, etc.). La mejor información sobre los errores por parte del
compilador asÃ− como una mayor velocidad de ejecución del código resultante
hizo que poco a poco se impusieran los compiladores. Hoy en dÃ−a, y con el
problema de la memoria prácticamente resuelto, se puede hablar de un gran
predominio de los compiladores frente a los intérpretes, aunque intérpretes como
los incluidos en los navegadores de Internet para interpretar el código JVM de Java
son la gran excepción.
7.2 Clasificación de los compiladores:
El programa compilador traduce las instrucciones en un lenguaje de alto nivel a
instrucciones que la computadora puede interpretar y ejecutar. Para cada lenguaje de
programación se requiere un compilador separado. El compilador traduce todo el
programa antes de ejecutarlo. Los compiladores son, pues, programas de traducción
insertados en la memoria por el sistema operativo para convertir programas de
cómputo en pulsaciones electrónicas ejecutables (lenguaje de máquina). Los
compiladores pueden ser de:
⋅ una sola pasada: examina el código fuente una vez, generando el código o
programa objeto.
⋅ pasadas múltiples: requieren pasos intermedios para producir un código en
otro lenguaje, y una pasada final para producir y optimizar el código
producido durante los pasos anteriores.
⋅ Optimación: lee un código fuente, lo analiza y descubre errores potenciales
sin ejecutar el programa.
⋅ Compiladores incrementales: generan un código objeto instrucción por
instrucción (en vez de hacerlo para todo el programa) cuando el usuario
teclea cada orden individual. El otro tipo de compiladores requiere que todos
los enunciados o instrucciones se compilen conjuntamente.
⋅ Ensamblador: el lenguaje fuente es lenguaje ensamblador y posee una
estructura sencilla.
⋅ Compilador cruzado: se genera código en lenguaje objeto para una
máquina diferente de la que se está utilizando para compilar. Es
perfectamente normal construir un compilador de Pascal que genere código
para MS-DOS y que el compilador funcione en Linux y se haya escrito en
C++.
⋅ Compilador con montador: compilador que compila distintos módulos de
17
forma independiente y después es capaz de enlazarlos.
⋅ Autocompilador: compilador que está escrito en el mismo lenguaje que va a
compilar. Evidentemente, no se puede ejecutar la primera vez. Sirve para
hacer ampliaciones al lenguaje, mejorar el código generado, etc.
⋅ Metacompilador: es sinónimo de compilador de compiladores y se refiere a
un programa que recibe como entrada las especificaciones del lenguaje para
el que se desea obtener un compilador y genera como salida el compilador
para ese lenguaje. El desarrollo de los metacompiladores se encuentra con la
dificultad de unir la generación de código con la parte de análisis. Lo que
sÃ− se han desarrollado son generadores de analizadores léxicos y
sintácticos.
Descompilador: es un programa que acepta como entrada código máquina y lo
traduce a un lenguaje de alto nivel, realizando el proceso inverso a la compilación.
7.3 Función de Un Compilador
A grandes rasgos un compilador es un programa que lee un programa escrito es un
lenguaje, el lenguaje fuente, y lo traduce a un programa equivalente en otro lenguaje,
el lenguaje objeto. Como parte importante de este proceso de traducción, el
compilador informa a su usuario de la presencia de errores en el programa fuente.
A primera vista, la diversidad de compiladores puede parecer abrumadora. Hay miles
de lenguajes fuente, desde los lenguajes de programación tradicionales, como
FORTRAN o Pascal, hasta los lenguajes especializados que han surgido virtualmente
en todas las áreas de aplicación de la informática. Los lenguajes objeto son
igualmente variados; un lenguaje objeto puede ser otro lenguaje de programación o
el lenguaje de máquina de cualquier computador entre un microprocesador y un
supercomputador. A pesar de existir una aparente complejidad por la clasificación
de los compiladores, las tareas básicas que debe realizar cualquier compilador son
esencialmente las mismas. Al comprender tales tareas, se pueden construir
compiladores para una gran diversidad de lenguajes fuente y máquinas objeto
utilizando las mismas técnicas básicas.
Nuestro conocimiento sobre cómo organizar y escribir compiladores ha aumentado
mucho desde que comenzaron a aparecer los primeros compiladores a principios de
los años cincuenta. Es difÃ−cil dar una fecha exacta de la aparición del primer
compilador, porque en un principio gran parte del trabajo de experimentación y
aplicación se realizó de manera independiente por varios grupos. Gran parte de los
primeros trabajos de compilación estaba relacionada con la traducción de
fórmulas aritméticas a código de máquina.
En la década de 1950, se consideró a los compiladores como programas
notablemente difÃ−ciles de escribir. EL primer compilador de FORTRAN, por
ejemplo, necesitó para su implantación de 18 años de trabajo en grupo (Backus y
otros [1975]). Desde entonces, se han descubierto técnicas sistemáticas para
manejar muchas de las importantes tareas que surgen en la compilación. También
se han desarrollado buenos lenguajes de implantación, entornos de programación y
herramientas de software. Con estos avances, puede hacerse un compilador real
incluso como proyecto de estudio en un curso de un semestre sobre diseño sobre de
compiladores.
7.4 Ventajas de compilar frente a interpretar:
18
Se compila una vez, se ejecutan varias veces.
En bucles, la compilación genera código equivalente al bucle, pero
interpretándolo se traduce tantas veces una lÃ−nea como veces se repite el bucle.
El compilador tiene una visión global del programa, por lo que la información de
mensajes de error es más detallada.
Ventajas del intérprete frente al compilador:
Un intérprete necesita menos memoria que un compilador. En principio eran más
abundantes dado que los ordenadores tenÃ−an poca memoria.
Permiten una mayor interactividad con el código en tiempo de desarrollo.
8. Elaboración de Programas.
Los programas son los bloques de construcción de los sistemas de información.
Cuando se hacen productos de software, los programadores siguen un proceso que se
parece al ciclo de vida de los sistemas de información completos. El ciclo de vida de
desarrollo de sistemas (SDLC). Ahora discutiremos el ciclo de vida del desarrollo de
software que es parecido.
8.1 Análisis de las necesidades.
Este análisis es la etapa donde se identifica y entiende una necesidad o problema.
En la primera etapa el programador revisa el diseño del programa para ver lo que el
usuario necesita para hacer una interfaz y el punto de inicio, y además lo que el
usuario necesita que el programa realice. Normalmente, el usuario final debe tener
mucha información para la capa del análisis de las necesidades. Una ves que el
programador a terminado el punto inicial y el punto final del programa, puede
comenzar a diseñar el código.
8.2 Diseño del programa.
El diseño del programa es la fase done el programador comienza a aproximarse a la
lógica que utilizaran cuando empiece la creación de código real. Se pueden usar
muchas herramientas en el proceso de diseño de un programa, aunque a menudo los
programadores usan pizarras y servilletas. Tres de estas herramientas del diseño son
los diagramas IPO (para la programación estructurada) lÃ−neas con cÃ−rculos y
mensajes (programación orientada a objeto) y pseodocódigos.
8.3 Desarrollo.
El desarrollo o codificación se relaciona con la escritura y pruebas de código
fuente. La fuente de desarrollo del software es parecida a la fase de desarrollo del
ciclo de vida de los sistemas, pero en lugar de determinar el diseño general del
sistema, el programador escribe el código que implementa los requerimientos del
usuario. El programador puede escribir el código fuente en un editor de texto y
luego compilar el código. O puede utilizar un editor visual y crear una imagen de la
aplicación antes de compilar el código. La mayor parte del trabajo que se requiere
para terminar un programa se ocupa en esta etapa utilizando los lenguajes de
19
programación de los que ha aprendido anteriormente. A pesar de sus mejores
esfuerzos, los programadores inevitablemente crean errores en sus programas.
Existen dos tipos principales de errores: errores de sintaxis y errores lógicos. Los
errores de sintaxis violan las reglas del lenguaje de programación. Encontrar errores
de sintaxis es relevantemente sencillo debido a que el compilador o intérprete los
señalara para el programador. Los errores lógicos, errores realizan el algoritmo,
son más difÃ−ciles de encontrar y probablemente no aparecerán sino hasta
semanas o meses después de que ha sido implementado. El proceso de identificar y
eliminar estos errores que se conoce como depuración.
8.4 La implementación.
La implementación se relaciona con la instalación del software y con permitir que
los usuarios lo prueben. Este paso normalmente incluye una gran cantidad de
documentación, tanto dentro del código como en la forma de manuales para los
usuarios. Muchos programadores también le dirán que realizan la mayor parte de
la depuración en esta capa. Es realmente en la capa de implementación cuando
cualquier error de concepción que haya tenido el programador en el código que se
encuentra y repara.
8.5 Mantenimiento.
El mantenimiento comienza tan pronto como el programa ha sido instalado. El
trabajo en los productos continúa por distintas razones. Es probable que algunos
errores menores no se hayan reparado en el momento en que el programa fue
terminado. También es probable que los programadores quieran añadir funciones
nuevas importantes en respuesta a las demandas del mercado o las solicitudes de los
usuarios. à sta es la etapa más larga de ciclo de vida del desarrollo de programas, y
algunas veces puede durar varios años.
Conclusión
La programación, Los lenguajes que figura la misma y el Desarrollo de software son
elementos imprescindibles para el mundo de la computación hoy en dÃ−a.
También como ha vendido de generación en generación la evolución de La
Programación y el desarrollo de software podemos calificarla como la protagonista
de muchos de los adelantos tecnológicos que en la actualidad podemos dar uso.
Al finalizar con este trabajo nutrimos de conocimientos nuestras mentes de los
conocimientos básicos de la programación asÃ− como también del largo y
delicado proceso que conlleva el Desarrollo de Software, de los elementos que en ella
entran y de los pasos que son necesarios a la hora de la elaboración de Software.
En resumen tratamos de aprender y sacar provecho de este trabajo al máximo como
también esperamos que usted querido lector que acaba de concluir leyendo este
valioso material le sea de mucho provecho y ayuda.
BIBLIOGRAFIA:
◊ Enciclopedia universal de los conocimientos (Grupo Océano), Modulo 6
“Computación” Pág. 43-49.
◊ Desarrollo de algoritmos y sus aplicaciones. Guillermo Correa. Pág. 11-60.
20
◊ Introducción a la computación y a la programación estructurada Pág. 213-241. y
241-269. Guillermo Levine. Grupo Micrologica, Universidad Micrologica de
México.
◊ Enciclopedia del lenguaje C. 1ª Edición.
Francisco Javier Ceballos. Edición Alfa omega rama 1999
◊ http://www.wikipedia.com/programacion
◊ http://www.mitecnologico.com/Main/ProgramacionEstructurada.
Glosario
Anidamiento. En los lenguajes de programación estructurada, el anidamiento está
relacionado a la inclusión de estructuras de control dentro de otras, usualmente
indicado mediante la inclusión de distintos niveles de sangrÃ−a (llamada
indentation en inglés) dentro del código fuente.
Booleanas: Es un tipo de datos (en computación) que puede representar valores de
lógica binaria, esto es, valores que representen falso o verdadero. Se utiliza
normalmente en la programación, estadÃ−stica, electrónica, matemáticas
(Ôlgebra booleana), etc...
Bucle: en programación también llamado ciclo, es una sentencia que se realiza
repetidas veces a un trozo aislado de código, hasta que la condición asignada a
dicho bucle deje de cumplirse.
Bug: (Error de software en español) es el resultado de un fallo o deficiencia durante
el proceso de creación de programas de ordenador o computadora (software).
Identacion: En los lenguajes de programación de computadoras, la indentación se
utiliza para mejorar la legibilidad del código fuente por parte de los programadores,
teniendo en cuenta que los compiladores o intérpretes raramente consideran los
espacios en blanco entre las sentencias de un programa. Sin embargo, en ciertos
lenguajes de programación como Haskell, Occam y Python, la indentación se
utiliza para delimitar la estructura del programa permitiendo establecer bloques de
código.
Pseudo: Pseudo o seudo, es un prefijo proveniente del griego Ï Îµá¿¦Î´Î¿-, significa
falso.
Sentencia: Es una o varias instrucciones especificadas en un lenguaje de
programación que pueden ser ejecutables la computadora.
PROGRAMASION
THE GRAPLEX
2009
36
21
Descargar