Está en la página 1de 4

PROGRAMA DE LLAMADA TELEFÓNICA IMPLEMENTANDO DECISIONES

SIMPLES Y DECISIONES DOBLES

Ejercicio:
Una empresa de taxi VIP cobra a sus clientes según la distancia en kilómetros del viaje. Se pide
determinar cuanto debe pagar el cliente.
El precio por kilómetro será de Lps. 50 para todos aquellos viajes que sean de 100 kilómetros o
menos. El precio será de Lps. 43 por km. para todos aquellos viajes que duren mas de 100
kilómetros. El día de hoy existe un descuento de 10% para los clientes que tengan una facturación
superior a los Lps. 1,500.00

Analizemos cuales son las decisiones que intervienen en este ejercicio:


En primer lugar: El precio por kilómetro será de Lps. 50 para todos aquellos viajes que sean de
100 kilómetros o menos. El precio será de Lps. 43 por km. para todos aquellos viajes que duren
mas de 100 kilómetros.
Existen aquí dos tarifas a aplicar, solamente una de ellas se cobrará en momento determinado, para
saber cual (50 o 43 lempiras) se debe evaluar la distancia en kilómetros recorrida. Se trata de una
decisión doble, es decir una expresión lógica se evaluá teniendo dos posibles alternativas (verdadero
o falso).

La decisión doble a nivel de diagrama de flujo y seudocodigo se representa:

En donde la condición es la expresión lógica que se va


a evaluar; dependiendo del resultado (verdadero o
falso) se elegirá ejecutar cualquiera de las dos
diferentes rutas de acción (S1 o S2); pero nunca se
ejecutarán las dos al mismo tiempo.

En Java la condición o expresión lógica la encerraremos entre paréntesis --→ (distancia>=100).


A continuación abriremos llave para indicar el inicio de las instrucciones que se realizaran si la
condición de evalúa verdadera. Colocaremos el proceso que se realizará y para indicar el fin de las
acciones de la parte verdadera cerramos las llaves.

if (distancia>=100) // if corresponde al si que evalúa la expresión lógica


{ //inicio de la parte verdadera de la condicional
t = distancia * 50;
}// final de la parte verdadera de la condicional
else //else corresponde al sino que evalúa cuando la expresión lógica es falsa
{//inicio de la parte verdadera de la condicional
t= distancia * 43;
}//final de la parte verdadera de la condicional

En segundo lugar: tenemos una decisión simple que evaluá si existe la condición para determinar
el descuento.

El día de hoy existe un descuento de 10% para los clientes que tengan una facturación superior a
los Lps. 1,500.00

Solo existe una sola situación en donde se otorgará descuento y es cuando la facturación (subtotal)
exceda los 1500 lempiras.
La decisión simple a nivel de seudocodigo y diagrama de flujo es la siguiente:

Aquí se evalúa una condición o expresión lógica, y


solamente existen acciones a ejecutar si la expresión
lógica se evalúa como verdadera.

En nuestro programa en Java evaluamos con decisión simple la situación para determinar el
descuento, st es la variable que representa el subtotal, y de el depende si hay descuento o no.

if (st>1500) {//inicio de las acciones del if


d=st*0.10f;
}// fin de las acciones del if
Este es el código completo del ejercicio:

package com.mycompany.taxi_if;
import javax.swing.JOptionPane;

public class pago_taxi {

public static void main(String[] args) {

String d;
int distancia;
float subtotal, descuento;

d = JOptionPane.showInputDialog("Cual es la distancia recorrida en kilometros ");


distancia= Integer.parseInt(d);

subtotal = calcula_subt(distancia); //llamado a la funcion calcula_subt


JOptionPane.showMessageDialog(null, "Subtotal antes del descuento..: " + subtotal);

descuento = calcula_desc(subtotal);//llamado a la funcion calcula_desc


JOptionPane.showMessageDialog(null, "El descuento es de..: " + descuento);

calcula_total(subtotal, descuento); //llamado a procedimiento de calcula_total


}

private static float calcula_subt(int distancia)


{
float t;//definicion de variable local

if (distancia>=100)
{ //inicio de la parte verdadera de la condicional
t = distancia * 50;
}// final de la parte verdadera de la condicional
else
{//inicio de la parte verdadera de la condicional
t= distancia * 43;
}//final de la parte verdadera de la condicional
return t;

}// fin de la funcion calcula_pago


private static float calcula_desc(float st)
{
float d=0;//definicion de variable local
if (st>1500) {
d=st*0.10f;
}

return d;
}//fin de la funcion

private static void calcula_total(float st, float d)


{
float total;
total = st - d;
JOptionPane.showMessageDialog(null, "El total a pagar es de..: " + total);
}
}

También podría gustarte