Beruflich Dokumente
Kultur Dokumente
Todas las estructuras de control tienen un único punto de entrada. Las estructuras de control se pueden
clasificar en: secuenciales, iterativas y de control avanzadas. Esta es una de las cosas que permiten que
la programación se rija por los principios de la programación estructurada.
Los lenguajes de programación modernos tienen estructuras de control similares. Básicamente lo que
varía entre las estructuras de control de los diferentes lenguajes es su sintaxis; cada lenguaje tiene una
sintaxis propia para expresar la estructura.
Otros lenguajes ofrecen estructuras diferentes, como por ejemplo los comandos guardados.
Antecedentes
El término "estructuras de control" viene del campo de la ciencia computacional. Cuando se presentan
implementaciones de Java para las estructuras de control, nos referimos a ellas con la terminología de
la Especificación del lenguaje Java, que se refiera a ella como instrucciones modernas.
Ejecución secuencial
Pero, por lo general, las instrucciones se ejecutan una después de la otra, en el orden en que están
escritas, es decir, en secuencia. Este proceso se conoce como ejecución secuencial.
Transferencia de control
En Java, como en otros lenguajes de programación por excelencia como C y C++, el programador
puede especificar que la siguiente instrucciones a ejecutarse tal vez no sea la siguiente en secuencia.
Esto se conoce como transferencia de control. Hay que tener en cuenta que la instrucción goto es una
palabra reservada pero no se utiliza ni se recomienda. Un programa bien estructurado no necesita esta
instrucción.1
De selección
Las estructuras de control de selección ejecutan un bloque de instrucciones u otro, o saltan a un
subprograma o subrutina según se cumpla o no una condición.
Estructura de control
Las estructuras de control, denominadas también sentencias de control, permiten tomar decisiones y
realizar un proceso repetidas veces. Se trata de estructuras muy importantes, ya que son las encargadas
de controlar el flujo de un programa, según los requerimientos del mismo.
Selección if simple
Artículo principal: Sentencias if
Se trata de una estructura de control que permite redirigir un curso de acción según la evaluación de
una condición simple, sea falsa o verdadera.
Si la condición es verdadera, se ejecuta el bloque de sentencias 1; de lo contrario, se ejecuta el bloque
de sentencias 2.
IF (Condición) THEN
(Bloque de sentencias 1)
ELSE
(Bloque de sentencias 2)
END IF
.....
Select-Case
Artículo principal: Sentencia Select-Case
Esta sentencia permite ejecutar una de entre varias acciones en función del valor de una expresión. Es
una alternativa a if then else cuando se compara la misma expresión con diferentes valores.
• Se evalúa la expresión, dando como resultado un número.
• Luego, se recorren los "Case" dentro de la estructura buscando que el número coincida con uno
de los valores.
• Es necesario que coincidan todos sus valores.
• Cuando se encuentra la primera coincidencia, se ejecuta el bloque de sentencias correspondiente
y se sale de la estructura Select-Case.
• Si no se encuentra ninguna coincidencia con ningún valor, se ejecuta el bloque de sentencias de
la sección "Case Else".
Select (Expresión)
Case Valor1
(Bloque de sentencias 1)
Case Valor2
(Bloque de sentencias 2)
Case Valor n
(Bloque de sentencias n)
Case Else
(Bloque de sentencias "Else")
End Select
Do-While
Artículo principal: Bucle do
Mientras la condición sea verdadera, se ejecutarán las sentencias del bloque.
Do While (Condición)
(Bloque de sentencias)
Loop
Do-Until
Se ejecuta el bloque de sentencias, hasta que la condición sea verdadera
Do
(Bloque de sentencias)
Loop Until (Condición)
For-Next
Artículo principal: Bucle for
La sentencia For da lugar a un lazo o bucle, y permite ejecutar un conjunto de sentencias cierto número
de veces.
• Primero, se evalúan las expresiones 1 y 2, dando como resultado dos números.
• La variable del bucle recorrerá los valores desde el número dado por la expresión 1 hasta el
número dado por la expresión 2.
• El bloque de sentencias se ejecutará en cada uno de los valores que tome la variable del bucle.
For (Variable) = (Expresión1) To (Expresión2) STEP (Salto)
(Bloque de sentencias)
Next
Estructuras anidadas
Las estructuras de control básicas pueden anidarse; es decir, pueden ponerse una dentro de otra.
Los algoritmos se pueden expresar por fórmulas, diagramas de flujo, y pseudocódigos. Ésta última
representación es la más utilizada en lenguajes estructurados como Turbo Pascal.
1.3 Algoritmo Cotidiano
Un algoritmo cotidiano es:
La serie de pasos que realizamos en nuestra vida diaria para realizar las diferentes tareas y actividades
comunes, desde los pasos al levantarnos, así como ir de compras, etc.
1.4 Definición De Lenguaje Algorítmico
Para definir el lenguaje algorítmico:
Cabe recordar que el conjunto de todas las operaciones a realizar, y el orden en el que deben efectuarse,
se le denomina algoritmo.
Así que el lenguaje algorítmico es aquel por medio del cual se realiza un análisis previo del problema a
resolver y encontrar un método que permita resolverlo.
1.5 Historia Y Aplicación De Los Lenguajes Algorítmicos
Al igual que los idiomas sirven de vehículo de comunicación entre los seres humanos, existen 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 los 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 como mencionamos anteriormente en el apartado 1.1 se define un
código especial llamado mnemotécnico 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 velocidad, 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.
1.6 Definición De Problemas
Con el fin de resolver un problema utilizando un sistema de cómputo, debe seguirse una serie de pasos
que permiten avanzar por etapas bien definidas hacia la solución y ejecución de la misma
Esta serie de fases o pasos deben seguirlas todos los programadores.
Estas etapas son las siguientes
.
Definición del problema
La primera fase en la resolución de un problema por computadora es la definición o análisis del
problema. En donde lo más importante es que conozcamos exactamente lo que debe hacer el programa
y "que se desea obtener al final del proceso”
Para poder definir con precisión el problema se requiere que las especificaciones de entrada y salida
sean descritas con detalle ya que esto es un requisito para lograr una solución eficaz; por lo que es
conveniente hacerse las siguientes preguntas:
1.- ¿Qué entradas se requieren? (Tipo Y Cantidad)
2.- ¿Cuál es la salida deseada? (Tipo Y Cantidad)
3.- ¿Qué método produce la salida deseada?}
1.7 Análisis De Los Datos
Una vez que el problema ha sido definido y comprendido, deben analizarse los siguientes aspectos:
1.- Los resultados esperados.
2.- Los datos disponibles.
3.- Herramientas a nuestro alcance para manipular los datos y alcanzar un resultado.
Esta sería un diagrama de la resolución de un problema en su más mínima expresión.
Y mientras esto no se comprenda no puede pasarse a la siguiente etapa.
1.8 Diseño De La Solución
Para realizar el diseño de la solución:
Como todos sabemos, una computadora no tiene capacidad para solucionar problemas más que cuando
se le proporcionan los sucesivos pasos a realizar, esto se refiere a la obtención de un algoritmo que
resuelva adecuadamente el problema.
En caso de que obtengamos varios algoritmos, seleccionaremos uno de ellos utilizando criterios ya
conocidos.
Esta etapa incluye:
La descripción del algoritmo resultante en un lenguaje natural, en un diagrama de flujo o natural de
programación.
De esta manera, solo se establece la metodología para alcanzar la solución en forma conceptual, es
decir; sin alcanzar la implementación en el sistema de cómputo.
Así tenemos que la información proporcionada constituye su entrada y la información producida por el
algoritmo constituye su salida.
Los problemas complejos se pueden resolver más eficazmente por la computadora cuando se dividen
en subproblemas que sean más fáciles de solucionar.
|
1.9 Codificación
Codificación es la escritura en un lenguaje de programación de la representación del algoritmo
desarrollada en etapas precedentes. Esto se refiere a la obtención de un programa definitivo que pueda
ser comprensible para la máquina.
Cabe destacar que si la codificación original se realizó en papel, previo a la compilación deberá existir
un paso conocido como trascripción.
Y posteriormente, una vez que el algoritmo se ha convertido en un programa fuente. Este programa
fuente debe ser traducido a lenguaje máquina, este proceso se realiza con el compilador, y se obtiene el
programa objeto, (siempre y cuando el programa fuente sea correcto) que posteriormente se vuelve un
programa ejecutable.
Estos pasos a continuación se describen de una forma esquematizada:
1.10 Prueba y Depuración
La Prueba se realiza tras la compilación.
Si tras la compilación se presentan errores (errores de compilación) en el programa fuente, es preciso
volver a editar el programa, corregir los errores y compilar de nuevo, este proceso se repite hasta que
no se producen errores.
De esta manera se obtiene el programa objeto, que todavía no es ejecutable directamente, pero si no
contiene errores se debe instruir al sistema para que realice la fase de montaje o enlace del programa
objeto con las librerías del programa del compilador; este proceso de montaje produce un programa
ejecutable.
La Depuración es el proceso de encontrar los errores del programa y corregir o eliminar dichos
errores.
Cuando se ejecuta un programa, se pueden producir tres tipos de errores:
1.- Errores de compilación. Se producen normalmente por un uso incorrecto de las reglas del lenguaje
de programación y suelen ser errores de sintaxis, por lo tanto la computadora no puede comprender la
instrucción, y obviamente no se obtendrá el programa objeto, y el compilador imprimirá una lista de
todos los errores encontrados durante la compilación.
2.- Errores de ejecución. Estos errores se producen por instrucciones que las computadoras pueden
comprender, pero no ejecutar. Ejemplos de éstos son: una división por cero, y raíces cuadradas de
números negativos; por lo que en este caso se detiene la ejecución del programa y se imprime un
mensaje de error.
3.- Errores lógicos. Se producen en la lógica del programa y la fuente del error suele ser el diseño del
algoritmo. Estos errores son los más difíciles de detectar, ya que el programa puede funcionar y no
producir errores de compilación ni ejecución, y solo puede detectarse cuando se advierte un error por la
obtención de resultados incorrectos.
En este caso se debe volver a la fase del diseño del algoritmo, modificarlo, cambiar el programa fuente,
compilar y ejecutar una vez más.
1.11 Documentación
La documentación de un problema consta de las descripciones de los pasos a dar en el proceso de
resolución de un problema. La importancia de la documentación es por su decisiva influencia en el
producto final.
Programas pobremente documentados son difíciles de leer, más difíciles de depurar y casi imposibles
de mantener y modificar. Por ello la importancia de la documentación, sin la documentación es
imposible corregir errores futuros o bien cambiar el programa
1.12 Mantenimiento
El mantenimiento se define como la modificación del programa por medio de actualizaciones, que
mejoran al programa, corrigiendo errores o bien actualizándolos para un mejor funcionamiento.
Por ello la documentación es sin duda muy importante para poder llevar a cabo el mantenimiento.
Instituto Tecnológico Superior De Coatzacoalcos Diseño Estructural de algoritmos I
Unidad I
COMPILACIÓN
Código
Fuente
Programa
Ejecutable
Código objeto
Codificación
Diseño de la solución
Análisis de los datos
Definición del problema
Prueba y depuración
Mantenimiento
Definición de un problema
Diseño
Del
Algoritmo
Resolución del problema con la computadora
Resolución de un problema
ALGORITMO RESULTANTE EN LENGUAJE NATURAL
ALGORITMO QUE RESUELVA EL PROBLEMA
TRANSCRIPCION
Si la codificación se escribió en papel
Se realiza la:
Algoritmo realizado en etapas anteriores
Para realizar la conversión del algoritmo en programa, se deben sustituir las palabras reservadas en
español por sus homónimos en inglés, (hablando de un lenguaje de alto nivel) y las operaciones,
instrucciones indicadas en lenguaje natural.
CODIFICACIÓN
COMPILACIÓN
PROGRAMA FUENTE
PROGRAMA OBJETO
PROGRAMA EJECUTABLE
INTERNA
Esta documentación son los comentarios o mensajes que facilitan el entendimiento del proceso.
EXTERNA
Incluye análisis, diagramas de flujo, y/o pseudocódigos, manuales de usuario, con instrucciones para
ejecutar el programa y para interpretar los resultados.
La documentación de un programa puede ser de dos tipos: