Python - Hola buenas, necesito ayuda para completar el siguiente ejercicio.

 
Vista:
sin imagen de perfil

Hola buenas, necesito ayuda para completar el siguiente ejercicio.

Publicado por Evelyn (5 intervenciones) el 30/11/2021 05:57:51
El módulo deberá contener la función main(), tal como está definida en el archivo original (no debe ser modificada) y la implementación de las siguientes funciones :
- Una función denominada suma_multi que reciba por parámetros tres números naturales (que son distintos entre sí), determine “el menor” y “el mayor”, y devuelva como resultado la suma de los múltiplos del número restante, que se encuentren en la secuencia de enteros comprendida entre “el menor” y “el mayor” (incluidos).
- Una función denominada mult_rusa que reciba por parámetros dos números naturales n1 y n2 (iguales o distintos) y que devuelva su producto calculado por el algoritmo ruso de multiplicación.
El algoritmo ruso de multiplicación es el siguiente: 1- si n1 es impar se suma el valor de n2 en un acumulador, 2- se duplica el valor de n2, 3- el valor de n1 se reduce a su mitad entera, 4- repite desde el paso 1 al 3 hasta que n1 sea menor a 1 el valor del producto de n1 y n2 es el valor del acumulador

#definir multi_rusa con la siguiente documentacion (verificar indentacion):
"""recibe por parametro dos numeros y devuelve el resultado de aplicar el algoritmo ruso de multiplicacion"""


#definir suma_multi con la siguiente documentacion (verificar indentacion):
"""recibe por parametro tres numeros naturales distintos entre si, Determina "el menor", "el mayor" y el restante. Devuelve como resultado la suma de ls multiplos del numero restante, que se encuentren en la secuencia de enteros comprendidas entre "el menor y "el mayor"(incluidos)"""

def main():
"""Pruebas de funcion de unidad 4"""
uno = 3
dos = 7
tres = 21
print("resultados esperados de funcion suma_multi()")
print('suma de muktiplos con 3 7 21 es: 42')
print('suma de multiplos con 7 3 21 es: 42')
print(suma de multiplos con 3 21 7 es: 42')
print('/nResultados reales de funcion suma_multi()')
print(¡suma de multiplos con', uno, dos, tres, 'da', suma_multi(uno, dos, tres))


Espero se entienda lo que escribi, gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

Hola buenas, necesito ayuda para completar el siguiente ejercicio.

Publicado por Francisco Javier (313 intervenciones) el 30/11/2021 21:49:26
No entiendo bien que es lo que necesitas, las funciones mult_(), con dos parametros de numeros distintos o iguales y lla funcion suma_multi() con tres argumentos naturales distintos entre sí y que hagan lo que se pide es así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
def suma_multi(x,y,z):
    if x!=y and x!=z and y!=z:
        lista=[x,y,z]
        lista.sort()
        multiplos=[]
        r=[]
        for i in range(0,lista[1]):
            multiplos.append(lista[1]*i)
        for j in multiplos:
            if j<lista[2] and j>lista[0]:
                r.append(j)
        print(f'''
        Los numeros ordenados son {lista}
        Todos los multiplos son{multiplos}
        Los multiplos comprendidos entre los dos numeros wue sobran son {r}
        El mayor es {lista[2]}
        El menor es {lista[0]}
        La suma es {sum(r)}
        ''')
 
    else:
        print('Los numeros dados como argumentos de ben ser distintos')
 
 
def mult_rusa(x,y):#multiplicacion rusa
  cont1=0
  cont2=0
  resultado=0
  while y!=1:
    y=y//2
    cont1+=1
  while cont2!=cont1:
    x=x*2
    resultado+=x
    cont2+=1
  return resultado

lo del módulo de main() no entiendo muy bien, así que si no te importa explicame mas detalladamente.
Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Hola buenas, necesito ayuda para completar el siguiente ejercicio.

Publicado por gloria (5 intervenciones) el 02/12/2021 01:39:05
No se bien como explicarte, es un trabajo que me dieron de informatica. El enunciado dice así " realizar un módulo Phyton que deberás completar con la resolución del ejercicio que se enuncia más abajo", ese ejercicio seria este:
El módulo deberá contener la función main() y la implementación de las siguientes funciones :
- Una función denominada suma_multi que reciba por parámetros tres números naturales (que son distintos entre sí), determine “el menor” y “el mayor”, y devuelva como resultado la suma de los múltiplos del número restante, que se encuentren en la secuencia de enteros comprendida entre “el menor” y “el mayor” (incluidos).
- Una función denominada mult_rusa que reciba por parámetros dos números naturales n1 y n2 (iguales o distintos) y que devuelva su producto calculado por el algoritmo ruso de multiplicación.
El algoritmo ruso de multiplicación es el siguiente: 1- si n1 es impar se suma el valor de n2 en un acumulador 2- se duplica el valor de n2 3- el valor de n1 se reduce a su mitad entera 4- repite desde el paso 1 al 3 hasta que n1 sea menor a 1 el valor del producto de n1 y n2 es el valor del acumulador.



Aparte me mandaron un archivo con lo siguiente:

"""Modulo para completar definicion de funciones"""
#Definir mult_rusa con la siguiente documentacion (verificar indentacion):
"""Recibe por parametro dos numeros y devuleve el resultado de aplicar el algoritmo ruso de multiplicacion"""

#Definir suma_multi con la siguiente documentacion(verificar indentacion):
"""Recibe por parametro tres numeros naturales distintos entre si. Determina "el menor" y "el mayor" y el restante. Devuelve como resultado la suma de los multiplos del numro restante, que se encuentren en la secuancia de enteros comprendidas entre "el menor" y "el mayor"(incluidos)"""

(aca aparece como una especie de ejemplo, creo yo, que seria como lo que tendriamos que hacer)

def main():
"""Pruebas de funcion de unidad 4"""
uno = 3
dos = 7
tres = 21
print("Resultados esperados de funcion suma_multi()")
print("Suma de multiplos con 3 7 21 es: 42")
print("suma de multiplos con 7 3 21 es_ 42")
print("Suma de multiplos con 3 21 7 es 42")
print("Suma de multiplos con 21 3 7 es: 42")
print("Suma de multiplos con 7 21 3 es: 42")
print("suma de multiplos con 21 7 3 es: 42")
print("/nResultados reales de funcion suma_multi()")
print("Suma de multilplos con", uno, dos, tres, "da", suma_multi(uno, dos, tres))
Print("Suma de multiplos con", dos, uno, tres, "da", suma_multi(dos, uno, tres))
Print("Suma de multiplos con", uno, tres, dos, "da", suma_multi(uno, tres, dos))
Print("Suma de multiplos con", tres, uno, dos, "da", suma_multi(tres, uno, dos))
Print("Suma de multiplos con", dos, tres, uno, "da", suma_multi(dos, tres, uno))
Print("Suma de multiplos con", tres, dos, uno, "da", suma_multi(tres, dos, uno))
print(/nResultado esperado de funcion suma_multi() con datos erroneos")
Print("Suma de multiplos con 3 3 3 es: 3")
Print("/nResultado real de funcion suma_multi() con datos erroneos")
Print("Suma de multiplos con", uno, uno, uno, "da", suma_multi(uno, uno, uno))

Print("/nResultados esperados de funcion mult_rusa()")
Print("Producto de o y 3 es 0")
Print("Producto de 3 y 3 es 9)
Print("Producto de 7 y 7 es 49")
Print("Producto de 21 y 21 es 441")
Print(Prodcuto de 3 y 7 es 21")
Print("Producto de 3 y 21 es 63")
Print("Producto de 7 y 21 es 147")

Print("/nResultados reaels de funcion mult_rusa()")
Print("Producto de 0 y", uno, "da", mult_rusa(0,uno))
Print("Producto de", uno "y", uno, "da", mult_rusa(uno,uno))
Print("Producto de", dos, "y", dos, "da" mult_rusa(dos,dos))
Print("Producto de" tres, "y", tres, "da", mult_rusa(tres,tres))
Print("Producto de", uno, "y", dos, "da", mult_rusa(uno, dos))
Print("Producto de", uno. "y", tres, "da", mult_rusa(uno, tres))
Print("Producto de", dos, "y", tres, "da", mult_rusa(dos, tres))


Eso es todo lo que me dieron y todo lo que puedo darte. Contestame si pudiste o no, y desde ya MUCHISIMAS GRACIAS!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

Hola buenas, necesito ayuda para completar el siguiente ejercicio.

Publicado por Francisco Javier (313 intervenciones) el 03/12/2021 00:45:11
buenas te mado algo donde la mult:rusa coincide con los resultados para la suma_multi() no se corresponde con lo que pide yo la he creado e imprime por partes el mayor el menor y del que está en medio saca todos los multiplos y coge solo la sumas de éstos que se encuentras entre el menor y mayos de los otros dos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
def main():
    #"""Pruebas de funcion de unidad 4"""
    uno = 3
    dos = 7
    tres = 21
    print("\nResultados esperados de funcion suma_multi()")
    print("Suma de multiplos con 3 7 21 es: 42")
    print("suma de multiplos con 7 3 21 es_ 42")
    print("Suma de multiplos con 3 21 7 es 42")
    print("Suma de multiplos con 21 3 7 es: 42")
    print("Suma de multiplos con 7 21 3 es: 42")
    print("suma de multiplos con 21 7 3 es: 42")
    print("\nResultados reales de funcion suma_multi()")
    print("Suma de multilplos con", uno, dos, tres, "da", suma_multi(uno, dos, tres))
    print("Suma de multiplos con", dos, uno, tres, "da", suma_multi(dos, uno, tres))
    print("Suma de multiplos con", uno, tres, dos, "da", suma_multi(uno, tres, dos))
    print("Suma de multiplos con", tres, uno, dos, "da", suma_multi(tres, uno, dos))
    print("Suma de multiplos con", dos, tres, uno, "da", suma_multi(dos, tres, uno))
    print("Suma de multiplos con", tres, dos, uno, "da", suma_multi(tres, dos, uno))
    print("\nResultado esperado de funcion suma_multi() con datos erroneos")
    print("Suma de multiplos con 3 3 3 es: 3")
    print("\nResultado real de funcion suma_multi() con datos erroneos")
    print("Suma de multiplos con", uno, uno, uno, "da", suma_multi(uno, uno, uno))
 
    print("\nResultados esperados de funcion mult_rusa()")
    print("Producto de o y 3 es 0")
    print("Producto de 3 y 3 es 9")
    print("Producto de 7 y 7 es 49")
    print("Producto de 21 y 21 es 441")
    print("Prodcuto de 3 y 7 es 21")
    print("Producto de 3 y 21 es 63")
    print("Producto de 7 y 21 es 147")
 
    print("\nResultados reales de funcion mult_rusa()")
    print("Producto de 0 y", uno, "da", mult_rusa(0,uno))
    print("Producto de", uno ,"y", uno, "da", mult_rusa(uno,uno))
    print("Producto de", dos, "y", dos, "da", mult_rusa(dos,dos))
    print("Producto de", tres, "y", tres, "da", mult_rusa(tres,tres))
    print("Producto de", uno, "y", dos, "da", mult_rusa(uno, dos))
    print("Producto de", uno, "y", tres, "da", mult_rusa(uno, tres))
    print("Producto de", dos, "y", tres, "da", mult_rusa(dos, tres))
 
def suma_multi(x,y,z):
    if x!=y and x!=z and y!=z:
        lista=[x,y,z]
        lista.sort()
        multiplos=[]
        r=[]
        for i in range(0,lista[1]):
            multiplos.append(lista[1]*i)
        for j in multiplos:
            if j<lista[2] and j>lista[0]:
                r.append(j)
        print(f'''
        Los numeros ordenados son {lista}
        Todos los multiplos son{multiplos}
        Los multiplos comprendidos entre los dos numeros wue sobran son {r}
        El mayor es {lista[2]}
        El menor es {lista[0]}
        La suma es {sum(r)}
        ''')
 
    else:
        print('Los numeros dados como argumentos deben ser distintos')
 
 
def  mult_rusa(x,y):
    resultado=0
    elegidos={}
    if y%2!=0:
        elegidos[x]=y
    while y!=1:
        elegidos[x*2]=y//2
        y=y//2
        x=x*2
    for element in elegidos:
        if elegidos.get(element)%2!=0:
          resultado+=element
    return resultado
 
if __name__=='__main__':
    main()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Hola buenas, necesito ayuda para completar el siguiente ejercicio.

Publicado por gloria (5 intervenciones) el 03/12/2021 03:48:41
No entiendo como poner todo eso en el python paraa despues darle a run y ver que pasa. No entiendo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

Hola buenas, necesito ayuda para completar el siguiente ejercicio.

Publicado por Francisco Javier (313 intervenciones) el 03/12/2021 07:34:58
Buenas las primeras 41 líneas es lo que te da el ejercicio para comprobar. De línea 42 a 64 la función suma y la últimas para la función mult. Ya viene infectado y todo solo es copiarla en tu edictos y listo.

Las funciones son sólo son
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
def suma_multi(x,y,z):
    if x!=y and x!=z and y!=z:
        lista=[x,y,z]
        lista.sort()
        multiplos=[]
        r=[]
        for i in range(0,lista[1]):
            multiplos.append(lista[1]*i)
        for j in multiplos:
            if j<lista[2] and j>lista[0]:
                r.append(j)
        print(f'''
        Los numeros ordenados son {lista}
        Todos los multiplos son{multiplos}
        Los multiplos comprendidos entre los dos numeros wue sobran son {r}
        El mayor es {lista[2]}
        El menor es {lista[0]}
        La suma es {sum(r)}
        ''')
 
    else:
        print('Los numeros dados como argumentos deben ser distintos')
 
 
def  mult_rusa(x,y):
    resultado=0
    elegidos={}
    if y%2!=0:
        elegidos[x]=y
    while y!=1:
        elegidos[x*2]=y//2
        y=y//2
        x=x*2
    for element in elegidos:
        if elegidos.get(element)%2!=0:
          resultado+=element
    return resultado
 
if __name__=='__main__':
    main()


Que las puedes probar cómo quieras pero el enunciado como yo lo entiendo en la función suma no se corresponde con la prueba echa yo la entiendo cómo hace mi función. Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar