Anda di halaman 1dari 13

!

"
#
% %

&'
Objetivos:
Analizar el concepto de resolucin de problemas
Comprender los conceptos introductorios a la programacin
Conocer como funciona una computadora
Presentar los diferentes tipos de lenguajes de programacin
Conocer el concepto de algoritmo.
Entender la necesidad del diseo de algoritmos.
Familiarizarse con las distintas estructuras de control que se utilizan para el diseo de un
algoritmo.

1.

Caractersticas de los problemas

En cualquier mbito de la vida hablamos de problemas, pero si queremos encontrar una


definicin de cul es su significado nos encontramos con que no es una tarea simple. Podemos
coincidir con muchos autores que no han dado ninguna defincidin, sino que se han remitido a
describir las caractersticas de un problema.
Es asi que se puede decir que:
Un problema existe cuando hay tres elementos, cada uno claramente definido,
Una situacin inicial.
Una situacin final u objetivo a alcanzar.
Restricciones o pautas respecto de mtodos, actividades, tipos de operaciones, etc.,
sobre los cuales hay acuerdos previos

1.1. Qu implica resolver un problema?


La expresin "Resolucin de Problemas" fue introducida por matemticos pero actualmente
no se limita tan solo al mbito de la matemtica, sino que constituye algo mucho ms abarcativo.
Los problemas son situaciones nuevas que requieren que la gente responda con
comportamientos nuevos. Casi permanentemente enfrentamos "problemas" en nuestra vida cotidiana.
Resolver un problema implica realizar tareas que demandan procesos de razonamientos ms o
menos complejos y no simplemente una actividad asociativa y rutinaria.

1.2. Cmo resolver problemas?


Esta pregunta no es de fcil respuesta como lo marca nuestra experiencia. A diario nos
enfrentamos a la difcil tarea de resolver problemas y por mas sencillo que sea nos cuesta encontrar
la manera de resolverlos.
La simbolizacin de un problema es un aprendizaje constructivo, por lo tanto individual y
distinto, en el cual cada uno utiliza sus propias estrategias. Muchas veces, la incorporacin de nuevas
formas de resolucin de problemas crea un conflicto con los viejos conocimientos, y por ello se tiende
a rechazarlas.

Resolucin de Problemas y Algoritmos

1/13

La tarea de ayudar a desarrollar capacidades y aptitudes para que puedan resolver con xito
situaciones problemticas de distinta ndole es en cierta forma, uno de los objetivos que trataremos
de alcanzar en el transcurso de esta asignatura.
Dada entonces una situacin problemtica en particular, el objetivo radica en establecer cmo
se la puede caracterizar, con el propsito de intentar modelizarla; cmo se la puede definir en
trminos de problemas y cmo, encontrada la metodologa de la resolucin especfica, se llega al
modelo.
Cuando los problemas que se resuelven son matemticos o juegos, se tiene la posibilidad de
adquirir metodologas de razonamiento permanentes, explicitadas mediante estrategias que
conducen a modelizar tales situaciones. Esto permite aprovechar los mecanismos de resolucin y
reutilizarlos en nuevas problemticas.
Por lo tanto, resulta de valorable importancia disponer de un gran nmero de estrategias o
saber generarlas, tales que, conocidas y comprendidas las disciplinas implcitas, se intente
transferirlas a los efectos de poder hallar solucin al problema.

1.3. Las partes de un problema


Bsicamente, podemos decir que la resolucin de problemas consta de tres etapas o procesos.
Etapa inicial o inicio de presentacin:
Consiste en comprender el problema familiarizndose con l lo ms posible. Supone la
identificacin, el anlisis y la interpretacin de los datos disponibles inicialmente. Requiere de
una suficiente atencin dedicada al problema para activar y estimular la memoria y prepararla
para recoger los puntos importantes en pos de una idea til. Supone la determinacin de esta
idea.
Momento de Produccin:
Se trata de la ejecucin de un plan, aquel al que la idea dio inicio y que, en principio, permite la
obtencin de la solucin al problema. Comprende un conjunto de operaciones o
transformaciones diversas a saber: recuperacin de la informacin almacenada en la memoria a
largo plazo, exploracin de la informacin ambiental, transformaciones en la memoria a corto
plazo, almacenamiento de informacin intermedia en la memoria a largo plazo, eventual alcance
de una solucin.
Etapa de Enjuiciamiento, Verificacin o Contrastacin :
En esta etapa se evala la solucin generada contrastndola con el criterio de solucin
empleado, estableciendo el correcto enlace de todos los operadores, desde el Inicio de
presentacin, pasando por la Produccin hasta llegar a la Verificacin.
As, "resolver problemas" equivale a incorporar modos de bsqueda para la satisfaccin de
situaciones particularmente comprendidas, las cuales pueden corresponder a la vida cotidiana o a
problemas que no tengan, directamente, que ver con sta.
Al hablar de inteligencia se suele frasear que "quien ms sabe ms posibilidades de aprender
tiene". La explicacin de esta frase permite conciliar el aprendizaje de metodologas (estrategias) de
resolucin de problemas con situaciones particulares, pues el concepto de "quien ms sabe" est
ligado a mtodos de razonamiento y no a particulares estados.

2.

Introduccin

Para familiarizarnos con algunos trminos, comenzaremos conociendo algunas definiciones


que permitirn ubicarte hacia donde vamos.

Resolucin de Problemas y Algoritmos

2/13

La Informtica es la ciencia que estudia el anlisis y resolucin de problemas


utilizando computadoras.
En primer lugar, Qu es la Informtica?
De esta definicin surgen otras dos preguntas:
Qu es una computadora? y
Cmo se resuelven problemas utilizando una computadora?
Respondiendo a la primera pregunta podemos decir que una computadora es una mquina y
sta es una respuesta correcta. Pero como toda mquina, una computadora necesita que se la haga
funcionar y para el caso particular de las computadoras, cuando se las hacen funcionar, stas
computan; pero sta accin no es algo sencillo como pudiera parecer en principio. Cualquier mquina
tiene un conjunto de acciones bsicas que le permiten actuar; estas acciones las llamaremos
instrucciones y que son las que la mquina entiende. En las computadoras la cantidad de acciones
bsicas son las suficientes como para que puedan ser utilizadas en diversos tipos de actividades.
Para poder responder, en parte, a Cmo se resuelven problemas utilizando una
computadora?, consideremos que el objetivo bsico fundamental de una computadora es ejecutar
programas que pretenden resolver problemas, y justamente por esta razn es ms importante la
programacin de las computadoras que la de otras mquinas, ya que la programacin de las
computadoras se aplica a soluciones de muchos y diversos problemas. Ms adelante veremos con
ms detalle cmo analizar un problema para luego resolverlo con una computadora.

3.

Generalidades de las computadoras

Vamos a hacer un repaso de algunas caractersticas de las computadoras que a esta altura
ya debes conocer, pero que no est mal recordar algunos conceptos bsicos de las mismas.
En primer lugar veremos cuales son las partes principales de una computadora.
Los datos entran,
salen y se
almacenan en la
computadora a
travs de los

Entrada
Salida
Almacenamiento

perifricos
Dentro de la computadora se
encuentra:

CPU
UC

UAL

MEMORIA
RAM

ROM

El ncleo de la computadora est compuesto por la CPU (Unidad Central de Procesamiento)


y la memoria, y la entrada y salida de la informacin se produce a travs de los perifricos.
Unidad Central de Procesamiento: se encarga de desarrollar las actividades fundamentales
que realiza una computadora. La CPU est compuesta por dos unidades bsicas, las cuales en
conjunto forman la Unidad Central de Procesamiento y son:

Unidad de control: realiza la funcin de direccin central, interpreta las instrucciones


del programa, que le indica las acciones que ha de realizar, y asigna las tareas a las
distintas partes del conjunto.

Resolucin de Problemas y Algoritmos

3/13

Unidad aritmtico-lgica: es la parte donde se realizan todos los procesos, a travs


de las indicaciones de la unidad de control. Realiza operaciones matemticas o de
relacin lgica con los datos suministrados.

Memoria principal: es el almacn donde se registran y quedan a disposicin de la unidad


central de procesamiento de datos (CPU), los datos y los programas.
Perifricos: son elementos que forman parte del sistema fsico del equipo y que cumplen
funciones adicionales, pero necesarias. Existen muchos tipos de perifricos y dependiendo de la
funcin que cumplan, se los puede clasificar en:

Perifricos de almacenamiento masivo (discos duros, discos flexibles, CDs, zip, pen
drive)

Perifricos de entrada: (teclados, mouse, escner, joysticks).

Perifricos de salida: (impresoras, monitores, plotter)

Como vimos anteriormente, la tarea principal de las computadoras es la de ejecutar


programas. En general, qu hacen estos programas? La respuesta es que procesan informacin.
Deberamos conocer a que llamamos informacin?
Esta informacin representa una abstraccin de una parte del mundo real. La informacin que
puede utilizar la computadora, debe ser una seleccin de datos de la realidad que se consideran
relevantes para el problema que se espera resolver. Es muy importante hacer una adecuada
seleccin de los datos, considerar aquellos que representen ciertas propiedades y caractersticas de
los objetos del mundo real que son relevantes e ignorar aquellos que no interesan para el problema
concreto que se estudia. Estos datos, como veremos mas adelante, deben estar organizados dentro
de la computadora, de manera tal que puedan ser utilizados dependiendo de la finalidad que se
desee.
Por ej: Un archivo de alumnos de una universidad. Cada alumno se representa (en forma
abstracta) en este archivo, por un conjunto de datos. Esta informacin puede incluir datos de
identificacin del alumno que sean de inters para la universidad: su nombre, su legajo, carrera que
cursa; pero seguramente, no contendr datos que no son de inters para la universidad tales como el
color de pelo, peso y estatura.
Hasta aqu, vamos teniendo en claro que la computadora es una mquina cuya funcin
principal es ejecutar programas que permitan procesar informacin. Pero algo que no est muy claro
por el momento es saber, Cmo funcionan las computadoras?
Desde el momento que se enciende una computadora, sta slo se dedicar a ejecutar un
programa. Son los programas en definitiva, los que le dicen a la CPU como debe ejecutar una a una
las instrucciones, qu debe hacer no slo con los datos que tenga, sino tambin con las distintas
partes y dispositivos de la computadora; si no existieran los programas no habra actividad.
El programa ms comn y necesario que debe estar en una computadora, es el sistema
operativo, que es el encargado de administrar y hacer funcionar adecuadamente los distintos
dispositivos y partes de la computadora y adems permitir que otros programas o sistemas puedan
servirse de ellas. Sin un programa que se encargue de estas tareas seria imposible que la
computadora pudiese funcionar en forma til.
Existen otros programas que tienen funciones bsicas como los programas de comunicacin
y redes, que permiten a las computadoras comunicarse entre s; de diagnostico de error; etc.
Tambin estn los compiladores, que son programas encargados de traducir los programas escritos
en un lenguaje de programacin, al lenguaje que entiende la CPU, para que de esta manera, el
programa pueda ser ejecutado. A todos estos programas se los conoce como programas de base.
Existen tambin otros programas que se conocen con el nombre de utilitarios que permiten
realizar distintas tareas: editores de texto, planillas de clculo, administradores de base de datos y
otros que tambin pueden encuadrarse en esta categora.

Resolucin de Problemas y Algoritmos

4/13

3.1. Lenguajes de Programacin


Para que un programa pueda ser ejecutado por la computadora, debe estar escrito en un
lenguaje que pueda ser entendido por la CPU, que en definitiva es la encargada de ejecutar las
instrucciones que componen el programa. Los lenguajes utilizados para escribir programas de
computadora son los lenguajes de programacin. Existen tres tipos principales de lenguajes:

3.2. Lenguajes de mquina


Son aquellos que estn escritos en lenguajes directamente inteligibles por la computadora, ya
que sus instrucciones son cadenas binarias (dgitos 0 y 1). Esto hace que las instrucciones maquina
sean difciles de interpretar y corregir, lo que supone grandes esfuerzos por parte del programador
para la modificacin o actualizacin de las mismas. Las instrucciones en lenguaje mquina dependen
del hardware de la computadora y por lo tanto, difieren de una computadora a otra.

3.3. Lenguajes de bajo nivel


Son ms fciles de utilizar que los lenguajes mquina, pero al igual que ellos dependen de la
mquina en particular. Estn basados en el uso de mnemotcnicos (palabras abreviadas procedentes
del ingles formadas por letras y nmeros). La programacin en lenguaje ensamblador precisa de un
amplio conocimiento sobre la constitucin, estructura y funcionamiento interno de la mquina, as
como un hbil manejo de los cdigos y sistemas de numeracin, en especial el binario y el
hexadecimal. Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por
la computadora (a diferencia del anterior), sino que requiere de una fase de traduccin al lenguaje
mquina.

3.4. Lenguajes de alto nivel


Estn diseados para que las personas escriban y entiendan los programas de un modo
mucho ms fcil que los escritos en los tipos de lenguajes anteriores. Un programa escrito en un
lenguaje de alto nivel es independiente de la mquina; es decir que es portable. Al igual que sucede
con los lenguajes ensambladores, los programas escritos con un lenguaje de alto nivel deben ser
traducidos a lenguaje mquina. Algunos de los lenguajes de alto nivel son por ejemplo: C, C++,
Pascal, Visual Basic, Clipper, Ada, Smalltalk, Delphi, Java.
El nico lenguaje que entiende la CPU es el lenguaje de mquina, o sea que cuando se
programa en un lenguaje distinto a ste, los programas deben ser traducidos a cdigo binario, para
que as las instrucciones del programa puedan ser entendidas y ejecutadas por la CPU. Para esta
tarea existen los traductores de lenguajes que pueden ser:
Ensambladores Son los encargados de transformar o traducir directamente los programas
escritos en ensamblador a su equivalente en cdigo de mquina o cdigo binario para que puedan
ser ejecutados por la CPU.
Interprete Es un programa encargado de procesar y traducir cada instruccin de un programa
escrito en un lenguaje de alto nivel a cdigo de maquina y despus ejecutarla. Estas dos tareas se
realizan en una misma operacin e instruccin por instruccin, lo que hace mucho mas lento el
proceso, ya que debe traducir y ejecutar cada una de las instrucciones del programa, repitiendo as
todo el proceso de traduccin y ejecucin.
Compilador Es un programa cuyo objetivo es traducir el correspondiente programa fuente
(escrito en un lenguaje de alto nivel) a su equivalente en cdigo de mquina, tambin denominado
programa objeto. La diferencia ms destacable entre un compilador y un interprete radica en que,
mientras que un interprete acepta un programa fuente que traduce y ejecuta simultneamente
Resolucin de Problemas y Algoritmos

5/13

analizando cada sentencia por separado, un compilador efecta dicha operacin en dos fases
independientes: primero traduce completamente el programa fuente a cdigo maquina y luego ejecuta
el programa.

4.

Resolucin de Problemas en la Computadora

Para que la computadora resuelva un problema, se debe disear un algoritmo en un lenguaje


entendible por la mquina, para que pueda ser ejecutado en ella. Las computadoras no pueden
entender, por lo menos por el momento, los lenguajes naturales utilizados en el diseo de algoritmos.
Por esta razn, es necesario escribir el algoritmo utilizando un lenguaje de programacin de alto nivel.
Este proceso se denomina codificacin y el resultado de este proceso es un programa.
En el siguiente dibujo podrs observar el proceso de desarrollo de un programa, donde
podrs ver los pasos que se ejecutan desde el momento que abstraemos el problema del mundo real,
hasta que efectivamente es ejecutado en la computadora.

La programacin es, por consiguiente, un proceso de solucin de problemas, y el desarrollo


de un programa requiere las siguientes fases:

5.

Definicin y anlisis del problema

Diseo del algoritmo

Codificacin del algoritmo

Depuracin y verificacin del programa

Documentacin y mantenimiento.

Resolucin de Problemas

Como vimos en el punto anterior, el objetivo bsico fundamental de una computadora es


ejecutar programas que resuelven problemas. Pero antes de conocer las herramientas que nos van a
permitir construir el programa que se va a ejecutar en la computadora, es necesario que aprendamos
a analizar el problema que debemos resolver encontrando la solucin adecuada.

Resolucin de Problemas y Algoritmos

6/13

Cuando usamos el trmino "resolucin de problemas" nos estamos refiriendo al proceso


completo que va desde entender el problema, disear una solucin conceptual, e implementar la
solucin con un programa de computadora. Esta solucin consta de dos componentes: algoritmos y
estructuras de datos.
Un algoritmo es una especificacin concisa de los pasos que se deben seguir para resolver
un problema. Una estructura de datos es un medio para almacenar un conjunto de datos. Cuando
construimos una solucin debemos elegir estructuras de datos que representen adecuadamente la
realidad y que permitan que los datos sean operados con facilidad de acuerdo a lo requerido por el
algoritmo. El diseo de una solucin requiere el desarrollo cuidadoso de algoritmos y estructuras de
datos.
Existen diferentes metodologas para la resolucin de problemas. Estas diferencias estn
definidas por los paradigmas de programacin. Cada paradigma significa un modo diferente de
analizar y especificar los algoritmos y clases de lenguajes de programacin distintos. En esta
asignatura abordaremos el paradigma de programacin estructurada y utilizaremos la metodologa
que se basa en ir de lo general a lo particular, o sea, que se resuelve el problema original a travs de
la reduccin a problemas ms simples hasta llegar a un punto en que ya no se puede reducir ms.
Esta metodologa se la conoce como diseo TOP DOWN.
Si consideramos como ejemplo, la construccin de una casa, podemos ver que la resolucin
del problema construir una casa, puede reducirse en problemas ms simples como la construccin
de: cimientos, paredes, techos, aberturas e instalaciones. En algunos casos, unos de estos
problemas ms simples, pueden a su vez, reducirse a problemas ms simples an; tal es el caso de
los cimientos, techos y aberturas. Esta descomposicin puede realizarse en tantos niveles como sean
necesarios.

Esta metodologa, introduce el concepto de modularizacin, considerando a cada uno de los


problemas ms simples en los que se reduce el problema original, como mdulo. El concepto de
modularizacin, con sus caractersticas y ventajas, las veremos en detalle, mas adelante.

6.

Diseo de Algoritmos

Para construir un programa de computadora, es necesario el diseo previo de un algoritmo.


Los algoritmos son independientes tanto del lenguaje de programacin en que se expresan, como de
la computadora que los ejecuta.

Los algoritmos son ms importantes que los lenguajes de programacin o las


computadoras.

Un lenguaje de programacin es tan slo un medio para expresar un algoritmo.

Una computadora es slo un procesador para ejecutarlo.

Las caractersticas fundamentales que debe cumplir todo algoritmo, es que debe:

Ser preciso: debe indicar el orden de realizacin de cada paso.

Estar definido: si se sigue un algoritmo dos veces, se debe obtener el mismo


resultado cada vez.

Resolucin de Problemas y Algoritmos

7/13

7.

Ser finito: si se sigue un algoritmo, se debe terminar en algn momento; o sea se


debe tener un nmero finito de pasos.

Estructuras de Control

Las instrucciones representan las operaciones que ejecutar la computadora al implementar


el algoritmo. Estas instrucciones utilizan cierta informacin en forma de constantes o variables, que se
denominan datos.
Todos los lenguajes de programacin tienen un conjunto mnimo de instrucciones que
permiten especificar el control propio del algoritmo que se requiere implementar. El concepto de flujo
de control a travs de un algoritmo, se refiere al orden en el cual deben ejecutarse los pasos
individuales del algoritmo.
Las estructuras de control son programas o construcciones algortmicas que afectan
directamente el flujo de control del algoritmo. Generalmente el flujo de control es lineal, o sea una
secuencia de pasos, desde el primero hasta el ltimo. Sin embargo es posible apartarse del flujo
normal lineal mediante el uso de seleccin e iteracin para resolver aquellas aplicaciones que hasta
ahora son imposibles de solucionar solamente con un flujo lineal de control.

8.

Estructuras de control bsicas

Las estructuras bsicas que cualquier lenguaje de programacin debe contener, son las que
se enumeran a continuacin, pero podrs encontrar en distinta bibliografa, diferentes nombres para
definir a estas mismas estructuras:

Secuenciacin

Seleccin

Repeticin

8.1. Secuenciacin
La secuenciacin es un algoritmo o una parte de un algoritmo, formado por una serie de
instrucciones que se ejecutan una a continuacin de otra.
Ejemplo: Lavarse el cabello.
Mojar el cabello.
Aplicar shampoo.
Masajear.
Enjuagar.

Mojar el
cabello
Aplicar
shampoo
Masajear

Enjuagar

Resolucin de Problemas y Algoritmos

8/13

8.2. Seleccin
A travs de esta estructura se permite seleccionar el sentido de la accin evaluando posibles
alternativas de una condicin que es necesario evaluar. La toma de decisin est tomada en funcin
de los datos del problema. Esta estructura puede subdividirse en tres categoras, considerando la
cantidad de alternativas a evaluar: seleccin simple, seleccin doble y seleccin mltiple.

8.2.1. Seleccin simple


En este caso se debe analizar una condicin, y si esta es verdadera se debern ejecutar las
acciones que se requieran. Esto significa que hay algunos casos en los que puede no haber una
accin especfica a realizar si la condicin es falsa.
Ejemplo: Tomar un libro de la biblioteca
Ubicar el libro, es decir, determinar en que estante est.
Si (el libro se encuentra a ms de 1.70m de altura)
entonces
Traer la escalera
Subir hasta alcanzar el libro
Tomar el libro buscado.
En el ejemplo, si el libro se encuentra a menos de 1.70m de altura, se toma directamente (no
es necesario utilizar la escalera).

Verdadero

Se procesa la
alternativa
verdadera

Evala la
condicin

Falso

Salida a la siguiente accin

8.2.2. Seleccin doble


En esta opcin de la estructura de seleccin, se debe decidir entre dos alternativas.
Se evalua la condicin y si esta es verdadera se debern ejecutar las acciones que se
requieran, las mismas se encuentran ubicadas despus del entonces. Y si es falsa se ejecutaran las
acciones que se encuentren adentro del sino.

Resolucin de Problemas y Algoritmos

9/13

Ejemplo: Colgar un cuadro, incluyendo la colocacin del clavo


Tomar martillo y clavo.
Pararse frente al lugar donde se desea colgar el cuadro.
Colocar el clavo.
Si (el clavo qued firme)
entonces
Traer el cuadro
Ponerlo en su sitio
sino
Retirar el clavo
Masillar el agujero
Guardar las herramientas

Verdadero

Se evala la
condicin

Se procesa la
alternativa
verdadera

Falso

Se procesa la
alternativa falsa

Salida a la siguiente accin


En este ejemplo aparece un elemento nuevo, la evaluacin de una condicin. Una condicin
es una expresin que puede tomar dos valores: verdadero o falso. Por lo tanto, nuestro algoritmo
debe considerar las dos alternativas, es decir, qu hacer en caso de que la condicin sea verdadera y
qu hacer si es falsa. Es importante destacar que no se realizan ambas alternativas simultneamente,
sino que la seleccin de cual se llevar a cabo se decidir una vez que los pasos anteriores se hayan
realizado. En nuestro ejemplo, la seleccin tendr lugar, una vez que el clavo haya sido colocado.
Antes de este instante, el valor de la condicin "el clavo qued firme" no puede ser determinada.

8.2.3. Seleccin mltiple


Esta estructura est contemplada para aquellos casos en donde las alternativas que se
pueden seleccionar, son ms de dos. En este caso lo que se debe evaluar es una variable de
decisin y dependiendo del valor que esta tenga, se realizarn las acciones que correspondan.
Ejemplo: Mostrar el nombre de la vocal que se ingres por teclado
Leer una vocal por teclado
Segn_valor (vocal)
a: Informar que el nombre de la vocal es a
e: Informar que el nombre de la vocal es e
i: Informar que el nombre de la vocal es i
o: Informar que el nombre de la vocal es o
u: Informar que el nombre de la vocal es u
Fin Segn_valor

Resolucin de Problemas y Algoritmos

10/13

Evaluar la
variable de
decisin

Acciones cuando
Variable de decisin =
valor 1

Acciones cuando
Variable de decisin =
valor 2

Acciones cuando
Variable de decisin =
valor n

8.3. Repeticin o Iteracin


Estas estructuras son aquellas que nos permiten variar o alterar la secuencia normal de
ejecucin de un programa haciendo posible que un bloque de acciones o instrucciones se repita ms
de una vez en forma consecutiva. A estas estructuras se las conoce tambin como: ciclo, lazo, bucle
o loop. Todo ciclo o bucle, tiene tres elementos que no pueden faltar:

Expresin condicional: condicin que se debe evaluar para determinar la ejecucin del ciclo.

Cuerpo o bloque: son la/s instruccin/es que se debern ejecutar repetidamente cuando la
condicin evaluada sea verdadera.

Salida: se debe asegurar que esa la condicin que controla el ciclo, en algn momento va a
determinar la finalizacin de la iteracin.

Al igual que en la seleccin, y teniendo siempre presente estos tres elementos, tambin se
podra subdividir esta estas estructuras.

8.3.1. Estructura Mientras


Esta estructura se caracteriza porque su diseo permite el bloque de instrucciones de 0 a n
veces. Esto quiere decir que cuando la condicin establecida sea verdadera, el numero de veces que
se ejecutar el bloque de instrucciones, ser de uno como mnimo y n como mximo, y para el caso
que la condicin sea falsa, ste bloque no se ejecutar nunca.
Ejemplo: Llenar un pozo con arena
Tomar la pala
Ubicarse frente al pozo
Mientras (el pozo no est lleno)
agregar una palada de arena en el
pozo
Dejar la pala.

Se evala la
condicin

falsa

verdadera
Ejecutar el bloque de
instrucciones del ciclo

A la siguiente accin

Resolucin de Problemas y Algoritmos

11/13

8.3.2. Estructura Repetir-Mientras


Esta estructura se caracteriza porque su diseo permite repetir un bloque de instrucciones de
1 a n, es decir que sea verdadera o falsa la condicin, el bloque se ejecutar una vez como mnimo y
n veces como mximo, despus de evaluar la condicin n veces. En este caso y a diferencia de la
anterior, la condicin se analiza al final del ciclo, el bloque de instrucciones se ejecuta mientras la
condicin todava no es evaluada y cuando se evalua la condicin, al final, la salida se efecta
cuando la condicin es falsa; siempre que se evalue la condicin y esta sea verdadera se va a
ejecutar el bloque de instrucciones del ciclo.
Ejemplo: Registrar Apellido y DNI de los postulantes a un puesto de trabajo
Formar una fila con todos los postulantes
Repetir
Registrar apellido del postulante
Registrar DNI del postulante
Mientras (haya mas postulantes)

Ejecutar el bloque de
instrucciones del ciclo

verdadera

Se evala la
condicin

falsa

A la siguiente accin

8.3.3. Estructura Para


En este tipo de estructura, el numero n de veces que se deben ejecutar las acciones, es fijo y
conocido de antemano. De esta estructura participan otros elementos que reemplazaran.
Ejemplo: Colocar 10 libros de una biblioteca, dentro de una caja
Para contador de 1 a 10
Tomar un libro de la biblioteca
Colocar el libro dentro de la caja
FinPara
Vcont = Vi, Vf

Ejecutar el bloque
de instrucciones del
ciclo

Resolucin de Problemas y Algoritmos

Para Vcont de Vi a Vf
Instruccin 1

Vcont variable contador del bucle


Vi
valor inicial que toma Vcont
Vf
valor final para Vcont

12/13