Capítulo III
TeoríaIII – DiagramasIII
Introducción: Este capitulo esta destinado a avanzar en el tema, puesto que con las herramientas que poseemos hasta el momento, nos es casi imposible, o nos requiere de mucha labor diagramar programas demasiado amplios. Ergo, haremos una mezcla de teoría y diagramas poco eficaces para dar pie a nuevas “herramientas” al mismo tiempo que utilizamos las “ya dadas”.
“Un nuevo símbolo”
Conectores: Se utilizan en caso de que nuestro diagrama ocupe más de una carilla y sea necesario unir las líneas (para conseguir su seguimiento) con los mismos. Para no mezclarlos utilizamos un nombre que identifique a cada uno de ellos. Yo suelo usar “x”, “y”, “z” dependiendo de la cantidad que sean, pero el nombre que uno les de carece de importancia (siempre y cuando no nombremos a todos igual..) y cada uno tiene sus gustos y mañas. En el próximo diagrama de este mismo capitulo lo explica mejor..
Nueva teoría contadores ^ acumuladores
Contador: Es una variable destinada a contener distintos valores, incrementando o decreciendo su valor inicial en cantidades fijas (o constantes).
Por ejemplo, si yo quiero hacer un soft que cuento los ingresos de datos, a partir de cada ingreso de datos se vería la variable:
Ingresos=ingresos +1
así si esta (la variable “ingresos”) fue declarada con el valor 0, tras el primer ingreso pasara a valer “0+1” (por lo que ingresos ahora valdrá 1) y tras el segundo “1+1” (estamos siempre sumando 1 sobre el valor que ya contenía la variable), tras el tercero “2+1” (Ya se había incrementado 2 veces y esta será la tercera..), de este modo al finalizar el programa la variable contendrá como resultado un número que será igual número de ingreso de datos que hubo en nuestro diagrama, ya veremos como el diagrama lo explica mejor).
Acumulador: Es una variable destinada a contener distintos valores, incrementando o decreciendo en cantidades no constantes. Por ejemplo: supongamos que tenemos que hacer un programa en el que un hombre ingrese el valor de cada una de las ventas que va haciendo en tiempo real, y al finalizar desea saber cuanto saco en total. No sería justo que lo obliguemos a usar su calculadora, por lo que luego de cada ingreso de “ventas” deberíamos tener un acumuladores de las mismas, el cual podría ser:
Acumulador = Acumulador + ventas.
De este modo nuevamente suponiendo que la variable acumulador fue iniciada en 0, se le Irán sumando de modo acumulativo los valores que se ingresen en la variable “ventas”.
Así supongamos que tubo las siguientes 3 ventas: $14 $25 $9
Acumulador = acumulador + ventas (ahora pasara a valer 14)
Acumulador = acumulador + ventas ( Ya valía 14 ahora aumenta en 25 por lo que pasa a valer 29)
Acumulador = acumulador + ventas (Valía 39 ahora aumenta en 9, vale 48)
Tanto el acumulador como el contador están operando sobre sus propios valores, si tu intentas verlo por el lado de las matemáticas creerás que no tiene sentido que algo sea igual a si mismo + otro valor. Pero recuerda que esto no es matemática y solo estamos intentado mostrar la lógica por la que trabaja un programa y del mismo modo que un dominio en la informática y uno en la matemática son dos cosas totalmente diferentes, la variable acumulador contiene un valor pero no es más que una dirección de memoria a lo que esta hace referencia, donde en realidad se encuentra ese valor por lo que quizás podríamos entender, acumulador = acumulador + ventas como:
Valor que conten
drá la dirección de memoria a la que hace referencia la variable acumulador
IGUAL A valor que contiene en este momento
MÁS valor que contiene la dirección a la que hace referencia la variable ventas.
Diagrama - Ejemplificación
Siguiendo los ejemplos anteriores, se pide un programa que: permita el ingreso de las ventas que se van efectuando en el día, y al finalizar muestre la recaudación total de ventas y la cantidad de ventas realizadas: (Por favor, continua leyendo antes de criticar o decir que el diagrama es poco efectivo, puesto que esto esta echo apropósito para poder dar lugar a nuestra siguiente teoría)

Lógica utilizada:
A)_Marco el comienzo
_Declaro las variables a utilizar: “Acu” (para acumular las ventas) “Cont” (para contar los ingresos, los cuales seran igual al número de ventas efectuadas) “$Respuesta” (sera una variable alfanumérica con la que comprobaremos si el usuario desea efectuar el ingreso de otra venta o desea salir del programa, recordamos que las alfanuméricas las declaramos con un signo $ adelante y las declaramos “vacias” utilizando comillas “”) “vent” (para el ingreso de las ventas)
B)_Se ingresa la primera venta
_Se cuenta el ingreso de datos (o cantidad de ventas realizadas) como +1 (variable “cont”)
_Se acumula el valor de la venta (en nuestra variable “Acu”)
_ Preguntamos si el usuario desea hacer un nuevo ingreso mostrando por pantalla las pautas.
_ Guardamos el valor (la respuesta del usuario) en la variable “$respuesta”.
_ Utilizamos un flag para comprobar cual fue la respuesta del usuario en caso de que la respuesta sea diferente a “si”, mostramos por pantalla los la cantidad de ventas y la recaudación total del día. En caso de que el ingreso del usuario haya sido igual a “si”:
_Aclaramos que ya puede hacer el ingreso mostrando esto por pantalla..
_damos lugar a que haya un nuevo ingreso
_ Se cuenta el nuevo ingreso ya que esta variable finalmente contendrá un valor igual al número de ingresos echos por el usuario
_ Preguntamos nuevamente si se desea hacer otro ingreso, en caso de no, mostramos lo pactado, y marcamos el fin, en caso de “si”:
_ Se acumula nuevamente la venta para conseguir el total de lo recaudado en el día
_ Se repiten los 8 pasos anteriores..
_ Muestro por pantalla la recaudación de las ventas y las cantidades que hubo de estas.
_ Finaliza el programa.
¿Qué sucedió?
Los contadores y acumuladores fueron eficaces y bien utilizados, pero si el hombre realizara 100 ventas por día, ese diagrama solo soporta 3 y ya es extenso.., por lo que diagramar uno para 100 ventas ocuparía alrededor de 50 páginas repitiendo las mismas operaciones y de esta forma nuestra codificación sería también extensa y repetitiva..
La solución a este tipo de problemas son los bucles que en diagramación llamamos bucle “variar” y bucle “mientras”. Muy semejantes al for y while (dependiendo del lengüaje) aunque no exactamente, pero estos últimos no son un tema del cual hablaremos ahora =)
En conclusión: El uso de contadores y acumuladores fue positivo y no falló nuestra lógica si no que hasta el momento estábamos escasos de “herramientas”, veamos que son estos nuevos símbolos “mientras” y “variar”, como trabajan, y para que nos son útiles.