PDF de programación - Tema 1: Bucles - Soluciones ejercicios

Imágen de pdf Tema 1: Bucles - Soluciones ejercicios

Tema 1: Bucles - Soluciones ejerciciosgráfica de visualizaciones

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
  • Links de descarga
http://lwp-l.com/pdf15315

Comentarios de: Tema 1: Bucles - Soluciones ejercicios (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad