Professional Documents
Culture Documents
PROGRAMACIN Y ALGORITMOS
Realizado por
Herrera
ndice
Estructuras repetitivas
Ciclo PARA
Ciclo MIENTRAS
Ciclo REPITA
Variables que se combinan con los ciclos
Acumulador, contador, promedio y porcentaje
Switche o bandera
Ciclos anidados
Estructuras repetitivas y estructuras de decisin
ESTRUCTURAS REPETITIVAS
Las estructuras repetitivas son conocidas como
CICLOS, y se usan dentro de Algoritmos para
realizar procesos que se deben REPETIR un
determinado nmero de veces. los ciclos
permiten ahorrar tiempo en el momento de
realizar instrucciones dentro de un algoritmo.
Por ejemplo si se pide hacer un algoritmo que lea
1 nmero y calcule su cuadrado, sera un
proceso muy sencillo:
INICIO
LEA num
Cuad = num ^ 2
IMPRIMIR Cuad
FIN
Este es un proceso sencillo de realizar; pero si
en lugar de un nmero fueran 10, 20 o 500, no
se podran leer 10, 20 o 500 variables. Lo
mejor sera usar una estructura REPETITIVA.
Por ejemplo:
INICIO
FIN PARA
FIN
Este es un ejemplo de un ciclo PARA, que toma las
instrucciones que hay dentro de l, y las repite 20
veces. En este caso leera 20 nmeros y
calculara su cuadrado.
CICLO PARA
El ciclo PARA se usa cuando se conoce el nmero de veces
que se va a repetir el ciclo o cuando ste se hace N veces.
La SINTAXIS es la siguiente
PARA X = INICIO, FIN, [INCREMENTO o DECREMENTO]
Instrucciones
FIN PARA
***Si el FIN no se conoce, se lee antes del ciclo
EXPLICACIN:
PARA X = INICIO, FIN, [INCREMENTO o DECREMENTO]
X: Una variable cualquiera (Controladora del ciclo).
INICIO: Valor en el que empieza la variable controladora
(Normalmente es 1).
FIN: Valor en el que termina la variable controladora (Este
es el nmero de veces que se repite el ciclo).
INCREMENTO o DECREMENTO: Valor que incrementa o
decrementa la variable controladora (Normalmente es 1).
Dependiendo el ejercicio se pone el incremento o el
decremento.
VARIABLE
CICLO
INICIO
FIN
INCREMENTO
INSTRUCCIONES
PARA X = 1, 25,1
LEA NOM, ED
SI (ED >= 18) ENT
IMPRIMIR NOM, MAYOR DE EDAD
SINO
IMPRIMIR NOM, MENOR DE EDAD
FINSI
FIN PARA
FIN
ESTO SE REPITIR
25 VECES
LEA N
PARA K = 1, N, 1
NUM
100
105
110
115
120
...
200
205
PRUEBA DE ESCRITORIO
PARA J = 1, 5, 1
NUM
IMPRIMA
1
2
4
-3
FINSI
10
FIN PARA
-8
FIN
TERMINA
LEA NUM
SI (NUM > 0) ENT
IMPRIMIR NUM
10
En la prueba,
J se
inicializa
en 1 y evala
si se pas
final que
es (5),
como
es la
Cuando
llega a la
lnea
del FINPARA,
se incrementa
la del
variable
del ciclo
y va
hasta
falsoyingresa
y ejecuta
instrucciones.
primer lnea del ciclo
evala al
si ciclo
la J se
pas dellas
final
(5); como es falso (J vale 2),
continua
leyendo,
hasta
que llegue
a 6. Si
los (por
nmeros
3, el
0, 4).
10 y 8
Luego
se lee un
nmero
cualquiera
enleemos
esta lnea
ejemplo
mostrar slo los positivos: 4 y 10. En los dems casos slo se lee el nmero; pero
Luego imprime el nmero
4 es positivo (en esta lnea).
no porque
se imprime.
INICIO
PARA K
= 1, 6, 1
LEA NUM
Se lee NUM
CUB = NUM ^
IMPRIMIR CUB
FIN PARA
FIN
Se calcula CUB
Se imprime CUB
K
1
2
3
4
5
6
7
27
512
64
125
8
729
27
512
64
125
8
729
INICIO
PRUEBA DE ESCRITORIO
PARA K
= 1, 6, 1
LEA NUM
CUB = NUM ^
K
COMO K YA SE PAS
DEL FIN. VA DESPUS
DEL FIN PARA.
IMPRIMIR CUB
FIN PARA
FIN
Y TERMINA EL ALGORITMO. LEYENDO 6
NMEROS E IMPRIMIENDO SUS
RESPECTIVOS CUBOS
1
2
3
4
5
6
7
27
512
64
125
8
729
27
512
64
125
8
729
EXPLICACIN:
Lea N
X = INICIO
MIENTRAS (X <= N)
X = X + [INCREMENTO o DECREMENTO]
FINMIENTRAS
N: Final del ciclo (que se debe leer porque se desconoce)
X: Una variable cualquiera (Controladora del ciclo).
INICIO: Valor en el que empieza la variable controladora
(Normalmente es 1).
INCREMENTO o DECREMENTO: Valor que incrementa la
variable controladora (Normalmente es 1)
Explicacin:
Mientras que el ciclo PARA hace todo en una sola lnea (inicio, fin
e incremento), el ciclo MIENTRAS toma cada una de esas partes y
las divide en varias lneas, que se distribuyen de la siguiente
forma:
FIN
VARIABLE
LEA N
INICIO
FIN
NUM = 1
CICLO
FIN DEL
CICLO
INSTRUCCIONES
INCREMENTO
FIN MIENTRAS
LEA N
LEA N
PARA NUM = 1, N, 1
IMPRIMIR NUM
FIN PARA
NUM = 1
MIENTRAS (NUM <= N)
IMPRIMIR NUM
NUM = NUM + 1
FIN MIENTRAS
NUM
NUM = 100
100
105
IMPRIMIR NUM
110
NUM = NUM + 5
...
FIN MIENTRAS
N+5
FIN
INICIO
LEA N
J=1
MIENTRAS (J < = N)
LEA NUM
PRUEBA DE ESCRITORIO
N
NUM
IMPRIMA
1
2
15
15
IMPRIMA NUM
FINSI
J=J+1
FIN MIENTRAS
Aqu incrementa la J en 1. Y al llegar al FIN MIENTRAS regresa
a la primera lnea del CICLO para volver a evaluar si J lleg al
FIN
final que es N.
AlAl
evaluar
evaluarlalacondicin
condicinya
sta esporque
Verdadera
es FALSA
4 no es
(3<=3).
Sigue
<=3.
Por lo
tantoleyendo
termina
el ciclo
MIENTRAS (J < = N)
LEA NUM
SI (NUM > 0) ENT
IMP NUM
FINSI
J=J+1
PRUEBA DE ESCRITORIO
N
NUM
IMPRIMA
1
2
3
4
15
-8
7
15
7
NOTE
Aqu
QUE
incrementa
EL ALGORITMO
la J en 1.SEYHIZO
al llegar
HASTA
al FIN
3 porque
MIENTRAS
en N se
ley eseanmero;
la primera
pero
lnea
se del
puede
CICLO
leerpara
cualquier
volvervalor.
a evaluar
AqusiseJ
FIN MIENTRASregresa
leyeron 3 nmeros
lleg
y se
al imprimieron
final que es N.
slo los positivos.
FIN
EXPLICACIN:
LEER VAR
MIENTRAS (CONDICIN)
VAR: Variable que va a controlar el ciclo (se recomienda que sea
una de las variables trabajadas en el algoritmo). Muy diferente
en los otros ciclos que se crea una variable controladora del
ciclo.
CONDICIN: Permite terminar el ciclo. Se usa la variable que
se ley y se le puede dar un valor que la variable nunca tome.
Nota: Tenga en cuenta que este ciclo no tiene INCREMENTO,
INICIO o FIN; lo nico que permite terminar este ciclo es que la
variable tome un valorX. La caracterstica de este ciclo es que se
lee la Variable controladora, antes del ciclo y antes del fin del ciclo.
Para entender mejor el tema mire los ejemplos:
Explicacin:
LEA NUM
CICLO
CONDICIN DEL
CICLO
FIN MIENTRAS
INSTRUCCIONES
PRUEBA DE ESCRITORIO
NUM
9
100
RAIZ
3
IMPRIMA
3
INICIO
LEA NUM
MIENTRAS NUM <> 0
RAIZ = NUM ^ (1/2)
IMPRIMIR RAIZ
LEA NUM
FIN MIENTRAS
FIN
NUM
9
100
0
RAIZ
3
10
IMPRIMA
3
10
AS SE LEYERON
NMEROS,
E IMPRIMI
Al llegar alVARIOS
fin del ciclo,
regresa SE
a laCALCUL
primera lnea
y evala siSU
es
diferenteTERMINANDO
de 0. Como noEL
lo es,
termina el
ciclo y termina
el
RAZ CUADRADA.
PROCESO
CUANDO
SE DIGIT
algoritmo.
UN NMERO
IGUAL A 0.
LEA NHORAS
MIENTRAS NHORAS > 0
LEA VLRHORA
BAS = NHORAS * VLRHORA
RET = BAS * 0.05
NETO = BAS - RET
IMPRIMIR NETO
LEA NHORAS
FIN MIENTRAS
EXPLICACIN:
LEER VAR
REPITA
Instrucciones
LEER VAR
HASTA (CONDICIN)
Este ciclo empieza con LEER VAR que controlar el ciclo,
luego la palabra REPITA, se colocan las instrucciones a
realizar. Se vuelve a leer antes del final del ciclo y finalmente
se pone HASTA (CONDICIN), sta ltima es la que permite
terminar al ciclo.
Nota: Este ciclo al no haber condicin al inicio EST OBLIGADO
A HACERSE MNIMO UNA VEZ, algo que no pasa con el ciclo
(MIENTRAS). Es usada para validar el ingreso de informacin.
CICLO
LEA NUM
REPITA
INSTRUCCIONES
HASTA (NUM = 0)
CONDICIN DEL
CICLO
PRUEBA DE ESCRITORIO
NUM
RAIZ
IMPRIMA
64
81
PRUEBA DE ESCRITORIO
NUM
RAIZ
IMPRIMA
64
81
0
8
9
8
9
CONTADORES, ACUMULADORES,
PROMEDIOS Y PORCENTAJES
Son elementos de algoritmos bsicos y fundamentales para
determinar cantidades, sumatorias y varios datos estadsticos.
PORCENTAJE:
en
cuenta
para
los
SI (ED>=18) ENT
CONTMY = CONTMY + 1
SINO
CONTMN = CONTMN + 1
FINSI
SI (SEX=MASCULINO) ENT
SUMEDH = SUMEDH + ED
SINO
SUMEDM = SUMEDM + ED
FINSI
SUMTED = SUMTED + ED
FINPARA
IMPRIMIR CONTMY, CONTMN, SUMEDH, SUMEDM, SUMTED
Se imprimen
FUERA del ciclo.
SUMEDH = SUMEDH + ED
CONTH = CONTH + 1
SINO
SUMEDM = SUMEDM + ED
CONTM = CONTM + 1
FINSI
SI (ED>=18) ENT
CONTMY = CONTMY + 1
FINSI
SUMTED = SUMTED + ED
FINPARA
PROMEDH = SUMEDH / CONTH
PROMEDM = SUMEDM / CONTM
PORCMY = CONTMY / 10 * 100
PROMTE = SUMTED / 10
FUNCIONAMIENTO DE UN CONTADOR
Hacer un algoritmo que lea la EDAD de 6 personas e imprima cuntos
son mayores de edad y cuntos menores.
INICIO
PRUEBA DE ESCRITORIO
X CMY CMN EDAD
1
2
3
4
5
6
7
0
1
2
3
4
0
1
2
17
23
18
35
12
21
IMPRIMA
CMY, CMN = 0
PARA X = 1, 6, 1
LEA EDAD
FUNCIONAMIENTO DE UN PORCENTAJE
Hacer un algoritmo que lea la EDAD de 6 personas e imprima el
porcentaje de mayores de edad y el de menores.
INICIO
PRUEBA DE ESCRITORIO
X CMY CMN EDAD
1
2
3
4
5
6
7
0
1
2
3
4
0
1
2
17
23
18
35
12
21
PORCMY PORCMN
66,6%
33,3%
IMP
66,6%
33,3%
CMY, CMN = 0
PARA X = 1, 6, 1
LEA EDAD
SI (EDAD >= 18)
CMY = CMY + 1
SINO
CMN = CMN + 1
FINSI
FINPARA
PORCMY = CMY / 6 *
100
PORCMN = CMN / 6 *
100
IMPRIMIR PORCMY,
PORCMN
FUNCIONAMIENTO DE UN ACUMULADOR
Hacer un algoritmo que lea la EDAD de 6 personas e imprima la suma
de edad de los mayores de edad y de los menores.
INICIO
PRUEBA DE ESCRITORIO
X SMY SMN EDAD
1
2
3
4
5
6
7
0
23
41
76
97
0
17
29
17
23
18
35
12
21
IMPRIMA
97
29
SMY, SMN = 0
PARA X = 1, 6, 1
LEA ED
SI (ED >= 18)
SMY = SMY + ED
SINO
SMN = SMN + ED
FINSI
FINPARA
IMPRIMIR SMY,
SMN
FUNCIONAMIENTO DE UN PROMEDIO
Hacer un algoritmo que lea la EDAD de 6 personas e imprima el
porcentaje de mayores de edad y el de menores.
CMY, CMN, SMY, SMN = 0
PRUEBA DE ESCRITORIO
X SMY SMN EDAD
1
2
3
4
5
6
7
0
23
41
76
97
0
17
29
17
23
18
35
12
21
24,2
14,5
24,2
14,5
CMY
CMN
0
1
2
3
4
EL funcionamiento es igual al de
los contadores y acumuladores;
slo que al terminar el ciclo se
calculan los promedios (Para
calcularlos se tiene que CONTAR
y ACUMULAR).
1
2
PARA X = 1, 6, 1
LEA EDAD
SI (EDAD >= 18)
CMY = CMY + 1
SMY = SMY + ED
SINO
CMN = CMN + 1
SMN = SMN + ED
FINSI
FINPARA
SWITCHES O BANDERAS
Son elementos de algoritmos fundamentales para
buscar elementos o para determinadas situaciones en
las cuales se cumpla una condicin especfica.
Teniendo como principal caracterstica que toma slo
dos estados o valores (1 o 0, Encendido o Apagado,
Verdadero o False, V o F, entre otros valores).
Esta variable se usa con el nombre SW o BAND. Se
inicializa antes del ciclo con cualquiera de los dos
valores. Y dentro de ciclo cambia al otro valor cuando
cumpla determinada condicin. La SINTAXIS es la
siguiente:
SW = 0
SW = VERDADERO
CICLO
CICLO
SI CONDICIN
SI CONDICIN
SW = FALSO
SW = 1
FINSI
FINSI
FIN SI
FIN SI
FINCICLO
FINCICLO
Explicacin:
SW = 0
PARA K = 1, 90, 1
LEER NUM
SI (NUM < 0) ENTONCES
SE CAMBIA EL VALOR DE LA
VARIABLE CUANDO LA
CONDICIN SEA VERDADERA
SW = 1
FINSI
FIN PARA
SI (SW = 1) ENTONCES
-2
En esta lnea se INICIALIZA el sw o bandera
en 0, antes del ciclo.
En esta lnea se leen nmeros, y slo
cambia el SW a 1, cuando se lea algn
nmero negativo.
Si el 2 es el nmero 80 ledo.
Inmediatamente cambia sw a 1
Aqu se pregunta. Como sw = 1, imprime el
mensaje