Publicado el 22 de Febrero del 2019
788 visualizaciones desde el 22 de Febrero del 2019
128,3 KB
11 paginas
Creado hace 8a (19/10/2015)
Tema 1: Instrucciones Condicionales, Bucles.
SOLUCIONES EJERCICIOS
3ª PARTE TEMA 1: BUCLES
Mª Ángeles Fdez de Sevilla Vellón
30
31
Tema 1: Instrucciones Condicionales, Bucles.
3ªPARTE. TEMA1:
SOLUCIONES BUCLES
Número 1. Este programa calcula el producto de dos números enteros sin utilizar el
operador de multiplicación (*).
# Archivo: ejercicio3_1.py
# Autor: XXXXX XXXXXXX (nombre y apellidos)
# Fecha: DD/MM/AAAA
# Descripción: Calcula el producto de dos enteros sin
# utilizar el operador multiplicación (*).
# Programa principal
x = int(input('Introduzca un número: '))
y = int(input('Introduzca otro número: '))
mul = 0
if (x ==0) or (y == 0):
print()
else:
for i in range (abs(y)):
mul = mul + x
if y <0:
mul = -mul
print(' la multiplicación es ', mul)
Número 2. Este programa calcula el valor de x elevado a y (x real, y entero).
# Archivo: ejercicio3_2.py
# Autor: XXXXX XXXXXXX (nombre y apellidos)
# Fecha: DD/MM/AAAA
# Descripción: Calcula el valor de x elevado a y.
#libreria
from math import *
# Programa principal
while True:
base = float(input('Introduce base del número real: '))
if base != 0:
break
exponente = int(input('Introduce el exponente: '))
resultado = 1
for c in range (abs(exponente)):
resultado = resultado * base
if exponente < 0:
resultado = 1/resultado
32
print(base, ' elevado a ', exponente, ' = ', resultado)
# utilizando las funciones de logaritmo y exponenciación
resultado = e **(exponente * log(abs(base)));
if (base<0) and (exponente % 2 != 0):
resultado = - resultado;
print(base, ' elevado a ', exponente, ' = ', resultado);
Número 3. Este programa pide una serie de números por pantalla -cantidad dada por el
usuario- y calcula su media aritmética, el mayor y el menor.
NOTA: Para que funcione correctamente he inicializado la variable menor con un
número muy alto.
# Archivo: ejercicio3_3.py
# Autor: XXXXX XXXXXXX (nombre y apellidos)
# Fecha: DD/MM/AAAA
# Descripción: Pide una serie de números por pantalla y
# calcula su media aritmética, el mayor y el menor.
# Llamada a librerias
from math import *
import sys
# Programa principal
while True:
cuantos = int(input('Cuántos núm va a introducir?: '))
if cuantos <= 0:
print('¡Tiene que ser una cantidad positiva!')
else:
break
suma = 0
mayor = -sys.maxsize
menor = sys.maxsize
for i in range (cuantos):
numero = int(input('Introduce un numero: '))
suma = suma + numero
if numero < menor:
menor = numero
if numero > mayor:
mayor = numero
media = suma / cuantos
print('La media de ', cuantos, ' números es: ', media)
print('El mayor es: ', mayor, 'y el menor es: ', menor)
33
Tema 1: Instrucciones Condicionales, Bucles.
Número 4. Este programa calcula los 20 primeros términos de la sucesión de Fibonacci
y halla su suma.
# Archivo: ejercicio3_4.py
# Autor: XXXXX XXXXXXX (nombre y apellidos)
# Fecha: DD/MM/AAAA
# Descripción: Calcular los 20 primeros términos de la
# sucesión de Fibonacci.
# Constantes
Num_terminos = 20
Fib1, Fib2 = 1, 2
#Programa principal
fib_n = Fib1
print('Término Nº 1 :', fib_n)
fib_nmas1 = Fib2
print('Término Nº 2 :', fib_nmas1)
suma = fib_n + fib_nmas1
for i in range (3, num_terminos+1):
fib_nmas2 = fib_nmas1 + fib_n
fib_n = fib_nmas1
fib_nmas1 = fib_nmas2
print('Término Nº', i,':', fib_nmas2)
suma = suma + fib_nmas2
print('La suma de los ', Num_terminos,' primeros términos
es: ', suma)
Número 5. Este programa lee de pantalla 3 letras hasta leer la palabra fin (en
mayúsculas o minúsculas).
# Archivo: ejercicio3_5.py
# Autor: XXXXX XXXXXXX (nombre y apellidos)
# Fecha: DD/MM/AAAA
# Descripción: Lee de pantalla 3 caracteres hasta leer la
palabra fin.
# Constantes
Carfin1 = 'F'
Carfin2 = 'I'
Carfin3 = 'N'
# Programa principal
while True:
car1 = input('Introduzca primer carácter: ')
car2 = input('Introduzca segundo carácter: ')
car3 = input('Introduzca tercer carácter: ')
34
if (Carfin1 == car1.upper() and Carfin2 == car2.upper()
and Carfin3 == car3.upper()):
break
Número 6. Este programa pide un entero positivo y calcula:
a) El número de dígitos necesario para escribirlo.
# Archivo: ejercicio3_6.py
# Autor: XXXXX XXXXXXX (nombre y apellidos)
# Fecha: DD/MM/AAAA
# Descripción: Lee un número entero positivo y calcula
# el número de dígitos necesario para escribirlo.
#Posteriormente ap b calcula el número de veces que es
#divisible por 2.
#Constantes
Divisor = 2
Diez = 10
# Programa principal
while True:
entero =int(input('Introduzca entero positivo: '))
if entero < 0:
print('¡ El entero tiene que ser positivo !')
if entero > 0:
break
num_digitos = 1
potencia10 = Diez
while potencia10 <= entero:
num_digitos = num_digitos + 1
potencia10 = potencia10 * 10
print('El entero ', entero, ' tiene ', num_digitos, '
dígito(s)')
#Apartado b
num_divisiones = 0
division = entero
while (division % Divisor == 0):
division = division / Divisor
num_divisiones = num_divisiones + 1
print('El entero ', entero, ' se puede dividir por ',
Divisor, ',', num_divisiones, ' veces')
35
Tema 1: Instrucciones Condicionales, Bucles.
Número 7. Este programa lee una serie de enteros hasta que se introduzca -9999 y
calcula el número total de enteros introducidos, cuántos son positivos y cuántos son
negativos, utilizando el bucle while True.
# Archivo: ejercicio3_7.py
# Autor: XXXXX XXXXXXX (nombre y apellidos)
# Fecha: DD/MM/AAAA
# Descripción: Lee una serie de datos enteros hasta que se
# introduzca -9999 y calcula el número total de enteros
# introducidos, cuántos son positivos y cuantos negativos.
# Bucle repetir
# Constantes
Final = -9999
# Programa principal
total = 0
total_neg = 0
total_pos = 0
while True:
entero = int(input('Introduzca un número entero ( -9999
para terminar) => '))
if entero != Final:
total = total + 1
if (entero < 0):
total_neg = total_neg + 1
elif (entero>0):
total_pos = total_pos +1
break
print('Se han introducido ', total, ' números enteros')
print('Había ', total_pos,' positivos y ', total_neg, '
negativos')
# Archivo: ejercicio3_7B.py
# Autor: XXXXX XXXXXXX (nombre y apellidos)
# Fecha: DD/MM/AAAA
# Descripción: Lee una serie de datos enteros hasta que se
# introduzca -9999 y calcula el número total de enteros
# introducidos, cuántos son positivos y cuantos negativos.
# Bucle while más lógico con repetir
# Constantes
Final = -9999;
#Cuerpo principal
total = 0
total_neg = 0
total_pos = 0
entero = int(input('Introduzca un número entero ( -9999
para terminar) => '))
while entero!=Final:
total=total+1;
else: # entero == Final
36
if entero<0:
total_neg = total_neg + 1
if entero>0:
total_pos = total_pos + 1
entero = int(input('Introduzca un número entero (-9999
para terminar) => '))
print('Se han introducido ', total, ' números enteros')
print( total_pos,' positivos y ', total_neg, ' negativos')
Número 8. Este programa pide un límite y calcula cuántos términos de la serie
armónica son necesarios para que su suma supere dicho límite.
Serie armónica
# Archivo: ejercicio3_8.py
# Autor: XXXXX XXXXXXX (nombre y apellidos)
# Fecha: DD/MM/AAAA
# Descripción: Pide un límite y calcula cuántos términos de
# la serie armónica son necesarios para que su suma supere
# dicho límite.
# Programa principal
limite = int(input('Introduzca el límite de la suma => '))
suma = 0
cuantos = 0
while True:
cuantos = cuantos + 1
suma = suma + 1 / cuantos
if (suma > limite):
break
print('El número de términos necesario es: ', cuantos)
Número 9. Este programa calcula la raíz cuadrada de una serie de números mediante el
método de Newton, indicando el final de datos con un 0.
# Archivo: ejercicio3_9.py
# Autor: XXXXX XXXXXXX (nombre y apellidos)
# Fecha: DD/MM/AAAA
# Descripción: Calcula la raíz cuadrada de una serie de
# números mediante el método de Newton, indicando el final
# de datos con un 0.
# Llamada a la librería math entera
from math import *
37
Tema 1: Instrucciones Condicionales, Bucles.
# Constantes
Epsilon = 1E-6 # error cometido
Iteracion_max = 20 # número máximo de iteraciones
Final = 0 #indica el final de datos
# Programa principal
while True:
while True:
numero = float(input('Introduzca un número real
positivo ( 0 para terminar) => '))
if numero >= 0:
break
if numero != Final:
iteracion = 0
if numero == 0:
raiz = 0
else:
raiz = 1
while True:
raiz = (numero/raiz + raiz)/2
iteracion = iteracion + 1
if (abs(numero/sqrt(raiz) - 1) < Epsilon)
or (iteracion == Iteracion_max):
break
print('La raíz cuadrada de', numero, 'es:', raiz)
if iteracion == Iteracion_max:
print('(Nota: Se ha parado al llegar a ',
Iteracion_max, ' iteraciones)')
if numero == Final:
break
38
Número 10. Este programa lee un entero positivo (n).
a) Genera una
Comentarios de: Tema 1: Bucles - Soluciones ejercicios (0)
No hay comentarios