elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación General / Graficar 2 figuras 3D en Matlab al tiempo en: 7 Abril 2017, 04:05 am
¡Hola! Tengo un problema. He hecho 2 gráficas 3D en Matlab. La primera es un elipsoide:

Código
  1. syms x y z
  2. [x,y]=meshgrid([-5:0.05:5],[-5:0.05:5]);
  3. z1=(sqrt(-9*x.^2-y.^2+9))
  4. z2=(-sqrt(-9*x.^2-y.^2+9))
  5. plot3(x,y,z1,x,y,z2)
  6. zlim([-4 1.5])

Y la segunda es un paraboloide de una hoja:

Código
  1. syms x y z
  2. [x,y]=meshgrid([-5:0.05:5],[-5:0.05:5]);
  3. z1=-sqrt(x.^2+y.^2-1)
  4. z2=sqrt(x.^2+y.^2-1)
  5. plot3(x,y,z1,x,y,z2)
  6. zlim([1.5 4])

Como ven, cada uno está limitado por el eje x. Aun así, si las grafico al tiempo, usando el comando hold on, sólo se aplica el último límite.

Código
  1. syms x y z
  2. [x,y]=meshgrid([-5:0.05:5],[-5:0.05:5]);
  3. z1=(sqrt(-9*x.^2-y.^2+9))
  4. z2=(-sqrt(-9*x.^2-y.^2+9))
  5. plot3(x,y,z1,x,y,z2)
  6. zlim([-4 1.5])
  7. hold on
  8. syms x y z
  9. [x,y]=meshgrid([-5:0.05:5],[-5:0.05:5]);
  10. z1=-sqrt(x.^2+y.^2-1)
  11. z2=sqrt(x.^2+y.^2-1)
  12. plot3(x,y,z1,x,y,z2)
  13. zlim([1.5 4])

La pregunta puntual es: ¿Cómo puedo graficarlos al tiempo y que, además, cada uno mantenga esos límites en el eje z, de manera que se vean algo así como "unidos" o como si fueran una sola figura?

¡Gracias!
2  Programación / Programación General / Serie de Seno(x) en Python calcula correctamente hasta sen(35)... por qué? en: 20 Enero 2017, 21:15 pm
Buenas! Paso a preguntar algo que no he podido entender. Estoy tratando de resolver un programa en Python que le pide al usuario un número x, a partir del cuál se va a hallar el sen(x) de ese número, en radianes, pero sin usar librerías sino siguiendo la serie matemática de:

sen(x) = (x^1)/1! - (x^3)/3! + (x^5)/5! ... (+-) (x^n)/n!

Además, el programa tiene que parar cuando la diferencia entre la serie y un nuevo término sea menor o igual a 0.001.

Así, este es el código que he hecho:

Código
  1. import math
  2.  
  3. x = float(input("Ingrese x: "))
  4.  
  5. exp = 1
  6. senox = 0
  7. comparacion = 1
  8. i = 1
  9.  
  10. while math.fabs(comparacion - senox) > 0.001:
  11.  
  12.    comparacion = senox
  13.  
  14.    if i % 2 == 0:
  15.  
  16.        senox -= (x**exp) / math.factorial(exp)
  17.  
  18.    else:
  19.  
  20.        senox += (x**exp) / math.factorial(exp)
  21.  
  22.    exp += 2
  23.    i += 1
  24.  
  25. print ("ANS:",senox)

Y funciona! Para los primeros 35 valores el resultado es bastante aproximado. Aun así, de ahí en adelante los resultados se van muy lejos de lo que en realidad son. Por ejemplo, si coloco x=45, me dice que sen(45) = -302.99513662655323, siendo que sen(45) es en realidad igual a 0.851... y no entiendo por qué? Alguno tiene alguna idea de por qué pueda pasar?

Un saludo! Gracias!

(A propósito, después del número 61 deja de calcular debido a que los números son muy grandes! Error: OverflowError: int too large to convert to float)

 :silbar: :silbar: :silbar:
3  Programación / Java / Usar el Scanner para leer información de Internet [Java] en: 24 Diciembre 2016, 00:34 am
Cómo están? Paso a preguntar algo básico en Java!

Digamos que una página web ( http://es.investing.com/currencies/btc-usd ) tiene el precio actual del bitcoin y quiero usarlo en un programa en Java que convierte de BTC a USD... algo así como que cada que se ejecute el programa pueda hacer la conversión con el precio real del BTC en ese momento.

Escuché que se puede retribuir la información de la página web con un Scanner, pero leyendo la API no encontré un método para leerla así. Alguien sabe cómo se podría hacer con el Scanner, o con algún otro método?

Saludos!
4  Programación / Programación General / Re: Dividir una instrucción en varias líneas [Matlab] en: 30 Noviembre 2016, 23:19 pm
Si, pero parece que ahí es necesaria porque son parámetros.

En los strings sólo se usan los 3 puntos. Esto lo saco de aquí: https://www.mathworks.com/help/matlab/matlab_prog/continue-long-statements-on-multiple-lines.html

Saludos!

EDIT: Encontré un ejemplo que te servirá: https://www.mathworks.com/matlabcentral/answers/31862-display-an-input-sentence-to-the-user-on-multiple-lines

Fíjate la respuesta que dan ahí.

Muchas gracias! De hecho, faltaban los corchetes cuadrados. Así queda solucionado:

Código
  1. opc = double(input(['Ingrese la opción que desea: \n1. Pulgadas a',...
  2.                    'milímetros \n2. Yardas a metros \n3. Millas a kilómetros']))

Un saludo!
5  Programación / Programación General / Re: Dividir una instrucción en varias líneas [Matlab] en: 30 Noviembre 2016, 23:09 pm
Hola!

Reconozco que jamás he usado el programa, pero según veo, para separar un string (s) en varias líneas, debes usar los 3 puntos seguidos (...).

Lo que veo que tienes demás es la coma (,) antes de los 3 puntos.

Quizás ése sea el problema.

Saludos!

Gracias! Pero no, aun así no me sirve :( De hecho, con el inputdlg, la coma es necesaria.
6  Programación / Programación General / Dividir una instrucción en varias líneas [Matlab] en: 30 Noviembre 2016, 22:59 pm
Buenas tardes! Tengo una duda muy sencilla, pero que al tiempo no he podido solucionar. Cuando, en Matlab, uso un inputdlg, puedo dividir la instrucción en varias líneas separando cada parte con comas y agregando tres puntos, como aquí:

Código
  1. datos=str2double(inputdlg({'Ingrese la coordenada en x del punto 1: ','Ingrese la coordenada en y del punto 1: ',...
  2.                            'Ingrese la coordenada en x del punto 2: ','Ingrese la coordenada en y del punto 2: ',...
  3.                            'Ingrese la coordenada en x del punto 3: ','Ingrese la coordenada en y del punto 3: '}))

Aun así, quiero hacer lo mismo con una instrucción que usa un input regular, pero no lo logro. Así lo estoy haciendo:

Código
  1. opc = double(input('Ingrese la opcion que desea: \n1. Pulgadas a',...
  2.                    'milimetros \n2. Yardas a metros \n3. Millas a kilometros'))

Pero me sale este error: Error using input
The second argument to INPUT must be 's'.


Alguien me puede ayudar a separar en varias líneas el texto después de un input? Gracias!
7  Programación / Scripting / Ayuda en Python! Hacer un menú dentro de otro menú con diccionarios en: 2 Julio 2016, 05:16 am
Buenas! Sé que este foro no es tanto para Python, pero tengo un problema que me está dejando mal!

Quiero hacer un menú que funcione dentro de otro. El primer menú me funciona; es decir, el general, pero el menú que va dentro de ese no... y hago exactamente lo mismo que con el primero!

Por ahora me interesa que funcionen las opciones 1-1; es decir, si aparece en la pantalla Si este mensaje aparece, el segundo menú, con opción 1, funciona., significa que encontramos la falla!

Dejo el código:

----------------------------------------------------------------------------------------------------------------------------------------------------

Código
  1. def pulgadas_a_milimetros():
  2.    print('Si este mensaje aparece, el segundo menú, con opción 1, funciona.')
  3.  
  4. def medidas_de_longitud():
  5.  
  6.    print("\nMEDIDAS DE LONGITUD \n")
  7.  
  8.    conversion=int(input('Escoja la conversión que desea: \n1. Pulgadas a milímetros. \n2. Yardas a metros. \n3. Millas a kilómetros.'
  9.                         '\n4. Pulgadas² a centímetros². \n5. Pies² a metros² \n6. Yardas² a metros² \n7. Acres a hectáreas \n8. Millas² a kilómetros². \n'))
  10.    opcion_conversion = {1: pulgadas_a_milimetros, 2: yardas_a_metros, 3: millas_a_kilometros, 4: pulgadas_c_a_centimetros_c, 5: pies_c_a_metros_c, 6: yardas_c_a_metros_c, 7: acrea_a_hectareas, 8: millas_a_kilometros}
  11.  
  12. # A partir de aquí no hace el try, sino que ejecuta el except al final del código :(
  13.  
  14.    try:
  15.        opcion_conversion[conversion]()
  16.    except:
  17.        print('No ha escogido una opción válida.')
  18.  
  19. def medidas_de_volumen():
  20.    print("Por Programar")
  21.  
  22. def medidas_de_peso():
  23.    print("Por Programar")
  24.  
  25. medida=int(input('Escoja las medidas que desea: \n1. Medidas de Longitud. \n2. Medidas de Volumen. \n3. Medidas de Peso. \n'))
  26.  
  27. opcion_medida = {1: medidas_de_longitud, 2: medidas_de_volumen, 3: medidas_de_peso}
  28.  
  29. try:
  30.    opcion_medida[medida]()
  31. except:
  32.    print('No ha escogido una opción válida.')

----------------------------------------------------------------------------------------------------------------------------------------------------

Gracias!
8  Programación / Programación C/C++ / Recorrer integer dígito por dígito en: 20 Junio 2016, 12:46 pm
Buenas! Tengo una duda pequeña!

Hay un ejercicio en el libro "Fundamentos de Programación, Piensa en C" que he podido resolver en otros lenguajes pero no en C!

Necesito pedirle al usuario un número de 4 dígitos e imprimirlo verticalmente. Si digita "6532" imprime:
"6
5
3
2"

En Python era tan sencillo como hacer esto:

num=input("Ingrese un número de 4 dígitos: ")

print (num[0])
print (num[1])
print (num[2])
print (num[3])

En Java con hacer esto ya estaba:

    String numero;
   
    System.out.println("Ingrese un número de cuatro dígitos: ");
    numero = lector.nextLine();
   
    System.out.println(numero.charAt(0));
    System.out.println(numero.charAt(1));
    System.out.println(numero.charAt(2));
    System.out.println(numero.charAt(3));

Pero no puedo en C. Sólo llevo esto:

#include <stdio.h>

int main(){
   int numero;
   
   printf("Ingrese un n%cmero de 4 d%cgitos: ",163,161);
   scanf("%c", &numero);
   
   printf("???????"); //No tengo idea de qué va aquí!
   
}

Hay alguna manera de hacerlo sin usar ciclos for? Gracias!  ;-) ;-) ;-)
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines