You are on page 1of 13

Elementos de un DFD

Estado
Indica una condicin cumplida, e indica el estado de las variables de un programa en un instante determinado. Se representa como una caja redondeada o un crculo:

Transicin
Indica una transicin de un estado a otro. Usualmente conlleva a la ejecucin de una serie de operaciones que afectan al sistema.

Operacin
Es una secuencia de acciones que se ejecutan durante una transicin entre un estado a otro. Representan instrucciones que implican cambio en las variables de un programa, como tambin la ejecucin de subrutinas.

Estados Inicio/Fin
Indican la apertura y cierre de un programa.

Estado de Bifurcacin
Es un estado especial del cual se derivan dos o ms estados con condiciones excluyentes.

Estado de Union
Es un estado especial que combina las transicines de dos estados en una sola. Se utiliza para aprovechar un grupo de operaciones comunes asociadas.

Representacin de los DFD en el lenguaje C.


Apertura y cierre de un programa.
En el lenguaje C la apertura y cierre de un programa se representa mediante la escritura de la funcin main.

// incluimos la librera requerida para presentar texto en pantalla #include <iostream> int main() // encabezado de la funcin principal main { //***** Inicio del programa con corchetes*****// using namespace std; // se agrega para utilizar 'cout' en ves de 'std::cout' : : :

<Instrucciones> : : : return 0; // la funcin principal debe arrojar defecto } //***** Fin del programa con corchetes*****// un valor por

Programa simple.
Un programa simple es aqul que no contiene bifurcaciones y presenta un flujo unidireccional de operaciones secuenciales. Por ejemplo el siguiente programa calcula el rea de un tringulo.

#include <iostream> #include <cstdlib> // para utilizar la rutina system("PAUSE") int main() { using namespace std; // se agrega para utilizar 'cout' en ves de 'std::cout' // Capturar ancho float ancho; cout<< "\n Introduzca el ancho del triangulo :"; cin>> ancho; /* Nota: el caracter '\n' indica un fin de linea (ENTER) */ // Capturar alto float alto; cout<< "\n Introduzca el alto del triangulo :"; cin>> alto;

// Calcular rea float area = alto*ancho/2; // Imprimir rea cout<< "\n Area del triangulo :"<< area ; system("PAUSE"); return 0; }

Programa con bifurcacin.


Los programas con bifurcaciones evalan una condicin para luego decidir que porcin de cdigo ejecutar. Esta estructura utiliza operaciones lgicas para condicionar la ejecucin de las subrutinas de un programa. Este es un ejemplo de un programa que evala un criterio para determinar la edad de una persona, notese que las condiciones son excluyentes:

#include <iostream> #include <cstdlib> int main() {

using namespace std; // se agrega para utilizar 'cout' en ves de 'std::cout' //Capturar edad int edad; cout<< "Introduzca la edad :"; cin>> edad; // Estado de bifurcacin if(edad<2) // Estado Infante { cout<< "Infante"; } else if(edad<11) // Estado Nio { cout<< "Nio"; } else if(edad<18) // Estado Adolecente { cout<< "Adolecente"; } else if(edad<60) // Estado Adulto { cout<< "Adulto"; } else // En este caso se cumple :edad>=60 { cout<< "Anciano"; } system("PAUSE"); return 0; }

Bifurcaciones anidadas.
Los bloques de subrutinas de cada bifurcacin pueden tener a su vez ms bifurcaciones, estableciendo una jerarqua de subrutinas. Por ejemplo el siguiente programa halla el mayor entre 3 nmeros:

#include <iostream> #include <cstdlib> int main { using namespace std; // se agrega para utilizar 'cout' en ves de 'std::cout' // capturar nmeros int a,b,c; // declarando variables cout<< " Introduzca a: "; cin>> a; cout<< "\n Introduzca b: "; cin>> b; cout<< "\n Introduzca c: "; cin>> c; // Bifurcacin Bsica 1er nivel if(a>b) { // Bifurcacin de 2do nivel if(a>c) { // imprima a

cout<<"\n a es el mayor "<<a; } else // se cumple que a<=c y por tanto c>=a>=b { // imprima c cout<<"\n c es el mayor "<<c; } } else // Se cumple que b>=a { // Bifurcacin de 2do nivel if(b>c) { // imprima b cout<<"\n b es el mayor "<<b; } else // se cumple que b<=c y por tanto b>=c>=a { // imprima c cout<<"\n c es el mayor "<<c; } } // fin del programa system("PAUSE"); return 0; }

Ciclos
Cuando el flujo de un programa regresa a estados anteriores, se crean rutinas repetitivas. Existen dos tipos de ciclos:

Mientras-hacer
Este tipo de ciclos utilizan la palabra clave while, la cual evalua la condicin del ciclo, que mientras se cumpla se repetirn las intrucciones del bloque que est demarcado entre corchetes.

#include <iostream> #include <cstdlib> // Programa que hace un conteo regresivo int main() { using namespace std; // se agrega para utilizar 'cout' en ves de 'std::cout' // Inicializar conteo int cont = 10; // imprime 2","Faltan 1" "Faltan 10", "Faltan 9","Faltan 8",..."Faltan

while(cont>0) // condicin del ciclo { cout<< "\n Faltan "<<cont; cont = cont - 1; } system("PAUSE"); return 0; }

Hacer-Mientras
Este tipo de ciclos utilizan la combinacin de palabras clave do-while. En este tipo de ciclos la condicin se evala al final.

#include <iostream> #include <cstdlib> int main() { using namespace std; // se agrega para utilizar 'cout' en ves de 'std::cout' float suma = 0; float num; float cont = 0; char desea_mas_numeros; // Este ciclo se ejecuta por lo menos una ves do // do es el estado de paso. { // capturar num cout<<"\n Digite un nmero: "; cin>> num; suma += num; // A suma le agrega num

cont+=1;// a cont le agrega 1 // preguntar si desea ms nmeros cout<< "\n Desea ms nmeros ? (v|f) :"; cin>>desea_mas_numeros; }while(desea_mas_numeros == 'v'); // evalua la condicin al final // calcular promedio float promedio = suma/cont; // Imprimir el promedio cout<<"\n El promedio es // fin del programa system("PAUSE"); return 0; } : "<<promedio;

Un programa completo

El siguiente ejemplo representa un programa que halla el mayor y el menor de una secuencia de nmeros ingresados por el usuario. Contiene ciclos y condiciones anidadas:

#include <iostream> #include <cstdlib> int main() { using namespace std; // se agrega para utilizar 'cout' en ves de 'std::cout' int num; // capturar el primer nmero cout<<"Digite nmero :"; cin>>num; int min_num = num; int max_num = num;

// capturar desea_mas_numeros char desea_mas_numeros; cout<< "\n Desea ms nmeros ? (s/n)"; cin>>desea_mas_numeros; while(desea_mas_numeros=='v') // hay mas numeros entonces repetir { // capturar nmero cout<<"\n Digite nmero :"; cin>>num; // Comparar con bifurcacin if(num<min_num) { min_num = num; } else if(num>max_num) { max_num = num; } // capturar desea_mas_numeros ( Accion que conlleva a que se repita el ciclo char desea_mas_numeros; cout<< "\n Desea ms nmeros ? (s/n)"; cin>>desea_mas_numeros; } // imprimir minimo cout<< "\n El mnimo es : "<<min_num; cout<< "\n El mximo es : "<<max_num; // fin del programa system("PAUSE"); return 0; }

You might also like