Ejercicios Python PDF

Title Ejercicios Python
Course Informática
Institution Universitat Politècnica de Catalunya
Pages 25
File Size 696.8 KB
File Type PDF
Total Downloads 1
Total Views 187

Summary

Ejercicios Python...


Description

Programming Exercises Notebook INFO1 2020

Cristina Barrado Ruben Hidalgo Enric Pastor Computer Architecture Department, EETAC, UPC

This document holds a number of examples of exercises to be resolved with programs in a basic programming course. Some of the exercises have an official solution to check that your solution is correct. They are marked with an asterisk character (*). Also you will find some of exercises marked with a (B#), which means that the exercise is an example of the basic learning objective number # of the course. Remember that a good way to test the correctness of your solutions is to write down the code in the computer and run the program to check the output is as expected.

Table of Contents 0. Elementary data types, expressions and operations .................................................................. 3 1. Conditional statements .............................................................................................................. 4 2. Iterative statements.................................................................................................................... 6 3. Algorithmic schemes ................................................................................................................. 8 4. Vectors and matrices.................................................................................................................. 9 5. Plots ..........................................................................................................................................11 6. Files ......................................................................................................................................... 12 7. Functions ................................................................................................................................. 14 8. Structured data types ............................................................................................................... 16 ANNEX 1 – Solutions of some of the exercises (*) .................................................................... 18 ANNEX 2 - Diez problemas interesantes ................................................................................... 24

0. Elementary data types, expressions and operations 0.1. Write a program that reads from keyboard the value of a temperature in Fahrenheit and convert it to Celsius. For instance, if we enter 80 the programs responds with 26,6 Celsius degrees. 0.2. Write a program that reads from keyboard a price in dollars and converts it to euros. Assume a fix change of 1euro = 1,12 dollars. 0.3. Write a program that reads from keyboard a large number of minutes and shows how many days, hours and minutes it corresponds. For example, 4565 minutes correspond to 3d, 4h, 5'. 0.4. Write a program that reads from keyboard the coordinates (x,y) of 2 points in the plane (2D) and calculates the Euclidean distance between both points. For instance, in we enter the points (3, 5) and (6,1), the programs responds with value 5. 0.5. Write a program that reads from keyboard the coordinates latitude or longitude in degreeminuts-seconds format and returns this value in decimal degrees. For example, the input 20o 12' 56” should return 20.21555556 degrees. 0.6. Show the results of the following expressions 3 + 4 =>

int (12.6) =>

True and True =>

3.3 - 4 =>

12 % 5 =>

not True =>

2.5 * -10 =>

math.ceil (12.6) =>

True or False =>

13 / 3 =>

math.sqrt (81) =>

(10%5)==0 and 3!=5 =>

13.0 / 3 =>

math.pi * 2 =>

13.0 // 3 =>

math.log(math.e) =>

3 ** 4 => 16 ** (1 / 2) => 5 + 7 * 2 ** 2 =>

0.7. Show the content of the variables in this list of consecutive sentences x=2

s1="hola"

y=x+3

s2="Juan"

y = 7 // x

print (s1, s2)

z=x*2+y

msg=s1 + "soy" + s2

z=z-3

print (msg)

print (x, y, z)

1. Conditional statements  (*) Write a program that reads from keyboard two numbers and an operation symbol “+” or “-“. The output should be the two numbers operated according to the operation entered.  (*) Write a program that reads from keyboard two numbers and writes in console a message indicating if the following condition is true: The sum of the two numbers is multiple of 3 or of 7. The output will be one of these two messages: “Condition is met” or “Condition is not met”.  Write a program that reads a character from keyboard and informs if this is uppercase or lowercase. NOTE: letters are coded in alphabetic order as sequential values, thus 'a' is lower than 'b', etc.  (B1) Write a program that implements a converter of temperature, from Celsius to Fahrenheit (°F = °C • 1.8 + 32) and vice-versa (°C = (°F − 32) / 1.8). The program will read a numeric value and a character. The character indicates the source degree scale Celsius or Fahrenheit (‘C’ or ‘F’ respectively).  (B1) Write a program that reads from keyboard one number and determines if it is even and at the same time multiple of 7 or 13.  (*B1) Write a program that implements a currency converter from euro to pesetas and vice-versa. The program will read a numeric value and a character. The character indicates the source of the currency is euros or pesetas (‘E’ or ‘P’ respectively). Note: 1 euro equal to 166,88 pesetas.  (B1) Write a program that reads from keyboard three numbers and determines if the following property meets: one of them is equal to the sum of the other two. For instance numbers 7, 21 y 14 meet the condition because 21 = 7+14. The output will be one of these two messages: “Condition is met” or “Condition is not met”.  1.8. Write a program that reads form keyboard a number and dispays a message “YES” if the number is multiple of 5 and 3 at the same time. The output must be “NO” if the condition is not met.  1.9. Write a program that reads form keyboard two numbers and dispays a message “YES” if at least one of the two numbers are divisible by 7. The output must be “NO” if the condition is not met.  Write a program that reads from keyboard 4 numbers and informs if at least two of them are odd.  Write a program that reads from keyboard one year number and indicates if that year is or not a leap year (bisiesto). NOTE: Leap years are those that are multiple of 4 but not multiples of 100, with the exception of the multiples of 400 which are leap years.  Write a mini-calculator: a program that reads two numbers and a character. The character must be an arithmetic operation symbol: ‘+', ' -‘, ‘*', ‘/'. The program will show the result of the arithmetic operation between the two numbers.  Write a program that reads from keyboard one digit number and informs if this number is or not a prime number (prime numbers of 1 digit are 2, 3, 5, and 7). If the input number is not in the range [1-9] and error should be raised.  Write a program that reads 3 characters from keyboard and indicates if all three are consonants.

2. Iterative statements 2.1. (*) Write a program that reads from keyboard 1 number and informs if this number is a prime number or not. To test if a number is prime or not you have to loop over all its possible divisors. If no divisor is found (other than 1 or the self number) then it is prime. 2.2.

Write a program that calculates the sum of 10 numbers entered from keyboard.

2.3. Write a program that reads a sequence of 20 numbers from keyboard and shows the maximum and the minimum introduced values. 2.4. Write a program that calculates the power xy for 2 numbers entered from keyboard using a loop of products since xy = x*x...*x, up to y-times. Before the loop you should verify that the value of y is positive, otherwise the program will stop. 2.5. Write a program that counts the number of digits of a positive integer number X introduced from keyboard. Use a loop that divides X by 10 successively until 0. use also functions fix -integer part of a float number- and mod -remainder of an integer division- to operate the numbers. 2.6. (*) Write a program that calculates the sum of all the divisors of a positive integer number X introduced from keyboard. Remember that Y is a divisor of X if Y 0: digit = x % 10 result = result * 10 + digit x //= 10 return result n = input ("Enter a number: ") print (reverse(n))

''' Example 8.1 Define a structure ClistaTesisntas to hold the information about the ATP tennis players (up to maximum of 50). Each tennis player information (structure Ctenista) has: name, nationality, trainer, ATP points, and number of tournaments won. ''' class CTenista (): def __init__ (self): self.name = "" self.nationality = "" self.trainer = "" self.ATPPoints = 0 self.numberWon = 0 class CListaTenistas (): def __init__ (self): self.tenistas = []

ANNEX 2 - Diez problemas interesantes A continuación encontrarás diez problemas cuya resolución requiere la construcción de pequeños programas de ordenados. Todos estos problemas tienen su base en curiosidades de los números, y puedes encontrar en Internet muy fácilmente información complementaria sobre cualquiera de ellos. En las referencias que se indican puede encontrarse información sobre estos problemas y otros igualmente interesantes.

1. Los números de Niven Un número de Niven es un número que es divisible por su suma digital, es decir, la suma de sus dígitos. Por ejemplo, el número 27 es un número de Niven porque su suma digital es 2+7=9 y 9 divide a 27. Otros números de Niven son 40, 63 y 111. Haz un programa que encuentre cuatro números consecutivos que sean números de Niven.

2. Cuadrados y cubos El cuadrado de un número y su cubo normalmente comparten al menos un dígito. Por ejemplo, el cuadrado de 19 es 361 y su cubo es 6859. Por tanto, comparten el dígito 6. Pero esto no siempre ocurre. Por ejemplo el cuadrado del número 14, que es 196, y su cubo, que es 2744, no comparten ningún dígito. Haz un programa que encuentre el número mayor posible cuyo cuadrado no comparte ningún dígito con su cubo. 3. Los números de Murthy Un número de Murthy es un número que tiene al menos un divisor común mayor que 1 con el número que se obtiene invirtiendo sus dígitos. Por ejemplo 46 y 64 son ambos divisibles por 2. Otro ejemplo, 132 y 231 son ambos divisibles por 3. Haz un programa que encuentre cinco números consecutivos que sean todos números de Murthy.

4 El problema 3X+1 Tomemos un número entero X cualquiera y construyamos la secuencia siguiente: 

Si X es un número par entonces el siguiente número de la secuencia es X/2



Si X es un número impar entonces el siguiente número de la secuencia es 3X+1

Para obtener el siguiente número de la secuencia se sigue el mismo procedimiento. Por ejemplo, si el número inicial es 7 entonces la secuencia que se obtiene es {7,22,11,34,…}. Resulta que esta secuencia, cualquiera que sea el valor X inicial, acaba siempre en 1, aunque no se ha podido demostrar matemáticamente (en realidad, si llegamos al valor 1 y seguimos entonces obtenemos los valores 4,2 y volveríamos al 1). Construir un programa que escriba la secuencia correspondiente a un valor X cualquiera entrado por teclado. Construir un programa que calcule la longitud de la secuencia que se obtiene para todos los valores de X entre dos valores entrados por teclado.

5. La persistencia de un número Supongamos la siguiente secuencia de números enteros: 969,486, 192, 18, 8 Esta serie se caracteriza porque cada número se obtiene mediante el producto de los dígitos del número anterior en la secuencia. El tamaño de la secuencia se llama persistencia del número inicial. El ejemplo muestra por tanto que la persistencia del número 969 es 5. Construir un programa que obtenga el número más pequeño con persistencia 2, el más pequeño con persistencia 3, y así hasta el más pequeño con persistencia 10.

6. Números primos La obtención de números primos cada vez mayores es un tema que ha apasionado desde siempre a los matemáticos. Naturalmente, en la actualidad los números primos más grandes se obtienen con la ayuda de los computadores. El número primo más grande conocido en la actualidad tiene 9.152.052 dígitos y puede escribirse mediante la siguiente fórmula: 2 30.402.457-1 El cálculo de números primos es también un método habitual para medir la potencia de los computadores. Para ello se usa como base un algoritmo conocido como Criba de Eratóstenes, que funciona de la forma siguiente:      

Se forma la lista de números enteros consecutivos hasta un número dado. Se elimina de la lista el 2 y todos sus múltiplos Se elimina de la lista el 3 y todos sus múltiplos Se elimina de la lista el 4 y todos sus múltiplos (en realidad todos estos ya se eliminaron al eliminar los múltiplos de 2) Se elimina de la lista el 5 y todos sus múltiplos ……

El primer número de la lista que va quedando mediante este proceso de criba siempre un número primo. Y cuantos más pasos demos en el proceso, mayor será el número primo que se obtiene (el primero de la lista). Escribe un programa que realice la Criba de Eratóstenes para calcular números primos. ¿Cuál es el mayor número primo que puede obtener tu programa?

7. Números parásitos El número 102564 tiene una propiedad muy curiosa, tal y como muestra la siguiente fórmula: 102564 x 4 = 410256 Al multiplicar el número por su dígito de menos peso se obtiene un número en el que el dígito de menos peso ha migrado hasta la posición de mayor peso (como si fuese un parásito que se resiste a abandonar el organismo en que vive). Los números parásitos son extraordinariamente raros. Parece que el número 102565 es el único número parásito menor que un millón. Algo más frecuentes son los números pseupoparásitos, en los que el dígito que migra no es el mismo que el multiplicador. Un ejemplo es el siguiente: 153846 x 4 = 615384

Construye un programa de ordenador para obtener números parásitos y pseudoparásitos. Consigue la colección más grande posible de este tipo de números.

8. Los números de Keith Tomemos el número 47 y formemos la siguiente secuencia: 4, 7, 11, 18, 29, 47 La secuencia se obtiene escribiendo primero los dos dígitos del número y luego obteniendo cada nuevo elemento mediante la suma de los dos números anteriores en la secuencia (igual que ocurre en la sucesión de Fibonacci, que comienza con dos unos). La curiosidad es que el número 47, cuyos dos dígitos tomamos para iniciar la secuencia, aparece como miembro de la propia secuencia. La misma curiosidad pasa con el número 1537. Ahora la secuencia empieza con los cuatro dígitos del número y cada nuevo elemento se obtiene sumando los cuatro números anteriores en la secuencia: 1, 5, 3, 7, 16, 31, 57, 111, 215, 414, 797, 1537 Los números que tienen esta propiedad (como el 47 y el 1537) se conocen como números de Keith. También se les denomina dígitos reproductores de Fibonacci (o forma abreviada repfigit). Construye un programa de ordenador para obtener dígitos reproductores de Fibonacci. Consigue la colección más grande posible de números de este tipo.

9. Números amigos Se dice que dos números enteros son amigos si la suma de los divisores de uno de ellos es igual al otro y viceversa. Por ejemplo, los divisores del número 220 son: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 y 110 La suma de estos números es 284. Por otra parte, los divisores de 284 son: 1, 2, 4, 71 y 142 La suma de estos números es 220. Los matemáticos dicen que los números 220 y 284 son números amigos. Cada uno de ellos parece existir para servir, alegrar, defender y honrar al otro. Construye un programa que obtenga parejas de números amigos. Consigue la colección mayor posible de números amigos.

10. El número de oro El número de oro, también conocido como la divina proporción es un número conocido desde la antigüedad por sus atributos estéticos, sus propiedades matemáticas y los símbolos místicos que se le atribuyen. El número de oro tiene el valor 1,61803…. Es la raíz positiva de la ecuación: x2-x-1=0 Lo curioso del número de oro es que aparece con mucha frecuencia en la naturaleza, como si hubiese sido usado como patrón de su construcción (por eso se le denomina también divina proporción). Veamos algunos ejemplos:



El número de hembras dividido por el número de machos en un panal de abajas.

 La relación entre el grosor del tronco de un árbol y las ramas principales, o entre las ramas principales y las secundarias. 

La altura de una persona dividida por la distancia que hay entre su obligo y el suelo.

 La distancia entre el hombro y la punta de los dedos dividida por la distancia entre el codo y la punta de los dedos. Finalmente, el número de oro también está relacionado con la sucesión de Fibonacci: 1, 1, 2, 3, 5, 8, 13, 21, 34,.,. Recuerda que, partiendo de dos unos, el siguiente número de la sucesión se obtiene sumando los dos anteriores. Pues bien, el cociente entre un elemento de la sucesión y el anterior tiende al número de oro (se acerca al número de oro tanto más cuanto mayor es el término de la sucesión). Por ejemplo: 21/13= 1,6153… 34/21= 1,6190… Construye un programa que calcule el número de oro con la mayor precisión posible, usando el método de calcular el cociente entre dos términos seguidos de la sucesión de Fibonacci....


Similar Free PDFs