Está en la página 1de 57

CURSO DE LGICA DE

PROGRAMACIN Y ALGORITMOS

Realizado por

JAIRO HERNANDO RAMREZ MARN


Docente de Lgica de Programacin, Algoritmos y Lenguaje de Programacin

Institucin Universitaria Salazar y


Lgica de Programacin

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

PARA X=1, 20, 1


LEA num
Cuad = num ^ 2
IMPRIMIR Cuad

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.

TIPOS DE ESTRUCTURAS REPETITIVAS


En Algoritmos existen los siguientes tipos de
estructuras repetitivas y sus respectivas
divisiones:
Ciclo PARA
Ciclo MIENTRAS
Registro CENTINELA (Cualitativo)
Registro IDENTIFICADOR (Cuantitativo)
Ciclo REPITA - HASTA

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.

Ejemplo: Se pide realizar un algoritmo que imprima


los nmeros del 1 hasta el 100.
El mismo enunciado est indicando el nmero de veces que
se va a realizar el CICLO (100 veces), por tal motivo los
valores para el CICLO son (INICIO=1, FIN=100,
INCREMENTO=1; este ltimo se usa para que la variable
pase de 1 a 2, de 2 a 3, y as sucesivamente hasta 100).
PARA NUM = 1, 100, 1
IMPRIMIR NUM
FIN PARA
Explicacin:

En este ejemplo la variable controladora del ciclo es


la misma que se puede imprimir.

VARIABLE
CICLO

INICIO

FIN

INCREMENTO

PARA NUM = 1, 100, 1


IMPRIMA NUM
FIN PARA

INSTRUCCIONES

FIN DEL CICLO

Pero en la mayora de los casos no es as. Ejemplo:

Desarrolle un algoritmo que lea el nombre y la edad


de una persona e imprima su nombre y un mensaje
que diga si es mayor o menor de edad.
INICIO

Observe que la variable controladora


del ciclo (X) es diferente a las otras dos
variables: NOM y ED.

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

Calcular el salario neto de N trabajadores, sabiendo que se


le hace una retencin del 5% de su bsico. Lea el nmero
de horas trabajadas y el valor por hora.
INICIO

LEA N
PARA K = 1, N, 1

Este ciclo va desde 1 hasta N empleados; pero


como no se conoce su valor (N), antes del ciclo se
tiene que leer esta variable.

LEA NHORAS, VLRHORA

Lo dems es igual al tipo de ciclo


BAS = NHORAS * VLRHORA
PARA en el que se conoce el
nmero de veces que se repite.
RET = BAS * 0.05
(Como en el ejercicio anterior)

NETO = BAS - RET


IMPRIMIR NETO
FIN PARA
FIN

Pero no siempre el ciclo tendr


incrementos de 1. Existen algoritmos
donde se coloquen incrementos de 2 o 3,
dependiendo el caso.

Desarrolle un algoritmo que imprima los nmeros


mltiplos de 5 comprendidos entre 100 y 200.
INICIO

NUM

PARA NUM = 100, 200, 5


IMPRIMIR NUM
FIN PARA
FIN

Observe que la variable lleg


hasta 205; ya que siempre se tiene
que pasar del final, para que
termine el ciclo. (Ver
Funcionamiento del ciclo PARA).

En este ejemplo se muestra el inicio y el fin de la variable del ciclo (100


y 200 respectivamente); pero si ponemos incrementos de 1, se
mostrarn los nmeros entre 100 y 200 (100, 101, 102, 103...200) y no los
mltiplos de 5 como lo pide el ejercicio; por eso el incremento tiene que
ser de 5. Los valores que tomar la variables sern los siguientes:

100
105
110
115
120
...
200
205

FUNCIONAMIENTO DE UN CICLO PARA


Imprimir slo los nmeros positivos de un grupo de 5.
INICIO

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.

Hacer un algoritmo que lea 6 nmeros e imprimir su cubo.


K inicia en 1 y evala si se pas del final (o cual es
FALSO; porque 1<=6).

INICIO
PARA K

= 1, 6, 1

LEA NUM

Se lee NUM

CUB = NUM ^

IMPRIMIR CUB
FIN PARA
FIN

Como K no se pas del


PRUEBA DE ESCRITORIO
FIN, sigue leyendo.

Se calcula CUB
Se imprime CUB

Al llegar al FINPARA incrementa


la variable y regresa a la primer
lnea del CICLO y evala si K se
pas del final. Si es Verdadero
sigue despus del FIN PARA,
sino continua leyendo.

K
1
2
3
4
5
6
7

NUM CUB IMP


3
8
4
5
2
9

27
512
64
125
8
729

27
512
64
125
8
729

Hacer un algoritmo que lea 6 nmeros e imprimir su cubo.

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

NUM CUB IMP


3
8
4
5
2
9

27
512
64
125
8
729

27
512
64
125
8
729

CICLO HAGA MIENTRAS


(Registro Identificador - Cuantitativo)
El ciclo MIENTRAS con registro identificador se usa cuando el
ciclo se hace N veces (es similar al Ciclo Para hasta N).
La SINTAXIS es la siguiente:
Lea N
X = INICIO
MIENTRAS (X <= N)
Instrucciones
X = X + [INCREMENTO o DECREMENTO]
FIN MIENTRAS

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)

Ejemplo: Se pide realizar un algoritmo que imprima


los nmeros de 1 hasta N.
El enunciado indica que el ciclo se har N veces (como no se
sabe su valor de debe leer antes del ciclo). Por tal motivo los
valores para el CICLO son (INICIO=1, FIN=N, INCREMENTO=1).
Lea N
NUM=1
MIENTRAS (NUM<=N)
IMPRIMIR NUM
NUM=NUM+1
FIN MIENTRAS

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

MIENTRAS (NUM <= N)


IMPRIMA NUM
NUM = NUM + 1

FIN DEL
CICLO

INSTRUCCIONES

INCREMENTO

FIN MIENTRAS

Observe que el orden del INICIO, del FIN y del INCREMENTO


cambian de lugar; pero su funcionamiento es el mismo.

Es muy fcil convertir un CICLO PARA hasta N en un CICLO


MIENTRAS con REGISTRO IDENTIFICADOR:

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

Observe lo fcil que es pasar un CICLO PARA a CICLO


MIENTRAS. Se lee el final (igual), se cambia PARA por
MIENTRAS, las instrucciones van en medio y finalmente se
divide las instrucciones del PARA en el mientras: INICIO antes
del ciclo, FIN en la condicin del ciclo y el incremento antes de
cerrar el CICLO. Y se cambia FIN PARA por FIN MIENTRAS.

Calcular el salario neto de N trabajadores, sabiendo que


se le hace una retencin del 5% de su bsico. Lea el
nmero de horas trabajadas y el valor por hora.
LEA N
K=1
MIENTRAS (K <= N)
LEA NHORAS, VLRHORA
BAS = NHORAS * VLRHORA
RET = BAS * 0.05
NETO = BAS - RET
IMPRIMIR NETO
K=K+1
FIN MIENTRAS

Este ciclo va desde 1 hasta N


empleados; pero como no se
conoce su valor se tiene que
leer antes del ciclo esta
variable.

Desarrolle un algoritmo que imprima los nmeros


mltiplos de 5 comprendidos entre 100 y N.
INICIO
LEA N

NUM

NUM = 100

100

MIENTRAS (NUM <= N)

105

IMPRIMIR NUM

110

NUM = NUM + 5

...

FIN MIENTRAS

N+5

FIN

En este ejemplo se tiene


que poner un incremento
de 5 para que se muestre
los mltiplos de 5, como
lo pide el ejercicio. Los
valores que tomar la
variables sern los
siguientes:

FUNCIONAMIENTO DEL REGISTRO IDENTIFICADOR


Hacer un algoritmo que lea N nmeros e imprima slo los positivos.
Aqu evala si J es <=
N (2 es <=3), entonces
contina leyendo

INICIO
LEA N
J=1

MIENTRAS (J < = N)
LEA NUM

PRUEBA DE ESCRITORIO
N

NUM

IMPRIMA

1
2

15

15

SI (NUM > 0) ENT

En esta lnea se LEE N (en este caso 3) y se empieza


J en 1 (Ver Prueba de Escritorio).

IMPRIMA NUM

Evalua si J<=N. Como es Verdadero continua.

FINSI

Aqu se lee un # cualquiera (positivo o negativo).

J=J+1

Aqu pregunta si el # es positivo (que lo imprima)

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.

FUNCIONAMIENTO DEL REGISTRO IDENTIFICADOR


Hacer un algoritmo que lea N nmeros e imprima slo los positivos.
INICIO
LEA N
J=1

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

Aqu lee un nmero cualquiera (positivo o


negativo).
Aqu pregunta si el # es positivo (que lo
imprima)

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

CICLO HAGA MIENTRAS


(Registro Centinela - Cualitativo)
El ciclo MIENTRAS con Registro Centinela se usa cuando
no se sabe el nmero de veces que se va a hacer el ciclo
(no se da un nmero fijo o no se habla de la variable N).
La SINTAXIS es la siguiente:
LEER VAR
MIENTRAS (CONDICIN)
Instrucciones
LEER VAR
FIN MIENTRAS

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:

Ejemplo: Se pide realizar un algoritmo que lea varios


nmeros positivos e imprima su raz cuadrada.
El enunciado indica que se deben leer varios nmeros, pero no
dicen cuantos ni tampoco que son N. Por tal motivo se tiene que
usar un ciclo Mientras con Registro Centinela. Se lee la variable
antes del ciclo y antes del fin del ciclo y se pone una condicin
apropiada (si son nmeros positivos ninguno puede ser menor
igual a cero):
LEER NUM
MIENTRAS (NUM > 0)
RAIZ = NUM ^ (1/2)
IMPRIMIR RAIZ
LEER NUM
FIN MIENTRAS

Explicacin:

Mientras que los ciclos anteriores requieren de un inicio, un fin y


un incremento; estos ciclos NO. Slo necesitan tomar
cualquiera de las variables y ponerle una condicin correcta
(algunos algoritmos dirn cual es la condicin, otros NO. En
este ltimo caso el programador elige la condicin apropiada).
VARIABLE QUE SE LEE
ANTES DEL CICLO

LEA NUM
CICLO

MIENTRAS (NUM > 0)

Y ANTES DEL FINAL


DEL CICLO

RAIZ = NUM ^ (1/2)


IMPRIMIR RAIZ
LEA NUM

FIN DEL CICLO

CONDICIN DEL
CICLO

FIN MIENTRAS

INSTRUCCIONES

FUNCIONAMIENTO MIENTRAS (Registro Centinela)


Hacer un algoritmo que lea un grupo de nmeros y calcule su raz
cuadrada. El ciclo se har hasta que se lea un nmero igual a cero.
INICIO
LEA NUM

Como 100 es <>


0, contina.

MIENTRAS (NUM <> 0)


RAIZ = NUM ^ (1/2)
IMPRIMIR RAIZ
LEA NUM
FIN MIENTRAS
FIN

PRUEBA DE ESCRITORIO
NUM
9
100

RAIZ
3

IMPRIMA
3

En esta lnea se LEE el primer nmero (vamos


a leer 9) Ver Prueba de Escritorio.

En esta lnea se evala si el # es diferente de 0. Como es


Verdadero continua.
Aqu se calcula e imprime la Raz Cuadrada
Aqu se Lee otro nmero.

Al llegar al FINMIENTRAS va a la primera lnea de la estructura y


evala si el nmero es diferente de 0.

FUNCIONAMIENTO MIENTRAS (Registro Centinela)


Hacer un algoritmo que lea un grupo de nmeros y calcule su raz
cuadrada. El ciclo se har hasta que se lea un nmero igual a cero.
PRUEBA DE ESCRITORIO

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

Nuevamente viene a esta lnea, calcula


e imprime la raz.
Este proceso repetir mientras el nmero ledo sea
diferente de 0. Si no se desea continuar se lee
este nmero.

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.

Calcular el salario neto de varios trabajadores, sabiendo que se le


hace una retencin del 5% de su bsico. Lea el nmero de horas
trabajadas y el valor por hora. Hacer esto mientras no se digite un
nmero de horas negativo o igual a cero.
Este ciclo se repite varias veces mientras
que no se digite un nmero de horas
negativo (esa es la condicin del ciclo) y
la variable contraladora del ciclo es el
nmero de horas.

LEA NHORAS
MIENTRAS NHORAS > 0
LEA VLRHORA
BAS = NHORAS * VLRHORA
RET = BAS * 0.05
NETO = BAS - RET
IMPRIMIR NETO
LEA NHORAS
FIN MIENTRAS

Observe que la variable NHORAS se lee antes


del ciclo y antes del fin del ciclo. Como falta
leer la variable VLRHORA se lee dentro del
ciclo. Y la condicin es mientras que NHORAS
sea MAYOR DE 0, lo que significa POSITIVO.

CICLO REPITA HASTA


El ciclo REPITA HASTA se usa de una forma similar al
ciclo MIENTRAS con Registro Centinela; pero la
condicin va al final del ciclo y no en su primera lnea.
La SINTAXIS es la siguiente:
LEA VAR
REPITA
Instrucciones
LEA VAR
HASTA (CONDICIN)

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.

Ejemplo: Se pide realizar un algoritmo que lea varios nmeros e


imprima su raz cuadrada hasta que se lea un nmero negativo.

El enunciado indica que se deben leer varios nmeros y est


dando la condicin para terminar el ciclo. Por tal motivo se
tiene que usar un ciclo REPITA HASTA.
LEER NUM
REPITA
RAIZ = NUM ^ (1/2)
IMPRIMIR RAIZ
LEER NUM
HASTA (NUM = 0)
Explicacin:

Las consideraciones a tener en cuenta en este ciclo son las


mismas que para el ciclo MIENTRAS con Registro Centinela;
pero la condicin no va al inicio del ciclo sino al final.
VARIABLE QUE SE LEE ANTES
DEL CICLO

CICLO

LEA NUM
REPITA

Y ANTES DEL FINAL


DEL CICLO

RAIZ = NUM ^ (1/2)


IMPRIMIR RAIZ
LEA NUM

FIN DEL CICLO

INSTRUCCIONES

HASTA (NUM = 0)

CONDICIN DEL
CICLO

FUNCIONAMIENTO DE UN CICLO REPITA HASTA


Hacer un algoritmo que lea un grupo de nmeros y calcule su raz
cuadrada. El ciclo se har hasta que se lea un nmero igual a cero.
INICIO
LEA NUM
REPITA

PRUEBA DE ESCRITORIO
NUM

RAIZ

IMPRIMA

64
81

RAIZ = NUM ^ (1/2)


IMPRIMIR RAIZ
LEA NUM
HASTA (NUM = 0)
FIN

En esta lnea se LEE el primer nmero


(vamos a leer 64) Ver Prueba. Y del repita
pasa a la lnea siguiente (Sin evaluar nada)
Aqu se calcula e imprime la raz cuadrada.
Aqu se lee otro nmero
Al llegar al fin del ciclo evala: si el nmero es =
0 termina, de lo contrario va hasta el repita, y
contina con el proceso.

FUNCIONAMIENTO DE UN CICLO REPITA HASTA


Hacer un algoritmo que lea un grupo de nmeros y calcule su raz
cuadrada. El ciclo se har hasta que se lea un nmero igual a cero.
INICIO
LEA NUM
REPITA
RAIZ = NUM ^ (1/2)
IMPRIMIR RAIZ
LEA NUM
HASTA (NUM = 0)
FIN

PRUEBA DE ESCRITORIO
NUM

RAIZ

IMPRIMA

64
81
0

8
9

8
9

Aqu se calcula e imprime la otra raz


cuadrada.
Aqu se lee otro nmero (esto se repetir
hasta que se digite un 0.) Para terminar
haremos eso.
Al llegar aqu, evala: Como el nmero es igual
a 0, termina el proceso.

Se leyeron nmeros, se calcul su raz cuadrada hasta digitar un cero.

Calcular el salario neto de varios trabajadores, sabiendo que se le


hace una retencin del 5% de su bsico. Lea el nmero de horas
trabajadas y el valor por hora. Hacer esto hasta se digite un nmero
de horas negativo.
LEA NHORAS
REPITA
LEA VLRHORA
BAS = NHORAS * VLRHORA
RET = BAS * 0.05
NETO = BAS - RET
IMPRIMIR NETO
LEA NHORAS
HASTA (NHORAS < 0)

El Ciclo Mientras con Registro


Centinela pone condicin
MIENTRAS QUE NO SE CUMPLA
EL FINAL DEL CICLO; mientras
que el Ciclo REPITA se hace
HASTA QUE SE CUMPLA LA
CONDICIN. Ej: Ciclo
MIENTRAS: Haga Mientras la
edad sea diferente de 80 aos.
El ciclo hasta dira: Repita hasta
que la edad sea igual a 80.

CONTADORES, ACUMULADORES,
PROMEDIOS Y PORCENTAJES
Son elementos de algoritmos bsicos y fundamentales para
determinar cantidades, sumatorias y varios datos estadsticos.

CONTADOR: Como su nombre lo indica, son variables que


sirven para CONTAR dentro de un algoritmo. Se usa para
determinar cantidades (haciendo un conteo de 1 en 1).
La SINTAXIS es la siguiente:
CONTADOR = CONTADOR + 1

ACUMULADOR: Son variables que sirven para SUMAR o


ACUMULAR valores dentro de un algoritmo. Se usa para
determinar totales o todas aquellas operaciones donde se vaya a
incrementar un nmero no constante (el contador incrementa de
forma constante: de 1 en 1, 2 en 2, etc).
La SINTAXIS es la siguiente:
ACUMULADOR = ACUMULADOR + VARIABLE
VARIABLE, es la variable que se pide acumular o sumar.

PROMEDIO: Son variables que sirven para PROMEDIAR


valores. Para calcularlos se divide un ACUMULADOR por un
CONTADOR (Esto quiere decir, se suman todos los elementos y
se divide por el nmero de ellos).
La SINTAXIS es la siguiente:
PROMEDIO = ACUMULADOR / CONTADOR
Algunas veces el CONTADOR se puede reemplazar por el nmero
total de elementos.

PORCENTAJE:

Son variables que sirven calcular datos


estadsticos.
Para calcularlos se usan un CONTADOR
PARTICULAR divido un CONTADOR GENERAL multiplicado por
100.
Al multiplicar un contador particular por el contador general,
siempre dar un nmero entre 0 y 1; por eso se multiplica por 100,
para dar la respuesta en porcentaje: 0.25 = 25%.
La SINTAXIS es la siguiente:
PORCENTAJE = CONT_PARTICULAR / CONT_GRAL*100
Para entender el funcionamiento de contadores, acumuladores,
promedios y porcentajes, observe lo siguiente:

Desarrolle un algoritmo que lea la edad y el sexo de 10 personas;


calcular e imprimir cuantas son mayores de edad y cuantas menores.
Adems, la suma de edad de los hombres, la suma de edad de las
mujeres y la suma de todas las personas.
Las consideraciones a tener
acumuladores y los contadores:

en

cuenta

para

los

Para determinar la cantidad de personas mayores de edad y las


menores de edad, se tienen que usar 2 contadores diferentes;
mientras que para la suma de edad de los hombres, de las
mujeres y de todas las personas se necesitan 3 acumuladores.
Las 4 primeras variables son contadores y acumuladores
PARTICULARES (de un caso en especial: mayores o menores de
edad; hombres o mujeres), mientras que el ltimo acumulador es
GENERAL (para todos, el cual va sin pregunta).

CONTMY, CONTMN, SUMEDH, SUMEDM, SUMTED=0


PARA X=1, 10, 1
LEA SEX, ED

Se inicializan en 0, ANTES del


ciclo. (Todas tienen distinto
nombre).

SI (ED>=18) ENT
CONTMY = CONTMY + 1
SINO
CONTMN = CONTMN + 1

Se calculan los contadores PARTICULARES


(CONTMY significa Contador Mayores de
Edad. Igual con los menores).

FINSI
SI (SEX=MASCULINO) ENT
SUMEDH = SUMEDH + ED
SINO
SUMEDM = SUMEDM + ED
FINSI

Se calculan los Acumuladores


PARTICULARES (SUMEDM significa
Sumatoria de Edad de las Mujeres. Igual con
los hombres).
Se calcula el Acumulador
GENERAL (Sin pregunta)

SUMTED = SUMTED + ED
FINPARA
IMPRIMIR CONTMY, CONTMN, SUMEDH, SUMEDM, SUMTED

Se imprimen
FUERA del ciclo.

Las consideraciones a tener en cuenta para los promedios y


porcentajes: Siempre que se vaya a calcular un promedio se
requiere de un Acumulador y un contador. Para los porcentajes se
necesita un Contador Particular y uno general.
Desarrolle un algoritmo que lea la edad y el sexo de 10 personas;
calcular e imprimir el promedio de edad de los hombres y el de
las mujeres. Adems, el porcentaje de personas mayores de edad
y el promedio de edad de todas las personas.
Para determinar el promedio de edad de hombres y mujeres se
necesita de un contador que cuente los hombres y un acumulador
que sume la edad de los hombres (igual para las mujeres). Para
hallar el porcentaje de los mayores de edad se necesita un contador
que cuente cuntos mayores de edad hay (no se necesita un
contador general, porque el total de personas es 10). Para el
promedio de edades de todos se usa un acumulador general
(tampoco se necesita contar porque son 10).

CONTH, CONTM, CONTMY, SUMEDH, SUMEDM, SUMTED=0


PARA X=1, 10, 1
LEA SEX, ED
SI (SEX=MASCULINO) ENT

Se inicializan en 0, ANTES del ciclo. (Todas


tienen distinto nombre).

SUMEDH = SUMEDH + ED
CONTH = CONTH + 1
SINO
SUMEDM = SUMEDM + ED

Se calculan los contadores y acumuladores


PARTICULARES para calcular los
promedios de edad de hombres y mujeres.

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

Se calcula el Contador PARTICULAR para


calcular el Porcentaje de los mayores de
edad.
Se calcula el Acumulador GENERAL para el
promedio de todas las edades.
Los Promedios y Porcentajes se calcula e
imprimen FUERA del Ciclo.

IMPRIMIR PROMEDH, PROMEDM, PORCMY, PROMTE

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

SI (EDAD >= 18)


CMY = CMY + 1
SINO
CMN = CMN + 1
FINSI
FINPARA
IMPRIMIR CMY,
CMN

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%

EL funcionamiento es igual al de los


contadores; slo que al terminar el
ciclo se calculan los porcentajes (Para
calcularlos se tiene que CONTAR).

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

PROMMY PROMMN IMP

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

PROMMY = SMY/ CMY


PROMMN = SMN/
CMN
IMPRIMIR PROMMY,
PROMMN

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

Observe que se puede inicializar en cualquier valor


(normalmente es el negativo: Apagado, F, 0, o Falso).
Despus del ciclo se puede preguntar por el estado o el
valor de esa variable e imprimir los mensajes que
correspondan o sean necesarios.

Ejemplo: Se pide realizar un algoritmo que lea 90 nmeros e imprima


si se digita algn nmero negativo.
El enunciado indica que se debe determinar si se digit un nmero negativo
(ESA ES LA CONDICIN para cambiar el estado de la variable).
SW = 0
PARA K = 1, 90, 1
LEER NUM
SI (NUM < 0) ENTONCES
SW = 1
FINSI
FIN PARA
SI (SW = 1) ENTONCES
IMPRIMA SE DIGIT UN NMERO NEGATIVO
FINSI

Explicacin:

SE INICILIZA EN ALGN VALOR LA


VARIABLE SW ANTES DEL CICLO

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

SE PREGUNTA DESPUS DEL CICLO POR


ALGUNO DE LOS VALORES DE LA
VARIABLE Y SE IMPRIME EL MENSAJE

IMPRIMA SE DIGIT UN NMERO NEGATIVO


FINSI

FUNCIONAMIENTO DE UNA BANDERA


Hacer un algoritmo que lea 90 nmeros. Imprimir si se lee algn
nmero negativo.
PRUEBA DE ESCRITORIO
SW = 0
SW
NUM
IMPRIMA
Se digit un #
8
0
PARA K = 1, 90, 1
negativo
7
1
LEER NUM
SI (NUM < 0) ENT
SW = 1
FINSI
FIN PARA
SI (SW = 1) ENTONCES
IMPRIMA SE DIGIT UN
NMERO NEGATIVO
FINSI

-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

Leer los nombres de 150 personas e imprimir si se ley algn


nombre igual a Juan o no.
La nica aclaracin que
hay que hacer de este
PARA I = 1, 150, 1
algoritmo es que la
condicin para cambiar el
LEA NOMBRE
estado de la bandera es
SI (NOMBRE = Juan) Entonces NOMBRE = JUAN. Luego
al finalizar se imprime si se
BAND = VERDADERO
encontr o no un nombre
FINSI
JUAN (este ejercicio pide
FINPARA
los dos mensajes, el
SI BAND = VERDADERO Entoncesejercicio anterior, slo pide
imprimir si se ley un
IMPRIMA Se ley un nombre juan
nmero negativo nada
mas).
SINO
BAND = FALSO

IMPRIMA No se ley un nombre juan


FINSI