Algoritmos de repetición: Contadores, Suma, Banderas, Incremento, Decremento

   DESPUÉS DE ESTA LECCIÓN PODRAS:

    • Aprender a utilizar variables de incremento y decremento
    • Crear instrucciones controladas por un contador
    • Uso de una variable Suma
    • Crear instrucciones controladas por un centinela
    • Acceder al video tutorial “Aplica ya!”, los conceptos de Contador, Suma y Centinela”

RECOMENDACIÓN


Estudia esta lección antes de pasar al Video Tutorial para comprender su desarrollo.

 REPASA

Operadores de incremento y decremento


 

Los operadores de incremento y decremento listados en la lección Referencias de operadores y expresiones, y explicados en la lección Ejemplos de operadores, son ampliamente usados en C# y en general los lenguajes de programación.

En los siguientes laboratorios haremos uso de ellos. Revisa el concepto y los ejemplos.

Repetición controlada por un contador


 

Las repeticiones controladas en un bloque de programa, donde se exige la ejecución de tareas reiterativas, cálculos generalmente matemáticos, sumatorias, series, generar promedios, totalizar el número de ítems, etc., se deben controlar con una variable de control, o equivalente a un contador.

Llevando acumulados con una variable Suma


Tendrás la oportunidad de crear algoritmos de control que lleven saldos acumulados en cómputos o acciones repetitivas.

Debes aprender a distinguir cuándo declarar un contador y cuándo declarar una variable tipo suma.

   TOMA  NOTA

  • Un CONTADOR es simplemente una variable que registra la cuenta o número de veces que se repite un ciclo o un proceso.
  • Una variable SUMA se encargará de sumar valores o acumular sumando el valor actual cargado en memoria al siguiente de tal manera que podrá indicarnos el total al final de las operaciones..

   TOMA  NOTA

  • Recuerde que la variables declaradas en el cuerpo de un método se llaman variables locales, y solo pueden ser usadas dentro de ese bloque
  • La variables locales deben aparecer antes de usar el método
  • Las variables usadas para guardar los totales, se deben inicializar en cero (0)
  • Los contadores se inicializan en cero (0) o en uno (1), dependiendo del algoritmo o requerimiento

Repeticiones controladas por un centinela


 

Cuando existen tareas repetitivas de las cuales se desconoce el límite o cuántas veces se debe ejecutar, esto es, abiertas al usuario, se debe usar un valor centinelabandera.

Esta variable tiene como finalidad indicar  el final de la entrada de los datos por parte de usuario. Procedimiento conocido como repetición controlada por un centinela

A las variables Centinelas se les conocen también como Banderas. Además evalúan valores o datos de tipo Booleano, es decir, que pueden tomar 2 estados o valores, Verdadero, Falso, 1, 0.

   TOME  NOTA

  •  Adopte como buen hábito de programación, inicializar las variables locales al momento de la declaración, para evitar error por el uso de datos sin inicializar. En C# no exige inicializarlas al momento de declararlas, más sí al momento de usarlas
  • Las aplicaciones con ciclos pueden requerir la inicialización de las variables al inicio de cada repetición.

Ejemplos


 

CASO 1 (Contadores):
Se necesita recorrer la lista de los primeros 10 estudiantes del salón de clase

Solución (Pseudocódigo):

  1. Declaramos una variable tipo contador, Cont
  2. Debemos inicializar la variable anterior. BPP (Buenas Práctica de Programación)
  3. Debo abrir el archivo de la lista en la fuente de datos del servidor
  4. Ubicarme en la primera posición, estudiante #1
  5. Uso una Estructura de Control Repetitiva que me permita recorrer cada registro
  6. Incremento en 1 o una unidad mi contador
  7. paso al siguiente registro de la lista (mover el cursos)
  8. Repito los pasos5 al 7 hasta recorrer o llegar al límite de 10 estudiantes

Algoritmo en pseudocódigo:

Inicio
  variable Cont de tipo entero
  Cont = 0
  //Abrir archivo de estudiantes
  //Cursor <- posicion 1
  Mientras Cont <= 10 haga // Repasa While lecciones anteriores
    Cont = Cont+1
    Cont++ //variante
    Cursor <- Mover al siguiente
  Fin Mientras
  //Mostrar el valor actual del contador, Cont.
Fin 

Ejemplos


 

CASO 2 (Suma):
Se necesita recorrer la lista de los primeros 10 estudiantes del salón de clase y llevar la suma de los promedios de las notas. Mostrar el promedio al final

Solución (Pseudocódigo):

  1. Declaramos una variable tipo contador, Cont
  2. Declaro una variable Suma
  3. Declaro una variable Promedio: esta debe guardar el cálculo del promedio de todas las notas sumadas. 
  4. Debemos inicializar las variables anterior. BPP
  5. Debo abrir el archivo de la lista en la fuente de datos del servidor
  6. Ubicarme en la primera posición, estudiante #1
  7. Uso una Estructura de Control Repetitiva que me permita recorrer cada registro
  8. Debo leer el registro o campo que contiene la nota promedio final de cada estudiante
  9. Asigno la nota a la variable Suma para ir llevando la suma de cada uno de los promedios
  10. Incremento en 1 o una unidad mi contador para no pasarme del estudiante en la posición 10 de la lista
  11. Paso al siguiente registro de la lista (mover el cursos)
  12. Repito los pasos5 al 7 hasta recorrer o llegar al límite de 10 estudiantes
  13. ¿Cómo obtienes promedios en tu vida cotidiana?
    Tomas el total sumado y lo divides entre el total de elementos, en nuestro caso, 10, porque corresponde a los primeros 10 registros de estudiantes.
    Eso sería:
    Tomo la variable Suma que contiene la suma total de los promedios de los primeros 10 estudiantes y la divido por 10, o también por el Contenido de la variable Cont porque esta contiene el valor total o máximo contado, que será  10 al final del total de las 10 repeticiones o lectura de los 10 primeros registros.
  14. Muestro el resultado al usuario

Algoritmo en pseudocódigo:

Inicio
  variable Cont de tipo entero
  varible Suma de tipo doble o decimal
  variable Promedio de tipo doble o decimal
  Cont=0
  Suma=0
  Promedio=0  Abrir archivo de estudiantes

Cursor <- posicion 1
Mientras Cont <= 10 haga // Repasa While, lecciones anteriores
leer campo NotaPromedio
Suma <- Suma + NotaPromedio
Cont = Cont+1
Cont++ //variante
Cursor <- Mover al siguiente
Fin Mientras
//Calcular el promedio
Promedio <- Suma / Cont //lo más usado
Promedio <- Suma / 10 //variante
Mostrar el valor actual del contador, Promedio.
Fin 

Ejemplos


 

CASO 3 (Centinela):
Se necesita recorrer TODA la lista de estudiantes del salón de clase y llevar la suma de los promedios de las notas. Mostrar el total de estudiantes en la lista y promedio general.

Solución (Pseudocódigo):

  1. Declaramos una variable tipo contador, Cont
  2. Declaro una variable Suma
  3. Declaro una variable Promedio: esta debe guardar el cálculo del promedio de todas las notas sumadas. 
  4. Declaro un Centinela o bandera, FinArchivo (EOF, End Of File)
  5. Debemos inicializar las variables anterior. BPP
  6. Debo abrir el archivo de la lista en la fuente de datos del servidor
  7. Ubicarme en la primera posición, estudiante #1
  8. Uso una Estructura de Control Repetitiva que me permita recorrer cada registro y se ejecute hasta que llegue al final del archivo
  9. Debo leer el registro o campo que contiene la nota promedio final de cada estudiante
  10. Asigno la nota a la variable Suma para ir llevando la suma de cada uno de los promedios
  11. Incremento en 1 o una unidad mi contador para no pasarme del estudiante en la posición 10 de la lista
  12. Paso al siguiente registro de la lista (mover el cursos)
  13. Repito los pasos5 al 7 hasta recorrer o llegar al límite de 10 estudiantes
  14. ¿Cómo obtienes promedios en tu vida cotidiana?
    Tomas el total sumado y lo divides entre el total de elementos, en nuestro caso, 10, porque corresponde a los primeros 10 registros de estudiantes.
    Eso sería:
    Tomo la variable Suma que contiene la suma total de los promedios de los primeros 10 estudiantes y la divido por 10, o también por el Contenido de la variable Cont porque esta contiene el valor total o máximo contado, que será  10 al final del total de las 10 repeticiones o lectura de los 10 primeros registros.
  15. Muestro el resultado al usuario

Algoritmo en pseudocódigo:

Inicio
  variable Cont de tipo entero
  varible Suma de tipo doble o decimal
  variable Promedio de tipo doble o decimal
  Cont=0
  Suma=0
  Promedio=0
  EOF <- FALSO //Inicializo como si hubiera al menos 1 registro

Abrir archivo de estudiantes
Cursor <- posicion 1
Mientras EOF sea FALSO haga // Repasa While, lecciones anteriores
leer campo NotaPromedio
Suma <- Suma + NotaPromedio
Cont = Cont+1
Cont++ //variante
Cursor <- Mover al siguiente
Fin Mientras
//Sale cuando llega al último registro.
//EOF pasa a verdadera
//Calcular el promedio
Promedio <- Suma / Cont //lo más usado
Promedio <- Suma / 10 //variante
Mostrar el valor actual del contador, Promedio, Cont.
Fin 

No olvides pulsar en el botón "He completado este material", cada vez que finalices tus lecciones....