¡Descarga GUIA DE PROGRAMACION Y ALGORITMO (PYTHON) - 512 EJERCICIOS PROPUESTOS y más Ejercicios en PDF de Programación Informática solo en Docsity!
Guia de ejercicios de
Programación y Algoritmo
20 de Julio de 2023
Acumuladores y Contadores / Aleatorios / Archivos / Matrices /
Vectores / Cadenas de caracteres / Condicionales / Diccionarios /
Funciones / Funciones recursivas / Lazos - Bucles - Ciclos /
Listas / Menú / Prueba escritorio / Residuos
Acumuladores y Contadores
- Considere la secuencia de números triangulares, cuyo nombre refleja su ley de formación: 1, 3, 6, 10, … Escriba un algoritmo en seudo-código que indique si un número natural t, ingresado por teclado, es triangular. Esto es, si es de la forma:
- Escriba un algoritmo en seudo-código para determinar el número de puntos del plano cartesiano con coordenadas de valores enteros que pertenecen al círculo limitado por la circunferencia de ecuación:
- Nicómano de Gerasa descubrió la siguiente propiedad de los números naturales: Con esta propiedad, para un n dado, calcule y muestre los cubos de los primeros n números naturales.
- Simule en un algoritmo el juego descrito entre dos personas: A y B.dado Muestre cuál jugador gana el juego y cuántos turnos se tuvieron que jugar. Inicialmente cada una tiene $ En cada turno se lanza un dado Si sale 6 o 4, A gana $3 y B pierde $ Si sale 2, ninguno gana ni pierde Si sale 1, A pierde $6 y B gana $ Si sale 3 o 5, A pierde $1 y B gana $ El juego termina cuando una de las dos personas pierde todo su dinero.
- Considere el desarrollo del siguiente negocio: a. Una persona entrega x dólares, y se le paga 10% mensual del valor inicial depositado en forma permanente. b. Suponga que las personas NO retiran el dinero depositado, solo los intereses que se generan c. La persona que recibe el dinero de los participantes usa el 20% del dinero x depositado de cada persona como comisión por gestión y gastos, quedando como saldo lo que había menos intereses y menos comisiones. d. Suponga que cada mes se duplica la cantidad de personas que invierte la misma cantidad x de dinero, con las mismas condiciones. e. Pero únicamente hay n personas que pueden entrar al negocio. Describa un algoritmo para determinar en cuál mes no habrá suficiente dinero para pagar a los depositantes.
- Para una nueva versión del juego “Escaleras y Serpientes” se desea disponer del algoritmo para simulación en computador. El juego para dos jugadores consiste en llegar a la meta en primer lugar en un tablero de 64 casillas cuyas especificaciones son las siguientes: a. Al inicio los jugadores están en una misma posición y arrancan su trayectoria cuando lanzando una moneda (cara 1 o 2) el jugador que gane empieza. b. Cada jugador realiza su recorrido alternadamente de acuerdo a los resultados de los lanzamientos de un dado (6 caras). c. Al avanzar, el jugador puede “caer” en una “casilla de castigo”, por lo que retrocederá 3 pasos de la posición en la que se encuentra. Si cae en “casilla de premio”, el usuario avanzará 3 pasos de la posición en la que se encuentra.
10)En un odómetro mecánico de un vehículo antiguo se marcan las distancias recorridas en kilómetros, en formato numérico octal de hasta cinco dígitos. Realice un algoritmo para encontrar la distancia recorrida en kilómetros en formato numérico decimal, convirtiendo el valor octal marcado por el odómetro luego de un viaje. Nota: Un odómetro es un dispositivo que indica la distancia recorrida en un viaje de un vehículo. 11)Del recorrido completo de un bus de metrovía se registran las horas de partida de las n estaciones por las que pasa. Realice un algoritmo para: a) Registrar la hora y minuto de partida en cada estación (5 puntos), b) Determinar el tramo recorrido de mayor duración (15 puntos) y, c) Calcular la duración de todo el recorrido (5 puntos). Sugerencia: convierta a minutos todos los registros para determinar la diferencia.
- Al comprimir datos, el resultado tiene menor tamaño que el original.comprime datos Un método simple consiste en contar las repeticiones de consecutivas de cada dato para después almacenar solo el dato junto al número de veces que se repite. Realice un algoritmo para «comprimir» un arreglo datos(i) con tamaño n que contiene números enteros y presente el resultado como en el ejemplo.
- Al descomprimir datos (tema anterior) se restaura el arreglo original.comprime datos. El método para descomprimir consiste en repetir el número de veces indicada por cada datoc en el arreglo de salida. Realice un algoritmo para «descomprimir» los arreglos datoc y veces de tamaño n y presente el resultado como en el ejemplo.
- En el Juego de Parchís para dos jugadores, compiten por llegar primero a la meta con las siguientes reglas: a. La meta se encuentra a 50 casillas desde la casilla de partida. b. Los jugadores alternan turnos para lanzar un dado regular (6 caras) y realizar una jugada. c. Al inicio ambos jugadores se encuentran en la casilla de partida, pero cada jugador para iniciar el juego tendrá que primero obtener del dado el número 5, con lo que se podrá mover a la primera casilla, sino el turno pasa al otro jugador. d. El movimiento de avance del jugador se realiza acorde con el resultado del lanzamiento del dado, siempre que no se encuentre en casilla de partida.Si un jugador llega a una casilla ocupada por el rival, el rival regresará a la casilla de partida volviendo ese jugador a las condiciones de inicio.
- Para las pasantías profesionales, los “estudiantes” de la UDA (universidad) se inscriben indicando en cual “empresa” de las disponibles quisieran hacer las prácticas. Para el registro, los estudiantes se encuentran codificados de 1 a n y las empresas están codificadas de 1 a m. Se requiere un reporte de los registros que muestre: a) La empresa que tiene registrados más estudiantes (pasantes), suponga que es una sola, b) ¿Cuántas empresas aún no registran pasantes?, si todas tienen pasantes, muestre
c) La cantidad promedio de pasantes por empresa (considerando solo las empresas en las que hay registrados pasantes) Elabore un algoritmo que permita ingresar los datos para el registro acorde a los valores de n y m, realice los cálculos necesarios y muestre el reporte requerido.
- Semillero es un juego con n jugadores que buscan obtener al final más fichas de las que aportan para jugar.semillero juego fichas Todos los jugadores participan con m fichas, depositandolos en un recipiente común en el juego.enteros aleatorios dados En cada turno, el jugador lanzará dos dados y obtendrá fichas del recipiente común equivalente a la suma de las caras superiores de los dados. El juego termina cuando no quedan más fichas en el recipiente, mostrando: el jugador con más fichas, el jugador que vació el recipiente y las fichas obtenidas por jugador.
Realice un algoritmo que simule el juego descrito, considerando lo siguiente:
- El número de fichas por participante m es igual para todos los participantes, mínimo 20 (validar).
- Los turnos son rotativos: jugador 1, jugador 2, …, jugador n, jugador 1, jugador 2, …, jugador n, …
- El juego finaliza en cualquier turno, cuando se acaban las fichas.
- Al final se extraen solo las fichas restantes en el recipiente, pues el total de fichas restantes solo puede llegar a 0.
- Para encontrar al ganador, debe describir el algoritmo, NO use funciones de matlab.
- Parasailing es un tipo de deporte extremo de playa promocionado para turistas que usa un paracaídas para dos personas atado e impulsado por una lancha. Por seguridad, la capacidad del paracaídas máxima es de 350 lb. Dada la capacidad máxima y la lista de los pesos en libras para n turistas en la cola, realice un algoritmo para determinar las combinaciones posibles de parejas entre las personas en la cola de espera sin sobrecargar el paracaídas. Ejemplo: capacidad máxima=350; Cola de espera:
- Por el proceso de Inducción Matemática se puede demostrar la siguiente propiedad: Realice un programa que valide el ingreso de un valor n entero (10 ≤ n ≤ 50) y verifique si cumple tal propiedad. Sugerencia: calcule ambos lados de la ecuación y compare resultados.
- El número π puede ser obtenido mediante la siguiente aproximación con un número n grande: Realice un algoritmo para encontrar el valor aproximado de π con la fórmula mostrada para n dado.
- Suponga un vector B[i] de n componentes enteros. Diseñe un algoritmo estructurado que almacene en cada celda un número aleatorio binario de una cifra (1 ó 0). a) Determine si la cantidad de 1’s es par o impar b) Calcule el equivalente numérico decimal del número binario almacenado. c) Muestre los resultados de los literales a) y b).
- En un proceso electoral para elegir a diputados provinciales, la asignación del número de diputados para cada partido electoral se lo hace en forma proporcional, de acuerdo a la votación obtenida por el partido y el total de votos en cada provincia. a) Escriba un algoritmo que solicite al usuario para m provincias:
- el total de registrados en padrón para esa provincia (habilitados para votar),
- la cantidad de diputados a elegir en esa provincia,
- la cantidad de votos obtenidos por la lista ABC,
-los cuales deben ser almacenados en los vectores padrón, elegir y votos respectivamente. Su algoritmo debe calcular, para cada provincia, la cantidad de diputados que alcanzó el partido ABC, y almacenar dicha información en un nuevo vector diputados. b) Adicionalmente determine, el promedio de diputados que alcanzó el partido ABC, y en qué provincia obtuvo la mayor representación, de acuerdo al número de diputados. Ejemplo: El Partido ABC ha participado con su lista de candidatos y en una provincia de un total en el padrón de 970, obtuvo 658 votos; por lo que de 12 a elegir el partido obtuvo 8 diputados. La cantidad de diputados se calculó así: (658/970)*12 = 8.14, usando redondeo simple.
- Una serie alternada es una serie donde los términos alternan el signo. Realice un algoritmo para encontrar el resultado de la suma de la serie indicada hasta incluir al término 1/n, siendo n un dato dado al inicio.
- Existen tres salas contiguas A, B, C.
- Para entrar a la sala A hay dos puertas.
- Para pasar de la sala A a la sala B hay tres puertas y para pasar de la sala B a la sala C hay 4 puertas.
- Para entrar a cada sala se requiere escoger una puerta, la cual puede estar en tres estados aleatoriamente: (1) pase a la siguiente sala, (2) puerta bloqueada, o (3) retroceda a la sala anterior.
- Omirp se define como, un número primo que al invertir sus dígitos da otro número primo. Escriba un algoritmo para determinar si un número n tiene la característica de ser un número Omirp. Ejemplo:
- “Carreras” es un juego de tablero para dos jugadores. En cada turno el jugador lanza dos dados y se usan los números obtenidos en las caras superiores.
- Para iniciar el juego, el jugador debe obtener las mismas caras de los dados en el lanzamiento.
- Para avanzar casillas, se usa la suma de las caras de los dados, con el objetivo de llegar a la casilla final del tablero numeradas desde 1 al 50.
- Existen casillas de premio (2, 17, 30, 42), en donde el jugador gana un lanzamiento adicional. Elabore un ALGORITMO que simule este juego y muestre cuál jugador ganó.
- En un «Centro de Servicio», el cliente luego de ser atendido evalúa la atención recibida presionando un botón entre las 5 opciones mostradas. Realice un algoritmo que registre en un arreglo la evaluación para n clientes atendidos, luego deberá tabular las respuestas para mostrar: a) Total de respuestas por tipo b) La respuesta más frecuente c) ¿Cuáles clientes respondieron con valores menores al promedio?
- El número EAN-13 (European Article Number) usado comercialmente en Europa en la identificación de productos, está constituido por 13 dígitos y con una estructura dividida en cuatro partes :
- 3 dígitos para el país,
- 4 dígitos para la empresa,
- 5 dígitos para el producto
- 1 dígito de control. El dígito de control permite detectar errores de lectura del código, calculado como:
- Comenzando por la derecha, se multiplican los dígitos del código por 1 si su posición es par y por 3 si es impar.
- Se suman los valores de los productos obtenidos.
- Se resta a la decena superior el resultado de la suma, siendo el resultado el dígito de control.
- Se registraron voluntarios para colaborar en el evento del Parque Samanes por la visita del Papa a Guayaquil. Para capacitar a los voluntarios, identificados por un número, se requiere formar grupos equitativos (igual cantidad) para: orientar a las personas en al ingreso y salida, portar letreros y banderas, distribuir agua, prestar atención a discapacitados y quienes pudiesen tener algún problema de salud, entre otras. Realice un algoritmo para distribuir a n voluntarios en m tipos de capacitación en forma aleatoria, no repetida y equitativa; luego muestre el listado que indica la capacitación que recibirá cada voluntario.
- Para el evento del Parque Samanes por la visita del Papa en Guayaquil el área del Parque se dividió en 32 bloques que tendrían el apoyo de voluntarios capacitados como se describe en el tema anterior. Realice un algoritmo que reciba el listado de n voluntarios y su tipo de capacitación, resultado del tema anterior, y los distribuye para cada bloque del parque por orden de lista y de forma equitativa por tipo de capacitación. Muestre un nuevo listado indicando los voluntarios asignados a cada bloque.
Sugerencia: inicie asignando solo para un tipo y un bloque, revise el tipo de capacitación de cada voluntario y asigne siempre que el conteo sea menor que máximo por tipo y bloque, caso contrario cambie de bloque, reinicie los contadores y continúe asignando con el nuevo bloque hasta completar todos los voluntarios. Repita el proceso cambiando el tipo.
- La persistencia aditiva de un número entero se calcula sumando sus dígitos y en caso que esta sumatoria tenga más de un dígito, se repetirá el proceso sobre esta, hasta alcanzar un único dígito. La cantidad de veces que se requiera realizar la sumatoria hasta obtener un único dígito se denomina persistencia aditiva. Por ejemplo:
- El número 1234 tiene una persistencia aditiva de 2 (la primera suma de dígitos es 10, luego la segunda suma es 1).
- El número 5978 tiene una persistencia aditiva de 3 (5978→29→11→2).
- El número 9 tiene una persistencia aditiva de 0. Se requiere implementar en Python la función calcularPersistenciaAditiva(), la cual recibe como parámetro un número entero positivo denominado número y retorna su persistencia aditiva.