


Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Un examen parcial sobre programación de computadores, donde se plantea un escenario en la ciudad de bacatá, en el que se debe desarrollar una aplicación para calcular el costo de viajes en taxi. El examen aborda temas como la lectura de datos de entrada, el cálculo de distancias y la representación gráfica de la ciudad. Se propone una expresión matemática para calcular el costo del viaje y se evalúan diferentes aspectos de la implementación, como el uso adecuado de tipos de datos y la sintaxis de java. Una oportunidad para evaluar los conocimientos de los estudiantes en programación y resolución de problemas aplicados a un contexto real.
Tipo: Guías, Proyectos, Investigaciones
1 / 4
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
La ciudad de Bacatá tiene una cuadrícula perfecta de calles y carreras, donde las vías horizontales se denominan calles y están numeradas a partir del 1, y las vías verticales se denominan carreras y también están numeradas a partir del 1.
El alcalde de Bacatá ha decidido modificar la forma en que se calculan las tarifas de los taxis, teniendo en cuenta la geometría de la ciudad. Las nuevas tarifas se calcularán de acuerdo con la calle y carrera de la intersección donde se toma el taxi, así como la calle y carrera donde finaliza el viaje.
Específicamente, el costo de un viaje se calcula como:
Costo = |calle_origen - calle_destino| + |carrera_origen - carrera_destino|
Donde |x| representa el valor absoluto de x.
El alcalde le ha solicitado a usted que desarrolle una aplicación que calcule las nuevas tarifas y reemplace a los taxímetros actuales. La aplicación debe solicitar la información de los puntos de inicio y finalización del viaje, y luego informar al usuario cuánto deberá pagar al llegar a su destino.
Para representar el valor que debe pagar el usuario al finalizar el viaje, el tipo de dato más adecuado es int, ya que de la ecuación suministrada para calcular el costo del viaje, se puede concluir que este es de tipo entero. Los tipos double y float no son opciones correctas, y el valor de una carrera nunca estará cerca al orden de los millones, por lo que el tipo int es suficiente.
En el problema enunciado, los valores de salida (que definen la solución de la instancia) son:
El valor que debe pagar el usuario al finalizar el viaje. Los números de las calles y carreras de los puntos de origen y destino, que son proporcionados por el usuario y corresponden a las entradas del problema.
Las distancias entre las calles y las carreras de los puntos de origen y destino, así como el número total de calles recorridas, son datos que debe calcular el programa pero no son relevantes para el usuario; son datos que usa el programa para calcular las salidas.
La instrucción Java que permite leer el valor de la calle de origen ingresado por el usuario es:
java short cll_origen = tec.nextShort();
Donde tec es un objeto de tipo Scanner previamente inicializado. El método de lectura debe ser invocado desde el objeto de tipo Scanner, y para leer un valor de tipo short, el método correcto es nextShort().
Para representar el número total de calles y carreras que recorre el taxi durante el viaje, el tipo de dato más adecuado es short, ya que este número es un entero que nunca superará el valor 32768, máximo entero representable con un short. Los tipos double y float no son adecuados, y el tipo long usaría cuatro veces la memoria de un short, lo cual sería innecesario.
Aplicación de Cálculo de Tarifas de Taxis en la
Ciudad de Bacatá
La ciudad de Bacatá tiene una cuadrícula perfecta de calles y carreras. Las vías horizontales se llaman calles y están enumeradas iniciando en
Las vías verticales se llaman carreras y también están enumeradas iniciando en 1. El alcalde de Bacatá ha decidido modificar la forma en que se calculan las tarifas de los taxis, considerando la geometría de la ciudad. Las nuevas tarifas se calcularán de acuerdo con la calle y carrera de la intersección donde se toma el taxi, así como la calle y carrera donde finaliza el viaje. El costo de un viaje se calcula como: 100 * (|cll_destino - cll_origen| + |car_destino - car_origen|), donde |x| representa el valor absoluto de x.
El alcalde le ha pedido personalmente que construya la aplicación que calculará las nuevas tarifas y reemplazará a los taxímetros actuales. La aplicación debe solicitar la información de los puntos de inicio y finalización del viaje. La aplicación debe informar al usuario cuánto deberá pagar al llegar a su destino. Además, el alcalde le ha pedido que la aplicación permita mostrar en pantalla el mapa de la ciudad, formado por símbolos imprimibles. Cada manzana de la ciudad debe ser dibujada de la siguiente forma:
$100 * (|cll_origen - cll_destino| + |car_origen - car_destino|)
Donde |x| representa el valor absoluto de x.
Los números correspondientes a calles y carreras son números enteros, por lo que los tipos de datos double y float no serían adecuados. Además, estos números nunca superarán el valor 32768, máximo entero representable con un short. El tipo long usa cuatro veces la memoria de un short, por lo que también sería inadecuado. Por lo tanto, el tipo de dato más adecuado para representar los números de calles y carreras es short.
A continuación, se propone una expresión para calcular el costo de un viaje:
100 * (Math.max(cll_origen - cll_destino, cll_destino - cll_origen) + Math.max(car_origen - car_destino, car_destino - car_origen))
Esta expresión utiliza el método Math.max para calcular el valor absoluto de las diferencias entre las calles y carreras de origen y destino, tal como se indica en la ecuación del enunciado.
Consideremos un viaje desde la calle 10 con carrera 12 hasta la calle 78 con carrera 53. Reemplazando los valores en la ecuación, tenemos:
Costo = $100 * (|10 - 78| + |12 - 53|) = $100 * (68 + 41) = $100 * 109 = $
Por lo tanto, el costo del viaje desde la calle 10 con carrera 12 hasta la calle 78 con carrera 53 es $10900.