Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

GUÍA DE EJERCICIOS DE PROGRAMACIÓN - ARREGLOS Y MATRICES, Ejercicios de Programación Informática

Guía con ejercicios de Matrices para ser programadas en Python, la dificultad de estos ejercicios es acorde a lo que se podría encontrar en cualquier examen, por lo que se recomienda empezar con ejercicios mas básicos antes de realizar esta guía. Espero poder traer ejercicios de otras funciones que se utilizan en Python, cuando tenga la oportunidad.

Tipo: Ejercicios

2017/2018

A la venta desde 30/04/2022

Mauro-Enrique-Flores-Madariaga
Mauro-Enrique-Flores-Madariaga 🇨🇱

5

(2)

254 documentos

Vista previa parcial del texto

¡Descarga GUÍA DE EJERCICIOS DE PROGRAMACIÓN - ARREGLOS Y MATRICES y más Ejercicios en PDF de Programación Informática solo en Docsity! GUIA DE EJERCICIOS ARREGLOS Y MATRICES RECTÁNGULO NAHURIANO Un rectángulo Nahuriano es una tabla de grado primario donde se dispone de una serie de números enteros en una rectángulo o matriz de forma tal que posea a lo menos una celda que tenga la característica de ser Nahuriana. Se dice que una celda es Nahuriana, si y solo si: • Su valor no es 0, • Ninguno de sus vecinos tiene valor 0, • La suma de sus vecinos diagonales es múltiplo de 2, • Todos sus vecinos horizontales y verticales son números impares • La suma de todos sus vecinos es divisible por 16. Se consideran vecinas solo a las celdas cuya distancia entre ellas es igual a 1. Obsérvese que un rectángulo Nahuriano debe poseer como mínimo una dimensión de 3x3. En base a lo anterior, cree un algoritmo que dada una matriz N de fxc determine si corresponde a un rectángulo Nahuriano o no. En caso de serlo, imprimir la cantidad de celdas nahurianas que posee y las correspondientes coordenadas de cada una de ellas. Asuma que f, c y la matriz N vienen previamente declarados y poseen valores. RESTAURANT Un restaurante dispone de m mesas guardadas en una matriz, el identificador de la mesa lo representa el número y el valor almacenado representa la cantidad de comensales que la pueden utilizar por ejemplo: la mesa 23 tiene 5 entonces quiere decir que la mesa 2,3 tiene cupo para 5 comensales como máximo. Hay una cola de espera (un arreglo) para ir ocupando las mesas, de forma que, el orden de llegada lo representa el índice del arreglo y el valor almacenado la cantidad de comensales que son. Se pide en PYTHON:  Asignar mesa según cantidad de comensales.  Cantidad de mesas ocupadas.  Cantidad de comensales que quedaron sin asignación de mesa. CUADRADO PSEUDONAHURIANO Un Cuadrado PseudoNahuriano es una tabla de grado primario donde se dispone de una serie de números enteros en un cuadrado o matriz de forma tal que posea a lo menos una celda que tenga la característica de ser PseudoNahuriana. Se dice que una celda es PseudoNahuriana, si y solo si: • Su valor no es 0, • Ninguno de sus vecinos Horizontales-Verticales tiene valor 0, • La suma de sus vecinos diagonales es múltiplo de 2, Se consideran vecinas solo a las celdas cuya distancia entre ellas es igual a 1. Obsérvese que un Cuadrado PseudoNahuriano debe poseer como mínimo una dimensión de 3x3. En base a lo anterior, cree un algoritmo que dada una matriz N de cxc determine si corresponde a un cuadrado PseudoNahuriano o no. En caso de serlo, imprimir la cantidad de celdas pseudonahurianas que posee. Asuma que c y la matriz N vienen previamente declarados y poseen valores I-ESIMA DERIVADA Sea A un polinomios de la forma P(x)= C1Xe1 + C2Xe2 + . . . CnXen, donde e1 > e2 > . . . > en ≥ 0. Cree un algoritmo que permita obtener la i-esima derivada de A. Considere que este tipo de polinomio se representan mediante listas (vectores) en la que cada celda i contiene el Coeficiente Ci, y su posición está asociada al Exponente Ei. EL NÚMERO CAMPEÓN El numero campeón es un numero de grandes oportunidades que se genera a partir de un juego de dados, para el cual existen 2000 jugadores que tiran el dado por solo una vez, el numero obtenido de cada uno es registrado en un vector llamado resultados vector acumulador de tamaño 6. Una vez que los jugadores terminaron su juego se genera el número final que es determinado a partir del último elemento del arreglo por ejemplo: 8 5 14 10 3 7 El numero campeón por lo tanto es: 73101458 como un solo número (ósea a partir del arreglo se crea un numero). Genere un algoritmo en PYTHON que permita generar el número campeón. POLINOMIOS Dado A y B, dos polinomios de la forma P(x)= C1Xe1 + C2Xe2 + . . . CnXen, donde e1 > e2 > . . . > en ≥ 0. Considere que este tipo de polinomios se representan mediante listas (vectores) en la que cada celda i contiene el Coeficiente Ci, y su posición está asociada al Exponente Ei. Escriba un algoritmo en Python que permita obtener el polinomio resultante de sumar A y B. LLEGADA A LA META La federación atlética de chile, cansada de realizar registros manualmente, necesita un sistema, que permita registrar la información de los participantes que correrán en la Gran Final. Para esto, le solicita a usted, que desarrolle un sistema que registre los mejores tiempos de las carreras de clasificación, además del nombre y edad del ganador. Una vez realizado este ingreso, el sistema tendrá que mostrar los nombres, edades y tiempos de los competidores de la gran Final, ordenados por tiempo desde el menor tiempo hasta el mayor tiempo. Es importante señalar que, antes de la Gran Final se corrieron 15 carreras, y que en la carrera final solo abran 10 competidores. CUADRADO LATINO Desarrollar un algoritmo en PYTHON que permita generar un cuadrado latino. Un CUADRADO LATINO es una matriz cuadrada de nombre LATINA y de orden n (validar que n sea mayor que 0), en la que su primera fila contiene los n primeros números naturales y cada una de las j-1 filas siguientes, la rotación de la fila anterior un lugar a la derecha. Finalmente mostrar por pantalla el resultado de la matriz LATINA. Ejemplo: n=5, LATINA (5,5) PRIMO-COMPUESTO Escriba un algoritmo, que guarde en un VECTOR los números Primos-Compuestos comprendidos entre n y m. El usuario ingresa los números n y m. Un número n es Primo-Compuesto si y solo si, es un número natural que cumple la condición de ser Primo y Compuesto a la vez. Recordar: un número primo es un número natural mayor que 1 que tiene únicamente dos divisores distintos: él mismo y el 1. Recordar: Un número n es compuesto, si posee a lo menos un divisor d comprendido entre 1 y n, distinto a 1 y a sí mismo. El numero 1 no es considerado compuesto. SUBSIDIO HABITACIONAL El ministerio de vivienda y urbanismo le ha encargado a los alumnos que creen un programa computacional que sea capaz de procesar la información correspondiente al próximo proceso de postulación a los diferentes programas de subsidio habitacional. La información correspondiente se encuentra previamente ingresada por lo que el programa solicitado solo debe procesarla y emitir los listados correspondientes. Se cuenta con los vectores RUTPostulante y NomPostulante que contienen el Rut y nombre de cada postulante (respectivamente), además el vector TipoSubsidio tiene almacenado el programa al cual se esta postulando (TITULO I, TITULO II, TITULO 0). Se posee una matriz PUNTOS, que contiene los respectivos puntos y montos necesarios para postular, las filas de la matriz están asociadas a cada postulante y las columnas según los siguientes índices, 1: Ahorro previo (en UFS), 2: Puntaje FPS (Ficha Protección Social), 3: Valor Vivienda (a Adquirir), 4: Hipotecario (Preaprobado). El programa a diseñar en base a la información entregada creara una matriz ADJUDICADOS, que almacenara el listado de todos los postulantes que cumplen las condiciones de postulación y el subsidio recibido (de acuerdo al tipo de programa al que postulan). ADJUDICADOS almacenara los correspondientes índices que permita recuperar la información (columna 1) y el monto del subsidio entregado (columna 2). Además el programa deberá entregar un listado de todos los postulantes que son beneficiarios “ADJUDICADOS”. La información que se desea desplegar corresponde al rut, nombre, tipo programa, valor vivienda, ahorro previo, monto Subsidio. Para poder adjudicarse el beneficio, los postulantes deberán cumplir con las siguientes condiciones: SUBSIDIO TITULO I  Requiere Puntaje FPS  El valor de la vivienda no debe superar los 1400 UF  Se debe complementar el precio de la vivienda adquirir mediante Credito Hipotecario  Se debe poseer un ahorro previo minimo de 30 UF El monto del subsidio de calcula en base a la tabla adjunta. SUBSIDIO TITULO II  No requiere Puntaje FPS  El valor de la vivienda no debe superar los 2000 UF  Se debe complementar el precio de la vivienda adquirir mediante Credito Hipotecario  Se debe poseer un ahorro previo minimo de 100 UF El monto del subsidio de calcula en base a la tabla adjunta. SUBSIDIO TITULO 0  Requiere FPS con un máximo de 11.734 puntos  El valor de la vivienda no debe superar los 800 UF  Se complementa el precio de la vivienda adquirir mediante ahorro previo (sin credito Hipotecario)  Se debe poseer un ahorro previo minimo de 30 UF El monto del subsidio de calcula en base a la tabla adjunta. “PASCUA FELIZ PARA TODOS” Al igual que todos los años, el “Viejito Pascuero” recorre el mundo llevando regalos a todos los niños y niña que se han portado “bien”. Debido a que la población mundial crece año a año, la tarea de determinar quien es “bueno” y quien no, se ha vuelto titánica, es por ello que el área de “Soporte TIC” del “Polo Norte” ha desarrollado una pequeña y sencilla aplicación que emite un listado con de los niños que se han portado bien, el listado incluye el nombre del niño y regalo solicitado. Para generar dicho listado la aplicación utiliza una matriz NINOS de NX3, siendo N el número total de niños almacenados (dato conocido), esto incluye aquellos que se han portado bien como los que no. Las columnas de la Matriz NINOS representan respectivamente el “Nombre del Niño”, “Regalo Solicitado” y “Comportamiento del Niño” (Bueno / Malo), la dirección no se almacena ya que el “Viejo Pascuero” conoce la dirección de todos los niños del mundo. En base al listado generado, el “Viejo Pascuero” procedió a repartir los regalos la noche del 24 de diciembre recién pasado. Sin embargo al llegar a su casa después del término de su noble tarea, el jefe de los duendes le informa que se ha presentado una anomalía en el listado, debido a que un virus computacional ataco al programa que generaba el listado. Los análisis previos han determinado que el daño sufrido esta en la matriz NINOS que almacenaba la información, tal como se muestra en la figura adjunta, se resume en:  La columna que contiene el nombre del niño (1) fue invertida.  La columna que contiene el regalo solicitado (2) fue desfasada circularmente 5 posiciones hacia adelante.  La columna que guarda el comportamiento de los niños (3) fue desfasada circularmente 5 posiciones hacia atrás. Existe la posibilidad que muchos de los regalos entregados no correspondan a los solicitados, dándose el caso que un niño mal portado recibiese regalo, así como uno “Bueno” no recibiese nada. Es por ello que se ha decidido que la noche del 28 de diciembre se realice un recorrido reparatorio corrigiendo dicho error. MATRIZ NINOS INFECTADA 1 2 3 Nombre Niño n Regalo Niño 6 Comportamiento Niño n - 4 Nombre Niño n-1 Regalo Niño 7 Comportamiento Niño n - 3 Nombre Niño n-2 Regalo Niño 8 Comportamiento Niño n - 2 Nombre Niño n-3 Regalo Niño 9 Comportamiento Niño n - 1 Nombre Niño n-4 Regalo Niño 10 Comportamiento Niño n Nombre Niño n-5 Regalo Niño 11 Comportamiento Niño 1 Nombre Niño n-6 Regalo Niño 12 Comportamiento Niño 2 Nombre Niño n-7 Regalo Niño 13 Comportamiento Niño 3 …. …. …. …. …. …. …. …. …. …. …. …. …. …. …. …. …. …. …. …. …. Nombre Niño 8 Regalo Niño n -2 Comportamiento Niño n - 12 Nombre Niño 7 Regalo Niño n- 1 Comportamiento Niño n - 11 Nombre Niño 6 Regalo Niño n Comportamiento Niño n - 10 Nombre Niño 5 Regalo Niño 1 Comportamiento Niño n - 9 Nombre Niño 4 Regalo Niño 2 Comportamiento Niño n - 8 Nombre Niño 3 Regalo Niño 3 Comportamiento Niño n - 7 Nombre Niño 2 Regalo Niño 4 Comportamiento Niño n - 6 Nombre Niño 1 Regalo Niño 5 Comportamiento Niño n - 5 En base a lo anterior, se ha solicitado a los alumnos de la Introducción a la Programación, que creen un algoritmo que permita chequear los regalos entregados, así como generar una lista con los casos que deben ser enmendados. Para ello se utilizara la matriz NINOS con los datos precargados (y dañados por el virus), así como la creación de una nueva Matriz REPARATORIA, que contendrá la información de los casos a corregir, de acuerdo al siguiente orden de columnas: 1.Nombre del Niño, 2. Regalo Entregado, 3.Regalo Solicitado. Recuerde que el “Viejo Pascuero” solo entrega regalo a los niños buenos, por lo que considere:  Los niños buenos que no recibieron regalos, deben figurar “Sin Regalo”.  Los niños mal portados o malos, que erróneamente recibieron regalos, ahora se les entregara una “FOTO” autografiada por el “Viejo Pascuero”.  Se deberá generar un listado con la información contenida en la matriz REPARATORIA, para que el “Viejo Pascuero” pueda diseñar la ruta a recorrer.  Indicar además la cantidad de casos en que los regalos fueron mal entregados ¿DÓNDE ESTÁ WALLY? ¿Dónde está Wally? es un libro lúdico muy popular en la década de los 80. Y aunque no estés entre quienes pasaron su infancia entre consolas de 8 bits y programas de los Looney Toones, seguramente igual reconozcas al personaje debido a su gran presencia en la cultura popular, por no contar la cantidad de referencias en películas y series animadas. Una pregunta interesante que pocos se han hecho es ¿Por qué se perdió Wally?, increíblemente tiene su respuesta, Martin Handford, el creador del personaje, aseguró que concibió a Wally como alguien "muy estúpido", en sus propias palabras: "... imaginé que la razón por la que estaba perdido era por ser levemente tonto y no saber hacia dónde iba". Wally nuevamente se ha perdido, por lo que Martin Handford, ha solicitado la ayuda de los estudiantes de Introducción a la programación, para que construyan un algoritmo que permita encontrar a Wally, dentro de su mundo. Se cuenta con una matriz WORLD 2500x15000 que contiene el “mundo de Wally” y la matriz WALLY de 26X19 que contiene el esquema de Wally. X Y Z Dados los vectores X e Y, desarrollar un algoritmo que calcule el valor de Z. MATRIZ LÓGICA Una matriz lógica, matriz binaria, matriz de relación, matriz booleana o matriz (0,1) es una matriz con entradas del dominio booleana B= {0,1}. Tal matriz puede ser usada para representar una relación binaria entre un par de conjuntos finitos. Con el fin de designar los números de cada fila y columna de la matriz, los conjuntos X e Y están ordenados con números enteros positivos: i va desde 1 hasta la cantidad (tamaño) de X y J oscila entre 1 y la cantidad Y. Ejemplo La relación binaria r en el conjunto (1, 2, 3, 4) se define de manera que aRb se lleva a cabo si y solo si a divide b uniformemente, sin resto. Por ejemplo, 2R4 satisface la relación porque 2 divide 4 sin dejar un resto, pero 3R4 no porque cuando 3 divide 4 hay un resto de 1. El conjunto siguiente es el conjunto de pares para los que se mantiene la relación R. . La representación correspondiente como matriz booleana es: Cree un programa en PYTHON que permita generar la matriz lógica en la relación binaria r del conjunto (1, 2, 3, 4, 5, 6) , además muestre la suma de los valor que se encuentran sobre la diagonal principal sin considerar la diagonal. NUMERO FIBONACCI Cree un algoritmo en PYTHON que permita almacenar en un Vector FIB de dimensión n, los n primeros términos de la sucesión de Fibonacci: Recordar que la serie Fibonacci, está compuesta por 0,1,1,2,3,5,8,13,21,34,55.. Los números de Fibonacci quedan definidos por la ecuación: F(n)=F(n-1) + F(n-2) Partiendo de dos primeros valores predeterminados: F(0)=0 y F(1)=1 ASIGNATURA DE INTRODUCCIÓN A LA PROGRAMACIÓN Los profesores de la asignatura de Introducción a la Programación, como todo fin de semestre, necesitan llevar la estadística del curso para comparar el rendimiento de los alumnos ya que con ésta información es posible generar una predicción del panorama según semestres anteriores, por lo que requieren de un algoritmo que les permita introducir los promedios de los alumnos que cursan la asignatura, los cuales son almacenados en un arreglo unidimensional para los “n” estudiantes. Éste algoritmo debe arrojar el promedio general del curso, el mayor y el menor promedio y finalmente que muestre los valores ingresados al comienzo, en caso que se desee modificar uno de los promedios luego de haber rendido el examen. CONTROL MINI BIBLIOTECA Se desea controlar a través de un Matriz, el ingreso de 100 alumnos a la Mini Biblioteca que tiene una capacidad de 5 mesas de estudio full equipadas, y en el cual se trabajan en 3 turnos. Para registrar a los estudiantes que ocupan los equipos se hace necesario leer el Equipo a utilizar y su Horario. Esquemáticamente esto es: Se pide: a) Total de Estudiantes que asistieron en horario mañana. b) Total de personas que usaron la mesa nº 3. c) Donde asistió más gente, en horario tarde o noche, mostrar las cantidades PRUEBA CRIMINALISTA DE ADN No cabe duda de que hoy en día, el análisis con ADN con fines de identificación ha alcanzado un grado de desarrollo enorme, y es prueba usada y aceptada universalmente tanto en el ámbito de la investigación biológica de la paternidad o maternidad (campo civil) como en la resolución de casos criminales (campo penal). En nuestro país Chile, la única entidad que posee valides par que este tipo de exámenes tengan validez en un proceso judicial es el Servicio Médico Legal, el proceso de este examen es lento en su comparación, por ello sus tiempos de respuesta no son los más óptimos. Por ello el servicio médico legal, ha solicitado su ayuda para la elaboración de un programa computacional en Python que dado un una muestra de ADN de un IMPUTADO no identificado (almacenado en un vector), logre identificarlo dentro de una base de datos de PERSONAS, o en su defecto a alguno de sus familiares. Esto permitirá pesquisar y capturar al sospechoso para hacerlo comparecer ante la justicia. Recordar que una Las células sexuales poseen sólo 23 cromosomas, ya que al fecundarse recibirá 23 cromosomas del padre y 23 de la madre, lo que da origen a un nuevo ser o cigoto con el total de cromosomas que posee el un ser humano. Por ello, en caso de en caso de primos hermanos el ADN compartido entre ambos es del 12,5%; de un 25% para tíos, sobrinos y medio hermanos y de un 50% para hijos, padres y hermanos de la persona examinada, justes de cálculo considere que con entre un 90 a 100% de esta similitud es posible inferir paternidad o maternidad de un individuo. Por otro lado, los gemelos fraternales, mellizos o dicigóticos, presentan diferencias genéticas, mientras que los idénticos, o monocigóticos, son genéticamente iguales. Estos últimos son los que complican la resolución de este tipo de algoritmos de identificación a través de una prueba de ADN, ya que sus ADNs son iguales. El programa funcionara con un vector IMPUTADO que contiene la muestra de los 23 pares de cromosomas de la muestra de ADN recabada en la escena del crimen, una matriz ADNPERSONAS con los correspondientes cromosomas de los todas los individuos registrados, así como un vector PERSONAS que contiene el nombre de dichos sujetos. En caso de identificar al imputado (o su gemelo), debe entregar su correspondiente nombre. En caso de que dicha búsqueda sea infructuosa deberá iniciar la búsqueda de familiares (indicando su nombre y grado de parentesco) que permitan la posterior captura del imputado. Considera que puede suceder el caso que el imputado o sus familiares no se encuentren registrados en la base de datos del servicio médico legal (pudiendo incluso estar vacia). Debido a que la base de datos del servicio médico legal se actualiza constantemente, primeramente debe identificar la cantidad de personas que tiene registrada. Asuma que todas las estructuras vienen previamente declaradas y poseen valores. Resoluciones fuera del contexto y alcance de la problemática no tendrán bonificación. SISTEMA DE BÚSQUEDA DE EMPLEO Como ya es de costumbre nuestro querido amigo Richard, vuelve de nuevo con una de sus ideas. Esta vez nuestro emprendedor amigo, preocupado por su región y habitantes desea crear una plataforma que incluya todas las ofertas de trabajo en un solo lugar y para eso le solicita su ayuda (programadora/o nivel Maestro Yoda) para desarrollar un sistema, el cual permita a través de un vector almacenar el nombre de todas las empresas que se suscriben a esta plataforma, además para cada una de las empresas debe almacenar la cantidad de empleados que tiene (para ello utilizar otro vector), debe tener en cuenta que la plataforma solo tiene que suscribir a empresas que tengan a lo menos cinco empleados y también el sueldo promedio que maneja cada empresa(otro vector). Cada una de estas empresas tiene una valoración final de 1-5 por parte de los usuarios que se almacena en un vector, donde se indica si la empresa es muy buena (5) hasta y muy mala (1). Al final el algoritmo debe mostrar:  El nombre de las empresas y el sueldo promedio que reciben las que son valoradas como muy buenas.  El nombre de la empresa que tiene menos empleados y cuántos son estos.  El nombre de la empresa que más paga.  Una lista ordenada de mayor a menor de los nombres de las empresas según cantidad de trabajadores, mostrar este también este vector (cantidad de trabajadores) ordenado. MATRIZ INVERSIBLE Denominamos a la matriz B la inversa de A y la denotamos por A-1. Una matriz se dice que es inversible o regular si posee inversa. En caso contrario, se dice que es singular. Calcular la matriz inversa en matrices 2x2 es muy sencillo, se puede realizar de la siguiente manera: Esto es posible siempre y cuando ad-bc, el determinante de la matriz, no es cero Ejemplo numérico: Para matrices de órdenes superiores Para matrices de órdenes superiores puede utilizarse la siguiente formula: Donde |A| es el determinante de A y adj(a) es la matriz de adjunto de A Cree un programa en Python que permita entregar la matriz inversa de orden 2x2. “DON ALVARO” La empresa nacional “Don Álvaro”, necesita registrar información de 100 trabajadores, para luego solicitar información importante de ellos. Los datos que se necesitan ingresar son; nombre, edad, la región en la que viven (n° entre 1 y 16), sueldo y rol o cargo en la empresa. Y la información que se necesita conocer de ellos es; nombre del trabajador con menor sueldo, cantidad de trabajadores que viven en la 3era región, cargo del trabajador con mayor sueldo y los 5 primeros nombres con sueldos más altos. Es importante validar que el ingreso de la región sea correcto. Utilice estructuras (Matrices y Vectores) para almacenar la información.
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved