Vous êtes sur la page 1sur 29

Mdulo II

Algoritmos y Diseo de Algoritmos

A. Objetivo General
Manejar los tipos de Estructuras Algortmica Secuenciales, Condicionales y
Cclicas.
B. Objetivos Especficos:
-

Determinar en qu caso usar una estructura secuencial, condicional o cclica.

Aplicar la sintaxis y reglas generales en los tipos de estructuras algortmicas.

Realizar algoritmos que impliquen el uso de estructuras secuenciales,


condicionales y repetitivas.

Identificar las diferencias entre los distintos tipos de estructuras condicionales.

Identificar las diferencias entre las distintas estructuras repetitivas o cclicas.

Utilizar el pseudocdigo como herramientas para el diseo de algoritmos.

Prof. Carolina Candia

Mdulo II - Unidad 1
Estructuras Secuenciales
1.

ESTRUCTURA SECUENCIAL

La estructura algortmica de control secuencial, ejecuta automticamente una


instruccin despus de la otra, en el orden en el cual se han escrito de inicio a fin.
Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y
as sucesivamente hasta el fin del proceso.
Se representa de la siguiente forma:
Inicio
Instruccin 1
Instruccin 2
.
.
Instruccin n
Fin
EJEMPLOS
UTILIZANDO ESTRUCTURAS SECUENCIALES
Sumar dos nmeros positivos ingresados por teclado. Mostrar el resultado.
Anlisis: El algoritmo pide que el usuario ingrese dos valores, luego el
programa realiza el proceso de suma e imprime el resultado.
Datos de Entrada: numero 1 y numero 2 (n1, n2).
Datos de Salida: Suma.
Paso 1 Inicio
Paso 2
entero n1, n2, suma
Paso 3
imprimir Ingrese valores
Paso 4
sum=n1 + n2
Paso 5
imprimir Resultado, suma
Paso 6 Fin

Prof. Carolina Candia

Da inicio al algoritmo
Declaracin de variables
Mensaje para el usuario
Proceso que suma nmeros ingresados
Muestra el valor contenido en variable sum
Fin del algoritmo

EJERCICIOS DESARROLLADOS
UTILIZANDO ESTRUCTURAS SECUENCIALES
1. Calcular la edad de una persona, ingresando el ao de nacimiento y el ao actual.
Paso 1 Inicio
Paso 2
entero ao_nacim, ao_actual
Paso 3
Imprimir Ingrese el ao de su nacimiento
Paso 4
Leer ao_nacim
Paso 5
Imprimir Ingrese el ao actual
Paso 6
Leer ao_actual
Paso 7
edad=(ao_nacim - ao_actual)
Paso 8
imprimir La edad de una persona es:, edad
Paso 9 Fin
2. Desarrollar un algoritmo que multiplique un nmero ingresado por un valor
constante tres.
Paso 1
Paso 2
Paso 3
Paso 4
Paso 5
Paso 6

Inicio
entero num, resul
leer num
resul= num*3
imprimir El resultado es: resul
Fin

3. Desarrollar un algoritmo que permita conocer el rea de un tringulo a partir de la


base y la altura. Exprese el algoritmo usando Pseudocdigo.
Paso 1 Inicio
Paso 2
entero base, altura, rea
Paso 3
Imprimir Ingrese la base
Paso 4
Leer base
Paso 5
Imprimir Ingrese la altura
Paso 6
Leer altura
Paso 7
rea=(base*altura)/2
Paso 8
imprimir El rea del tringulo es:, rea
Paso9 Fin
4. Dada la deuda de aporte, calcular la cantidad de aos y meses que adeuda un socio
en concepto del mismo. Sabiendo que el aporte es de Gs. 10.000 mensual. Imprimir
la cantidad de aos y la cantidad de meses.
Nota: utilizar para el efecto la funcin entera

Prof. Carolina Candia

Paso 1 Inicio
Paso 2
Real deudaaporte, meses, aos, auxmes
Paso 3
Leer deudaaporte
Paso 4
auxmes=deudaaporte/10000
Paso 5
ao=entera(auxmes/12)
Paso 6
mes=auxmes-(ao*12)
Paso 7
imprimir Cantidad de aos, aos
Paso 8
imprimir Cantidad de meses, mes
Paso9 Fin
EJERCICIOS DESARROLLADOS
USO DEL OPERADOR RESTO (%)
El operador mod o tambin denominado resto, se utiliza para hallar el resto entre
una divisin entera. Tambin puede ser representado por el operador %.
Ejemplo: Determinar la cifra de las unidades de un numero entero positivo.
Inicio
entero num, resto
resto = num mod 10
Imprimir La unidad del nmero es: resto
Fin
Anlisis: El problema pide determinar la cifra de las unidades de un nmero
cualquiera. Si dividimos un nmero cualquiera entre diez, obtenemos en el resto
siempre la unidad de la cifra.

38 % 10 = 8 El operador mod (resto) almacena el resto de una divisin entera

38 / 10 = 3 El operador div (divisin) almacena el cociente de una divisin


entera

Prof. Carolina Candia

Mdulo II - Unidad 2
Estructuras Condicionales / Selectivas
1. ESTRUCTURA CONDICIONAL
La estructura algortmica condicional o tambin conocida como estructura selectiva,
brinda la posibilidad de elegir distintos caminos en la ejecucin de las acciones y
donde se puede establecer caminos alternativos para la ejecucin.
Existen tres tipos bsicos: las simples, las dobles y las mltiples.
1.1 SIMPLES:
Las estructuras condicionales simples se les conocen como Tomas de decisin
Se representa de la siguiente forma:

Si <condicin a evaluar> entonces


Instruccin / es
Fin si

1.2 DOBLES
Las estructuras condicionales dobles permiten elegir entre dos opciones o
alternativas posibles en funcin del cumplimiento o no de una determinada
condicin.
Se representa de la siguiente forma:

Si <condicin a evaluar> entonces


Instruccin / es
Sino
Instruccin / es
Fin si

Si: Indica el comando de comparacin

Condicin: Indica la condicin a evaluar

Entonces: Precede a las acciones a realizar cuando se cumple la condicin

Instruccin(es): Son las acciones a realizar cuando se cumple o no la


condicin

si no: Precede a las acciones a realizar cuando no se cumple la condicin

Prof. Carolina Candia

Dependiendo de si la comparacin es cierta o falsa, se pueden realizar una o ms


acciones.

1.3 MLTIPLES
Las estructuras de comparacin mltiples, son tomas de decisin especializadas que
permiten comparar una variable contra distintos posibles resultados, ejecutando para
cada caso una serie de instrucciones especficas.
Se representa de la siguiente forma:
Si <condicin a evaluar> entonces
Instruccin / es
sino
Si <condicin a evaluar> entonces
Instruccin / es
Sino

Varias condiciones

Fin si

1.4 MLTIPLES (EN CASO DE):


La estructura alternativa mltiple: Segn sea, En caso de; evaluar una expresin
que podr tomar n valores distintos.
Tambin es posible que a la hora de especificar la ejecucin de una accin haya que
escoger entre varias acciones dependiendo del valor de una determinada variable (o
indicador). Se representa de la siguiente forma:
En caso de <expresin> hacer
Caso <opcin 1>:
<instrucciones>
Caso <opcin 2>:
<instrucciones>
Caso <opcin 3>:
<instrucciones>
..
Caso <opcin N>:
<instrucciones>
Sino Caso <opcin 1>:
<instrucciones a realizar si no se ha cumplido ninguna de las
condiciones anteriores>
Fin Caso
Prof. Carolina Candia

Otra forma de representar es de la siguiente forma:


Seleccionar Indicador
Caso Valor 1: Accin 1;
Caso Valor 2: Accin 2;
Caso Valor n: Accin n;
EnOtroCaso: Accin X;
FinCaso
En esta construccin Indicador debe tener un determinado valor que en caso de
coincidir con alguno de los n valores provocar la ejecucin de la accin asociada a
dicho valor.
Si el valor del Indicador no coincidiera con ninguno de los especificados se
ejecutar la Accin X. No tiene por qu haber una Accin X para cuando el
Indicador no coincida con ninguno de los n valores. En ese caso, si el Indicador no
coincide con ningn valor no se ejecutara ninguna accin.

1.4.1 Qu debemos de considerar para utilizar este tipo de estructuras?


-

Cuando existen ms de dos elecciones posibles, es cuando se presenta el caso de


alternativas mltiples.

Si el nmero de alternativas es grande, puede plantear serios problemas de


escritura del algoritmo y naturalmente de legibilidad.

La estructura de seleccin mltiple evaluar una expresin que podr tomar n


valores distintos.

Segn se elija uno de estos valores en la condicin, se realizar una de las n


acciones, o lo que es igual, el flujo del algoritmo seguir un determinado camino
entre los n posibles.

Existe un camino adicional que, aunque es opcional, siempre es recomendable


que se utilice. Esta es la opcin, En otro caso, la cual ejecuta una accin cuando
la expresin arroja otro valor diferente a los esperados.

Se dice que esta es la opcin DEFAULT o POR DEFECTO, es un camino por


defecto en caso de que no se elija ninguno de los otros caminos.

Prof. Carolina Candia

EJEMPLOS
UTILIZANDO ESTRUCTURAS CONDICIONALES
Realizar un algoritmo en donde se pide la edad del usuario; si es mayor de edad
debe aparecer un mensaje indicndolo. Expresar el algoritmo en Pseudocdigo.
Paso 1
Paso 2
Paso 3
Paso 4
Paso 5
Paso 6
Paso 7
Paso 8

Inicio
entero edad
Imprimir Cul es tu edad?
leer edad
Si (edad>18) entonces
imprimir ES MAYOR DE EDAD
Fin si
Fin

En este ejemplo la condicin est dada por un valor que ingresa el usuario. Si la
condicin se cumple o es verdadera entonces se visualiza por pantalla el mensaje
Es mayor de edad
UTILIZANDO ESTRUCTURAS DOBLES

Se pide leer tres notas del alumno, calcular su nota final en un rango de 1-5 y enviar
un mensaje donde diga si el alumno aprob o reprob el curso. Teniendo en cuenta
que aprueba si su promedio es mayor a dos.
Expresar el algoritmo en Pseudocdigo.
Paso 1
Paso 2
Paso 3
Paso 4
Paso 5
Paso 6
Paso 7
Paso 8
Paso 9
Paso 10

Inicio
Real Nota1, Nota2, Nota3, Prom
Leer Nota1, Nota2, Nota3
Prom= (Nota1 + Nota2 + Nota3) /3
Si ( Prom >= 2) entonces
Imprimir Aprob el curso
Sino
Imprimir Reprob el curso
Fin Si
Fin

En este ejemplo la condicin est dada por el resultado del clculo previo del
promedio el cual se obtiene de las tres notas que ingresa el usuario. Si la condicin
se cumple o es verdadera entonces se visualiza por pantalla el mensaje Aprob el
curso, si la condicin resultase falsa, esto es si el promedio es 1 o cero, o dicho de

Prof. Carolina Candia

otra manera menor a 2, entonces ingresa al sino e imprime el resultado Reprob el


curso.
UTILIZANDO ESTRUCTURAS MLTIPLES

La Universidad Americana lanzo un programa de control de peso y desea saber si un


alumno posee un peso Bajo, Medio o Alto. Exprese el algoritmo usando
Pseudocdigo.
Se considera que el peso es bajo si es menor o igual a 60 kl. Si el peso est entre 61
y 80, el alumno es de peso medio y si el peso es mayor a 81, el alumno es de peso
alto.
Paso 1
Paso 2
Paso 3
Paso 4
Paso 5
Paso 6
Paso 7
Paso 8
Paso 9
Paso 10
Paso 11
Paso 12
Paso 13
Paso 14

Inicio
entero Peso
Imprimir Cul es su peso?
Leer Peso
si (Peso <=60) entonces
Imprimir Alumno de Peso bajo
sino si ( Peso <=80) entonces
Imprimir Alumno de Peso medio
sino si (Peso >81) entonces
Imprimir Alumno de Peso alto
fin si
fin si
fin si
Fin

En este ejemplo se muestra el uso de una condicional mltiple en donde se pueden


identificar tres condiciones. Si la primera condicin se cumple (peso <=60) entonces
visualiza por pantalla el mensaje correspondiente, sino se cumple o resulta falsa
entonces evala la segunda condicin (peso <=80) si es verdadera, visualiza por
pantalla el mensaje correspondiente y si esta condicin volviese a evaluar falsa
entonces evala la ltima condicin e imprime el mensaje correspondiente.

UTILIZANDO ESTRUCTURAS MLTIPLES (EN CASO DE)

Dado un nmero entre 1 y 7 Imprimir su correspondiente da de la semana as:


1- Lunes

4- Jueves

2- Martes

5- Viernes

3- Mircoles

6- Sbado

Prof. Carolina Candia

10

7- Domingo
Exprese el algoritmo usando Pseudocdigo

Paso 1
Paso 2
Paso 3
Paso 4
Paso 5
Paso 6
Paso 7
Paso 8
Paso 9
Paso 10
Paso 11
Paso 12
Paso 13
Paso 14
Paso 15

Inicio
Entero Da
Imprimir Diga un nmero para escribir su da
Leer Da
En-caso-de Da haga
Caso 1: Imprimir Lunes
Caso 2: Imprimir Martes
Caso 3: Imprimir Mircoles
Caso 4: Imprimir Jueves
Caso 5: Imprimir Viernes
Caso 6: Imprimir Sbado
Caso 7: Imprimir Domingo
SINO: Imprimir Escribi un numero fuera del rango 1-7
Fin-Caso
Fin

El siguiente ejemplo nos muestra el desarrollo de la estructura En Caso De, a


travs de la estructura mltiple en donde el valor de una variable puede tener varios
resultados. Dependiendo del valor numrico ingresado en la variable da se
imprimir el mensaje correspondiente.
EJERCICIOS DESARROLLADOS
UTILIZANDO ESTRUCTURAS CONDICIONALES / SELECTIVAS

1. Un hombre desea saber cunto dinero se genera por concepto de intereses sobre la
cantidad que tiene invertida en una Cooperativa. El decidir reinvertir los intereses
siempre y cuando estos excedan a $1.000, y en ese caso desea saber cunto dinero
tendr finalmente en su caja de ahorro.
Inicio
entero p_int, cap, int, capf
Leer p_int, cap
int = cap * p_int
si (int > 1000) entonces
capf = cap + int
fin-si
Imprimir capf
Fin
2. El Shopping UA esta de promocin por su mes aniversario y hace un 30% de
descuento a los clientes cuya compra supere los $300. Cul ser la cantidad que
pagara un cliente por su compra?
Prof. Carolina Candia

11

Inicio
entero compra
real desc
Leer compra
Si (compra > 300) entonces
desc = compra * 0.30
si no
desc = 0
fin-si
tot_pag = compra - desc
imprimir tot_pag
Fin.
3. Un obrero necesita calcular su salario semanal, el cual se obtiene de la sig. manera:
Si trabaja 40 horas o menos se le paga $16 por hora. Si trabaja ms de 40 horas se le
paga $16 por cada una de las primeras 40 horas y $20 por cada hora extra.
Inicio
Entero ht, ss, he
Leer ht
Si (ht > 40) entonces
he = ht - 40
ss = he * 20 + 40 * 16
si no
ss = ht * 16
fin-si
Imprimir ss
Fin
4. Disea un algoritmo que lea dos nmeros y los imprima en forma ascendente
Inicio
Leer num1, num2
Si (num1 < num2) entonces
Imprimir num1, num2
si no
Imprimir num2, num1
fin-si
Fin
5. Visualizar el nombre de un artculo, clave, precio original y su precio con descuento.
El descuento lo hace en base a la clave, si la clave es 01 el descuento es del 10% y si
la clave es 02 el descuento es del 20% (solo existen dos claves).

Prof. Carolina Candia

12

Inicio
Entero clave, prec_orig
Cadena nombre
Leer nombre, clave, prec_orig
Si clave = = 01 entonces
prec_desc = (prec_orig (prec_orig * 0.10))
si no
prec_desc = (prec_orig (prec_orig * 0.20))
fin-si
Imprimir nombre, clave, prec_orig, prec_desc
Fin
6. Calcular el total a pagar por la compra de discos externos. Si se compran tres o ms
se aplica un descuento del 10% sobre el total de la compra y si son menos de tres
discos externos se aplica un descuento del 5%.
Inicio
entero cant_de, precio
real tot_pag, tot_comp
Leer cant_de, precio
tot_comp = cant_de * precio
Si (cant_de > = 3) entonces
tot_pag = tot_comp (tot_comp * 0.10)
si no
tot_pag = tot_comp (tot_comp * 0.05)
fin-si
Imprimir tot_pag
Fin
7. Leer 2 nmeros; si son iguales que los multiplique, si el primero es mayor que el
segundo que los reste y si no que los sume.
Inicio
Entero num1, num2, resul
Leer num1, num2
Si (num1 = = num2) entonces
resul = num1 * num2
sino si (num1 > num2) entonces
resul = num1 - num2
sino
resul = num1 + num2
fin-si
fin-si
Fin

Prof. Carolina Candia

13

8. Leer tres nmeros diferentes e imprimir el nmero mayor de los tres.

Inicio
Leer num1, num2, num3, mayor
Si (num1 > num2) and (num1 > num3) entonces
mayor = num1
sino
Si (num2 > num1) and (num2 > num3) entonces
mayor = num2
si no
mayor = num3
fin-si
fin-si
Imprimir mayor
Fin
9. Determinar la cantidad de dinero que recibir un trabajador por concepto de las
horas extras trabajadas en una empresa, sabiendo que cuando las horas de trabajo
exceden de 40, el resto se consideran horas extras y que estas se pagan al doble de
una hora normal cuando no exceden de 8; si las horas extras exceden de 8 se pagan
las primeras 8 al doble de lo que se pagan las horas normales y el resto al triple.
Inicio
Entero ht, pph, tp, he, pd, pt, pe
Leer ht, pph
Si (ht < = 40) entonces
tp = ht * pph
si no
he = ht - 40
Si (he < = 8) entonces
pe = he * pph * 2
si no
pd = 8 * pph * 2
pt = (he - 8) * pph * 3
pe = pd + pt
fin-si
tp = 40 * pph + pe
fin-si
Imprimir tp
Fin
10. Calcular el excedente que un socio recibe en el reparto anual de utilidades. Se
calcula el porcentaje dependiendo de la antigedad como socio en la cooperativa, de
acuerdo con la sig. tabla:

Prof. Carolina Candia

14

Tiempo

Utilidad

Menos de 1 ao

5%

1 ao o ms y menos de 2 aos

7%

2 aos o ms y menos de 5 aos

10%

5 aos o ms y menos de 10 aos

15%

10 aos o ms

20%

Inicio
Entero sm, antig, util
Leer sm, antig
Si antig < 1 entonces
util = sm * 0.05
si no
Si (antig > = 1) and (antig < 2) entonces
util = sm * 0.07
si no
Si (antig > = 2) and (antig < 5) entonces
util = sm * 0.10
si no
Si (antig > = 5) and (antig < 10) entonces
util = sm * 0.15
si no
util = sm * 0.20
fin-si
fin-si
fin-si
fin-si
Imprimir util
Fin

11. El IPS requiere clasificar a las personas que se jubilaran en el ao de 2015. Existen
tres tipos de jubilaciones: por edad, por antigedad joven y por antigedad adulta.
Las personas vinculadas a la jubilacin por edad deben tener 60 aos o ms y una
antigedad en su empleo de menos de 25 aos. Las personas vinculadas a la
jubilacin por antigedad joven deben tener menos de 60 aos y una antigedad en
su empleo de 25 aos o ms. Las personas vinculadas a la jubilacin por antigedad
adulta deben tener 60 aos o ms y una antigedad en su empleo de 25 aos o ms.
Determinar en qu tipo de jubilacin, quedara vinculadas una persona.

Prof. Carolina Candia

15

Inicio
Entero edad, ant
leer edad, ant,
si (edad >= 60) and (ant < 25) entonces
imprimir La jubilacin es por edad
sino si (edad >= 60) and (ant > 25) entonces
imprimir La jubilacin es por edad adulta
sino si (edad < 60) and (ant > 25) entonces
imprimir La jubilacin es por antigedad joven
si no
imprimir No tiene por qu jubilarse
fin-si
fin-si
fin-si
Fin
12. Desarrolle un algoritmo que le permita leer 2 valores A y B e indicar si uno de los
dos divide al otro exactamente
Inicio
Entero A, B
Leer A, B
Si (A residuo B= =0) entonces
Imprimir B divide exactamente a A
sino Si (B residuo A= =0) entonces
Imprimir A divide exactamente a B
sino
Imprimir No se dividen exactamente
fin-si
fin-si
Fin
13. Desarrolle un algoritmo que le permita leer dos valores A y B e indicar si el
resultado de dividir la suma de los dos nmeros entre la resta del primer nmero con
el segundo es exacta.
Inicio
Entero A, B
Leer A, B
Si (A+B) mod (A-B)= =0 entonces
Imprimir La divisin es exacta
sino
Imprimir La divisin es inexacta
fin-si
Fin

Prof. Carolina Candia

16

14. Cree un algoritmo que, basado en la siguiente tabla, lea un nmero entero e imprima
el nombre de la estacin correspondiente.

Valor
1
2
3
4

Estacin
Invierno
Verano
Otoo
Primavera

Inicio
Entero estacin
Leer estacin
Segn sea (estacin)
Caso 1: Imprimir Invierno
Caso 2: Imprimir Verano
Caso 3: Imprimir Otoo
Caso 4: Imprimir Primavera
En otro Caso
Imprimir Estacin errnea
Fin

Mdulo II - Unidad 3
ESTRUCTURAS REPETITIVAS / CCLICAS

1.

ESTRUCTURAS REPETITIVAS O CCLICAS

Se llaman problemas repetitivos o cclicos a aquellos en cuya solucin es necesario


utilizar un mismo conjunto de acciones que se puedan ejecutar una cantidad especfica
de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o
puede ser variable (estar en funcin de algn dato dentro del programa).
Los ciclos se clasifican en:
1.) Ciclos con un Nmero Determinado de Iteraciones
- Hacer-Para
2.) Ciclos con un Nmero Indeterminado de Iteraciones
-

Hacer-Mientras

Repetir-Hasta

Prof. Carolina Candia

17

CICLOS CON UN NMERO DETERMINADO DE ITERACIONES (HACER-PARA)


Son aquellos en que el nmero de iteraciones se conoce antes de ejecutar el ciclo.
2. HACER PARA DESDE HASTA:
Este tipo de estructura se utiliza cuando se sabe ya antes de ejecutar el bucle el nmero
exacto de veces que hay que ejecutarlo. Para ello el bucle llevara asociado una variable
que denominamos variable ndice o variable de control, a la que se le asigna un valor
inicial y se determina cual va a ser su valor final.
Esta variable se va a incrementar o decrementar en cada iteracin de bucle en un valor
constante, pero esto se va a hacer de manera automtica o sea que va a ser una
operacin implcita (lo hace por defecto).
Por tanto en cada iteracin del bucle, la variable ndice o de control se actualiza
automticamente y cuando alcanza el valor que hemos puesto como final se termina la
ejecucin del bucle.
En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo se repite
hasta que la variable de control llegue al lmite superior.
Se representa de la siguiente forma:
Hacer para V.C = L.I a L.S
Accion1
Accion2
.
.
Accin N
Fin-para
Dnde:
V.C:

Variable de control del ciclo

L.I:

Lmite inferior

L.S:

Lmite superior

CICLOS CON UN NMERO INDETERMINADO DE ITERACIONES


( HACER-MIENTRAS, REPETIR-HASTA)
Son aquellos en que el nmero de iteraciones no se conoce con exactitud, ya que esta
dado en funcin de un dato dentro del programa.

Prof. Carolina Candia

18

3. HACER - MIENTRAS:
Esta es una estructura que repetir un proceso durante N veces, donde N puede ser
fijo o variable. Para esto, la instruccin se vale de una condicin que es la que debe
cumplir para que se siga ejecutando. Cuando la condicin ya no se cumple, entonces ya
no se ejecuta el proceso.
Se representa de la siguiente forma:
Hacer mientras <condicin>
Accion1
Accion2
.
.
AccionN
Fin-mientras
3.1 FUNCIONAMIENTO ESTRUCTURA MIENTRAS
A. La condicin del bucle se evala al principio, antes de entrar en l ciclo.
B. Si la condicin es verdadera, se comienza a ejecutar las acciones del bucle y
despus de la ltima accin volvemos a preguntar por la condicin.
C. En el momento en el que la condicin sea falsa salimos del bucle y ejecutamos
la siguiente condicin al bucle.
D. Al evaluar la condicin, antes de entrar en el bucle al principio, si la condicin al
ser evaluada la primera vez es falsa, no entraremos nunca en el bucle, el bucle
puede que se ejecute 0 veces, por tanto usaremos obligatoriamente este tipo de
bucle en el caso de que exista la posibilidad de que el bucle pueda ejecutarse 0
veces.

4. FUNCIN REPETIR - HASTA


En esta estructura el bucle se repite hasta que la condicin sea verdadera y mientras
la condicin sea falsa.
La condicin se evala siempre al final del bucle, si es falsa volvemos a ejecutar las
acciones, si es verdadera sale del bucle.
Como la condicin se evala al final, incluso aunque la primera vez ya sea
verdadera, habremos pasado al menos una vez por el bucle.
Es decir que cuando un bucle se tenga que ejecutar como mnimo una vez, se podr
usar una estructura repetir.
Se representa de la siguiente forma:
Prof. Carolina Candia

19

Repetir
Accion1
Accion2
.
.
AccionN
Hasta <condicin>

5. DIFERENCIA ENTRE LA ESTRUCTURA REPETIR Y MIENTRAS

Repetir
Repite un proceso una cantidad de
veces, hasta que la condicin se
cumpla o sea verdadera
permite realizar el proceso cuando
menos una vez, ya que la condicin
se evala al final del proceso

Hacer Mientras
Repite un proceso una cantidad de
veces, mientras que la condicin se
cumpla o hasta que sea falsa
puede ser que nunca llegue a entrar
si la condicin no se cumple desde
un principio.

6. MTODOS PARA LA TERMINACIN DE BUCLES CON DATOS DE ENTRADA


1. Preguntar antes de la iteracin
Solicita a travs de un mensaje al usuario si existen ms entradas.
2. Encabezar la lista de datos con su tamao
Conocer en la cabecera del bucle el tamao o el nmero de iteraciones
3. Finalizar la lista con su valor de entrada
Leer una lista de valores con un centinela
4. Agotar los datos de entrada
Comprobar que no existen ms datos de entrada, preguntar si es fin de archivo.

Prof. Carolina Candia

20

7. DEFINICIONES:
BUCLE
Conjunto de instrucciones que se repiten un nmero finito de veces
Todo bucle tiene que llevar asociada una condicin, que es la que va a determinar
cundo se repite el bucle.
Consta de tres partes: Decisin, Cuerpo del bucle, Salida del bucle.
BUCLE ANIDADO
Los bucles son anidados cuando estn dispuestos de tal modo que unos son
interiores a otros; los bucles son independientes cuando son externos unos a otros.
ITERACIN
Cada repeticin del bucle se llama iteracin.

VALOR CENTINELA
Es un valor especial usado para indicar el final de una lista de datos.

CONTADOR
Es una variable auxiliar creada por el programador que se incrementa de un modo constante,
un numero finito de veces.
El valor se incrementa o decrementa en una cantidad constante en cada repeticin que se
produzca.
Puede ser positivo a travs del incremento o puede ser negativo a travs del decremento.

ACUMULADOR
Es una variable que acumula valores que a su vez son el producto de un proceso repetitivo y
finito de sumas sucesivas.
Almacena una cantidad variable resultado de las operaciones sucesivas y repetidas.
El incremento y el decremento es variable.

7.1 USO DEL CONTADOR


Un contador es un variable que se utiliza para contar cualquier evento que pueda
ocurrir dentro de un programa. En general suelen contar de forma natural desde 0 y
de 1 en 1, aunque se pueden realizar otros tipos de cuenta necesarios en algunos
procesos.
Se utilizan realizando sobre ellos dos operaciones bsicas:
A. Inicializacin.
Todo contador se inicializa a 0 si realiza cuenta natural o a un valor VI (Valor
inicial) si se desea realizar otro tipo de cuenta.
CONTADOR = 0

Prof. Carolina Candia

21

B. Contabilizacin o incremento.
Cada vez que aparece el evento a contar se ha de incrementar el contador en 1 si
se realiza cuenta natural o en Incremento si se realiza otro tipo de cuenta.
CONTADOR = CONTADOR + 1
7.2 USO DEL ACUMULADOR
Son objetos que se utilizan en un programa para acumular elementos sucesivos con
una misma operacin. En general se utilizan para calcular sumas y productos, sin
descartar otros posibles tipos de acumulacin.
Se utilizan realizando sobre ellos dos operaciones bsicas:
A. Inicializacin.
Todo acumulador necesita ser inicializado con el valor neutro de la operacin
que va a acumular, que en el caso de la suma es 0 y en el del producto es 1.
SUMA = 0
PRODUCTO =1
B. Acumulacin.
Cuando se debe acumular un elemento o valor como resultado de una lectura o
un clculo, se efecta la acumulacin del mismo por medio de la asignacin:
SUMA = SUMA + elemento
PRODUCTO = PRODUCTO * elemento

8. BANDERA O SEAL (SWITCH)


Es una variable auxiliar creada por el programador, que generalmente adquiere solo
dos estados (0) cero o (1) uno.
Normalmente su valor inicial es cero (0) y cuando cambia de estado a uno (1) es
para indicar que se ha producido una determinada situacin que deba ser evaluada
En la mayora de los casos una bandera que inicialmente esta en cero al cambiar de
estado a uno ya permanece con ese valor final durante todo el proceso aunque sin
embargo en algunas ocasiones el valor de una bandera va variando de estado de cero
a uno y de uno a cero y as sucesivamente de acuerdo a las circunstancias.

Prof. Carolina Candia

22

EJEMPLOS
UTILIZANDO BANDERA O SEAL
1. Ingresar diez nmeros en forma consecutiva. Determinar el menor de la serie y
luego imprimir el resultado.
Anlisis: Averiguar cul es el menor nmero de la lista de diez valores
ingresados, teniendo en cuenta que el menor valor pueda ubicarse en cualquier
posicin.
Datos de entrada: Diez valores aleatorios. Variable a utilizar X
Dato de salida: Valor menor. Variable a utilizar ME
En este algoritmo la bandera est representada por la variable B, la cual es
inicializada con el valor cero (0), con el objetivo de almacenar el primer valor
ingresado como menor.

Inicio
Entero B=0, ME=0, X, C
Hacer Para C=1 hasta 10
Leer X
Si B=0
B=1
ME=X
Sino
Si X < ME
ME=X
Fin si
Fin si
Fin para
Imprimir Me
Fin

Prof. Carolina Candia

23

EJERCICIOS DESARROLLADOS
UTILIZANDO ESTRUCTURAS CCLICAS HACER PARA

1. Calcular el promedio de un alumno que tiene 3 calificaciones en la materia de


Introduccin a la Programacin.

Inicio
entero sum, calif, c, prom
cadena nombre
sum = 0
Leer nombre
Hacer para c = 1 a 3
Leer calif
sum = sum + calif
Fin-para
prom = sum /3
Imprimir prom
Fin.
2. Leer 10 nmeros e imprimir solamente los nmeros positivos
Inicio
entero n, num
Hacer para n = 1 a 10
Leer num
Si (num > 0) entonces
Imprimir num
Fin-si
Fin para
Fin
3. Leer 15 nmeros negativos y convertirlos a positivos e imprimir dichos
nmeros.
Inicio
entero x, num, pos
Hacer para x = 1 a 15
Leer num
pos = num * -1
Imprimir num, pos
Fin-para
Fin.

Prof. Carolina Candia

24

4. Leer 20 nmeros e imprimir cuantos son positivos, cuantos negativos y cuantos


neutros.

Inicio
entero cn = 0, cp = 0, cneg = 0, x, num
Hacer para x = 1 a 20
Leer num
Si num = 0 entonces
cn = cn + 1
si no
Si num > 0 entonces
cp = cp + 1
si no
cneg = cneg + 1
Fin-si
Fin-si
Fin-para
Imprimir cn, cp, cneg
Fin.
5. Suponga que se tiene un conjunto de calificaciones de un grupo de 20 alumnos.
Realizar un algoritmo para calcular la calificacin promedio y la calificacin
ms baja de todo el grupo. Se inicializa la variable baja con 999
Inicio
sum = 0
baja = 999
Hacer para a = 1 a 20
Leer calif
sum = sum + calif
Si calif < baja entonces
baja = calif
fin-si
Fin-para
media = sum / 2
Imprimir media, baja
fin

Prof. Carolina Candia

25

EJERCICIOS DESARROLLADOS
UTILIZANDO ESTRUCTURAS CCLICAS HACER MIENTRAS

1. Calcular el valor de la suma de los cien primeros nmeros naturales


Inicio
Entero suma=0, cont=1
Mientras (cont <=100) hacer
suma=suma + cont
cont=cont + 1
Fin Mientras
Imprimir suma
Fin
2. Calcular la suma de los nmeros mayores a 1 y menores a 100
Inicio
entero suma=0, num
leer num
Mientras (num>1) and (num<100) hacer
suma = suma + num
leer num
Fin mientras
Fin
3. Calcular y visualizar la suma y el producto de los nmeros pares que se
encuentran entre los valores 10 y 20, incluyendo los limites
Inicio
Entero sumapar, prod, num
Leer num
Mientras (num>=10) and (num<=20) hacer
Si (num%2 == 0) entonces
sumapar = sumapar + num
prod= num * num
Imprimir El producto de los pares es:, prod
Fin si
Leer num
Fin Mientras
Imprimir La suma de los pares es:, sumapar
Fin

Prof. Carolina Candia

26

4. Leer 12 nmeros y obtener cuntos de ellos son positivos.

Inicio
Entero contpos, num, cont=0
Mientras (cont<12) hacer
Leer num
Si (num>0) entonces
Contpos=contpos+1
Fin si
cont=cont+1
Fin Mientras
Imprimir La cantidad de nmeros positivos es:, contpos
Fin
5. Hallar el mximo comn divisor de dos nmeros naturales enteros positivos.
Visualizar el resultado.

Inicio
Entero a, b, res
Imprimir Ingreso dos nmeros
Leer a, b
Repetir
res=a mod b
a=b
b = res
Hasta res == 0
Imprimir El MCD es:, a
Fin

Prof. Carolina Candia

27

EJERCICIOS DESARROLLADOS
UTILIZANDO ESTRUCTURAS CCLICAS USO DE BANDERAS

1. Ingresar diez nmeros. Determina e imprime el menor nmero par de la serie


Inicio
Entero B=0, ME=0, C
Real X
Hacer Para C=1 hasta 10
Leer X
Si X/2==ENT (X/2)
Si B=0
B=1
ME=X
Sino
Si X < ME
ME=X
Fin si
Fin si
Fin si
Fin para
Imprimir Me
Fin
En donde:

X: Variable de entrada

ME: Auxiliar de menor

B: Bandera

C:

Contador

2. Ingresar diez nmeros de uno en uno. Determinar e imprimir la cantidad de


veces que a un nmero positivo le sigue un nmero negativo en la serie.
Inicio
Entero b=0, cv=0, num, c
Hacer Para c=1 hasta 10
Leer x
Si (num >0) entonces
b=1
Fin Si
Si (num == 0) entonces
b=0
Fin si
Si (num< 0) entonces
Si (b == 1) entonces
b=0
cv= cv + 1
Fin si
Fin si
Fin para
Imprimir La cantidagd de elementos es:cv
Fin
Prof. Carolina Candia

28

En donde:

num: Variable de entrada

B: Bandera

que

CV: Contador de veces

nmeros

C: Contador que controla


se

introduzcan

diez

3. Ingresar diez nmeros de uno en uno. Determinar e imprimir el mayor nmero


mltiplo de tres en la serie.
Inicio
Entero b=0, may=0, cont, num
Real r
Hacer para cont=1 hasta 10
Leer num
Si (num/3==ent (num/3))
Si (b = = 0)
b=1
may=num
sino Si (num > may)
may = num
Fin si
Fin si
Fin si
Fin para
Imprimir El valor mayor encontrado es:, may
Fin
En donde:

num: Variable de entrada

may: Almacena el mayor

cont: Contador

Prof. Carolina Candia

b:

Bandera

29

Vous aimerez peut-être aussi