jueves, 29 de octubre de 2015
miércoles, 28 de octubre de 2015
Tarea 9 - MergeSort y QuickSort
MergeSort en python
def mergeSort(nums):print("Separando -> ",nums)
if len(nums)>1:
medio = len(nums)//2
izqmedio = nums[:medio]
dermedio = nums[medio:]
mergeSort(izqmedio)
mergeSort(dermedio)
i=0
j=0
k=0
while i < len(izqmedio) and j < len(dermedio):
if izqmedio[i] < dermedio[j]:
nums[k]=izqmedio[i]
i=i+1
else:
nums[k]=dermedio[j]
j=j+1
k=k+1
while i < len(izqmedio):
nums[k]=izqmedio[i]
i=i+1
k=k+1
while j < len(dermedio):
nums[k]=dermedio[j]
j=j+1
k=k+1
print("Combinando -> ",nums)
nums = [34,67,56,2,34,5,6,78,90,9]
print "La lista desordenada es: ",(nums)
mergeSort(nums)
QuickSort en python
def Quicksort(lista,izq,der):
i=izq
j=der
x=lista[(izq + der)/2]
while( i <= j ):
while lista[i]<x and j<=der:
i=i+1
while x<lista[j] and j>izq:
j=j-1
if i<=j:
aux = lista[i]; lista[i] = lista[j]; lista[j] = aux;
i=i+1; j=j-1;
if izq < j:
Quicksort(lista,izq,j);
if i < der:
Quicksort(lista,i,der);
def imprimeLista(lista,tam):
for i in range(0,tam):
print lista[i]
def LeerLista():
lista=[]
cn=int(raw_input("Cantidad de numeros a ingresar: "))
for i in range(0,cn):
lista.append(int(raw_input("Ingrese numero %d : " % i)))
return lista
A=LeerLista()
Quicksort(A,0,len(A)-1)
imprimeLista(A,len(A))
domingo, 25 de octubre de 2015
viernes, 9 de octubre de 2015
Practica 7 - Problema 1
Cifrado Vegenere en python
#Luis Alberto Vargas Torres - Cifrado Vigenereabc= 'ABCDEFGHIJKLMNÑOPQRSTUVWXYZ'
def Cifrar(cadena, clave):
texto_cifrar = ''
i=0
for letra in cadena:
suma = abc.find(letra) + abc.find(clave[i % len(clave)])
modulo = int(suma) % len(abc)
texto_cifrar = texto_cifrar + str(abc[modulo])
i=i+1
return texto_cifrar
c=str(raw_input("Cadena a cifrar: ")).upper()
clave=str(raw_input("Clave: ")).upper()
print Cifrar(c,clave)
viernes, 2 de octubre de 2015
Tarea 8 - Los puntos mas cercanos
Los puntos mas cercanos en python
import math
ejex=[]
ejey=[]
NumPun=int(raw_input("Escribe cuantos puntos seran: "))
for i in range(0,NumPun):
print "Escribe la coordenada x del punto",i+1,
num=int(raw_input(":"))
ejex.append(num)
print "Escribe la coordenada y del punto",i+1,
num=int(raw_input(":"))
ejey.append(num)
print "\nLas Cordendas de los Puntos son: "
for i in range(0,NumPun):
print "(",ejex[i],",",ejey[i],")"
distmin=10000000
distminx=0
distminy=0
i=0
j=0
while i<NumPun and j<NumPun:
k=0
l=0
while k<NumPun and l<NumPun:
if ejex[i]==ejex[k] and ejey[j]==ejey[l]:
k=k+1
l=l+1
else:
dist=math.sqrt((ejex[i]-ejex[k])**2+(ejey[j]-ejey[l])**2)
if dist<distmin:
distmin=dist
distminx=i
distmink=k
distminy=j
distminl=l
k=k+1
l=l+1
i=i+1
j=j+1
print "La distancia mínima es",dist
print "Entre el punto (",ejex[distminx],",",ejey[distminy],") y (",ejex[distmink],",",ejey[distminl],")"
miércoles, 30 de septiembre de 2015
Tarea 7 - Expresiones Regualres
Expresiones Regulares en python
TEXTO=raw_input("Escribe tu expresion regular (abc,cba,...): ")
res='s'
while (res=='s'):
PATRON=raw_input("Escribe el patron a buscar: ")
if re.findall(PATRON,TEXTO):
print "Cadena encontrada"
else:
print "Cadena no encontrada"
res=str(raw_input("Deseas buscar otra palabra (s/n) ? "))
Alf=[]
ElemAlf=int(raw_input("Cuantos elementos son de tu alfabeto: "))
for i in range(0,ElemAlf):
Elem=str(raw_input("Ingresa el elemento de tu alfabeto: "))
Alf.append(Elem)
print Alf
Pal=raw_input("Escribe palabraa buscar: ")
Practica 6 . Problema 1
Cifrado Cesar en python
#Luis ALberto Vargas Torres - Cifrado Cesar
abc = 'abcdefghijklmnopqrstuvwxyz'
def cifrar(cadena, clave):
text_cifrado = ''
for letra in cadena:
suma = abc.find(letra) + clave
modulo = int(suma) % len(abc)
text_cifrado = text_cifrado + str(abc[modulo])
return text_cifrado
def decifrar(cadena, clave):
text_cifrado = ''
for letra in cadena:
suma = abc.find(letra) - clave
modulo = int(suma) % len(abc)
text_cifrado = text_cifrado + str(abc[modulo])
return text_cifrado
def main():
c = str(raw_input('Cadena a cifrar: ')).lower()
n = int(raw_input('Numero de desplazamientos: '))
print cifrar(c,n)
cc = str(raw_input('Cadena a decifrar: ')).lower()
cn = int(raw_input('Numero de desplazamientos: '))
print decifrar(cc,cn)
main()
lunes, 28 de septiembre de 2015
Tarea 6 - Selection Sort y Bubble Sort
Selection Sort en pyhton
def selectionSort(nums):
for i in range(len(nums)-1,0,-1):
positionOfMax=0
for location in range(1,i+1):
if nums[location]>nums[positionOfMax]:
positionOfMax = location
temp = nums[i]
nums[i] = nums[positionOfMax]
nums[positionOfMax] = temp
nums = [56,3,78,7,23,59,102,54,95,5,9,1,4,34]
print "La lista es: ",nums
selectionSort(nums)
print "\nLa lista ordenada es: ",nums
Bubble Sort en python
def bubbleSort(num):
for passnum in range(len(num)-1,0,-1):
for i in range(passnum):
if num[i]>num[i+1]:
temp = num[i]
num[i] = num[i+1]
num[i+1] = temp
num = [54,201,3,45,26,93,6,89,17,77,31,44,55,9]
print "La lista de numeros es: ",num
bubbleSort(num)
print "La lista ordenada es: ",(num)
def bubbleSort(num):
for passnum in range(len(num)-1,0,-1):
for i in range(passnum):
if num[i]>num[i+1]:
temp = num[i]
num[i] = num[i+1]
num[i+1] = temp
num = [54,201,3,45,26,93,6,89,17,77,31,44,55,9]
print "La lista de numeros es: ",num
bubbleSort(num)
print "La lista ordenada es: ",(num)
Practica 6 - Problema 1
Cifrado cesar en python
#Luis ALberto Vargas Torres - Cifrado Cesarabc = 'abcdefghijklmnopqrstuvwxyz'
def cifrar(cadena, clave):
text_cifrado = ''
for letra in cadena:
suma = abc.find(letra) + clave
modulo = int(suma) % len(abc)
text_cifrado = text_cifrado + str(abc[modulo])
return text_cifrado
def decifrar(cadena, clave):
text_cifrado = ''
for letra in cadena:
suma = abc.find(letra) - clave
modulo = int(suma) % len(abc)
text_cifrado = text_cifrado + str(abc[modulo])
return text_cifrado
def main():
c = str(raw_input('Cadena a cifrar: ')).lower()
n = int(raw_input('Numero de desplazamientos: '))
print cifrar(c,n)
cc = str(raw_input('Cadena a decifrar: ')).lower()
cn = int(raw_input('Numero de desplazamientos: '))
print decifrar(cc,cn)
main()
miércoles, 23 de septiembre de 2015
Practica 5 - Problema 5
Encontrar todas las sumas de dos enteros positivos de un numero dado (N) recursivamente en python.
#Luis Alberto Vargas Torres
def entPos(n,x,y):
if y==n:
return n
else:
print n,"=",x,"+",y
if((x-1)==y)or(x==y):
return n
entPos(n,x-1,y+1)
#Programa principal
N=int(raw_input("Escribe un número positivo: "))
p=N
q=0
entPos(N,p-1,q+1)
Practica 5 - Problema 4
Contar el numero de palabras en pyhton.
#Luis Alberto Vargas Torresdef fras(Enun):
if len(Enun)==1:
return 1
else:
return 2
Enun=raw_input("Frases: ")
fra=Enun.split(".")
for i in fra:
pal=len(i.split(" "))
print "El numero de palabras son: ",pal
Practica 5 - Problema 3
Invertir las letras de una palabra de forma recursiva en python.
#Luis Alberto Vargas Torresdef invertir(Cad):
if len(Cad)==1:
return Cad
else:
return Cad[-1]+invertir(Cad[:-1])
Cad=raw_input("Escribe la palabra a invertir: ")
print "La inversa de la palabra es: ",invertir(Cad)
Practica 5 - Problema 2
Sumar todos números de 1 hasta n de forma recursiva en python.
#Luis Alberto Vargas Torresdef suma(n):
if n<=1:
return n
else:
return suma(n-1)+n
x=int(raw_input("Escribe hasta que número deseas la suma: "))
res=suma(x)
print "La suma es: ",res
Practica 5 - Problema 1
Suma números pares en forma recursiva en python.
#Luis Alberto Vargas Torresdef sumapares(n):
if n<=2:
return n
else:
return sumapares(n-2)+n
x=int(raw_input("Escribe hasta que número deseas la suma: "))
res=sumapares(x)
print "La suma es: ",res
domingo, 20 de septiembre de 2015
sábado, 19 de septiembre de 2015
Tarea 3 - Convertir un algoritmo recursivo en iterativo y viceversa
Convertir un algoritmo recursivo en iterativo
1 Analizar el algoritmo recursivo . En este ejemplo , utilizará la solución recursiva para el problema factorial :
int factorial ( int h ) {
if ( h== 0 ) {
return 1 ;
}
else {
h de devolución * factorial ( h - 1 ) ;
}
}
2 Decidir si los argumentos de la función se llevará a cabo en variables. En el ejemplo factorial , los resultados de el factorial se pueden almacenar en una variable " total_factorial " para la duración de cualquier iteración . Este ejemplo muestra el algoritmo factorial recursiva y la variable que se utilizará para el argumento recursivo :
2 Decidir si los argumentos de la función se llevará a cabo en variables. En el ejemplo factorial , los resultados de el factorial se pueden almacenar en una variable " total_factorial " para la duración de cualquier iteración . Este ejemplo muestra el algoritmo factorial recursiva y la variable que se utilizará para el argumento recursivo :
total_factorial int = 0 :
3 Determinar una estructura de bucle . En C + + , por ejemplo , el bucle ", mientras que " funciona bien con iteraciones que tienen una longitud indeterminada . " Para " bucles , por otro lado , funciona bien cuando un bucle irá por una duración estricta , representado por un número entero de algún tipo . Para el ejemplo factorial , un bucle "for" va a funcionar bien :
3 Determinar una estructura de bucle . En C + + , por ejemplo , el bucle ", mientras que " funciona bien con iteraciones que tienen una longitud indeterminada . " Para " bucles , por otro lado , funciona bien cuando un bucle irá por una duración estricta , representado por un número entero de algún tipo . Para el ejemplo factorial , un bucle "for" va a funcionar bien :
int factorial = 5 ; total_factorial int = 0 ;
4 Determinar detener condiciones. Por lo general , como en el ejemplo factorial , la recursión terminará cuando se cumpla una condición . En un bucle interative , como el bucle , es muy útil saber de antemano . Ya sabes que en encontrar el factorial de un número " n " que va a repetir n- 1 veces ( excepto el cero ) , se puede empezar a la una y se extenderán hasta el número factorial :
4 Determinar detener condiciones. Por lo general , como en el ejemplo factorial , la recursión terminará cuando se cumpla una condición . En un bucle interative , como el bucle , es muy útil saber de antemano . Ya sabes que en encontrar el factorial de un número " n " que va a repetir n- 1 veces ( excepto el cero ) , se puede empezar a la una y se extenderán hasta el número factorial :
for (int i = 1 ; i < = factorial , i + + ) {
if ( i == 1 ) {
total_factorial = 1 ;
}
else {
totales factorial * = i ;
}
}
Tarea 3 - Tipos de Recursividad
Recursión lineal
En la recursión lineal cada llamada recursiva genera, como mucho, otra llamada recursiva. Se pueden distinguir dos tipos de recursión lineal atendiendo a cómo se genera resultado.int factorial(int n)
{
if (n == 0) return 1;
else return n*factorial(n-1);
}
Recursión No-Lineal
Alguna llamada recursiva puede generar más de una llamada a la función. Uno de los
centros más típicos son los números de Fibonacci, números que reciben el nombre del
matemático italiano que los descubrió. Estos números se calculan mediante la fórmula:
#include <stdio.h>
Recursión a la cola
En la recursión lineal final el resultado que es devuelto es el resultado de ejecución de la
última llamada recursiva. Un ejemplo de este cálculo es el máximo común divisor, que
puede hallarse a partir de la fórmula:
#include <stdio.h>
long mcd(long,long);
int main(int argc, char *argv[]){
long a= 4454,b= 143052;
printf("El m.c.d. de %ld y %ld es %ld\n",a,b,mcd(a,b));
}
long mcd(long a, long b){
if (a==b){
return a;
}
else {
if (a<b){
return mcd(a,b-a);
}
else{
return mcd(a-b,b);
}
}
Recursión Mutua
Implica más de una función que se llaman mutuamente. Un ejemplo es el determinar si un
número es par o impar mediante dos funciones:
#include <stdio.h>
martes, 8 de septiembre de 2015
Práctica 4 - Problema 1
Todas las ombinaciones posibles de n-caracteres
#Luis Alberto Vargas Torres
Pal=str(raw_input("Escriba palabra: "))
Aux=[]
for i in range(0,len(Pal)):
print Pal[i]
import itertools
for i in range (0,len(Pal)):
Aux.append(Pal)
Aux2=list(itertools.product(*Aux))
Aux2=list(set(Aux2))
print Aux2
Practica 3 - Problema 1
Números primos de n-números
#Luis Alberto Vargas Torresdef primo(n):
if n==2:
return True
if n%2==0:
return False
i=3
while (i**2)<=n:
if n%i==0:
return False
i=i+2
return True
n=int(raw_input("Ingrese un numero: "))
c=2
contador=1
import math
N=math.floor(math.sqrt(n))
while contador<=(1.9*N):
if primo(c):
print contador, c
contador=contador+1
c=c+1
viernes, 28 de agosto de 2015
Tarea 2 - Gauss y la suma de los n-números
Gauss ha sido uno de los mejores matemáticos de todos los tiempos. Incluso se le ha denominado el “príncipe de las matemáticas”.
Su vida transcurrió a lo largo de los siglos XVIII y XIX. Este matemático ya realizó grandes proezas matemáticas desde que era un crío, como lo puede demostrar la siguiente anécdota muy conocida:
Cuando Gauss estaba en lo que hoy día denominamos educación Primaria, su maestra (o maestro, según otras versiones), cansada de lidiar con aquellos guajes, les mandó la siguiente “diabólica” tarea: sumar todos los números del 1 al 100. Después de proponer la faena, la susodicha se dispuso a pasar el tiempo en otros menesteres “más provechosos” cuando una voz la sacó de su ensimismamiento:
-¡Ya está!
-¡Anda niño, deja de decir tonterías y no me molestes con tus impertinencias!
-Es 5050
-Pues muy fácil, 1 más 100 es igual que 2 más 99, que 3 más 98 y así sucesivamente; como hay 50 de estas sumas y cada una de ellas suma 101, en total tenemos 101 por 50, que es 5050.
Esta suma es igual a ( (n + 1) ( n ) ) /2.
martes, 25 de agosto de 2015
Practica 2 - Problema 3
Calcular la media aritmética, la mediana y la moda de n-números.
A=[]while True:
x=int(raw_input("Escriba número: "))
if(x>0):
A.append(x)
else:
break
print "\nLa media es: ",sum(A)/len(A)
A.sort()
if len(A) % 2 == 0:
n= len(A)
mediana = (A[n/2-1] + A[n/2] ) / 2
else:
mediana = A[len(A)/2]
print "\nLa mediana es: ",mediana
repet=0
for i in A:
veces = A.count(i)
if veces > repet :
repet = veces
modas = []
for i in A:
veces = A.count(i)
if veces == repet and i not in modas:
modas.append(i)
print "\nLa moda es: ", modas
Practica 2 - Problema 2
Calcular la diferencia máxima y la mínima de n-números.
A=[]
n=0
while True:
x=int(raw_input("Escriba número: "))
if(x>0):
A.append(x)
n=n+1
else:
break
Dif=[]
for i in range(0,n):
for j in range(0,n):
Dif.append(abs(A[i]-A[j]))
Dif.sort()
i=0
for i in range(0,n):
Dif.remove(0)
print "La diferencia menor es: ",min(Dif)
print "La diferencia mayor es: ",max(Dif)
Practica 2 - Problema 1
Encontrar el primer y segundo número mas grande de n-números.
A=[]i=0
while True:
x=int(raw_input("Escriba número: "))
if(x>0):
A.append(x)
i=i+1
else:
break
PriMay=max(A)
print "El primer numero mayor es: ",PriMay
A.sort()
print "El segundo numero mayor es: ",A[i-2]
martes, 18 de agosto de 2015
Practica 1 - Problema 5
Determinar que tipo de triangulo es dado sus tres lados.
A=int(raw_input("Escribe el lado A del triangulo: "))
B=int(raw_input("Escribe el lado B del triangulo: "))
C=int(raw_input("Escribe el lado C del triangulo: "))
if (A > (B+C) ):
print "No es un Triangulo"
else:
if(A**2==(B**2+C**2)):
print "Es un Triangulo Rectangulo"
else:
if ( A**2 > (B**2+C**2) ):
print "Es un Triangulo Obtusángulo"
else:
if( A**2 < (B**2+C**2) ):
print "Es un Triangulo Acutangulo"
Practica 1 - Problema 4
Encontrar el número mayor y el menor.
list=[ ]
for i in range(0,9):
number=int(raw_input("Ingrese nuúmero: "))
list.append(number)
nummax=max(list)
nummin=min(list)
print "El número máximo es",nummax
print "El número mínimo es",nummin
Practica 1 - Problema 3
Calcular la desviación media de 5 números.
x1=int(raw_input("Escribe el numero 1: "))x2=int(raw_input("Escribe el numero 2: "))
x3=int(raw_input("Escribe el numero 3: "))
x4=int(raw_input("Escribe el numero 4: "))
x5=int(raw_input("Escribe el numero 5: "))
media=(x1+x2+x3+x4+x5)/5
sumatoria=(x1-media)**2+(x2-media)**2+(x3-media)**2+(x4-media)**2+(x5-media)**2
import math
desviacion=math.sqrt(media)/5
print "La desviacion media es : ",desviacion
Practica 1 - Problema 2
Calcular el impuesto x% y la ganancia y% total de un vendedor dado el costo del vehículo, así como calcular el costo total para el comprador.
CostVehi=int(raw_input("Escriba el costo del automovil : "))
GanVen=int(raw_input("Escriba el porcentaje de la ganancia del vendedor : "))
GanVen=CostVehi*(float(GanVen)/100)
Impu=int(raw_input("Escriba el porcentaje del impuesto : "))
Impu=CostVehi*(float(Impu)/100)
CostTot=CostVehi+GanVen+Impu
print "la ganancia del vendedor es: ",GanVen
print "El impuesto es : ",Impu
print "El costo del consumidor pagará : ",CostTot
Practica 1 - Problema 1
Calcular el área de un triangulo.
s1=int(raw_input("Dame el primer lado: "))
s2=int(raw_input("Dame el segundo lado: "))
s3=int(raw_input("Dame el tercer lado: "))
T=(s1+s2+s3)/2
import math
area=math.sqrt(T*(T-s1)*(T-s2)*(T-s3))
print "El Area es; ",area
lunes, 17 de agosto de 2015
Suscribirse a:
Comentarios (Atom)



