Documentos de Académico
Documentos de Profesional
Documentos de Cultura
sus Cdigos recuerden no es copiar es practicar sobre todo entender bien de que
trata los ejercicios y sus cdigos.
1. Programa que imprima los 25 primeros numeros naturales
###Programa que imprima los 25 primeros numeros naturales
n=1
while n <= 25:
print n,
n += 1
n = 50
h=0
while n >= 20:
h += n
n -= 2
print h
9. Programa que imprima los nuumeros impares desde el 100 hasta la unidad y
calcule su suma n = 100
###Programa que imprima los nuumeros impares desde el 100 hasta la unidad y calcule su suma
n = 100
h=0
while n >= 1:
if n%2 != 0:
print n,
h += n
n -= 1
print 'y su suma es: %i' % h
if h%2 == 0:
print 'Este numero es par'
else:
print 'Este numero es impar'
11. Imprimir los numeros del 1 al 100 y calcular la suma de todos los nuumeros
pares por un lado, y por otro, la de los impares.
##Imprimir los numeros del 1 al 100 y calcular la suma de todos los nuumeros
###pares por un lado, y por otro, la de los impares.
n=1
p=0
i=0
while n <= 100:
print n,
if n%2 == 0:
p += n
else:
i += n
n += 1
print '\nLa suma de los pares es igual a %i' % p
print 'La suma de los impares es igual a %i' % i
12. Introducir dos numeros por teclado. Imprimir los numeros que hay entre ellos
comenzando por el mas pequeno. Contar cuantos hay y cuantos de ellos son
pares. Calcular la suma de los pares
##Introducir dos numeros por teclado. Imprimir los numeros que hay entre ellos
###comenzando por el mas pequeno. Contar cuantos hay y cuantos de ellos son
###pares. Calcular la suma de los pares
p=0
cp = 0
c=0
n=0
h=0
h1 = input('Primer numero: ')
h2 = input('Segundo numero: ')
if h1 > h2:
n = h2
h = h1
else:
n = h1
h = h2
while n < h:
n += 1
if n == h:
break
c += 1
print n,
if n%2 == 0:
cp += 1
p += n
print '\nEntre % i y %i hay %i numeros siendo %i pares' % (h1, h2, c, cp)
print 'La suma de los pares es %i' % p
13. Imprimir y contar los numeros multiplos de 3 que hay entre 1 y 100.
### Imprimir y contar los numeros multiplos de 3 que hay entre 1 y 100.
n=1
h=0
while n < 100:
if n%3 == 0:
print n,
h += 1
n += 1
print '\nEntre 1 y 100 hay %i numeros multiplos de 3' % h
14. Imprimir, sumar y contar los numeros que son a la vez multiplos de 2 y de 3,
que hay entre la unidad y un determinado numero introducido por el teclado.
### Imprimir, sumar y contar los numeros que son a la vez multiplos de 2 y
Si A/B<=30,
Ejercicio 1.
Escribir un algoritmo que, para cualquier nmero de segundos inferior a un milln, calcule su equivalente en das, horas,
minutos y segundos.
En este ejercicio tenemos que tener en cuenta que:
1 minuto = 60 segundos.
1 hora = 60 minutos = 3600 segundos.
1 dia = 24 horas = 1440 minutos = 86400 segundos.
# Pedimos datos.
dato = raw_input(u'Nmero de segundos: ')
pronombre = ['yo','tu','el','nosotros','vosotros','ellos']
terminaciones = {'yo':'o',
'tu':'as',
'el':'a',
'nosotros':'amos',
'vosotros':u'is',
'ellos':'an'}
# Pedimos datos.
palabra = raw_input(u'Verbo regular 1ra. conjugacin: ')
# Recorremos la tabla hashing (diccionario), construyendo la conjugacin verbal.
for i in pronombre:
print i, palabra[0:len(palabra)-2] + terminaciones[i]
Ejercicio 4.
Escribir un algoritmo que, para un nmero binario de 4 cifras, imprima su valor en base 10. Se estudiarn dos formas del
problema segn la representacin de los datos:
-forma 1: los datos son cuatro enteros (0 1). Por ejemplo: 1,1,0,1.
# Obtenemos datos.
nbinario = raw_input(u'Nmero binario (4 cifras): ')
# Obtenemos los dgitos.
nbinario = nbinario.split(',')
if len(nbinario) == 1: nbinario = list(nbinario[0])
# Inicializamos algunos contadores.
decimal = 0
potencia = 0
# Le damos la vuelta al nmero binario.
nbinario.reverse()
# Calculamos el nmero decimal, a partir del nmero binario.
for i in nbinario:
decimal += pow(2,potencia) if i == '1' else 0
potencia += 1
# Visualizamos resultado.
cadena = u'Su representacin decimal es %d' % (decimal)
print cadena
Ejercicio 5.
Escribir un algoritmo que decodifique fechas del siglo XXI. El dato es un entero comprendido entre 10100 y 311299. El
resultado es una secuencia de caracteres: nmero del da dentro del mes, del mes dentro del ao y del ao dentro del siglo. Por
ejemplo, para el dato 30485, el resultado es el texto 3-4-2085.
# Obtenemos dato.
dato = raw_input('Introduce dato: ')
# Decodificamos ao dentro del siglo XXI.
anyo = 2000 + int(dato[len(dato)-2:])
# Decodificamos mes.
mes = int(dato[len(dato)-4:len(dato)-2])
# Decodificamos da.
dia = int(dato[:len(dato)-4])
# Mostramos resultado.
cadena = '%d-%d-%d' % (dia, mes, anyo)
print cadena
Ejercicio 6.
Escribir un algoritmo que, para una suma de dinero dada, indique cmo descomponerla en billetes y monedas corrientes. Se
desea utilizar el mnimo de billetes y monedas. No hay ninguna limitacin respecto al nmero de billetes y monedas disponibles.
# Decimal...
try: parte_decimal = float('0.'+dato[1])
except: parte_decimal = 0.0
# Entera...
parte_entera = long(dato[0])
# Algoritmo de asignacin de dinero.
for i in billetes_y_monedas:
# Obtenemos nmero de billetes monedas y los guardamos.
unidades, resto = divmod(parte_entera, i)
if unidades != 0:
monedero.append((i,unidades))
# Asignamos lo que nos queda.
parte_entera = resto
if parte_decimal > 0:
for i in billetes_y_monedas:
# Obtenemos nmero de monedas y los guardamos.
unidades, resto = divmod(parte_decimal, i)
if unidades != 0:
monedero.append((i,unidades))
# Asignamos lo que nos queda.
parte_decimal = round(resto,2)
# Visualizamos el resultado.
cadena = ''
for i in monedero:
if i[0] >= 5: cadena += '%d billete/s de %d euros' % (i[1],i[0])
if i[0] < 5: cadena += '%d moneda/s de %s euros' % (i[1],i[0])
cadena += '\n'
print cadena
Ejercicio 7.
Escribir un algoritmo que simule el funcionamiento de una calculadora. El dato es una serie de tres caracteres: una cifra, un
smbolo de operacin y otra cifra. El resultado es el valor de la expresin dada.
# Pedimos datos.
dato = raw_input(u'Introduce operacin: ')
# Inicializamos resultado.
resultado = 0
# Suma?
serie = dato.split('+')
if len(serie) == 2: resultado = long(serie[0]) + long(serie[1])
else:
# Resta?
serie = dato.split('-')
if len(serie) == 2: resultado = long(serie[0]) - long(serie[1])
else:
# Multiplicacin?
serie = dato.split('*')
if len(serie) == 2: resultado = long(serie[0]) * long(serie[1])
else:
# Divisin?
serie = dato.split('/')
if len(serie) == 2: resultado = long(serie[0]) / long(serie[1])
# Mostramos resultado.
print "El resultado es",resultado
Ejercicio 8.
Consideremos una hora expresada en forma de tripleta . Escribir un algoritmo que imprima la hora correspondiente al siguiente
segundo. Por ejemplo, para la entrada 13,43,24 tiene que devolver 13,43,25.
Se supone que lo que introducimos es una hora correcta. Darse cuenta que no se chequean los datos introducidos, por cuestin
de simplicidad.
# Pedimos datos.
tiempo = raw_input('Introduce tiempo: ')
# Obtenemos datos.
aux = tiempo.split(',')
horas = int(aux[0])
minutos = int(aux[1])
segundos = int(aux[2])
# Aumentamos un segundo.
segundos += 1
# Casos.
if segundos != 60:
tiempo = (horas, minutos, segundos)
else:
if minutos == 59 and horas == 23:
tiempo = (0, 0, 0)
else:
if minutos == 59:
tiempo = (horas + 1, 0, 0)
else:
tiempo = (horas, minutos + 1, 0)
# E imprimimos resultado (una tupla).
print tiempo