Capítulo Ejercicios resueltos (Continuación ) Ejercicio

Documentos relacionados
Capítulo Ejercicios resueltos (Continuación ) Ejercicio Elaborar un algoritmo que lea el tamaño de un ángulo en grados e imprimir si es:

c² = a² + b² Elaborar un algoritmo que lea el tamaño de los lados A y B, y calcule e imprima C (hipotenusa).

Matemáticas. Encontrando Ángulos por medio de Grados. Respuestas. Nombre:

ALGORITMICA Y PROGRAMACION POR OBJETOS I

19. En un hospital existen tres áreas: Ginecología, Pediatría, Traumatología. El presupuesto anual del hospital se reparte conforme a la sig.

GUÍA DE ESTILO EN JAVA

Algoritmos. Intro. Prof. Raquel Torres Peralta / Gerardo Sanchez S. Unison

Programación Estructurada

LENGUAJE DE PROGRAMACION UNO.

Distinguir las diferentes estructuras de repetición utilizadas en problemas con bucles: mientras, repetir mientras, para.

Tema 7.- Fundamentos de la Programación Orientada a Objetos

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

BOLETÍN 5: Algoritmos II

4.- Leer tres números y escribirlos en orden decreciente

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

INSTITUTO POLITECNICO NACIONAL CENTRO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS " GONZALO VAZQUEZ VELA "

Operaciones con ángulos. 1. Suma y resta. 2. Multiplicación por un entero. 3. División entre un entero

UNIDAD V: ARR R EGL G OS O BIDI D MENS N IONALE L S

GENERALIDADES DEL LENGUAJE C

Programación en java. Estructuras algorítmicas

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Metodología para el Desarrollo de la Lógica de la Programación Orientada a Objetos

Prof. Dr. Paul Bustamante

NOMENCLATURA DE CUADRILÁTEROS Y ÁNGULOS

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.

Lenguaje C. Tipos de Datos Simples y Estructuras de Control

Examen Principios de Programación Febrero 2012

CLASES QUE UTILIZAN OBJETOS. RELACIÓN DE USO ENTRE CLASES JAVA. CONCEPTO DE DIAGRAMA DE CLASES. (CU00641B)

Programación estructurada (Introducción a lenguaje C)

Guía práctica de estudio 03: Algoritmos

5. Subprogramas Fundamentos de Informática

EJERCICIOS DE EXCEL BASICO

Cuál es el área de los siguientes rectángulos en pulgadas? 1) 8 por 6 = 4) 5 por 3 = 2) 9 por 9 = 5) 7 por 3 = 3) 2 por 8 = 6) 6 por 6 =

Introducción. Visual Basic para Aplicaciones (VBA) en Excel: aspectos elementales

USO DE SUBRUTINAS, TRANSMISIÓN DE PARÁMETROS Y COMPILACIÓN CONDICIONAL EN C++

Elementos de un programa en C

Índice general. Capítulo 1 Conceptos básicos. Capítulo 2 Controles básicos I. Pág. N. 1

Tema: Arreglos de Objetos en C++.

PROGRAMACIÓN EN C#.NET Módulo 4.- Arreglos y cadenas. Ing. Bruno López Takeyas

PRÁCTICA 12: Programación de Formularios

Estructuras Secuénciales

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Metodologías para la Enseñanza Aprendizaje de la Programación Estructurada y Orientada a Objetos

EJERCICIOS DE PRÁCTICA

Tema: Uso del programa DFD

Java Básico. Métodos estáticos

Las plantillas permiten definir funciones genéricas.

5to Grado - Geometría, Medidas, y Algebra Estándar Básico 3. Evaluación.

CORPORACIÓN UNIFICADA NACIONAL DE EDUCACIÓN SUPERIOR FACULTAD DE INGENIERIAS LINEA INFORMÁTICA GUIA TABLAS DINÁMICAS

QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B)

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

Comprende los tipos y las propiedades de los triángulos. Recordemos que... Los ángulos reciben su nombre de acuerdo a su medida, éstos son:

CENTROS DE EXCELENCIA EN CIENCIAS Y MATEMÁTICAS (AlACiMa 2 - FASE IV)

Manual del Modelizador. 28 de enero de 2009

PRÁCTICA No 4 POO Encapsulación. El alumno conocerá los principios de la encapsulación, y el uso de constructores para la inicialización de datos

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

TABLA DE CONTENIDOS MATEMÁTICAS QUINTO GRADO EDUCACIÓN PRIMARIA

PREGUNTAS DE EJEMPLO CÁLCULO Y REPRESENTACIÓN DEL ESPACIO TERCER NIVEL BÁSICO

Estructura Selectiva Múltiple

PHP: Lenguaje de programación

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Materia: Matemáticas de 4to año. Tema: Logaritmos naturales y base 10. Marco Teórico

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Programcaión Básica. Secuencias de Control y Repetición. Arturo Vega González.

Planéalo Crea un plan financiero para ayudar el señor García a prepararse para Iniciar su negocio. Analiza los siguientes ejemplos:

EJEMPLOS Y EJERCICIOS

Matemáticas Grado 3 Resolver problemas de la vida real usando medidas

PROGRAMACION / Clave: 11214

Ejercicio 1 (3 puntos).-

Principios de Computadoras II

PROGRAMACIÓN N C++ CONSTRUCTORES PROG.C++ L11 CONSTRUCTORES DEL LENGUAJE

Guía práctica de estudio 05: Diagramas de flujo

Instituto de Computación - Facultad de Ingeniería - Universidad de la República

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /

Conocimientos previos

Desarrollar, usando Java, un cliente básico del protocolo web que permita enviar una solicitud HTTP a un servidor web y procesar la respuesta.

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Profesor(a): Ing. Miriam Cerón Brito

SEGUNDA LEY DE NEWTON

Series aritméticas. ó La suma de los primeros n términos en una serie se representa por S n. . Por ejemplo: S 6

Metodología y Tecnología de la Programación

SUMINISTRO DE INFORMACIÓN FISCAL EN XML

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

Guía práctica de estudio 03: Algoritmos

Programación Dinámica 1

Introducción al tipo Vector Cómo guardar una colección de datos conceptualmente relacionados? - almacenar los 100 primeros números primos, - al

Fuerza, masa y aceleración. Segunda Ley de Newton

Para ingresar al a esta opción del sistema establezca la siguiente ruta en el menú: ubicar / personal como lo muestra la siguiente imagen.

Programación I: Matrices - Arreglos bidimensionales

TALLER de GEOPLANO Construcción de un Geoplano Introducción

Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez

TECNICAS DE PROGRAMACION Universidad Católica Los Angeles de Chimbote METODOS CONSTRUCTORES Y LA REFERENCIA THIS

Los nombres y marcas comerciales mencionados en este manual son propiedad de sus respectivos autores o fabricantes.

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Manual de turbo pascal

Ecuaciones Problemas Ejercicios resueltos

Transcripción:

Capítulo 12 12.4 Ejercicios resueltos (Continuación ) Ejercicio 12.4.4 Elaborar un algoritmo que lea cinco números y calcule e imprima el mayor. Se supone que son números diferentes. Restricciones: No usar else ni AND. Usando if-then. A continuación se presenta el algoritmo de la solución: (Primero hágalo usted...después compare la solución) Diagrama de clases Mayor5Numeros2 numa numb numc numd nume numayor EjecutaMayor5Numeros2 establecernuma() establecernumb() establecernumc() establecernumd() establecernume() calcularnumayor() obtenernumayor() Algoritmo MAYOR 5 NUMEROS Clase Mayor5Numeros2 1. Declarar Datos numa, numb, numc, numd, nume, numayor: Entero 2. Método establecernuma(a: Entero) a. numa = a b. Fin Método establecernuma 3. Método establecernumb(b: Entero) a. numb = b b. Fin Método establecernumb

4. Método establecernumc(c: Entero) a. numc = c b. Fin Método establecernumc 5. Método establecernumd(d: Entero) a. numd = d b. Fin Método establecernumd 6. Método establecernume(e: Entero) a. nume = e b. Fin Método establecernume 7. Método calcularnumayor() a. numayor = numa b. if numb > numayor then a. numayor = numb c. endif d. if numc > numayor then a. numayor = numc e. endif f. if numd > numayor then a. numayor = numd g. endif h. if nume > numayor then a. numayor = nume i. endif j. Fin Método calcularnumayor 8. Método obtenernumayor() Entero a. return numayor b. Fin Método obtenernumayor Fin Clase Mayor5Numeros2 Clase EjecutaMayor5Numeros2 1. Método principal() a. Declarar Variables n1, n2, n3, n4, n5: Real b. Declarar, crear e iniciar objeto Mayor5Numeros2 objmayor5numeros= new Mayor5Numeros2() c. Solicitar Numero 1, Numero 2, Numero 3, Numero 4 y Numero 5 d. Leer n1, n2, n3, n4, n5 e. Establecer objmayor5numeros.establecernuma(n1) objmayor5numeros.establecernumb(n2) objmayor5numeros.establecernumc(n3) objmayor5numeros.establecernumd(n4) objmayor5numeros.establecernume(n5) f. Calcular objmayor5numeros.calcularnumayor() g. Imprimir objmayor5numeros.obtenernumayor() h. Fin Método principal

Fin Clase EjecutaMayor5Numeros2 Fin En la zona de descarga de la Web del libro, está disponible: Programa en Java: Mayor5Numeros2.java y EjecutaMayor5Numeros2.java Explicación: El algoritmo tiene dos clases; la Clase Mayor5Numeros2 y la clase EjecutaMayor5Numeros2. En la Clase Mayor5Numeros2: 1. Se declaran los datos que representan la estructura de la clase: numa, numb, numc, numd, nume para cada uno de los 5 números numayor para número mayor 2. Método establecernuma(a: Entero) Recibe en el parámetro a el valor que luego coloca en el dato numa. 3. Método establecernumb(b: Entero) Recibe en el parámetro b el valor que luego coloca en el dato numb. 4. Método establecernumc(c: Entero) Recibe en el parámetro c el valor que luego coloca en el dato numc. 5. Método establecernumd(d: Entero) Recibe en el parámetro d el valor que luego coloca en el dato numd. 6. Método establecernume(e: Entero) Recibe en el parámetro e el valor que luego coloca en el dato nume. 7. Método calcularnumayor() Calcula el mayor en numayor a. Coloca numa en numayor b. Si numb > numayor Entonces a. Coloca numb en numayor c. Fin del if d. Si numc > numayor Entonces a. Coloca numc en numayor e. Fin del if f. Si numd > numayor Entonces a. Coloca numd en numayor g. Fin del if h. Si nume > numayor Entonces a. Coloca nume en numayor i. Fin del if j. Fin Método calcularnumayor 8. Método obtenernumayor() Entero a. Retorna numayor Fin de la Clase Mayor5Numeros2 En la Clase EjecutaMayor5Numeros2; en el Método principal(): a. Se declara: Las variables n1, n2, n3, n4, n5 para leer los 5 números.

b. Se declara el objeto objmayor5numeros, usando como base a la clase Mayor5Numeros2; dicho objeto se crea e inicializa mediante el constructor por defecto Mayor5Numeros2(). c. Se solicitan Numero 1, Numero 2, Numero 3, Numero 4 y Numero 5 d. Se leen en n1, n2, n3, n4, n5 e. Se llama al método establecernuma(n1) del objeto objmayor5numeros; para colocar el valor de n1 en el dato numa. Se llama al método establecernumb(n2) del objeto objmayor5numeros; para colocar el valor de n2 en el dato numb. Se llama al método establecernumc(n3) del objeto objmayor5numeros; para colocar el valor de n3 en el dato numc. Se llama al método establecernumd(n4) del objeto objmayor5numeros; para colocar el valor de n4 en el dato numd. Se llama al método establecernume(n5) del objeto objmayor5numeros; para colocar el valor de n5 en el dato nume. f. Se llama al método calcularnumayor() del objeto objmayor5numeros; para calcular el mayor. g. Se llama al método obtenernumayor() del objeto objmayor5numeros; para acceder e imprimir el valor del dato numayor. h. Fin del Método principal Fin de la Clase EjecutaMayor5Numeros2 Fin del algoritmo Ejercicio 12.4.5 Elaborar un algoritmo que lea el tamaño de un ángulo en grados e imprimir si es: Agudo si es menor a 90 Recto si es igual a 90 Obtuso si es mayor que 90 pero menor que 180 Llano si es igual a 180 Concavo si es mayor que 180 pero menor que 360 Utilizar if-then. A continuación se presenta el algoritmo de la solución: (Primero hágalo usted...después compare la solución) Diagrama de clases

TipoAngulo2 tamangulo tipoangulo EjecutaTipoAngulo2 establecertamangulo() calculartipoangulo() obtenertipoangulo() Algoritmo TIPO ANGULO Clase TipoAngulo2 1. Declarar Datos tamangulo: Real tipoangulo: Cadena 2. Método establecertamangulo(ang: Real) a. tamangulo = ang b. Fin Método establecertamangulo 3. Método calculartipoangulo() a. if tamangulo < 90 then 1. tipoangulo = Agudo b. endif c. if tamangulo == 90 then 1. tipoangulo = Recto d. endif e. if (tamangulo>90)and(tamangulo<180) then 1. tipoangulo = Obtuso f. endif g. if tamangulo == 180 then 1. tipoangulo = Llano h. endif i. if (tamangulo>180)and(tamangulo<360) then 1. tipoangulo = Concavo j. endif k. Fin Método calculartipoangulo 4. Método obtenertipoangulo() Cadena a. return tipoangulo b. Fin Método obtenertipoangulo Fin Clase TipoAngulo2 Clase EjecutaTipoAngulo2 1. Método principal() a. Declarar

Variables angulo: Real b. Declarar, crear e iniciar objeto TipoAngulo2 objangulo = new TipoAngulo2() c. Solicitar Tamaño del angulo d. Leer angulo e. Establecer objangulo.establecertamangulo(angulo) f. Calcular objangulo.calculartipoangulo() g. Imprimir objangulo.obtenertipoangulo() h. Fin Método principal Fin Clase EjecutaTipoAngulo2 Fin En la zona de descarga de la Web del libro, está disponible: Programa en Java: TipoAngulo2.java y EjecutaTipoAngulo2.java Explicación: El algoritmo tiene dos clases; la Clase TipoAngulo2 y la clase EjecutaTipoAngulo2. En la Clase TipoAngulo2: 1. Se declaran los datos que representan la estructura de la clase: tamangulo para el tamaño del ángulo tipoangulo para el tipo de angulo 2. Método establecertamangulo(ang: Real) Recibe en el parámetro ang el valor que luego coloca en el dato tamangulo. 3. Método calculartipoangulo() a. Si tamangulo < 90 Entonces 1. Coloca Agudo en tipoangulo b. Fin del if c. Si tamangulo == 90 Entonces 1. Coloca Recto en tipoangulo d. Fin del if e. Si (tamangulo>90) y (tamangulo<180) Entonces 1. Coloca Obtuso en tipoangulo f. Fin del if g. Si tamangulo == 180 Entonces 1. Coloca Llano en tipoangulo h. Fin del if i. Si (tamangulo>180) y (tamangulo<360) Entonces 1. Coloca Concavo en tipoangulo j. Fin del if k. Fin Método calculartipoangulo 4. Método obtenertipoangulo() Cadena a. Retorna tipoangulo Fin de la Clase TipoAngulo2 En la Clase EjecutaTipoAngulo2; en el Método principal(): a. Se declara:

La variable angulo para leer el tamaño del angulo. b. Se declara el objeto objangulo, usando como base a la clase TipoAngulo2; dicho objeto se crea e inicializa mediante el constructor por defecto TipoAngulo2(). c. Solicita el Tamaño del angulo d. Se lee en angulo e. Se llama al método establecertamangulo(angulo) del objeto objangulo; para colocar el valor de angulo en el dato tamangulo. f. Se llama al método calculartipoangulo() del objeto objangulo; para calcular el tipo de angulo. g. Se llama al método obtenertipoangulo() del objeto objangulo; para acceder e imprimir el valor del dato tipoangulo. h. Fin del Método principal Fin de la Clase EjecutaTipoAngulo2 Fin del algoritmo Ejercicio 12.4.6 La ecuación de la segunda ley de Newton: F = ma Donde: F es la fuerza que actúa sobre el objeto (cuerpo), en gramos por centímetro cuadrado. m es la masa del cuerpo (en gramos). a es la aceleración en centímetros por segundo cuadrado. y dice; que la fuerza (F) que actúa sobre un cuerpo se obtiene multiplicando la masa por la aceleración. Se puede calcular la aceleración (a) si se tienen los datos F y m; con la fórmula: F a = m Se puede calcular la masa (m) si se tienen los datos fuerza (F) y aceleración (a), con la fórmula: F m = a Elaborar un algoritmo que pregunte lo que desea calcular; fuerza (F), masa (m) o aceleración (a). Si es F, se leen los datos m y a. Si es a, se leen los datos F y m. Si es m, se leen los datos F y a. Usando if-then.

A continuación se presenta el algoritmo de la solución: (Primero hágalo usted...después compare la solución) Diagrama de clases LeyNewton2 fuerza masa aceleracion EjecutaLeyNewton2 establecerfuerza() establecermasa() estableceraceleracion() calcularfuerza() calcularmasa() calcularaceleracion() obtenerfuerza() obtenermasa() obteneraceleracion() Algoritmo SEGUNDA LEY NEWTON Clase LeyNewton2 1. Declarar Datos fuerza, masa, aceleracion: Real 2. Método establecerfuerza(fu: Real) a. fuerza = fu b. Fin Método establecerfuerza 3. Método establecermasa(ma: Real) a. masa = ma b. Fin Método establecermasa 4. Método estableceraceleracion(acel: Real) a. aceleracion = acel b. Fin Método estableceraceleracion 5. Método calcularfuerza() a. fuerza = masa * aceleracion b. Fin Método calcularfuerza 6. Método calcularmasa() a. masa = fuerza / aceleracion

b. Fin Método calcularmasa 7. Método calcularaceleracion() a. aceleracion = fuerza / masa b. Fin Método calcularaceleracion 8. Método obtenerfuerza() Real a. return fuerza b. Fin Método obtenerfuerza 9. Método obtenermasa() Real a. return masa b. Fin Método obtenermasa 10. Método obteneraceleracion() Real a. return aceleracion b. Fin Método obteneraceleracion Fin Clase LeyNewton2 Clase EjecutaLeyNewton2 1. Método principal() a. Declarar Variables f, a, m: Real resp: Carácter b. Declarar, crear e iniciar objeto LeyNewton2 objnewton = new LeyNewton2() c. Imprimir QUÉ DESEA CALCULAR? FUERZA(F), ACELERACION(A), MASA(M)?: d. Leer resp e. if resp == F then 1. Solicitar MASA 2. Leer m 3. Solicitar ACELERACION 4. Leer a 5. Establecer objnewton.establecermasa(m) objnewton.estableceraceleracion(a) 6. Calcular objnewton.calcularfuerza() 7. Imprimir objnewton.obtenerfuerza() f. endif g. if resp == A then 1. Solicitar MASA 2. Leer m 3. Solicitar FUERZA 4. Leer f 5. Establecer objnewton.establecermasa(m) objnewton.establecerfuerza(f)

6. Calcular objnewton.calcularaceleracion() 7. Imprimir objnewton.obteneraceleracion() h. endif i. if resp == M then 1. Solicitar FUERZA 2. Leer f 3. Solicitar ACELERACION 4. Leer a 5. Establecer objnewton.establecerfuerza(f) objnewton.estableceraceleracion(a) 6. Calcular objnewton.calcularmasa() 7. Imprimir objnewton.obtenermasa() j. endif k. Fin Método principal Fin Clase EjecutaLeyNewton2 Fin En la zona de descarga de la Web del libro, está disponible: Programa en Java: LeyNewton2.java y EjecutaLeyNewton2.java Explicación: El algoritmo tiene dos clases; la Clase LeyNewton2 y la clase EjecutaLeyNewton2. En la Clase LeyNewton2: 1. Se declaran los datos que representan la estructura de la clase: fuerza para el dato fuerza masa para el dato masa aceleración para el dato aceleración 2. Método establecerfuerza(fu: Real) Recibe en el parámetro fu el valor que luego coloca en el dato fuerza. 3. Método establecermasa(ma: Real) Recibe en el parámetro ma el valor que luego coloca en el dato masa. 4. Método estableceraceleracion(acel: Real) Recibe en el parámetro acel el valor que luego coloca en el dato aceleracion. 5. Método calcularfuerza() Calcula fuerza 6. Método calcularmasa() Calcula masa 7. Método calcularaceleracion() Calcula aceleracion 8. Método obtenerfuerza() Real Retorna fuerza 9. Método obtenermasa() Real Retorna masa 10. Método obteneraceleracion(): Real Retorna aceleracion Fin de la Clase LeyNewton2

En la Clase EjecutaLeyNewton2; en el Método principal(): a. Se declara: La variable f para leer la fuerza La variable a para leer la aceleracion La variable m para leer la masa La variable resp para leer la respuesta a la pregunta Qué desea calcular? b. Se declara el objeto objnewton, usando como base a la clase LeyNewton2; dicho objeto se crea e inicializa mediante el constructor por defecto LeyNewton2(). c. Pregunta QUÉ DESEA CALCULAR? FUERZA(F), ACELERACION(A), MASA(M)?: d. Lee en resp la respuesta e. Si resp == F Entonces 1. Solicita MASA 2. Leer en m 3. Solicita ACELERACION 4. Leer en a 5. Se llama al método establecermasa(m) del objeto objnewton; para colocar el valor de m en el dato masa. Se llama al método estableceraceleracion(a) del objeto objnewton; para colocar el valor de a en el dato aceleracion. 6. Se llama al método calcularfuerza() del objeto objnewton; para calcular la fuerza. 7. Se llama al método obtenerfuerza() del objeto objnewton; para acceder e imprimir el valor del dato fuerza. f. Fin del if g. Si resp == A Entonces 1. Solicita MASA 2. Leer en m 3. Solicita FUERZA 4. Leer en f 5. Se llama al método establecermasa(m) del objeto objnewton; para colocar el valor de m en el dato masa. Se llama al método establecerfuerza(f) del objeto objnewton; para colocar el valor de f en el dato fuerza. 6. Se llama al método calcularaceleracion() del objeto objnewton; para calcular la aceleracion. 7. Se llama al método obteneraceleracion() del objeto objnewton; para acceder e imprimir el valor del dato aceleracion. h. Fin del if i. Si resp == M Entonces 1. Solicita FUERZA 2. Leer en f 3. Solicita ACELERACION 4. Leer en a 5. Se llama al método establecerfuerza(f) del objeto objnewton; para colocar el valor de f en el dato fuerza. Se llama al método estableceraceleracion(a) del objeto objnewton; para colocar el valor de a en el dato aceleracion.

6. Se llama al método calcularmasa() del objeto objnewton; para calcular la masa. 7. Se llama al método obtenermasa() del objeto objnewton; para acceder e imprimir el valor del dato masa. j. Fin del if k. Fin del Método principal Fin de la Clase EjecutaLeyNewton2 Fin del algoritmo Ejercicio 12.4.7 Una empresa vende hojas de hielo seco, con las condiciones siguientes: Si el cliente es tipo 1 se le descuenta el 5 % Si el cliente es tipo 2 se le descuenta el 8 % Si el cliente es tipo 3 se le descuenta el 12 % Si el cliente es tipo 4 se le descuenta el 15 % Cuando el cliente realiza una compra se generan los datos siguientes: Nombre del cliente Tipo de cliente (1,2,3,4) Cantidad de hojas Precio por hoja Elabore un algoritmo que lea estos datos, haga cálculos e imprima: Nombre del cliente Sub total a pagar (Cantidad de hojas X Precio por hoja) Descuento (El porcentaje correspondiente del Sub total a pagar) Neto a pagar (Sub total Descuento) Usando switch. A continuación se presenta el algoritmo de la solución: (Primero hágalo usted...después compare la solución) Diagrama de clases

Cliente2 nombreclie tipoclie cantidad preciouni subtotal descuento netopagar EjecutaCliente2 establecernombreclie() establecertipoclie() establecercantidad() establecerpreciouni() calcularsubtotal() calculardescuento() calcularnetopagar() obtenernombreclie() obtenersubtotal() obtenerdescuento() obtenernetopagar() Algoritmo CLIENTE HOJAS HIELO SECO Clase Cliente2 1. Declarar Datos nombreclie: Cadena tipoclie, cantidad: Entero preciouni, subtotal, descuento, netopagar: Real 2. Método establecernombreclie(nom: Cadena) a. nombreclie = nom b. Fin Método establecernombreclie 3. Método establecertipoclie(tipo: Entero) a. tipoclie = tipo b. Fin Método establecertipoclie 4. Método establecercantidad(can: Entero) a. cantidad = can b. Fin Método establecercantidad 5. Método establecerpreciouni(pre: Real) a. preciouni = pre b. Fin Método establecerpreciouni

6. Método calcularsubtotal() a. subtotal = cantidad * preciouni b. Fin Método calcularsubtotal 7. Método calculardescuento() a. switch tipoclie 1: descuento = subtotal * 0.05 2: descuento = subtotal * 0.08 3: descuento = subtotal * 0.12 4: descuento = subtotal * 0.15 b. endswitch c. Fin Método calculardescuento 8. Método calcularnetopagar() a. totalpagar = subtotal - descuento b. Fin Método calcularnetopagar 9. Método obtenernombreclie() Cadena a. return nombreclie b. Fin Método obtenernombreclie 10. Método obtenersubtotal() Real a. return subtotal b. Fin Método obtenersubtotal 11. Método obtenerdescuento() Real a. return descuento b. Fin Método obtenerdescuento 12. Método obtenernetopagar() Real a. return totalpagar b. Fin Método obtenernetopagar Fin Clase Cliente2 Clase EjecutaCliente2 1. Método principal() a. Declarar Variables nomcli: Cadena ticli, cant: Entero preuni: Real b. Declarar, crear e iniciar objeto Cliente2 objcliente = new Cliente2() c. Solicitar Nombre, Tipo cliente, Cantidad, Precio unitario d. Leer nomcli, ticli, cant, preuni e. Establecer objcliente.establecernombreclie(nomcli) objcliente.establecertipoclie(ticli)

objcliente.establecercantidad(cant) objcliente.establecerpreciouni(preuni) f. Calcular objcliente.calcularsubtotal() objcliente.calculardescuento() objcliente.calcularnetopagar() g. Imprimir objcliente.obtenernombreclie() objcliente.obtenersubtotal() objcliente.obtenerdescuento() objcliente.obtenernetopagar() h. Fin Método principal Fin Clase EjecutaCliente2 Fin En la zona de descarga de la Web del libro, está disponible: Programa en Java: Cliente2.java y EjecutaCliente2.java Explicación: El algoritmo tiene dos clases; la Clase Cliente2 y la clase EjecutaCliente2. En la Clase Cliente2: 1. Se declaran los datos que representan la estructura de la clase: nombreclie para el nombre del cliente tipoclie para el tipo de cliente cantidad para la cantidad de hojas compradas preciouni para el precio unitario subtotal para el sub total descuento para el descuento netopagar para el total a pagar 2. Método establecernombreclie(nom: Cadena) Recibe en el parámetro nom el valor que luego coloca en el dato nombreclie. 3. Método establecertipoclie(tipo: Entero) Recibe en el parámetro tipo el valor que luego coloca en el dato tipoclie. 4. Método establecercantidad(can: Entero) Recibe en el parámetro can el valor que luego coloca en el dato cantidad. 5. Método establecerpreciouni(pre: Real) Recibe en el parámetro pre el valor que luego coloca en el dato preciouni. 6. Método calcularsubtotal() Calcula el subtotal a pagar 7. Método calculardescuento() Calcula el descuento a. switch tipoclie Si tipoclie==1: descuento = subtotal * 0.05 Si tipoclie==2: descuento = subtotal * 0.08 Si tipoclie==3: descuento = subtotal * 0.12 Si tipoclie==4: descuento = subtotal * 0.15 b. endswitch c. Fin Método calculardescuento 8. Método calcularnetopagar()

Calcula el netopagar a pagar 9. Método obtenernombreclie() Cadena Retorna nombreclie 10. Método obtenersubtotal() Real Retorna subtotal 11. Método obtenerdescuento() Real Retorna descuento 12. Método obtenernetopagar() Real Retorna netopagar Fin de la Clase Cliente2 En la Clase EjecutaCliente2; en el Método principal(): a. Se declara: La variable nomcli para leer el nombre del cliente. La variable ticli para leer el tipo de cliente. La variable cant para leer la cantidad de hojas compradas. La variable preuni para leer el precio unitario por hoja. b. Se declara el objeto objcliente, usando como base a la clase Cliente2; dicho objeto se crea e inicializa mediante el constructor por defecto Cliente2(). c. Solicita Nombre, Tipo cliente, Cantidad, Precio unitario d. Lee en nomcli, ticli, cant, preuni e. Se llama al método establecernombreclie(nomcli) del objeto objcliente; para colocar el valor de nomcli en el dato nombreclie. Se llama al método establecertipoclie(ticli) del objeto objcliente; para colocar el valor de ticli en el dato tipoclie. Se llama al método establecercantidad(cant) del objeto objcliente; para colocar el valor de cant en el dato cantidad. Se llama al método establecerpreciouni(preuni) del objeto objcliente; para colocar el valor de preuni en el dato preciouni. f. Se llama al método calcularsubtotal() del objeto objcliente; para calcular el sub total. Se llama al método calculardescuento() del objeto objcliente; para calcular el descuento. Se llama al método calcularnetopagar() del objeto objcliente; para calcular el neto a pagar. g. Se llama al método obtenernombreclie() del objeto objcliente; para acceder e imprimir el valor del dato nombreclie. Se llama al método obtenersubtotal() del objeto objcliente; para acceder e imprimir el valor del dato subtotal. Se llama al método obtenerdescuento() del objeto objcliente; para acceder e imprimir el valor del dato descuento. Se llama al método obtenernetopagar() del objeto objcliente; para acceder e imprimir el valor del dato netopagar. h. Fin del Método principal Fin de la Clase EjecutaCliente2 Fin del algoritmo