lunes, 20 de octubre de 2014

Ejemplo de un programa con sentencias condicionales

En este ejemplo de aplicación de la sentencias condicionales tomaremos un ejercicio del libro: Introducción a la Programación Lógica y Diseño (Stair 2013) el cual dice:

Dash Cell Phone Company cobra a sus clientes una tarifa básica del $5 por mes por enviar mensajes de texto. Las tarifas adicionales son como sigue:
  • ·        Los primeros 60 mensajes por mes, sin importar la longitud del mensaje, se incluyen en la factura básica.
  • ·        Se cobran cinco centavos adicionales por cada mensaje de texto después del mensaje 60, hasta los 180 mensajes.
  • ·        Se cobran 10 centavos adicionales por cada mensaje de texto después del mensaje 180.


Diseñe un diagrama de flujo y un pseudocodigo para un programa que acepte los siguientes datos sobre la factura de un cliente: código de área donde se encuentra (tres dígitos), número de teléfono (siete dígitos) y número de mensajes de texto enviados. Despliegue todos los datos, incluyendo la factura mensual final tanto antes como después de agregar los impuestos.

Aplicando los pasos para realizar un diagrama y un pseudocódigo:

Paso 1: Definición del problema.
Se quiere realizar la factura de un cliente en la que se pueda calcular el valor total a pagar con impuestos incluidos. Se imprime la información del cliente, subtotal sin calcular impuestos y el valor total con impuestos calculados.

Paso 2: Planeación de la solución.

Datos de entrada: Código de área (3 números dígitos), número de teléfono (7 números dígitos), numero de mensajes (números enteros positivos).

Datos de salida: código de área, número de teléfono, subtotal, total.

Datos adicionales: Valores extra de mensajes (0.05 y 0.10), valor de impuestos (0.12), valor original (5)

Proceso:
Lo primero que se debe hacer es conocer los datos del cliente, que son: el código de área (3 números dígitos) y el número de teléfono (7 números dígitos) y el número de mensajes enviados (enteros positivos). Después el programa analiza si los mensajes son menores o iguales a 60, si es verdad el valor básico se multiplica por los impuestos y se suma al valor original 5$, caso contrario se verifica si el valor esta entre 61 y 180, si es verdadero se calculan los mensajes extra y se le multiplica por 0.05, después ese resultado se le suma al valor original 5$ y se calculan los impuestos, finalmente se suma el resultado al resultado original. Si el valor sobrepasa los 180, se calcular los mensajes extra y se multiplica ese resultado por 0.10, después ese valor se le suma al valor original 5$ y posteriormente se obtiene el impuesto y finalmente se suma el resultado al valor original. Se imprime los datos del cliente, el valor subtotal y el valor total ya calculado los impuestos.

Diagrama de flujo:

Pseudocódigo:
//Nombre: Juan Diego Mantilla
//Fecha: 09 de Octubre del 2014
//Programa para calcular la factura de un cliente de acuerdo al número de mensajes enviados.

INICIO
// DECLARACIÓN DE VARIABLES;
DIGITOS: COD, TEL;
ENTEROS POSITIVOS: SMS;
               IMPRIMIR “INGRESE EL CODIGO DE AREA:”;
               LEER COD;
IMPRIMIR “INGRESE EL NUMERO TELEFÓNICO:”;
               LEER TEL;
IMPRIMIR “INGRESE EL NUMERO DE MENSAJES:”;
               LEER SMS;
                              SI (SMS<=60) ENTONCES;
                                            SUB= 5*0.12;
                                            TOTAL= SUB+5;
                              SINO;
                              SI (SMS<=180) ENTONCES;
                                            EXTRA= SMS-60;
                                            VE=EXTRA*0.05;
                                            AD=5+VE;
                                            SUB=AD*0.12;
                                             TOTAL=SUB+AD;
                              SINO
                                            EXTRA=SMS-180;
                                            VE=EXTRA*0.10;
                                            AD=11+VE;
                                            SUB=AD*0.12;
                                            TOTAL=SUB+AD;
                              FINSI;
                              FINSI;
IMPRIMIR COD, TEL, AD, TOTAL;
FIN
              
Prueba de escritorio:
SI SMS= 60
SECUENCIAS/VARIABLES
COD
TEL
SMS
EXTRA
VE
AD
SUB
TOTAL
1
159







2

2574961






3


60





4






0.6

5







5.60
SI SMS=137
SECUENCIAS/VARIABLES
COD
TEL
SMS
EXTRA
VE
AD
SUB
TOTAL
1
137







2

3497561






3


137





4



77




5




3.85



6





8.85


7






1.06

8







9.91

SI SMS=193
SECUENCIAS/VARIABLES
COD
TEL
SMS
EXTRA
VE
AD
SUB
TOTAL
1
112







2

2697561






3


193





4



13




5




1.3



6





12.3


7






1.48

8







13.78

SI SMS=976
SECUENCIAS/VARIABLES
COD
TEL
SMS
EXTRA
VE
AD
SUB
TOTAL
1
453







2

3597416






3


976





4



796




5




79.6



6





90.6


7






10.87

8







101.47

No hay comentarios:

Publicar un comentario