You are on page 1of 13

DESDE_HASTA_HACER

Se utiliza para ejecutar un bloque de instrucciones un número determinado de


veces. Para contar el numero de veces que se esta ejecutando el ciclo, existe
una variable denominada variable de control y se incrementa o decrementa
automáticamente en cada ejecución del ciclo.

Nota:

Su función es ejecutar un bloque de objetos mientras que la variable contadora


no alcance el límite establecido por el valor final. El contador es siempre una
variable de tipo de dato Real. Contiene además un valor inicial que será asignado
al contador al iniciar la ejecución del ciclo, un valor final y un valor de incremento.
Si el contador excede el valor final, la ejecución continuará a partir del objeto que
sigue al Cierre. En caso contrario, se ejecutará el cuerpo del ciclo y el contador
será incrementado en el valor indicado por el incremento.

Forma General:

Desde Var = Vi Hasta Vf Hacer Paso (Incremento)

Instrucción (es)

Fin_desde

Donde:

Var = Variable de control

Es una variable de Tipo Entero que nos permite controlar la Repetición de la


secuencia de Instrucciones que se encuentra dentro de la Estructura de Control
de Repetición Desde Hasta.

Vi= Valor inicial


Nos indica el valor inicial de la Repetición, puede llegar a ser un valor Constante,
una Variable o una operación.
Vf= Valor Final
Nos indica el valor al cual nosotros queremos llegar con la repetición, puede
llegar a ser un Valor Constante, una Variable o una operación.

Paso: Nos indica el paso de incremento de la Variable de Control, generalmente


es de a uno (se le suma uno a la Variable de Control) pero se podría plantearse
pasos de más de uno e inclusive paso negativos (decrementar la Variable de
Control)

Nota: el Paso puede ser positivo o negativo: si el positivo Hasta debe ser mayor
o igual que Desde; si es negativo Hasta debe ser menor o igual que Desde. Paso
no puede ser nulo; puede omitirse, en cuyo caso se asume valor de paso igual a
1
REGLAS DE FUNCIONAMIENTO:

1. Las variables de control, valor inicial y valor final deben ser todas del
mismo tipo.

2. Antes de la primera ejecución del bucle, a la variable de control se


asigna el valor inicial.

3. La última ejecución del bucle normalmente ocurre cuando la variable


de control es igual al valor final.

4. Cuando se utiliza la palabra reservada Hacer, la variable de control se


incremento en cada iteración.

5. Es ilegal intentar modificar el valor de la variable de control, valor inicial


y el valor final dentro del bucle.

6. El valor de la variable de control se queda indefinido cuando se termina


el bucle.
ELECCIÓN ESTRUCTURAS REPETITIVA ADECUADA

La elección adecuada de estructuras repetitivas es una de las partes más

importantes en el diseño de un algoritmo. La repetición de sentencias en el

interior del bucle requiere definir las condiciones de terminación del bucle con

sumo cuidado para evitar un bucle incorrecto o infinito.

En un bucle MIENTRAS – HACER, no siempre se ejecutará el proceso del

bucle y en ocasiones (condición falsa) no se ejecutará. El bucle DESDE -

HASTA se reserva para situaciones en que el número de repeticiones se

puede predecir y enumerar fácilmente antes que comience el bucle. Un bucle

DESDE - HASTA se puede reescribir fácilmente (normalmente con un bucle

MIENTRAS) utilizando otras estructuras. Cuando no se conocen con

anticipación cuántas veces se tiene que ejecutar un bucle, el uso de las

estructuras MIENTRAS es el más indicado, incluso aun cuando el bucle está

controlado por un simple incremento o decremento de un contador entero. Es

frecuente confundir estructuras SI ENTONCES con MIENTRAS, debido al

hecho que muchos algoritmos tienen estructuras que implican bucles dentro

de los cuáles se realizan estructuras de decisión secundarias.

En conclusión podemos decir que para seleccionar un bucle correcto se debe

tener en cuenta:

 Si el número de interacciones se conoce por adelantado, se debe

utilizar DESDE HASTA.


 Si el número de interacciones es indeterminado y el bucle no se debe

ejecutar cuando la condición sea falsa la primera vez, se debe utilizar

MIENTRAS.

 Si el número de interacciones es indeterminada y el bucle se debe

ejecutar siempre al menos una vez, utilizar REPETIR HASTA

 Si el número de interacciones es indeterminada y debe cumplir una

cierta condición ( Decisión ) y el bucle se debe ejecutar solo una vez,

utilizar SI ENTONCES

ESTRUCTURA ALTERNATIVA (CONDICIONAL) O DECISIÓN

Son aquellas que permiten decidir algo dependiendo del valor que asuma, a lo
cual deberá ejecutarse una o varias acciones relacionadas con ese valor.

Las estructuras condicionales comparan una variable contra otro(s) valor(es),


para que en base al resultado de esta comparación, se siga un curso de acción
dentro del programa. Cabe mencionar que la comparación se puede hacer contra
otra variable o contra una constante, según se necesite. Existen dos tipos
básicos, las simples y las múltiples.

Las estructuras selectivas o de selección se clasifican en:

 Estructura de selección simple (SI).

 Estructura de selección doble (SI SINO).

 Estructura de selección múltiple (EN CASO SEA)


ESTRUCTURA ALTERNATIVA

Permite ejecutar una bifurcación a un conjunto de instrucciones dependiendo


del cumplimiento de una condición El conjunto de instrucciones solamente
serán ejecutadas cuando la condición indicada sea verdadera.

ESTRUCTURA ALTERNATIVA SIMPLE (SI)

En la estructura de selección simple SI, evalúa una condición lógica y:

 Si la condición es verdadera se ejecuta la acción A. La acción A puede


ser una instrucción simple (una sola instrucción) o una instrucción
compuesta (un conjunto de instrucción).

 Si la condición es falsa, no se hace nada.

 La condición puede ser elaborada mediante la utilización de


operadores de relación así como operadores lógicos o booleanos.
ESTRUCTURA ALTERNATIVA DOBLE (SI SINO)

La estructura de selección doble SI SINO evalúa una condición lógica y:

 Si la condición es verdadera, ejecuta la acción A.

 Si la condición es falsa, ejecuta la acción B.

Tanto la acción A como la acción B pueden ser acciones simples (una sola acción)
o acciones compuestas (un conjunto de acciones).

Nota:

En el caso de acciones compuestas, estas serán delimitadas por inicio y fin.


ESTRUCTURAS DE SELECCIÓN ANIDADAS

Se dice que una estructura SI ( o SI SINO ) esta anidada cuando esta


contenida dentro de otra estructura SI o dentro de otra estructura SI SINO. No
existe límite en cuanto al nivel de anidamiento.

Esta estructura puede ser utilizada también para diseñar estructuras de


selección que contengan más de dos opciones. Se podrá tener entonces una
estructura si - entonces dentro de otra estructura si – entonces y otra dentro
de esta misma y así sucesivamente un número indeterminado de veces,
existiendo acciones diferentes dentro de cada una de estas instrucciones. Se
puede utilizar identación (sangría o sangrado) para evitar complejidad y así el
algoritmo sea más claro, creando una correspondencia entre palabras
reservadas.

DISEÑO MODULAR

Podemos definir la programación modular como aquélla que afronta la solución


de un problema descomponiéndolo en subproblemas más simples, cada uno de
los cuales se resuelve mediante un algoritmo o módulo más o menos
independiente del resto (de ahí su nombre: "programación modular")

Uno de los métodos fundamentales para resolver un problema es dividirlo en


problemas más pequeños, llamados subprogramas. Estos problemas pueden a
su vez ser divididos repetidamente en problemas más pequeños hasta que los
problemas más pequeños son solucionados. Esta técnica de dividir el problema
principal en subproblemas se denomina divide y vencerás. El método de diseño
se denomina diseño descendente debido a que comienza en la parte superior
con un problema general y se diseñan soluciones específicas a sus
subproblemas. Cada suproblema es deseable que sea independiente de los
restantes y se denomina módulo, de modo que cada problema principal se
subdivide en subproblemas. El problema principal se resuelve con el programa
principal (también llamado conductor del programa) y los subproblemas
(módulos) mediante subprogramas (llamados procedimientos y funciones).
Un subprograma está compuesto por un conjunto de instrucciones, pero que

realizan una tarea única.

Las ventajas de la programación modular son varias:

 Facilita la comprensión del problema y su resolución escalonada

 Aumenta la claridad y legibilidad de los programas

 Permite que varios programadores trabajen en el mismo problema a la

vez, puesto que cada uno puede trabajar en uno o varios módulos de

manera bastante independiente

 Reduce el tiempo de desarrollo, reutilizando módulos previamente

desarrollados

 Mejora la fiabilidad de los programas, porque es más sencillo diseñar y

depurar módulos pequeños que programas enormes

 Facilita el mantenimiento de los programas

Resumiendo, podemos afirmar sin temor a equivocarnos que es virtualmente


imposible escribir un programa de grandes dimensiones si no procedemos a
dividirlo en fragmentos más pequeños, abarcables por nuestro pobre intelecto
humano.

Recuérdese que la programación modular y la estructurada no son técnicas


incompatibles, sino más bien complementarias. Todos los programas que
desarrollemos de ahora en adelante serán, de hecho, al mismo tiempo
modulares y estructurados.
¡Divide y vencerás!

La forma más habitual de diseñar algoritmos para resolver problemas de cierta


envergadura se suele denominar, muy certeramente, divide y vencerás (en
inglés, divide and conquer o simplemente DAC). Fíjate que hemos dicho
"diseñar" algoritmos:

Estamos adentrándonos, al menos en parte, en la fase de diseño del ciclo de


vida del software.

El método DAC consiste en dividir un problema complejo en subproblemas, y


tratar cada subproblema del mismo modo, es decir, dividiéndolo a su vez en
subproblemas. Así sucesivamente hasta que obtengamos problemas lo
suficientemente sencillos como para escribir algoritmos que los resuelvan. Dicho
de otro modo: problemas que se parezcan en complejidad a los que hemos
venido resolviendo hasta ahora.

Llamaremos módulo a cada uno de estos algoritmos que resuelven los


problemas sencillos.

Una vez resueltos todos los subproblemas, es decir, escritos todos los módulos,
es necesario combinar de algún modo las soluciones para generar la solución
global del problema.

Esta forma de diseñar una solución se denomina diseño descendente o top-


down. No es la única técnica de diseño que existe, pero sí la más utilizada.
Resumiendo lo dicho hasta ahora, el diseño descendente debe tener dos fases:

 La identificación de los subproblemas más simples y la construcción de


algoritmos que los resuelvan (módulos)

 La combinación de las soluciones de esos algoritmos para dar lugar a la


solución global.
Algoritmo

1. Leer las puntuaciones

2. Visualizar notas

3. Ordenar notas

4. Asignar calificaciones adecuadas

5. Visualizar resultados

ALGORITMO PRINCIPAL Y SUBALGORITMOS

En general, el problema principal se resuelve en un algoritmo que


denominaremos algoritmo o módulo principal, mientras que los subproblemas
sencillos se resolverán en subalgoritmos, también llamados módulos a secas.
Los subalgoritmos están subordinados al algoritmo principal, de manera que éste
es el que decide cuándo debe ejecutarse cada subalgoritmo y con qué conjunto
de datos.

El algoritmo principal realiza llamadas o invocaciones a los subalgoritmos,

mientras que éstos devuelven resultados a aquél. Así, el algoritmo

principal va recogiendo todos los resultados y puede generar la solución

al problema global

Cuando el algoritmo principal hace una llamada al subalgoritmo (es decir, lo


invoca), se empiezan a ejecutar las instrucciones del subalgoritmo. Cuando éste
termina, devuelve los datos de salida al algoritmo principal, y la ejecución
continúa por la instrucción siguiente a la de invocación. También se dice que el
subalgoritmo devuelve el control al algoritmo principal, ya que éste toma de
nuevo el control del flujo de instrucciones después de habérselo cedido
temporalmente al subalgoritmo.
El programa principal puede invocar a cada subalgoritmo el número de veces
que sea necesario. A su vez, cada subalgoritmo puede invocar a otros
subalgoritmos, y éstos a otros, etc. Cada subalgoritmo devolverá los datos y el
control al algoritmo que lo invocó.

Los subalgoritmos pueden hacer las mismas operaciones que los algoritmos, es
decir: entrada de datos, proceso de datos y salida de datos. La diferencia es que
los datos de entrada se los proporciona el algoritmo que lo invoca, y los datos de
salida son devueltos también a él para que haga con ellos lo que considere
oportuno. No obstante, un subalgoritmo también puede, si lo necesita, tomar
datos de entrada desde el teclado (o desde cualquier otro dispositivo de entrada)
y enviar datos de salida a la pantalla (o a cualquier otro dispositivo de salida).

Lógicamente, los subalgoritmos deben tener asignado un nombre para que


puedan ser invocados desde el algoritmo principal, y también existe un
mecanismo concreto de invocación/devolución.

ESCRITURA DEL PROGRAMA

Una vez diseñada la estructura modular, llega el momento de escribir los


algoritmos y subalgoritmos mediante pseudocódigo, diagramas de flujo o
cualquier otra herramienta. Lo más conveniente es comenzar por los módulos
(subalgoritmos) de nivel inferior e ir ascendiendo por cada rama del diagrama de
estructura.

Lo dicho hasta ahora respecto de algoritmos y subalgoritmos se puede traducir


en programas y subprogramas cuando pasemos del pseudocódigo a lenguajes
de programación. Los subprogramas, en general, se pueden dividir en dos tipos,
muy similares pero con alguna sutil diferencia: las funciones y los
procedimientos.
PROCEDIMIENTOS O SUBPROGRAMAS

Es un subprograma que realiza una tarea específica. Puede recibir cero o más
valores del programa que llama y devolver cero o más valore a dicho programa
llamador. Un procedimiento está compuesto de un grupo de sentencias a las que
se asigna un nombre (identificador) y constituye una unidad de programa. La
tarea asignada al procedimiento se ejecuta siempre que encuentra el nombre del
procedimiento o subprograma.

DECLARACION DE UN PROCEDIMIENTO O SUBPROGRAMA

Todos los procedimientos o subprogramas se deben declarar dentro de

un cuerpo del programa. La declaración de un procedimiento no indica a

la computadora que ejecute las instrucciones dadas, sino que indica a la

computadora cuales son estas instrucciones y donde están localizadas

cuando sea necesario

El cuadro de diálogo del objeto Subprograma contiene un espacio para la


descripción o comentarios acerca del mismo; contiene un espacio para el nombre
del subprograma y un espacio para los parámetros. Estos parámetros (si existen)
deben estar separados por comas. El nombre de un subprograma debe
comenzar por una letra seguida de letras, números ó el carácter ( _ ).

Ejemplo: Factorial , Leer , Sub1 , sub_programa.

No se tiene en cuenta la diferencia entre mayúsculas y minúsculas para el


nombre de un subprograma, es decir , SUB equivale a sub.

LLAMADA AL PROCEDIMIENTO

Los procedimientos se llaman dentro de un programa o de otro procedimiento


directamente por su nombre, de acuerdo a los formatos1 o 2.

SINTAXIS:

Subprograma1 (lista de parámetros actuales)


OBJETO LLAMADA

La función de este objeto es realizar una llamada a un subprograma, el cual debe


encontrarse en el diagrama en edición. En la llamada deben encontrarse los
argumentos que han de ser pasados al subprograma, la cantidad, el orden y el
tipo de los argumentos deben coincidir con los parámetros del subprograma.

El cuadro de diálogo para la edición de este objeto contiene el espacio para el


nombre del subprograma a llamar y el espacio para la lista de argumentos.
Dichos argumentos deben estar separados por comas.

En resumen un procedimiento consta de 3 partes:

 Una cabecera del procedimiento que proporciona el nombre del mismo y


caso de existir una lista de parámetros formales.

 Una sección de declaración que puede contener constantes variables e


incluso otros procedimientos

 Una sección ejecutable: el cuerpo del procedimiento.

VENTAJAS DE UTILIZAR PROCEDIMIENTOS

 El uso de procedimientos facilita el diseño descendente.

 Los procedimientos se pueden ejecutar más de una vez en un programa


y en diferentes programas, ahorrando en consecuencia tiempo de
programación.

 El uso de procedimientos facilita la división de las tareas de programación


entre un equipo de programadores.

 Los procedimientos se pueden comprobar individualmente.


REUTILIZACIÓN DE UN MÓDULO

 Los algoritmos de cada módulo sólo se escriben y codifican una sola vez,

aunque se necesiten en distintas ocasiones a lo largo del programa

completo e incluso de otros programas (reutilización) evitando la

duplicación innecesaria de código.

 La reutilización de un módulo por otros programas es un ahorro de tiempo,


ya que no es necesario volver a resolver el problema, y si el módulo ha
sido previamente probado y verificado también reduce la posibilidad de
errores.

 Fácil comprensión del programa completo.

You might also like