Como vemos en la figura arriba, cada símbolo equivale a una parte o etapa en el proceso El primer ovalo es el inicio del programa o terminación del mismo. Las flechas al final de lineas mostraran el flujo del proceso. El paralelogramo es una etapa de entrada de información (input) o salida de información (output). El rectángulo es una etapa en que se esta ejecutando un computo , iteración o proceso, y por ultimo, el diamante es una fase de decisión en que cada borde equivale a un camino a seguir de acuerdo a la evaluación lógica de decisión. Este diagrama puede constituir nuestro algoritmo o complementarlo de manera que se siga como una guía.
Antes de seguir con la discusión, haremos una breve revisión de lo que comprende las condiciones lógicas que serán utilizadas tanto en C++ como en python en nuestro caso en particular, u otro lenguaje que se use, adaptandolo a la sintaxis del lenguaje usado. Por consiguiente, asumamos que A y B son operandos lógicos. Entonces: si los valores de A y B fueran los de las primeras dos columnas, los operadores de AND OR y NOT operarian sobre ellos como muestran en las columnas posteriores.
A |
B |
A AND B |
A OR B |
NOT A |
NOT B |
true |
true |
true |
true |
false |
false |
true |
false |
false |
true |
false |
true |
false |
true |
false |
true |
true |
false |
false |
false |
false |
false |
true |
true |
Con estas operaciones lógicas podemos hacer deciciones basandonos en criterios bien específicos, por ejemplo, si en una lista de valores se quisiera sacar solamente aquellos valores que fueran: mayores que 100 pero menores que 175 o aquellos que fueran menores de -10 pero mayores que -35, podríamos usar la siguiente manipulación lógica:
((N>100) AND (N<175)) OR (( N< -19) AND ( N>-35))
Fíjese que cuando requerimos que fueran mayores que 100 pero menores que 175, estamos adjuntando dos condiciones diferentes, de tal manera que ambas deben ser cumplidas para que sea cierta. Sin embargo, no solo eso, estamos requiriendo que también haya la posibilidad de que sea menor que -19 y mayor que -35, estas dos ultimas deben ser ciertas ambas para ser cierta , pero, como ambas están asociadas a un OR, significa que tanto las primeras dos condiciones que sean ciertas o las segundas dos ciertas, la condición total sera cierta o sea la inclusión de ambas con el AND.
Este es el tipo de manipulación booleana (lógica) que se hace en los “ if-else “ en los “ while “ y en algunos casos en los “ for loop “. De hecho, hay un lenguaje usado para sistemas de base de datos el SQL que se nutre mucho de el, y es su principal herramienta para la obtención de datos.
Nosotros adaptaremos esta herramienta a la solución de un problema super básico para ver el funcionamiento básico de dos lenguajes muy utilizados, y que los haremos parte de nuestra discusión. Nuestro problema sera la conversión de un valor de temperatura en Celsius a Farenheit y de Farenheit a Celsius.

Si este diagrama en su ejecución manual es funcional, al convertirlo a código requerirá de muy poco esfuerzo para su funcionamiento exitoso.Nuestro plan de trabajo requiere el computo de una de estas dos formulas, de acuerdo a la elección del usuario: F= 9/5 C + 32 y C = 5/9(F – 32)
El programa comenzara con una iniciación de variables y definición de la variable y valor que detendrá la iteracion, la cual, se repetira tantas veces sea necesario hasta que el usuario lo detenga. Notese que es en el inicio de esta iteración que de inmediato se decide si continuar la corrida o detener todo de inmediato. El valor inicial que se ha dado ha sido uno que le permita continuar de inmediato y llegar a la decicion de cual conversión hacer, en el diamante. De no escoger ninguna de las conversiones el programa desviara el flujo a la parte inferior del diamante el cual emitirá un mensaje de error. De escoger una de las opciones de conversión, se realizara la conversión debida y luego el flujo sera destinado a otra decisión de continuación o detención ( en el tercer diamante) , aquí lo que se hará es cambiar el valor lógico de la etapa de decisión en el inicio de la iteración principal. La hará cierta o falsa, si la hace cierta la iteración continua , si la hace falsa la iteración se detiene y termina el programa en su totalidad.
Ahora bien, a grandes rasgos, esto es lo que se suele hacer en la elaboracion de un programa en su etapa inicial sin adoptar ningún lenguaje en particular. Discutamos de forma general como podríamos resolver este problema con C++. Para escribir este programa en C++, puede usar cualquier IDE que usted guste, yo recomiendo el Code Block que es como diríamos en mi pueblo, Bonito, Bueno y mas que Barato..Gratis. En C++ se utiliza lo que se conoce como los preprocesors que son unas instrucciones que llaman a librerías o clases para poder viabilizar el uso de ciertas funciones aplicadas a matemáticas o a manipulación de strings o la manera como desplegara valores matematicos. Además hace uso de los namespace std, los name space son áreas en un modulo o función donde una variable podrá tener el mismo nombre que en otra función o modulo por que solo sera valido dentro de este espacio (variable local) y no confligira con otras variables que tengan el mismo nombre en otros módulos o funciones, o sea , cada una tendrá su espacio propio. Esto se vera siempre antes de iniciar el programa principal y el include siempre ira antes que el using.
#include <iostream>
using namespace std;
Los comentarios en C++ son hechos con diagonales “// ”si se quiere que solo lo que esta a la derecha de este no se procese y si se quiere que un bloque completo no se procese o sea comentario, este se encerrara entre “/* lo que este aqui dentro sera comentario */ “ .
La estructura de un programa en C++, sigue un formato similar a este :
#include < …. >
using namespace std;
int main()
{
return 0;
}
Como se darán cuenta main de por si es una función y esta declarada como entera. Además, esta tiene 2 brackets los cuales encierran el bloque principal del programa principal. La ultima instruccion que debe contener este bloque sera la de terminación que es el return 0; El comando de procesador y el de namespace estaran antes del main y las declaraciones terminaran con un punto y coma “ ; ” .
Continuar--->
|