Programas en Python
Programas en Python
Programas en Python
def main():
n =eval(input("Introduzca el numero del vector: "))
a=[0]*n
for i in range (n):
a[i]=0
for i in range (n):
print ("El numero es ",a[i])
main()
PROG2
# Disear un algoritmo que lea n valores, calcule su media y despus
# muestre el nmero de elementos ledos que son superiores a la media.
numero=0
return suma/len(a)
def mayor(a,n,media_a):
cont=0
for i in range (n):
if a[i]>media_a:
cont=cont+1
return cont
def main():
n =eval(input("Introduzca el numero de datos: "))
a=[0]*n
for i in range (n):
a[i]=eval(input("Introduzca el numero: "))
main()
PROG 3
# Escribir una funcin que reciba una tupla de elementos e indique si se
# encuentran ordenados de menor a mayor o no.
def orden(t):
i=0
ordenado=True
if a[1]==b[0] or a[1]==b[1]:
print("encaja Posicion a 1")
else:
print(" ")
def domino_2():
a="1,2"
b="2,5"
cadena1 = a.split(',')
cadena2 = b.split(',')
# print("funcion 2")
# print (cadena1[0])
# print (cadena1[1])
if cadena1[0]==cadena2[0] or cadena1[0]==cadena2[1]:
print("cadena encaja Posicion a 0")
else:
print(" ")
if cadena1[1]==cadena2[0] or cadena1[1]==cadena2[1]:
print("cadena encaja Posicion a 1")
else:
print(" ")
domino()
domino_2()
5TO A
#Escribir una funcin que reciba una tupla con nombres, y para cada
#nombre imprima el mensaje Estimado XXX, vote por m.
def impVec(c,n,vec):
while(c<n):
print ("Estimado "+vec[c]+" vote por mi")
c=c+1
2
impVec(c,n,vec)
5TO B
#Utilizando la funcin del literal a), escribir una funcin que reciba
#una tupla con nombres, una posicin de origen p y una cantidad n,
#e imprima el mensaje anterior para los n nombres que se encuentran
#a partir de la posicin p.
def impVec(c,n,vec):
while(c<n):
print ("Estimado "+vec[c]+" vote por mi")
c=c+1
impVec((p-1),m,vec)
5TO C
#Realizar una funcin similar a la del ejercicio a) anterior para que
#tenga en cuenta el gnero del destinatario, para ello, debern recibir
#una tupla de tuplas, conteniendo el nombre y el gnero. Por ejemplo:
#voteme( ((0Juan0;0 H0); (0Paco0;0 H0)); (0Luis0;0 H0); (0Ana0;0M0)) )
#deber{a devolver una cadena :
#Estimado se~nor Juan; vote por Subi
#Estimado se~nor Paco; vote por Subi
#Estimado se~nor Luis; vote por Subi
#Estimado se~norita Ana; vote por Subi
def impVec(c,n,vec):
while(c<n):
if(vec[c][1]=="M"):
print ("Estimado sr."+vec[c][0]+" vote por mi")
else:
print ("Estimada srta. "+vec[c][0]+" vote por mi")
c=c+1
c=int(0)
while(c<n):
nombre=input("Ingrese el nombre: "+str(c+1)+" ")
genero=input("Ingrese el genero (M para masculino, F para femenino): ")
vecAux=[None]*2
vecAux[0]=nombre
vecAux[1]=genero
vec[c]=vecAux
c=c+1
c=int(0);
print (vec);
3
impVec(c,n,vec);
PROG6 B
#(a) Escribir una funcin que reciba dos vectores y devuelva su producto
#escalar.
import random
print("Producto escalar")
n=int(input("ingrese un numero\n"))
v=[None]*n
w=[None]*n
suma=[None]*n
for i in range(0,n):
v[i]=random.randint(1,5)
w[i]=random.randint(1,5)
print ("Vector 1")
print (v)
print ("Vector 2")
print (w)
for i in range(0,n):
suma[i]=v[i]+w[i]
PROG 6C
#Escribir una funcin que reciba dos vectores y devuelva si son o no
#ortogonales (utilice la funcin anterior). Dos vectores son ortogonales
#si su producto escalar es cero
import random
productoEscalar=0;
aux=0;
print("Producto escalar")
n=int(input("ingrese un numero\n"))
v=[None]*n
w=[None]*n
for i in range(0,n):
v[i]=random.randint(1,5)
w[i]=random.randint(1,5)
print (v)
print (w)
for i in range(0,n):
productoEscalar=productoEscalar+v[i]*w[i]
aux=str(productoEscalar)
if aux==0:
print ("es ortogonal")
else:
print ("no es ortogonal")
PROG 6D
#Escribir una funcin que reciba un vector y devuelva su norma.
import numpy as np
a = np.array([1, 2, 3, 4])
b = np.array([2, 3, 4, 5])
np.linalg.norm((a - b), ord=1)
4
PROG 7A
#(a) Escribir una funcin que reciba una Matriz y un escalar y devuelva
#su producto escalar.
import random
productoEscalar=0;
print("Producto escalar")
n=int(input("ingrese un numero\n"))
v=[None]*n
w=[None]*n
for i in range(0,n):
v[i]=random.randint(1,5)
w[i]=random.randint(1,5)
print (v)
print (w)
for i in range(0,n):
productoEscalar=productoEscalar+v[i]*w[i]
print ("\n El producto escalar es: "+str(productoEscalar))
PROG 7B
#Escribir una funcion que reciba dos Matrices y devuelve una Matriz
#suma
print("SUMA DE MATRICES")
col = int(input("NUMERO DE COLUMNAS:"))
row = int(input("NUMERO DE FILAS:"))
matriz1 =[[0 for x in range(row)] for y in range(col)]
print("PRIMER MATRIZ")
for i in range(row):
for j in range(col):
matriz1[i][j] = int(input("Valor:"))
PROG 7C
MULTIPLICACION DE MATRICES
print("Multiplicacion DE MATRICES")
col = int(input("NUMERO DE COLUMNAS:"))
row = int(input("NUMERO DE FILAS:"))
matriz1 =[[0 for x in range(row)] for y in range(col)]
print("PRIMER MATRIZ")
for i in range(row):
for j in range(col):
matriz1[i][j] = int(input("Valor:"))
5
matriz3 =[[0 for x in range(row)] for y in range(col)]
for i in range(row):
for j in range(col):
for k in range(col):
matriz3[i][k] =matriz3[i][k]+matriz1[i][j]*matriz2[j][k]
print("RESULTADO")
print(matriz3)
PROG 7D
# Escribir una funcion que devuelva la traspuesta de una matriz
M1 = [[1, 2, 3], [2, 12, 6], [1, 0, -3], [10, -1, 0]]
M2 = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
for i in range(3):
print(M1[i])
for i in range(4):
for j in range(3):
M2[j][i] = M1[i][j]
for i in range(3):
print(M2[i])
}
PROG 8A
#Escribir una funcin que reciba una cadena de unos y ceros (es decir,
#un nmero en representacin binaria) y devuelva el valor decimal
#correspondiente.
def bindecimal(binario):
n=len(binario)
valor=0
for bit in binario:
if bit == '1':
valor=valor+2**(n-1)
n-=1
return valor
print("de binario a decimal")
bin=input("Ingrese binario: ")
frase=bindecimal(bin)
print("El resultado de binario a decimal es")
print (frase)
PROG 8B
#Escribir una funcin que reciba un numero entero y devuelva una
#cadena de unos y ceros que representa su valor binario
def decimal_a_binario(num):
if num == 0:
return ""
else:
# valor=str(num % 2) + decimal_a_binario(num // 2)
6
valor=str(num%2)
return valor
PROG 9
#Dada una lista de nmeros enteros, escribir funciones que:
#(a) Devuelva tres listas, una con los menores, otra con los mayores y otra
#con los iguales a k.
#(b) Devuelva una lista con aquellos que son mltiplos de k.
elif i%valor==0:
valo+=str(i)+","
print("mayores",va)
print("menores",vaa)
print("multiplos",valo)
PROG 10
#Escribir una funcin que reciba una lista de tuplas (Apellido, Nombre,
#Inicial_segundo_nombre) y devuelva una lista de cadenas donde cada
#una contenga primero el nombre, luego la inicial con un punto, y luego el
#apellido.
def cambiar(cadena):
lista=list(cadena)
aux=[1,2,3]
aux[0]=lista[1]
aux[1]=lista[2]+"."
aux[2]=lista[0]
print(aux)
cadena=("Jara","Geraldine","B")
cambiar(cadena)
PROG 11A
#Realizar una funcin que, dada una lista, devuelva una nueva lista
#cuyo contenido sea igual a la original pero invertida. As, dada la lista
7
#[0Di0;0 buen0;0 d{a0;0 a0;0 papa0], deber devolver [0papa0;0 a0;0 d{a0;0
buen0;0 Di0].
lii=["di","buen","dia","a","papa"]
print(lii)
lii.reverse()
print(lii)
for i in range(4):
for j in range(3):
if lii[j]>lii[j+1]:
temp=lii[j]
lii[j]=lii[j+1]
lii[j+1]=temp
for i in range(5):
print(lii[i])
lii.reverse()
print(lii)
PROG 11B
>>> #Realizar otra funcin que invierta la lista, pero en lugar de devolver
#una nueva, modique la lista dada para invertirla, SIN USAR LISTAS
#AUXILIARES
li=["A","B","C","D"]
print(li)
li.reverse()
print(li)
PROG 12
>>> #Realizar otra funcin que invierta la lista, pero en lugar de devolver
#una nueva, modique la lista dada para invertirla, SIN USAR LISTAS
#AUXILIARES
li=["A","B","C","D"]
print(li)
li.reverse()
print(li)
PROG13
#Hay un tipo de pasatiempos que propone descifrar un texto del que se
#han suprimido las vocales. Por ejemplo, el texto .n .j.mpl. d. p.s.t..mp.s
#se descifra sustituyendo cada punto con una vocal del texto. La solucin
#es un ejemplo de pasatiempos Disea un programa que ayude al creador
#de pasatiempos. El programa recibir una cadena y mostrar otra en la
#que cada vocal ha sido reemplazada por un punto
import os
cadena=input("Ingrese la cadena \n")
cadenavec=list(cadena)
numero=0;
def es_vocal (x):
if x == "a" or x == "e" or x == "i" or x == "o" or x == "u":
8
return True
elif x == "A" or x == "E" or x == "I" or x == "O" or x == "U":
return True
else:
return False
while numero<len(cadenavec):
valor=es_vocal(cadenavec[numero])
if(valor==True):
cadenavec[numero]=".";
numero+=1;
numero=0;
salida=""
while numero<len(cadenavec):
salida+=cadenavec[numero]
numero+=1;
print(salida)
PROG 14
while numero<len(cadena):
if cont%2!=0:
salida+=cadena[numero]
numero+=1;
if(cont<len(cadena)):
cont+=1
inver=inversa(cadena)
print (cadena[:2])
print (cadena[4:])
print (salida)
print(inver)
print(cadena+""+inver)
PROG 15A
9
#(a) Inserte el caracter entre cada letra de la cadena. Ej: separar y ,
#debera devolver s,e,p,a,r,a,r
def cadena():
cad=input("cadena:")
caracter=input("Caracter: ")
print (cad.replace("",caracter))
cadena()
PROG 15B
#(b) Reemplace todos los espacios por el caracter. Ej: mi archivo de
#texto.txt y \_ debera devolver mi\_archivo\_de\_texto.txt
def cadena():
cad=input("cadena:")
caracter=input("Caracter: ")
print (cad.replace(" ",caracter))
cadena()
PROG 15C
#(c) Reemplace todos los dgitos en la cadena por el caracter. Ej: su clave
#es: 1540 y X debera devolver su clave es: XXXX
def cadena():
cad=input("cadena:")
caracter=input("Caracter: ")
for i in cad:
cad=cad.replace(i,caracter)
print (cad)
cadena()
PROG 16
#Escribir una funcin que reciba una cadena que contiene un nmero entero
#y devuelva una cadena con el nmero y las separaciones de miles. Por
#ejemplo, si recibe 1234567890, debe devolver 1.234.567.890
def funcion_d():
num=int(input("numero:"))
cad=str(num)
cont=1
cad2=""
funcion_d()
PROG 17A
#La primera letra de cada palabra. Por ejemplo, si recibe Universal
#Serial Bus debe devolver USB.
10
def funcion():
cad=input("Cadena:")
lista=cad.split(" ")
print ("Cadena Ingresada:", lista)
for palabra in (lista):
print (palabra[0])
funcion()
PROG 17B
#(b) Dicha cadena con la primera letra de cada palabra en maysculas.
#Por ejemplo, si recibe repblica argentina debe devolver Repblica
#Argentina.
def funcion():
cad=input("Ingrese Cadena:")
lista=cad.split(" ")
print ("Cadena Ingresada:", lista)
for palabra in (lista):
print (palabra.capitalize())
funcion()
PROG 17C
#(c) Las palabras que comiencen con la letra A. Por ejemplo, si recibe
#Antes de ayer debe devolver Antes ayer.
def funcion():
cad=input("Ingrese Cadena:")
lista=cad.split(" ")
print ("Cadena Ingresada:", lista)
for palabra in (lista):
if palabra.startswith('a') or palabra.startswith('A'):
print (palabra)
funcion()
PROG 18A
#(a) Devuelva solamente las letras consonantes. Por ejemplo, si recibe
#algoritmos o logaritmos debe devolver lgrtms.
def consonantes():
vocal="BCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz"
cad=input("Ingrese Cadena:")
lista=cad.split(" ")
print ("Cadena Ingresada:", lista)
for letra in cad:
if letra in vocal:
print (letra)
consonantes()
PROG 18B
#(b) Devuelva solamente las letras vocales. Por ejemplo, si recibe sin
#consonantes debe devolver i ooae.
def vocales():
vocal="aeiouAEIOU"
cad=input("Ingrese Cadena:")
lista=cad.split(" ")
print ("Cadena Ingresada:", lista)
11
for letra in cad:
if letra in vocal:
print (letra)
vocales()
PROG 18C
#(c) Reemplace cada vocal por su siguiente vocal. Por ejemplo, si recibe
#vestuario debe devolver vistaerou.
def vocal_siguiente():
vocal="BCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz"
consonate="aeiouAEIOU"
cad=input("Ingrese Cadena:")
lista=cad.split(" ")
print ("Cadena Ingresada:", lista)
vocal_siguiente()
PROG 18D
#(d) Indique si se trata de un palndromo. Por ejemplo, anita lava la
#tina es un palndromo (se lee igual de izquierda a derecha que de
#derecha a izquierda).
def palindromo():
cad1=input("Ingrese Frase:")
cad2=""
for caracter in cad1:
if caracter!=" ":
cad2=cad2+caracter
if cad2.lower()==cad2[::-1].lower():
print ("PALINDROMO")
else:
print ("NO ES PALINDROMO")
palindromo()
PROG19
PROG19B
#b) Devuelva la que sea anterior en orden alfbetico. Por ejemplo, si
#recibe kde y gnome debe devolver gnome.
lista=['juan','ana','simon','cristian']
lista.sort()
print(lista)
PROG 20A
#(a) Escribir una funcin que reciba dos matrices y devuelva la suma.
def main():
a=[[1,1,1],
[1,1,1],
12
[1,1,1]]
b=[[1,1,1],
[1,1,1],
[1,1,1]]
f=''
for i in range(3):
for j in range(3):
f=f+'\t'+str(a[i][j]+b[i][j])
print (f)
f=''
if __name__=="__main__":main()
PROG 20B
#(b) Escribir una funcin que reciba dos matrices y devuelva el producto.
def main():
a=[[2,1,1],
[1,1,1],
[1,1,1]]
b=[[4,5,1],
[6,1,1],
[1,1,1]]
f=''
print("la matriz 1")
for i in range(3):
for j in range(3):
print (a[i][j])
PROG 20C
#(c) Escribir una funcin que opere sobre una matriz y mediante eliminaci
#n gaussiana devuelva una matriz triangular superior.
A=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]
f=""
valor=int(3)
for x in range(0,4):
for y in range(x,4):
A[x][y]=valor
for x in range(0,4):
for y in range(0,4):
f=f+'\t'+str(A[x][y])
print (f)
13
f=""
PROG 21
#Escribir una funcin que reciba un texto y una longitud y devuelva una
#lista de cadenas de como mximo esa longitud. Las lneas deben ser cortadas
#correctamente en los espacios (sin cortar las palabras).
def funcion():
frases=input("Frases: ")
n=int(input("ingrese una longitud: "))
fra=frases.split(" ")
l=list(fra)
pal=0
print (l)
numero=0
salida=""
while numero<n:
salida=salida+" "+l[numero]
numero+=1
print(salida)
funcion()
PROG22
class Libro:
autor=""
titulo=""
ao=0
b=2016
p=Libro()
p.autor=input("Ingrese el autor del libro: ")
p.tituo=input ("Ingrese el titulo del libro: ")
p.ao=eval(input("Igrese el ao de publicacion del libro: "))
a=b-p.ao
print("El Libro", p.titulo,"se publico hace" ,a, "aos")
PROG 23
#Disear un algoritmo que lea el nombre, cdula y edad de los alumnos de
#clase y:
#(a) Calcule su edad media
#(b) Determine si existe algn alumno con 20 aos
#(c) Muestre el alumno ms viejo
class alumno:
nombre=""
edad=0
cedula=""
def edadMedia(xs):
suma=0
for i in xs:
suma+=i.edad
return suma/len(xs)
def edad20(xs):
for i in xs:
if i.edad >= 20:
return True
return False
14
def mayor(lista):
if lista ==[]:
return("error")
elif len(lista) == 1:
return(lista)
lista_nueva = alumno()
while lista != []:
primero = lista[0]
if lista_nueva.edad > primero.edad:
lista_nueva = lista_nueva
else:
lista_nueva =primero
lista = lista[1:]
return(lista_nueva)
print (len(xs))
print ("Edad Media de Alumnos: %s"%(edadMedia(xs)))
if edad20(xs):
print ("Existe Alumno Mayor 20")
else:
print ("NO Existe Alumno Mayor 20")
print ("El Mayor es: %s"%(mayor(xs).nombre))
PROG 25
#Un taller necesita una aplicacin para gestionar los coches que tiene que
#reparar. De cada coche es necesario almacenar:
#(a) Marca (cadena): marca del coche (e.g.: Renault)
#(b) Modelo (cadena): modelo del coche (e.g., Clio)
#(c) Matrcula (cadena).
#(d) Presupuesto (numrico): valor presupuestado de la reparacin.
#(e) Prioridad (numrico): un valor positivo que indica la urgencia de la
#reparacin de forma cero es la prioridad mxima.
#Se pide disear un programa que:
# Dena la estructura de datos adecuada.
# Lea y almacene vehculos desde teclado.
# Una vez almacenados: Muestre la matrcula del vehculo con mayor
#prioridad.
# Muestre marca y modelo del vehculo con mayor presupuesto de
#reparacin
# La suma de los presupuestos de todos los coches para calcular los
#benecios del taller.
class coche:
marca=""
15
modelo=""
matricula=""
presupuesto=""
prioridad=""
def main():
i=1
pr=0
pres=0
sumpres=0
act1=''
act2=''
act3=''
p=coche()
n = int(input("Ingrese numero de vehiculos:"))
while i<=n:
p.marca = input("Ingrese marca del vehiculo "+str(i)+":")
p.modelo = input("Ingrese modelo del vehiculo "+str(i)+":")
p.matricula= input("Ingrese matricula del vehiculo "+str(i)+":")
p.presupuesto = int(input("Ingrese presupuesto "+str(i)+":"))
p.prioridad = int(input("Ingrese prioridad "+str(i)+":"))
if p.prioridad>pr:
pr=p.prioridad
act1=p.matricula
if p.presupuesto>pres:
pres=p.presupuesto
act2=p.marca+" "+p.modelo
sumpres=sumpres+p.presupuesto
i=i+1
print ("Matricula del vehiculo con mayor prioridad: "+act1)
print ("marca y modelo del vehiculo con mas presupuesto: "+act2)
print ('la suma total es:'+str(sumpres))
main()
PROG 25
class node:
def __init__(self,marca,modelo,matricula,presupuesto,prioridad):
self.marca=marca
self.modelo=modelo
self.matricula=matricula
self.presupuesto=presupuesto
self.prioridad=prioridad
class pila:
def __init__(self):
self.items=[]
16
act3=''
n = int(input("Ingrese numero de vehiculos:"))
while i<=n:
marca = input("Ingrese marca del vehiculo "+str(i)+":")
modelo = input("Ingrese modelo del vehiculo "+str(i)+":")
matricula= input("Ingrese matricula del vehiculo "+str(i)+":")
presupuesto = int(input("Ingrese presupuesto "+str(i)+":"))
prioridad = int(input("Ingrese prioridad "+str(i)+":"))
nodo=node(marca,modelo,matricula,presupuesto,prioridad)
p=pila()
p.apilar(nodo)
if prioridad>pr:
pr=prioridad
act1=matricula
if presupuesto>pres:
pres=presupuesto
act2=marca+" "+modelo
sumpres=sumpres+presupuesto
i=i+1
print ("Matricula del vehiculo con mayor prioridad: "+act1)
print ("marca y modelo del vehiculo con mas presupuesto: "+act2)
print ('la suma total es:'+str(sumpres))
if __name__=="__main__":main()
17