You are on page 1of 28

1

CONTROL DE FLUJO










Profesor: Rodrguez Morales Miguel ngel
Fundamentos de programacin
Grupo: ISE
Alumno: Lpez Arriaga Oscar
Reporte de investigacin
Instituto Tecnolgico de Oaxaca.












2
CONTROL DE FLUJO
Introduccin


En esta unidad se espera, aprender sobre las estructuras secuenciales, estructuras
selectivas, estructuras iterativas y diseo e implementacin de mtodos. Para ello realizaremos
la investigacin debida para as llegar a obtener el conocimiento necesario para la
implementacin de los mismos y un mejor desarrollo de la materia con los cuales nos podremos
dar una mejor idea en que caso se debe utilizar cada uno y como es la estructura que debe llevar.


















3
CONTROL DE FLUJO
Estructura secuencial


El orden en que se ejecutan por defecto las sentencias de un programa es secuencial. Esto
significa que las sentencias se ejecutan en secuencia, una despus de otra, en el orden en que
aparecen escritas dentro del programa.


La estructura secuencial est formada por una sucesin de instrucciones que se ejecutan
en orden una a continuacin de la otra.


Cada una de las instrucciones estn separadas por el carcter punto y coma (;).
Las instrucciones se suelen agrupar en bloques.


El bloque de sentencias se define por el carcter llave de apertura ({) para marcar el inicio
del mismo, y el carcter llave de cierre (}) para marcar el final.
Ejemplo:
{
instruccin 1;
instruccin 2;
instruccin 3;
4
CONTROL DE FLUJO
}
En Java si el bloque de sentencias est constituido por una nica sentencia no es
obligatorio el uso de las llaves de apertura y cierre ({ }), aunque s recomendable.


Ejemplo de programa Java con estructura secuencial: Programa que lee dos nmeros por
teclado y los muestra por pantalla.

/* Programa que lea dos nmeros por teclado y los muestre por pantalla.
*/
import java.util.*;
public class Main {
public static void main(String[] args){
//declaracin de variables
int n1, n2;
Scanner sc = new Scanner(System.in);
//leer el primer nmero
System.out.println("Introduce un nmero entero: ");
n1 = sc.nextInt(); //lee un entero por teclado
//leer el segundo nmero
System.out.println("Introduce otro nmero entero: ");
n2 = sc.nextInt(); //lee un entero por teclado

5
CONTROL DE FLUJO
//mostrar resultado
System.out.println("Ha introducido los nmeros: " + n1 + " y " + n2);
}
}


Ejemplo de programa Java con estructura secuencial: Programa que lee dos nmeros de
tipo double por teclado y calcula y muestra por pantalla su suma, resta y multiplicacin.

/*
* Programa que lee dos nmeros de tipo double por teclado
* y muestra su suma, resta y multiplicacin.
*/

import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
double numero1, numero2;
System.out.println("Introduce el primer nmero:");
numero1 = sc.nextDouble();
System.out.println("Introduce el segundo nmero:");
numero2 = sc.nextDouble();
6
CONTROL DE FLUJO
System.out.println("Nmeros introducido: " + numero1 + " " + numero2);
System.out.println
(numero1 + " + " + numero2 + " = " + (numero1+numero2));
System.out.println
(numero1 + " - " + numero2 + " = " + (numero1-numero2));
System.out.println
(numero1 + " * " + numero2 + " = " + numero1*numero2);
}
}

Para modificar el orden de ejecucin de las instrucciones de un programa Java se utilizan
las estructuras condicionales y repetitivas.

Estructuras selectivas: simple, doble y mltiple

La especificacin formal de algoritmos tiene realmente utilidad cuando el algoritmo
requiere una descripcin ms complicada que una lista de sencilla de instrucciones. Este es el
caso cuando existe un nmero de posibles alternativas resultantes de la evaluacin de una
determinada condicin.

7
CONTROL DE FLUJO
Las estructuras selectivas se utilizan para tomar decisiones lgicas; de ah que se suelan
denominar tambin estructuras de decisin o alternativas.


En las estructuras selectivas se evalan una condicin y en funcin del resultado de la
misma se realiza una opcin u otra. Las condiciones se especifican usando expresiones lgicas.
La representacin de una estructura selectiva se hace con palabras en pseudocdigo (if, then, else
o bien en espaol si, entonces, sino), con una figura geomtrica en forma de rombo o bien conun
triangulo en el interior de una caja rectangular. Las estructuras selectivas o alternativas pueden
ser:
Simples
Dobles
Mltiples

La estructura simple es si (if) con dos formatos: Formato Pascal, si-entonces (if-then) y
en formato C, si(if) a estructura selectiva doble es igual que la estructura simple si al cual se le
aade la clusula si-no (else) a estructura selectiva mltiples segn-sea(switch en lenguaje C,
case en pascal)


8
CONTROL DE FLUJO
Estructura condicional: if y else

Es usada para ejecutar una instruccin o bloque de instrucciones solo si una condicin es
cumplida. Su forma es:

if (condicin) extracto

Donde la condicin es la expresin que ser evaluada. Si esta condicin es true
(verdadera), el extracto es ejecutado. Si esta es falsa (false), el extracto es ignorado (no
ejecutado) y el programa continua en la siguiente instruccin despus de la estructura
condicional.

Por ejemplo, el siguiente fragmento de cdigo imprime x es 100 solo si el valor guardado
en la variable x es en verdad 100:

if (x == 100)
cout << "x es 100";

Si queremos ms de una instruccin para ser ejecutada en caso de que la condicin sea
verdadera podemos especificar un bloque de instrucciones usando llaves { }:
9
CONTROL DE FLUJO
if (x == 100)
{
cout << "x es ";
cout << x;
}


Podemos adicionalmente especificar que queremos que pase si la condicin no es
cumplida mediante el uso de la palabra reservada else. Su forma usada en conjuncin con if es:

if (condicin) extracto1 else extracto2

Bi condicional

La ejecucin de la accin de esta secuencia depende del valor de esta. La accin de
diferente en cada valor. Se utiliza la estructura if (condicin) else en este tipo de secuencia.


10
CONTROL DE FLUJO
La instruccin selectiva doble si entonces / sino permite que el lujo del diagrama se
bifurque por dos ramas diferentes dependiendo del cumplimiento de una condicin P.


if (P)
Instrucciones1;
else
Instrucciones2;
O tambin
if (P)
Instrucciones1;

else
Instrucciones2;

Condicin mltiple


11
CONTROL DE FLUJO
Depende del valor de una expresin la accin que se ejecutara, pero en esta secuencia se
decidir entre diferentes acciones. Se utiliza la estructura switch (expresion) en esta secuencia.

Son estructuras selectivas que contienen a otras estructuras selectivas

if (Condicion1){
if (Condicion2){
Operacion21;
{
else{
Operacion22;

o tambin;

if (Condicion1)
if (Condicion2)
Operacion21;
else
Operacion22;
12
CONTROL DE FLUJO

}
}


SWITCH-CASE

La sentencia mltiple switch ( ) est formada por una serie de etiquetas case que
solamente cumplen con una condicin determinada y un caso opcional default en el que estn
contemplados todos los valores que no se encuentran en los case.

La forma general de las sentencias switch ( ) es:

switch (expresin)
{
case constante1:
sentencia1;
break;
case constante2:
13
CONTROL DE FLUJO
sentencia2;
break;
case constante_n:
sentencia_n;
break;
default:
sentencias;
break;




En esta sentencias el case solamente evala una expresin y no mas aunque puede llevar
n nmero de case, pero son un gran nmero se recomienda usar ciclos. Estas expresiones solo
puede ser de tipo entero y de un solo carcter, al igual las constantes que se colocan.


14
CONTROL DE FLUJO
Si el valor de la expresin es igual a alguna de las constantes, se ejecutar el bloque de
instrucciones hasta encontrar la instruccin break, de lo contrario pasa al siguiente bloque y si no
cumple ninguno de los bloques entonces se ejecuta las sentencias del default.

Ejemplo:

Switch (confiabilidad_del_producto) {
Case A:
Cout<<perfecta;
Break;
Case B:
Cout<<Muy Buena;
Break;
Case C:
Cout<<Regular;
Default:
Cout<<Fuera de rango;
Break;

15
CONTROL DE FLUJO
Estructuras interactivas: repetir mientras, hasta, desde

Ciclo for

Este ciclo es uno de los ms usados para repetir una secuencia de instrucciones, sobre
todo cuando se conoce la cantidad exacta de veces que se quiere que se ejecute una instruccin
simple o compuesta.

Su formato general es:
for (inicializacin; condicin; incremento)
{
//Instrucciones
}
Funciona de la siguiente manera:

1. El valor inicial de la variable solo se ejecuta una vez al inicio del ciclo.
2. Se ejecuta la condicin.


16
CONTROL DE FLUJO
3. Si es verdadera pasar a ejecutar el cuerpo del for.
4. Se ejecuta el incremento o decremento de la variable.
5. Pasa a preguntar por la condicin, resultando as un proceso recursivo.
6. Si la condicin fuera falsa la ejecucin pasar a la siguiente instruccin.


En su forma simple la inicializacin es una instruccin de asignacin que carga la
variable de control de ciclo con un valor inicial.


La condicin es una expresin relacional que evala la variable de control de ciclo contra
un valor final o de parada que determina cuando debe acabar el ciclo.


El incremento define la manera en que la variable de control de ciclo debe cambiar cada
vez que el computador repite un ciclo.


Se deben separar esos 3 argumentos con punto y coma (;)
17
CONTROL DE FLUJO

Ejemplo:
Int x, cout;
for ( x = 0; x <= 100; x++){
cout = x+1;
}

CICLO WHILE

Permite que se repita cierta accin en cuanto la condicin evaluada sea verdadera y en el
momento en que la condicin sea falsa saldr del ciclo y continuara con la siguiente instruccin


En este ciclo el cuerpo de instrucciones se ejecuta mientras una condicin permanezca
como verdadera en el momento en que la condicin se convierte en falsa el ciclo termina..


La forma general de la sentencia while es:

18
CONTROL DE FLUJO
while ( condicin ){
sentencia;
}


El ciclo for funciona de la siguiente manera:

1.-Comienza comprobando la condicin con la inicializacin de la variable.
2.- Determina si es verdadera y el ciclo comienza.
3.-si la condicin llega a ser falsa el bucle termina.


While puede llevar dos condiciones en este caso inicializar 2 variables de condicin y
cuidar que existan 2 de rompimiento o terminacin de ciclo.


El grupo cierto de instrucciones puede ser una sola instruccin o todo un grupo de
instrucciones.

19
CONTROL DE FLUJO
La condicin puede ser simple o compuesta.


Los casos generales de for tambin se aplican a while.


A este ciclo tambin se le conoce tambin como ciclo de condicin de entrada o prueba
por arriba porque este ciclo evala primero la condicin y posteriormente ejecuta las
instrucciones.


DO WHILE


Su diferencia bsica con el ciclo while es que la prueba de condicin es hecha al finalizar
el ciclo, es decir las instrucciones se ejecutan cuando menos una vez porque primero ejecuta las
instrucciones y al final evala la condicin;


20
CONTROL DE FLUJO
Tambin se le conoce por esta razn como ciclo de condicin de salida.

Su formato general es:

Cargar o inicializar variable de condicin;

do {
grupo cierto de instruccin(es);

instruccin(es) de rompimiento de ciclo;

} while (condicin);

Diseo e implementacin de mtodos


Similarmente a la implementacin de una clase, la implementacin de un mtodo consiste
en dos partes, la declaracin y el cuerpo del mtodo.


21
CONTROL DE FLUJO
declaracindeMtodo {
cuerpodeMtodo
}

La Declaracin de Mtodo

Una declaracin de mtodo proporciona mucha informacin sobre el mtodo al
compilador, al sistema en tiempo de ejecucin y a otras clases y objetos.


Junto con el nombre del mtodo, la declaracin lleva informacin como el tipo de retorno
del mtodo, el nmero y el tipo de los argumentos necesarios, y qu otras clases y objetos
pueden llamar al mtodo.


Los nicos elementos necesarios para una declaracin de mtodo son el nombre y el tipo
de retorno del mtodo. Por ejemplo, el cdigo siguiente declara un mtodo llamado estaVacio()
en la clase Pila que devuelve un valor booleano (true o false).

class Pila {
. . .
boolean estaVacio() {
. . .
}
22
CONTROL DE FLUJO
}

Devolver un Valor desde un Mtodo

Java necesita que un mtodo declare el tipo de dato del valor que devuelve. Si un mtodo
no devuelve ningn valor, debe ser declarado para devolver void (nulo).


Los mtodos pueden devolver tipos de datos primitivos o tipos de datos de referencia. El
mtodo estaVacio() de la clase Pila devuelve un tipo de dato primitivo, un valor booleano.

class Pila {
static final int PILA_VACIA = -1;
Object[] stackelements;
int topelement = PILA_VACIA;
. . .
boolean estaVacio() {
if (topelement == PILA_VACIA)
return true;
else
return false;
}
}
23
CONTROL DE FLUJO
Sin embargo, el mtodo pop de la clase PILA devuelve un tipo de dato de referencia: un
objeto.

class Pila {
static final int PILA_VACIA = -1;
Object[] stackelements;
int topelement = PILA_VACIA;
. . .
Object pop() {
if (topelement == PILA_VACIA)
return null;
else {
return stackelements[topelement--];
}
}
}

Los mtodos utilizan el operador return para devolver un valor. Todo mtodo que no sea
declarado como void debe contener una sentencia return.


El tipo de dato del valor devuelto por la sentencia return debe corresponder con el tipo de
dato que el mtodo tiene que devolver; no se puede devolver un objeto desde un mtodo que fue
declarado para devolver un entero.
24
CONTROL DE FLUJO
Cuando se devuelva un objeto, el tipo de dato del objeto devuelto debe ser una subclase o
la clase exacta indicada. Cuando se devuelva un tipo interface, el objeto retornado debe
implementar el interface especificado.


Un Nombre de Mtodo

Un nombre de mtodo puede ser cualquier identificador legal en Java. Existen tres casos
especiales a tener en cuenta con los nombres de mtodos.


Java soporta la sobrecarga de mtodos, por eso varios mtodos pueden compartir el
mismo nombre. Por ejemplo, supon que se ha escrito una clase que puede proporcionar varios
tipos de datos (cadenas, enteros, etc...) en un rea de dibujo. Se podra escribir un mtodo que
supiera como tratar a cada tipo de dato. En otros lenguajes, se tendra que pensar un nombre
distinto para cada uno de los mtodos. dibujaCadena(), dibujaEntero, etc... En Java, se puede
utilizar el mismo nombre para todos los mtodos pasndole un tipo de parmetro diferente a cada
uno de los mtodos. Entonces en la clase de dibujo, se podrn declarar tres mtodos llamados
draw() y que cada uno aceptara un tipo de parmetro diferente.

class DibujodeDatos {
void draw(String s) {
. . .
}
void draw(int i) {
25
CONTROL DE FLUJO
. . .
}
void draw(float f) {
. . .
}
}


Nota: La informacin que hay dentro de los parntesis de la declaracin son los
argumentos del mtodo. Los argumentos se cubren en la siguiente pgina: Pasar Informacin a
un Mtodo.


Los mtodos son diferenciados por el compilador basndose en el nmero y tipo de sus
argumentos. As draw(String s)y draw(int i) son mtodos distintos y nicos. No se puede declarar
un mtodo con la misma firma: draw(String s)y draw(String t) son idnticos y darn un error del
compilador.


Habrs observado que los mtodos sobrecargados deben devolver el mismo tipo de dato,
por eso void draw(String s) e int draw(String t) declarados en la misma clase producirn un error
en tiempo de compilacin.


26
CONTROL DE FLUJO
Todo mtodo cuyo nombre sea igual que el de su clase es un constructor y tiene una tarea
especial que realizar. Los constructores se utilizan para inicializar un objeto nuevo del tipo de la
clase. Los constructores slo pueden ser llamados con el operador new. Para aprender cmo
escribir un constructor, puedes ver Escribir un Mtodo Constructor.


Una clase puede sobre escribir un mtodo de sus superclases. El mtodo que sobre
escribe debe tener el mismo, nombre, tipo de retorno y lista de parmetros que el mtodo al que
ha sobre escrito. Sobre escribir Mtodos te ensear como sobre escribir los mtodos de una
superclase.


Caractersticas Avanzadas de la Declaracin de Mtodos

Junto con los dos elementos necesarios, una declaracin de mtodo puede contener otros
elementos. Estos elementos declaran los argumentos aceptados por el mtodo, si el mtodo es un
mtodo de clase, etc...


Juntndolo todo, una declaracin de mtodo se parecera a esto.
[especificadordeAcceso] [static] [abstract] [final] [native] [synchronized]
tipodeRetorno nombredelMtodo ([listadeparmetros]) [throws listadeExcepciones]
Cada uno de estos elementos de una declaracin se cubre en alguna parte de este tutorial.


27
CONTROL DE FLUJO
Conclusin

Al haber concluido la investigacin, nos pudimos percatar de la utilizacin del
condicional if o el switch que nos ayudan a realizar ciertas acciones dependiendo de una
condicin. O los ciclos for, while o do while con los cuales podemos realizar ciclos para la
repeticin de acciones y con ello el ahorro de lneas de cdigo pero, para ello deben de cumplir
ciertas condiciones especificar para el funcionamiento del ciclo dependiendo de cul de ellos se
utilice. Y por ltimo se vio sobre los mtodos desde cmo crear un mtodo sus caractersticas y
la sintaxis as como sus atributos.











28
CONTROL DE FLUJO
Referencias

Estructuras secuenciales.
http://puntocomnoesunlenguaje.blogspot.mx/2012/04/estructuras-de-control.html

Estructura selectiva: simple, doble y mltiple.
https://sites.google.com/site/tecnologicodetuxtlagutierrez/4-2-estructuras-selectivas-
simple-doble-y- multiple

Estructuras iterativas: repetir mientras, hasta, desde.
https://www.youtube.com/watch?v=Ik1LOiv-1uU

Diseo e implementacin de mtodos
http://programacion.net/articulo/tutorjava_nivel_basico_97/13

You might also like