Está en la página 1de 64

4.

Sentencias de Control

PROGRAMACIÓN I – INGENIERÍA ELÉCTRICA /


INGENIERÍA ELECTRÓNICA

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 1


Introducción

• En un programa estructurado el flujo lógico se gobierna por las


estructuras de control básicas:
1. Secuenciales.
2. Repetitivas.
3. Selectivas.

• Uno de los más importantes avances fue el reconocimiento a


finales de los sesenta de que cualquier algoritmo, no importaba
su complejidad, podía ser construido utilizando combinaciones
de tres estructuras de control de flujo estandarizadas
(secuencial, selección, repetitiva o iterativa) y una cuarta
denominada, invocación o salto (“jump”)

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 2


Texto en Java
Operadores Aritméticos en Java
Salida de Texto - Java

System.out.println( "Bienvenido a la programacion en Java!" );

Esto devolverá:
Bienvenidos a la programación en Java!

• println posiciona el cursor de salida al inicio de la siguiente línea


luego del mensaje mostrado.
• Si se usa solo print, se necesitará indicar el salto de carro de ser
necesario. Para verificar pruebe las siguientes opciones:
System.out.print( "Bienvenido a la programacion en Java!\n\n" );
System.out.print( "Bienvenido a la programacion en Java!" );
Salida de Texto - Java

System.out.printf( "%s\n%s\n","Bienvenido a", "la programacion


en Java!" );
Esto devolverá:
Bienvenidos a
la programación en Java!
• Se llama al método System.out.printf para mostrar la salida
del programa, la f en el nombre printf representa la palabra
“formato”
• Cuando un método requiere varios argumentos, estos se
separan con comas (,); a esto se le conoce como lista separada
por comas.
Salida de Texto - MATLAB

display ('Bienvenidos a la Programacion en MATLAB')


Esta Instrucción devolverá:
Bienvenidos a la Programacion en MATLAB

• La instrucción display permite imprimir en pantalla variables


y cadenas de texto como el caso del ejemplo.
• En MATLAB se usa comillas simples para indicar cadenas de
texto.
Salida de Texto - MATLAB

• Para el caso de imprimir mensajes en los que intervengan valores


numéricos se usa una combinación de instrucciones.
• Por ejemplo si se tiene la variable a cargada con 3:
a=3;
display ( sprintf ( ‘El valor de la variable a es: %d‘ , a) )
Esta instrucción devolverá
El valor de la variable a es 3

• Tenga en cuenta que dentro de la instrucción display, se usa la


instrucción sprintf que permite crear una cadena de caracteres, y al
igual que java permite combinar cadenas con variables de diverso
tipo, en este caso con una variable numérica.
• También se puede usar la instrucción sprintf sin colocarla dentro de
display, es decir usarla de forma directa.
Leer desde el teclado - Java

Se necesita adicionar la clase


• import java.util.Scanner;
La sentencia de ingreso es:
• Scanner entrada = new Scanner( System.in );
 Entrada es un objeto de tipo Scanner
 Cada objeto tiene sus propios métodos
• numero = entrada.nextInt();
 lee un dato tipo int y lo guarda en la variable numero.
• Existen diversas variables según el tipo de dato a leer, por
ejemplo para double:
• numero = entrada.nextDouble();
 Es necesario en este caso que numero haya sido declarada
como double
Leer desde el teclado - MATLAB

Se usa el instrucción input para leer datos desde el teclado,


ejemplo:
numero = input('Ingrese un numero: ');
Esto producirá el texto Ingrese un numero y el programa
esperará al ingreso de un valor numérico que será guardado en la
variable numero, en matlab no hace falta declarar el tipo de dato
de la variable numero

En el caso de que se desee leer una cadena de texto:


texto = input('Ingrese un texto ', 's');
Operadores Lógicos en Java
Sentencias de Control en Java
En general cada lenguaje de programación usa sentencias de
control
Estas sentencias de control se dividen en:
• Instrucciones de selección
• Instrucciones de Repetición

Cada programa se forma combinando diferentes sentencias de


control cualquiera que sea su naturaleza
Las instrucciones de control de una sola entrada/una sola
salida facilitan la creación de programas
Las instrucciones de control están “unidas” entre sí mediante la
conexión del punto de salida de una instrucción de control, al
punto de entrada de la siguiente

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 12


Sentencias de Control en Java
• Este procedimiento es similar a la manera en que un niño
apila los bloques de construcción, así que a esto le
llamamos apilamiento de instrucciones de control.
• Sólo hay una manera alternativa de conectar las
instrucciones de control: el anidamiento de
instrucciones de control, en el cual una instrucción de
control aparece dentro de otra.
• Por lo tanto, los algoritmos en los programas como Java
se crean a partir de sólo tres principales tipos de
instrucciones de control, que se combinan sólo de dos
formas.
• Ésta es la esencia de la simpleza.

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 13


Sentencias de Control en Java
Instrucciones de selección en Java
• Java tiene tres tipos de instrucciones de selección
• La instrucción if realiza (selecciona) una acción si la condición
es verdadera, o evita la acción si la condición es falsa.
• La instrucción if...else realiza una acción si la condición es
verdadera, o realiza una acción distinta si la condición es falsa.
• La instrucción switch realiza una de entre varias acciones
distintas, dependiendo del valor de una expresión.
• La instrucción if es una instrucción de selección simple, ya
que selecciona o ignora una sola acción.

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 14


Sentencias de Control en Java
Instrucciones de selección
• La instrucción if...else se conoce como instrucción de
selección doble, ya que selecciona entre dos acciones
distintas (o grupos de acciones).
• La instrucción switch es una estructura de selección
múltiple, ya que selecciona entre diversas acciones (o grupos
de acciones).

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 15


Sentencias de Control en Java
Instrucciones de repetición
• También llamadas instrucciones de ciclo que permiten a
los programas ejecutar instrucciones en forma repetida,
siempre y cuando una condición (llamada la condición de
continuación del ciclo) siga siendo verdadera.
• Las instrucciones de repetición se implementan con las
instrucciones while, do...while y for.
• Las instrucciones while y for realizan la acción (o grupo de
acciones) en sus cuerpos, cero o más veces;
 si la condición de continuación del ciclo es inicialmente
falsa, no se ejecutará la acción (o grupo de acciones).
• La instrucción do...while realiza la acción (o grupo de acciones)
en su cuerpo, una o más veces.

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 16


Sentencias de Control en Java
• Las palabras if, else, switch, while, do y for son palabras clave
en Java
• se utilizan para implementar varias características de Java,
como las instrucciones de control.
• Las palabras clave no pueden usarse como identificadores,
como los nombres de variables.

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 17


Sentencia If

Si la calificación del estudiante es mayor o igual a 60


Imprimir “Aprobado”
Fin_Si
• Esta instrucción determina si la condición “la calificación del
estudiante es mayor o igual a 60” es verdadera o falsa.
• Si la condición es verdadera se imprime “Aprobado”, y se
“ejecuta” en orden la siguiente instrucción
 Recuerde que el seudocódigo no es un verdadero lenguaje de
programación.
• Si la condición es falsa se ignora la instrucción Imprimir, y se
ejecuta en orden la siguiente instrucción en seudocódigo.
• La sangría de la segunda línea de esta instrucción de selección
es opcional, pero se recomienda ya que enfatiza la estructura
inherente de los programas estructurados
Sentencia If
If en java

if ( numero1 == numero2 )
System.out.printf( “%d == %d\n”, numero1, numero2 );
if ( numero1 != numero2 )
System.out.printf( “%d != %d\n”, numero1, numero2 );

• Observe que no hay punto y coma (;) al final de la primera


línea de cada instrucción if. Dicho punto y coma produciría un
error lógico en tiempo de compilación.
If … Else

• La instrucción if...else de selección doble permite al


programador especificar una acción a realizar cuando la
condición es verdadera, y otra distinta cuando la
condición es falsa.
• Por ejemplo, la instrucción en seudocódigo:
Si la calificación del estudiante es mayor o igual a 60
Imprimir “Aprobado”
Caso contrario
Imprimir “Reprobado”
Fin_Si
If … Else
If … Else en Java

• La instrucción anterior if...else en seudocódigo


puede escribirse en Java como
if ( calificacion >= 60 ){
System.out.println( "Aprobado" );}
else{
System.out.println( "Reprobado" );}
If … Else if

• En ocasiones es necesario que en el caso contrario se


realice una comparación específica, en dicha situación se
usa caso contrario, si… para seudocódigo (en español).
• Por ejemplo, la instrucción en seudocódigo:
Si la calificación del estudiante es mayor o igual a 60
Imprimir “Aprobado”
Caso contrario, si la calificación es mayor a 57
Imprimir “Faltan tres puntos para aprobar”
Caso contrario
Imprimir “Reprobado”
Fin_Si
If … Else if en Java

• La instrucción anterior if...else en seudocódigo puede escribirse en


Java como
if ( calificacion >= 60 ){
System.out.println( "Aprobado" );}
else if ( calificacion > 57){
System.out.println( "Faltan 3 puntos para aprobar" );}
else{
System.out.println( "Reprobado" );}
If … Else if en MATLAB

• La instrucción anterior if...else en seudocódigo puede escribirse en


Java como
if ( calificacion >= 60 )
display( "Aprobado" );
elseif ( calificacion > 57)
display ( 'Faltan 3 puntos para aprobar' );
else
display ( 'Reprobado' );
end

Por supuesto es necesario que la variable calificación sea leída


previamente por teclado o que haya sido cargada previo a if.
While..

• Es una instrucción de repetición (también llamada


instrucción de ciclo, o un ciclo) permite al programador
especificar que un programa debe repetir una acción
mientras cierta condición sea verdadera.
• La instrucción en seudocódigo:
Mientras existan más artículos en mi lista de compras
Comprar el siguiente artículo y quitarlo de mi lista
Fin_Mientras
• En este caso describe la repetición que ocurre durante
una salida de compras.

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 28


While..

• While en seudocódigo:
Mientras existan más artículos en mi lista de compras
Comprar el siguiente artículo y quitarlo de mi lista
Fin_Mientras
• La condición “existan más artículos en mi lista de
compras” puede ser verdadera o falsa.
 Si es verdadera, entonces se realiza la acción “Comprar
el siguiente artículo y quitarlo de mi lista”.

• Esta acción se realizará en forma repetida mientras la


condición sea verdadera

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 29


While..

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 30


While.. En Java

• Como ejemplo de la instrucción de repetición while en


Java, considere un segmento de programa diseñado para
encontrar la primera potencia de 3 que sea mayor a 100.
• Suponga que la variable producto de tipo int se inicializa
en 3.
• Cuando la siguiente instrucción while termine de
ejecutarse, producto contendrá el resultado:
int producto = 3;
while ( producto <= 100 ){
producto = 3 * producto;}

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 31


While.. En Java

• Como ejemplo de la instrucción de repetición while en


Java, considere un segmento de programa diseñado para
encontrar la primera potencia de 3 que sea mayor a 100.
int producto = 3;
while ( producto <= 100 ){
producto = 3 * producto;}
• En cada iteración de la instrucción while multiplica a
producto por 3, por lo que la variable producto toma los
valores de 9, 27, 81 y 243, sucesivamente.
• Cuando la variable producto se vuelve 243, la condición
de la instrucción while (producto <= 1000) se torna falsa.
 Esto termina la repetición,

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 32


While.. En Matlab

En el caso de MATLAB, recuerde que no es necesario que se


especifique el tipo de dato, el tipo de dato se configura
automáticamente según el valor ingresado:

producto = 3;
while ( producto <= 100 )
prodAnterior=producto;
producto = 3 * producto;
display(sprintf('Producto de %d x 3 = %d',prodAnterior, producto));
end

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 33


While.. Posibles Errores

• Si no se proporciona, en el cuerpo (ámbito) de una


instrucción while, una acción que ocasione que en algún
momento la condición de un while se torne falsa, por lo
general, se producirá un error lógico conocido como ciclo
infinito, en el que el ciclo nunca terminará.

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 34


Instrucción de Repetición for…

• La instrucción while puede utilizarse para implementar


cualquier ciclo controlado por un contador.
• En estos casos, en el que el número de iteraciones es fijo,
se debe usar la estructura desde o para (for, en inglés).
• La estructura para ejecuta las acciones del cuerpo del
bucle un número especificado de veces y de modo
automático controla el número de iteraciones o pasos a
través del cuerpo del bucle.
• La mayoría de lenguajes de programación también cuenta
con la instrucción de repetición for (desde/para).

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 35


Instrucción de Repetición for…

• Para/Desde en seudocódigo:
Desde i = 1 hasta 20, incremento hacer
acciones
.
.
.
Fin_Desde
• La variable o índice es i de la estructura de control, en este
caso se inicializa en 1 y llegará hasta 20.
• El incremento indica el paso con el cual se incrementará la
variable i

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 36


Instrucción de Repetición for…

• Recuerde que las acciones específicas en el bucle se


ejecutan para cada valor de la variable índice desde el
valor inicial hasta el valor final con el incremento de uno
en uno.
• El incremento de la variable índice siempre es 1 si no se
indica expresamente lo contrario.

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 37


Instrucción de Repetición for…

• Un bucle desde (for) se representa con los símbolos de


proceso y de decisión mediante un contador.
• Entonces, en el caso de un bucle de lectura de cincuenta
números para tratar de calcular su suma, el diagrama de
flujo sería cualquiera de los siguientes:

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 38


for… en Java

Ejemplos sobre el uso de for en Java


a) Modifi car la variable de control de 1 a 100 en incrementos de 1.
for ( int i = 1; i <= 100; i++ )
b) Modifi car la variable de control de 100 a 1 en decrementos de 1.
for ( int i = 100; i >= 1; i-- )
c) Modifi car la variable de control de 7 a 77 en incrementos de 7.
for ( int i = 7; i <= 77; i += 7 )
d) Modificar la variable de control de 20 a 2 en decrementos de 2.
for ( int i = 20; i >= 2; i -= 2 )
e) Modifi car la variable de control con la siguiente secuencia de valores: 2, 5, 8,
11, 14, 17, 20.
for ( int i = 2; i <= 20; i += 3 )
f) Modifi car la variable de control con la siguiente secuencia de valores: 99, 88,
77, 66, 55, 44, 33, 22, 11, 0.
for ( int i = 99; i >= 0; i -= 11 )

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 39


for… en Java

• Considerando el código fuente en Java para el diagrama de


flujo anterior y que se imprima los valores del índice, de
manera que en cada línea se visualicen 10 valores sería:
for ( int i = 1; i <= 50 ; i ++){
if ((i-1)%10 != 0){
System.out.printf("%d\t", i );}
/*imprime cada valor colocando una tabulación al final de
cada valor*/
else{
System.out.printf("\n%d\t", i );}
//imprime el valor pero antes hace un salto de línea
}
System.out.printf("\n");//Imprime un salto de línea adicional
}

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 40


for… en MATLAB

• El código fuente anterior en MATLAB es:


for i=1:1:50
if (mod((i-1),10)~=0)
fprintf('%d\t',i);
else
fprintf('\n%d\t',i);
end
end

Nótese que el valor que se encuentra entre dos puntos :1: es


el valor del incremento de la variable i

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 41


Instrucción hacer… mientras
• La instrucción de repetición do...while o hacer … mientras es
similar a la instrucción while, con una diferencia muy
importante:
 En la instrucción while el programa evalúa la condición de
continuación de ciclo al principio, es decir, antes de ejecutar
el cuerpo del ciclo.
 La instrucción do...while evalúa la condición de continuación
de ciclo después de ejecutar el cuerpo del ciclo; por lo tanto,
el cuerpo siempre se ejecuta por lo menos una vez.
• .

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 42


hacer… mientras en Java
// La instrucción de repetición do...while.
public class PruebaDoWhile{
public static void main( String args[] ){
int contador = 1; // inicializa contador
do{
System.out.printf( "%d ", contador );
++contador;
} while ( contador <= 10 ); // fin de do...while
System.out.println(); // imprime una nueva línea
} // fin de main
} // fin de la clase PruebaDoWhile.

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 43


hacer… mientras en Java
Se presenta a continuación el diagrama de flujo del programa
formato UML del algoritmo anterior

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 44


hacer… mientras en MATLAB
Matlab no implementa esta instrucción de control cuando se
desarrolla un script, sin embargo se la puede implementar
cuando se use la herramienta Simulink de Matlab

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 45


Instrucción de selección múltiple switch
• Con frecuencia —en la práctica— es necesario que existan más
de dos elecciones posibles (por ejemplo, en la resolución de la
ecuación de segundo grado existen tres posibles alternativas o
caminos a seguir, según que el discriminante sea negativo, nulo
o positivo).
• Si el número de alternativas es grande se puede plantear serios
problemas de escritura del algoritmo y naturalmente de
legibilidad.
• La estructura de decisión múltiple evaluará una expresión que
podrá tomar n valores distintos enteros, 1, 2, 3, 4, ..., n.
• Según que elija uno de estos valores en la condición, se realizará
una de las n acciones, o lo que es igual, el flujo del algoritmo
seguirá un determinado camino entre los n posibles.

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 46


Instrucción de selección múltiple switch
Recuerde que:
• Cada acción se asocia con un valor de una expresión entera
constante (es decir, un valor constante de tipo byte, short, int o char,
pero no long) que la variable o expresión en la que se basa la
instrucción switch pueda asumir.
Además:
• Al final de cada caso se suele colocar la palabra reservada break,
que significa que se rompe el caso y se debe proceder a ejecutar la
siguiente instrucción luego del último caso.
• Switch usa un caso considerado por defecto (default), en
seudocódigo se lo puede usar como si_no (español).
 Se recomienda usarlo y dentro de este caso por defecto se
colocan las instrucciones a ejecutarse si ninguno de los casos o
condiciones anteriores fueron verdaderas

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 47


Instrucción de selección múltiple switch
Seudocódigo (genérico)
Modelo 1:
según_sea expresion (caso) hacer
caso1:
accion S11
accion S12
.
accion S1a
caso2:
accion S21
accion S22
.
accion S2b
.
casoN:
accion S31
accion S32
.
accion S3p
si-no
accion Sx
fin_según

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 48


Instrucción de selección múltiple switch
Diagrama de Flujo

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 49


Instrucción de selección múltiple switch
Diagrama de Flujo UML

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 50


Instrucción switch
Ejemplo en Seudocódigo: Se desea diseñar un algoritmo que escriba
los nombres de los días de la semana en función del valor de una variable
DIA introducida por teclado.
algoritmo DiasSemana
var
entero: DIA
inicio
leer(DIA)
según_sea DIA hacer
1: escribir('LUNES')
2: escribir('MARTES')
3: escribir('MIERCOLES')
4: escribir('JUEVES')
5: escribir('VIERNES')
6: escribir('SABADO')
7: escribir('DOMINGO')
sí-no
escribir('ERROR')
fin_según
fin

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 51


Instrucción switch en Java
Aplicando el algoritmo anterior al lenguaje de java (parte 1 se
divide por la longitud):
package diasemana;
import java.util.Scanner;
public class DiaSemana {
public static void main(String[] args) {
int dia; //crea la variable dia como entero
Scanner entrada = new Scanner(System.in); //crea el objeto entrada para leer desde el teclado
System.out.print("Ingrese el número de día de la semana 1-7: ");
dia = entrada.nextInt(); //lee desde el teclado un valor entero
switch (dia){ //según el valor ingresado y cargado en dia se imprime el nombre del dia
case 1:
System.out.println("LUNES");
break;
case 2:
System.out.println("MARTES");
break;
case 3:
System.out.println("MIÉRCOLES");
break;

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 52


Instrucción switch en Java
Aplicando el algoritmo anterior al lenguaje de java (parte 2 se
divide por la longitud):
case 4:
System.out.println("JUEVES");
break;
case 5:
System.out.println("VIERNES");
break;
case 6:
System.out.println("SÁBADO");
break;
case 7:
System.out.println("DOMINGO");
break;
default:
System.out.println("ERROR");
break;
}
}
}

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 53


Instrucción switch en Matlab
Aplicando el algoritmo anterior al lenguaje de Matlab:
clc %Limpia la pantalla de Matlab
clear %Limpia el Workspace de Matlab
close all %Cierra las ventenas adicionales que puedan estar abiertas de Matlab
dia = input('Ingrese el número de día de la semana 1-7: ');
switch dia
case 1
fprintf('LUNES\n');
case 2
fprintf('MARTES\n');
case 3
fprintf('MIÉRCOLES\n');
case 4
fprintf('JUEVES\n');
case 5
fprintf('VIERNES\n');
case 6
fprintf('SÁBADO\n');
case 7
fprintf('DOMINGO\n');
otherwise
display( sprintf ( 'ERROR‘ ) );%Usar esta forma es similar a println de Java
end

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 54


Instrucciones break y continue
• Las instrucciones break y continue son usadas para
alterar el flujo de control.
• Puede utilizarse la instrucción break para terminar la
ejecución de una instrucción switch.
• También se la puede utilizar break en las instrucciones de
repetición.
• Java y Matlab también cuenta con las instrucciones break
y continue, para usarlas en los casos en los que es
conveniente alterar el flujo de control en las instrucciones
de control anidadas.

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 55


Instrucciones break y continue
break
• Cuando break se ejecuta en una instrucción while, for,
do...while, o switch, ocasiona la salida inmediata de esa
instrucción.
• La ejecución continúa con la primera instrucción después
de la instrucción de control.
• Los usos comunes de break son para escapar
anticipadamente del ciclo, o para omitir el resto de una
instrucción switch

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 56


Instrucciones break y continue
continue
• Cuando la instrucción continue se ejecuta en una
instrucción while, for o do...while, omite las instrucciones
restantes en el cuerpo del ciclo y continúa con la siguiente
iteración del ciclo.
• En las instrucciones while y do...while, la aplicación
evalúa la prueba de continuación de ciclo justo después de
que se ejecuta la instrucción continue.
• En una instrucción for se ejecuta la expresión de
incremento y después el programa evalúa la prueba de
continuación de ciclo.

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 57


Instrucciones break y continue
continue
• La instrucción while puede utilizarse, en la mayoría de los
casos, en lugar de for
• La única excepción ocurre cuando la expresión de
incremento en el while va después de una instrucción
continue.
 En este caso, el incremento no se ejecuta antes de que el
programa evalúe la condición de continuación de
repetición, por lo que el while no se ejecuta de la misma
manera que el for.

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 58


Instrucciones break y continue
PruebaBreak.java
1 // La instrucción break para salir de una instrucción for.
2 public class PruebaBreak
3 {
4 public static void main( String args[] )
5 {
6 int cuenta;
7 // la variable de control, cuenta, también se usa cuando termina el ciclo
8
9 for ( cuenta = 1; cuenta <= 10; cuenta++ ) // itera 10 veces
10 {
11 if ( cuenta == 5 ){ // si cuenta es 5,
12 break;} // termina el ciclo
13 System.out.printf( "%d ", cuenta );
14 } // fin de for
15 System.out.printf( "\nSalio del ciclo en cuenta = %d\n", cuenta );
16 } // fin de main
17 } // fin de la clase PruebaBreak

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 59


Instrucciones break y continue
PruebaContinue.java
1 // Instrucción continue para terminar una iteración de una instrucción for.
2 public class PruebaContinue
3 {
4 public static void main( String args[] )
5 {
6 for ( int cuenta = 1; cuenta <= 10; cuenta++ ) // itera 10 veces
7 {
8 if ( cuenta == 5 ) // si cuenta es 5,
9 continue; // omite el resto del código en el ciclo
10 System.out.printf( "%d ", cuenta );
11 } // fin de for
12
13 System.out.println( "\nSe uso continue para omitir imprimir 5" );
14 } // fin de main
15 } // fin de la clase PruebaContinue
16
17

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 60


Ejercicios Resueltos
Escribir un algoritmo que calcule el producto de los n primeros números
naturales
El problema puede calcular el producto N * (N – 1 * (n – 2) * ... * 3 * 2 *
1, que en términos matemáticos se le conoce con el nombre de
FACTORIAL de N. El algoritmo que resuelve el problema será el
siguiente:
• 1. Leer N.
• 2. Caso de que N = 0, visualizar «Factorial de 0 igual 1».
• 3. Comprobar que N > 0 (los números negativos no se
consideran).
• 4. Hacer la variable P que va a contener el productor igual
a 1.
• 5. Realizar el producto P = P * N.
• Disminuir en una unidad sucesivamente hasta llegar a N = 1,
y de modo simultáneo los
• productos P * N.
• 6. Visualizar P.
• 7. Fin.
PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 61
Ejercicios Resueltos
El diagrama de flujo sería

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 62


Ejercicios Resueltos
Código en JAVA
package factorial1;
//Autor: UPS Programa Factorial en Java
import java.util.Scanner;
public class Factorial1 {
public static void main(String[] args) {
double N, P;
Scanner entrada = new Scanner(System.in);
System.out.println("Ingrese un número: ");
N = entrada.nextDouble();
if (N == 0){
System.out.printf("El factorial de 0 es: 1\n");
}
else if(N > 0){
P = 1;
while (N>1){
P = P * N;
N = N-1;
}
System.out.printf("El factorial es = %.1f\n",P);
}
else{
System.out.printf("Los números negativos no se consideran\n");
}
}
}

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 63


Ejercicios Resueltos
Código en MATLAB
%Autor: UPS Programa Factorial en MATLAB
clc
clear
close all
N = input('Ingrese un número: ');
if N == 0
fprintf('El factorial de 0 es: 1\n');
elseif N > 0
P = 1;
while N>1
P = P * N;
N = N-1;
end
fprintf('El factorial es = %d\n',P);
else
fprintf('Los números negativos no se consideran\n');
end

PROGRAMACIÓN I - 1. CONCEPTOS GENERALES 64

También podría gustarte