Está en la página 1de 21

Universidad Politcnica Salesiana

Facultad de Ingenieras
Escuela de Ingeniera Elctrica
Programacin 1
Grupo 1
Nombre: Andrs Gann
Nivel: Segundo nivel
Fecha de Presentacin: 2014-07-06
Tema: MENS REPETITIVOS
OBJETIVO PRINCIPAL

Realizar mens de opciones que se repitan de manera indefinida o por


medio de la introduccin de respuestas.

OBJETIVOS SECUNDARIOS

Controlar el ingreso de respuestas errneas a determinadas preguntas.


Controlar el ingreso del nmero cero como divisor y evitar
indeterminaciones.
Operar con nmeros ingresados una sola vez o varias veces.
Implementar lazos de repeticin al comparar strings.

PRCTICA
Introduccin
Es usual que al momento de realizar un men, el programador brinde la
posibilidad de repetir el mismo varias veces. Es posible hacer que un men se
repita infinitas veces o ms bien se puede realizar una pregunta al usuario para de
ese modo determinar si se repite el lazo o simplemente el programa salta ese lazo.
Es de all que surge la necesidad de comparar dichas respuestas expresadas
como strings, para dicha tarea hacemos uso de la siguiente lnea de
programacin.
variable.equals(respuesta)

Dicha lnea permite comparar la informacin almacenada en la variable con los


caracteres que se encuentran dentro del parntesis entre comillas, sta
comparacin arrojar una respuesta verdadera o falsa luego de la comparacin.
Es importante que durante el proceso en el que se pregunta la decisin del usuario
las respuestas tengan cierto rango de compatibilidad, debido a que por motivos de
escritura una letra mayscula o minscula genera una incompatibilidad y por ende
arroja una respuesta falsa que podr luego generar problemas en el programa.
El comando antes presentado al ser implementado con la estructura de repeticin
while permite que un men se repita en base a lo solicitado por el usuario, la
decisin del usuario es ingresada por medio de teclado, al ser comparada se
define como verdadera o falsa y en base a ello el sistema ingresa o sale del lazo;
cabe recalcar que para este uso del while NO se debe colocar un incremento pues
no estamos comparado valor de conteo con un valor tope.
Se crea entonces la siguiente estructura que puede ser implementada en
aplicaciones JAVA:
while (variable.equals("dato a comparar"))
{
}
SWITCH
Durante el ltimo laboratorio se revis el uso del comando switch, dicho comando
nos permite crear una lista de casos u opciones que contienen una serie de
sentencias que se utilizan luego para el desarrollo del programa.
El comando switch es operado mediante comparaciones ya sea de variables
numricas o caracteres que son ingresados mediante teclado, luego de realizar
una comparacin y determinar cul de todas las opciones presentadas
corresponden al dato ingresado por teclado, realiza las sentencias contenidas
dentro de dicha opcin. Cabe destacar que cuando el comando ha tomado una
opcin como verdadera y ha ejecutado sus sentencias, se detiene
automticamente y deja de comparar el resto de posibilidades al tomarlas como
falsas; se puede decir que este comando ahorra tiempo al computador dado que
slo toma a una de las opciones como verdadera y descarta a las dems.
Se podra hallar cierta similitud con el comando if a excepcin de que el manejo de
este nuevo comando nos permite comparar la opcin que deseamos de una sola
vez sin necesidad de anidar condicionales o implementar operadores lgicos.

LEVANTAMIENTO DE INDETERMINACIONES
Para evitar que en una divisin el resultado sea infinito, resulta fundamental evitar
que el usuario ingrese el nmero cero como valor del denominador. Mediante el
uso del comando if y operadores lgicos logramos que el sistema muestre un
mensaje de ERROR y automticamente de por terminado el proceso mediante el
comando break; tanto para el caso verdadero como para el caso falso se terminan
las sentencias con la palabra break.
EJERCICIOS REALIZADOS EN NETBEANS IDE
Realizar un men repetitivo que permita repetir el men con las respuestas
SI, Si, si y se detenga con NO, No, no. Para el resto de respuestas se muestra
un mensaje de error y se solicita el ingreso de la respuesta nuevamente.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package repeticiones;
import java.io.*;

/**
*
* @author Ups
*/
public class REPETICIONES {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

// TODO code application logic here


InputStreamReader DATO = new InputStreamReader(System.in);
BufferedReader DATO1 = new BufferedReader(DATO);
int opc,x;
double num1,num2,result;
char opcletra;
String respuesta;
respuesta="SI";
x=1;
try
{
System.out.println("REALIZAR UN MENU CON LAS CUATRO
OPERACIONES BASICAS");

System.out.println("");
System.out.println("");
while (respuesta.equals("SI")||respuesta.equals("Si")||respuesta.equals("si"))
{
System.out.println("MENU DE OPCIONES");
System.out.println("1.- SUMA");
System.out.println("2.- RESTA");
System.out.println("3.- MULTIPLICACION");
System.out.println("4.- DIVISION");
System.out.println("");
System.out.println("Ingrese su opcion");
opc=Integer.parseInt(DATO1.readLine());

switch (opc)
{
case 1:
{
System.out.println("Ingrese el primer numero");
num1=Double.parseDouble(DATO1.readLine());
System.out.println("Ingrese el segundo numero");
num2=Double.parseDouble(DATO1.readLine());
result=num1+num2;
System.out.println("LA SUMA ES: "+result);
break;
}
case 2:
{
System.out.println("Ingrese el primer numero");
num1=Double.parseDouble(DATO1.readLine());
System.out.println("Ingrese el segundo numero");
num2=Double.parseDouble(DATO1.readLine());
result=num1-num2;
System.out.println("LA RESTA ES: "+result);
break;
}
case 3:
{
System.out.println("Ingrese el primer numero");

num1=Double.parseDouble(DATO1.readLine());
System.out.println("Ingrese el segundo numero");
num2=Double.parseDouble(DATO1.readLine());
result=num1*num2;
System.out.println("LA MULTIPLICACION ES: "+result);
break;
}
case 4:
{
System.out.println("Ingrese el primer numero");
num1=Double.parseDouble(DATO1.readLine());
System.out.println("Ingrese el segundo numero");
num2=Double.parseDouble(DATO1.readLine());
result=num1/num2;
System.out.println("LA DIVISION ES: "+result);
break;
}
}
System.out.println("DESEA EJECUTAR NUEVAMENTE EL MENU?
<SI/Si/si/NO/No/no>");
respuesta=DATO1.readLine();
while (x==1)
{
if (respuesta.equals("no")||respuesta.equals("NO")||
respuesta.equals("No")||respuesta.equals("SI")||respuesta.equals("si")||
respuesta.equals("Si"))

{
x=0;
}
else
{
x=1;
System.out.println("RESPUESTA INVALIDA-DESEA EJECUTAR
NUEVAMENTE EL MENU? <SI/Si/si/NO/No/no>");
respuesta=DATO1.readLine();
}
}
}
}
catch (IOException e)
{
System.out.println("ERROR");
}
}
}
Realizar un men con las cuatro operaciones bsicas con solo dos nmeros
ingresados por teclado desplegar los resultados en forma matemtica
horizontal y ejecutar el men repetitivamente.

/*
* To change this template, choose Tools | Templates

* and open the template in the editor.


*/
package punto;
import java.io.*;

/**
*
* @author Ups
*/
public class PUNTO {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
InputStreamReader DATO = new InputStreamReader(System.in);
BufferedReader DATO1 = new BufferedReader(DATO);
double num1,num2,result;
int opc;
String respuesta;
respuesta="SI";
try
{

System.out.println("REALIZAR UN MENU CON LAS CUATRO


OPERACIONES BASICAS CON SOLO DOS NUMEROS INGRESADOS POR
TECLADO");
System.out.println("DESPLEGAR LOS RESULTADOS EN FORMA
MATEMATICA HORIZONTAL Y EJECUTAR EL MENU REPETITIVAMENTE");
System.out.println("Ingrese el primer numero");
num1=Double.parseDouble(DATO1.readLine());
System.out.println("Ingrese el segundo numero");
num2=Double.parseDouble(DATO1.readLine());
while (respuesta.equals("SI"))
{
System.out.println("MENU DE OPCIONES");
System.out.println("1.- SUMA");
System.out.println("2.- RESTA");
System.out.println("3.- MULTIPLICACION");
System.out.println("4.- DIVISION");
System.out.println("");
System.out.println("Ingrese su opcion");
opc=Integer.parseInt(DATO1.readLine());
switch (opc)
{
case 1:
{
result=num1+num2;
System.out.println(num1+"+"+num2+"="+result);
break;

}
case 2:
{
result=num1-num2;
System.out.println(num1+"-"+num2+"="+result);
break;
}
case 3:
{
result=num1*num2;
System.out.println(num1+"*"+num2+"="+result);
break;
}
case 4:
{
result=num1/num2;
System.out.println(num1+"/"+num2+"="+result);
break;
}
}
System.out.println("DESEA EJECUTAR NUEVAMENTE EL MENU?
<SI/NO>");
respuesta=DATO1.readLine();
}
}
catch (IOException e)

{
System.out.println("ERROR");
}
}
}
Realizar un men con las cuatro operaciones bsicas las opciones del men
son letras, el men es repetitivo y cada vez que se ejecuta el men repetitivo
pide los dos nmeros en la divisin no debe existir divisin para cero.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package otro;
import java.io.*;
/**
*
* @author Ups
*/
public class OTRO {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
InputStreamReader DATO = new InputStreamReader(System.in);

BufferedReader DATO1 = new BufferedReader(DATO);


double num1,num2,result;
char opc;
String respuesta;
respuesta="SI";
try
{
System.out.println("REALIZAR UN MENU CON LAS CUATRO
OPERACIONES BASICAS");
System.out.println("LAS OPCIONES DEL MENU SON LETRAS, EL MENU
ES REPETITIVO");
System.out.println("Y CADA VEZ QUE SE EJECUTA EL MENU
REPETITIVO PIDE LOS DOS NUMEROS");
System.out.println("EN LA DIVISON NO DEBE EXISTIR DIVISION PARA
CERO");
System.out.println("");
System.out.println("");
while (respuesta.equals("SI"))
{
System.out.println("Ingrese el primer numero");
num1=Double.parseDouble(DATO1.readLine());
System.out.println("Ingrese el segundo numero");
num2=Double.parseDouble(DATO1.readLine());
System.out.println("MENU DE OPCIONES");
System.out.println("a.- SUMA");
System.out.println("b.- RESTA");
System.out.println("c.- MULTIPLICACION");

System.out.println("d.- DIVISION");
System.out.println("");
System.out.println("Ingrese su opcion");
opc=(char) System.in.read();
DATO1.readLine();
switch (opc)
{
case 'a':
{
result=num1+num2;
System.out.println(num1+"+"+num2+"="+result);
break;
}
case 'b':
{
result=num1-num2;
System.out.println(num1+"-"+num2+"="+result);
break;
}
case 'c':
{
result=num1*num2;
System.out.println(num1+"*"+num2+"="+result);
break;
}

case 'd':
{
if(num2==0)
{
System.out.println("ERROR-NO EXISTE DIVION PARA CERO");
break;
}
else
{
result=num1/num2;
System.out.println(num1+"/"+num2+"="+result);
break;
}

}
}
System.out.println("DESEA EJECUTAR NUEVAMENTE EL MENU?
<SI/NO>");
respuesta=DATO1.readLine();
}
}
catch (IOException e)
{
System.out.println("ERROR");
}
}

}
CORRIDA DE LOS PROGRAMAS
Realizar un men repetitivo que permita repetir el men con las respuestas
SI, Si, si y se detenga con NO, No, no. Para el resto de respuestas se muestra
un mensaje de error y se solicita el ingreso de la respuesta nuevamente.

Realizar un men con las cuatro operaciones bsicas con solo dos nmeros
ingresados por teclado desplegar los resultados en forma matemtica
horizontal y ejecutar el men repetitivamente.

Realizar un men con las cuatro operaciones bsicas las opciones del men
son letras, el men es repetitivo y cada vez que se ejecuta el men repetitivo
pide los dos nmeros en la divisin no debe existir divisin para cero.

CONCLUSIONES

Existe la posibilidad de realizar mens repetitivos que basan sus


operaciones en dos cantidades que fueron ingresadas al inicio, y no varan
mientras se dan las repeticiones.
Se puede crear un men de operaciones en el cual cada vez que
necesitemos realizar una nueva operacin se nos solicite las cantidades a
ser empleadas.
Dentro de las operaciones bsicas tenemos a la divisin, la misma que
puede llegar a generar problemas pues podemos encontrar la posibilidad de
una divisin para 0 (cero). Es deber del programador evitar estos casos y
mostrar por mensajes las razones por las cuales el programa no ha
realizado el proceso de divisin.
El da 2 de julio del 2008 Liga Deportiva Universitaria de Quito logra obtener
el campeonato en la Copa Santander Libertadores de Amrica. El da 2 de
julio del 2014 se record dicho acontecimiento con motivo de los 6 aos de
dicho logro.

También podría gustarte