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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 [348] 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 ... 431
3471  Programación / Java / Re: [AYUDA]Convertir un array de enteros a un numero entero en Java en: 6 Noviembre 2017, 21:18 pm
Desconozco que exista una función en ningún lenguaje para hacer eso.

Pueden diseñarse miles y miles de funciones... inútiles, no tiene sentido meter todas las ocurrencias en un lenguaje para que alguien las use 1 vez cada 5 años.

Precisamente por eso existe la programación, para implementar con las funcionalidad básica de un lenguaje aquello que de forma nativa no ofrece pero se necesita.

Aunque el asunto es que es son matemáticas de 10 años o así... y casi mejor que decirte otra cosa es decirte que regreses a parvulitos a estudiar aquella lección que se ve que te saltaste  :silbar: :silbar: :silbar:

Código:
// Se supone que el contenido del array serán valores comprendidos entre 0 y 9)
entero = funcion ConvertirArrayDeBytesAEntero(array de bytes valores() )
    entero valor, k

    bucle para k desde 0 hasta valores.count  
        valor += ((10 elevado a k) * valores(k))
    fin bucle
    devolver valor
fin funcion
Date cuenta, que si operamos con números (operaciones matemáticas) es preferible que el array de entrada sean también números. Si, sí o sí en origen tienes un array de cadenas, o lo conviertes previamente a un array de bytes, o haces la conversión en el propio bucle elemento a elemento, antes de realizar el cálculo.

Si el array es demasiado largo (en realidad suficientemente corto para la capacidad de un array), habrá un error de desbordamiento del entero, razón principal por la que nadie implementará tal función en un lenguaje... no pararía de generarse errores contínuamente día tras día.
Nada entorpece más (el futuro de) un lenguaje que funciones no acotadas, donde los principantes inundan las redes siempre con las mismas preguntas por no entender que están haciendo al usarlo inapropiadamente.

Si los valores son bytes (no cadenas, esto es un byte 0 tiene un valor numérico = 0, en cambio un string "0" es un byte de valor 48), pueden usarse funciones del lenguaje para copiar x bytes de un array a una variable, sin necesidad de ninguna conversión explícita. Se accede al puntero de memoria preciso, y desde ahí se copian al destino los bytes necesarios.


p.d.:
Por último señalar que si la función va a ser invocada constantemente, es más eficiente generar un array con las potencias de 10, al inicio del programa (un array estático), que recalcularlo en cada llamada a la función.
Código:
array estatico de enteros Potencias10(de 0 a 9) //con 10 alcanza hasta un valor de:  9.999.999.999 

funcion InicializarPrograma
    entero k

    bucle para k desde 0 hasta 9
        potencias10(k) = 10 elevado a la k
    fin bucle

    // o un código alternativo al bucle previo:
    potencias10(0)= 1
    bucle para k desde 1 hasta 9
        potencias10(k) = (potencias10(k-1) * 10)
    fin bucle
fin funcion

//y en la línea de la función anterior:
 valor +=  (10 elevado a k) * valores(k)
// la remplazas por:
 valor +=  (potencias10(k) * valores(k))

3472  Foros Generales / Noticias / Re: Consiguen publicar un tweet de 35.000 caracteres en: 6 Noviembre 2017, 15:44 pm
jajaja... odio tWitter, y no por nada complicado, sólo por la memez estúpida del límite de caracteres. Es como decir quéjate todo lo que quieras, pero pronuncia solo 4 letras. o lo mismo que decir: "deja tu currículum, antes de salir... ...en la papelera."

Odié los SMS de los teléfonos móviles, precisamente por su limitación, y que un 'servicio' se fundamente en esa misma limitación me resulta a partes iguales increíble y penoso.

...qué mínimo que el límite fuera 1 PU70 kilobyte... que además seguramente pueda ser comprimido a la mitad o menos a la hora de enviarlo.
3473  Foros Generales / Foro Libre / Re: Activado el artículo 155 de la Constitución Española por primera vez. en: 6 Noviembre 2017, 15:37 pm
Por enesima vez.... un politico preso, no es un preso politico
Esto mismo, llevo repitiendo a algunos amigos desde hace un tiempo.
Al delinquir un ciudadano, va a la cárcel, sea lo que sea, incluso político.

Pero ningún político va la cárcel por sus ideas (en países auténticamente democráticos), si no en todo caso por sus actos. Que es exactamente lo que ha sucedido: políticos que han delinquido y claramente se sabe quiénes y cómo.

Cuando hayas complicaciones sobre quiénes, cómo, etc.. se abren pesquisas que pueden durar años... para ejemplos, véase el caso de Jordi Pujol y familia y véase el caso del Palau... son los mismos políticos (en su mayoría) afectados que por el independentismo, solo que en esos casos las pruebas están enturbiadas y llevará tiempo bosquejar la verdad (hasta donde se logre llegar, claro)). ...pero en lo que hasta cierto punto ha sido transparente como ha sido el teatrillo de la independnecia, demorarlo injustificadamente sería faltar a la diligencia legal exigible.
3474  Foros Generales / Foro Libre / Re: Software libre o software comercial en administraciones públicas en: 6 Noviembre 2017, 15:13 pm
Yo opino básicamente lo mismo que Slava_TZD, pero además añado alguna cosa...

El software libre no implica software gratis, creo que Richard Stallman ya está aburrido de repetirlo. Es el problemo de que en inglés Free refiera tanto a ligre como a gratuito (los ingleses no tienen la palabra gratis en su diccionario, a pesar de que si tengan palabras como: 'agradecer, gratificar' (gratification, perquisite,    
gratuity, meed, etc...)).

Por otro lado, si el software ha de ser libre (en el sentido que se quiera, quizás ambos), entonces se acabaría por cuestionar por qué el resto de cosas de la administración, no lo son también... y al final nos creeremos con derecho a que todo en la administración debiera ser gratis y de libre acceso... pero es fácil darse cuenta del errror, haciéndose unas cuantas preguntas y ver adónde podría conducir responderlas con un sí...:
¿Es adecuado que todos tengamos acceso a los datos de los presidiarios, por ejemplo?. Si son bases de datos de la administración, ¿porqué esos datos han de ser privados?... y no quiero ni entrar en el juego de 'armamento que funciones con software libre', estaríamos al final con que cualquier bocachancla acabara hackeando una base militar, una tanqueta, una fragata o vete tu a saber si la BD de Hacienda o de la Seguridad Social e incribir o borrar pensionistas a su antojo, o eliminar/crear dedudas con Hacienda.

Si me parecería acertado, en cambio que los países tuvieran un departamento de creación de software para la administración del propio país... pero eso es otra historia al margen de la cuestión planteada en el hilo...
3475  Programación / Programación C/C++ / Re: Dos dudas para mejorar el código en: 6 Noviembre 2017, 14:21 pm
Como bien se señala, la idea es ejercitar los bucles. Usando bucles, surge la necesidad de usar también arrays o bien variables reutilizables, y no tantas variables para 'componentes individuales'.

La idea es algo así como usar una llave inglesa en vez de 30 llaves fijas de distinto tamaño.

En pseudocodigo de una manera clara, a base de más líneas de código,
podría ser más o menos así (fíjate que las funciones las pongo en orden inverso a como son llamadas, sólo para que veas desde el final hacia el principio):

Esta función, verifica que dados dos valores son o no entre sí desgarrables (en el orden introducido).
Código:
Buleano = Funcion EsDesgarrable(entero valor, entero valor1, entero valor2)
    string v1 = ((valor1 + valor2)^2).ToString
  
    devolver (v1 = valor.ToString)
Fin funcion


Esta función toma un valor de entrada y genera para el todos los posibles despieces y con cada uno verifica si cumple lo esperado.
Código:
buleano = Funcion DesgarrarValor(entero valor)
    string numeroStr = valor.ToString
    entero digitos = caracteresen(numerostr)
    entero k, n1, n2
    string s1, s2

    bucle para k desde 1 a digitos-1
        s1 = TomarCaracteresDesdeIzquierda(numeroStr, k)
        s2 = TomarCaracteresDesdeDerecha(numeroStr, digitosStr-k)
        n1 = ConvertirAEntero(s1)
        n2 = ConvertirAEntero(s2)
      
        Si EsDesgarrable(valor, n1, n2) = TRUE luego
            devolver TRUE
        fin si    
    fin bucle

    devolver FALSE
fin funcion

La función principal se compone de  1 petición de entrada al usuario (aquí dos, pero puede señalarse un "Introduzca 0 para terminar") y luego una llamada a la función que verifica el asunto y devuelve el resultado, que luego se muestra al usuario... Todo ello encerrado en un bucle hasta que el usuario 'se canse'...
Código:
funcion Problema21
    entero numero
    buleano resultado
    string masPreguntas

    Hacer    
          numero = pedirNumeroAlUsuario
          resultado = Desgarrar(numero)
          Si (resultado = TRUE) luego
              mostrarMensaje "El número introducido es desgarrable."
          sino
              mostrarMensaje "el número introducido no es desgarrable."
          fin si

          // en la peición de arriba puede aceptarse un valor 0, como fin de operaciones, en vez de solicitarlo explícitamente aquí.
          masPreguntas = PedirAlUsusario("desea proceder con otro número (s/n) ?."
    Repetir mientras masPreguntas = "s" //"yes", "si", "y", >0, etc....
fin funcion

Como puedes ver, con solo 3 funciones y aún no simplificándolas el código resultante es muy breve. Bastan 2 bucles y unas pocas variables, que incluso podrían ser menos... el caso presente, no precisa ningún array.

Nota que básicamente al desguazar el número hemos operado convirtiendo en número en una cadena de texto, de la que hemos partido en dos trozos (en un bucle, según lo largo del mismo) y luego a conveniencia volver a convertir en número para hacer las operaciones... siempre es más eficiente operar con números que con cadenas, pero el objetivo del ejecrcicio es plantear la solución al problema para operar con bucles, el objetivo aquí no es lograr una eficiencia óptima. ...es importante que entiendas ambas cosas.

Queda a tu esfuerzo convertir el pseudocódigo a C, para lo que te será necesario entenderlo.

p.d.: Nota, que no he considerado el caso de números negativos... la respuesta es buien fácil, pero tú como lo solucionarías?
3476  Foros Generales / Foro Libre / Re: ¿Por qué el mundo llora a Laika, la perra enviada a morir en el espacio? en: 5 Noviembre 2017, 17:38 pm
Lo más lamentable, es que nunca he visto ni a los rusos ni a los estadounidenses pedir perdón, por esos atropellos.

La palabra "reclutaron", sueña chistosa, por no decir falsa. Cuando te obligan, el reclutamiento, deja de serlo. Dudo mucho que Laika, hubiera querido ir al espacio a morir, aunque su nombre pasara a la Historia (que no la Historia de los perros, solo a la Historia de los humanos).

...y yo tengo serias dudas de que Gagarin realmente fuera al espacio, a medida que pasa el tiempo, me parece más veraz que fue un montaje... es muy difícil creer que después de ver morir a unos animales, tu vayas a aceptar ir, sonriente y encantado de la vida, todo por... fama?. Nada, solo por "la patria".
Supongo que los estadounidenses, también tuvieron sus dudas, pero carecieron de pruebas para dmeostrar que fuera falso, pero como no hay mal que por bien no venga, quizás ahí se les ocurrió a ellos hacer tambén su montaje con lo de la Luna. Cuántas verdades se nos escapan, por tanto farsante político que tiene la Historia.
-------------------

p.d.: yo como no biólogo, pero sí como ser vivo, digo que la hipocresía es querer resolver los problemas a base de prueba y error... (así acabaríamos atinando todos, no te J0D3)...
3477  Foros Generales / Noticias / Re: Estos son los lenguajes de programación que menos gustan a los desarrolladores en: 4 Noviembre 2017, 17:15 pm
No tiene mucho sentido que alguien que no sabe programar en tal o cual lenguaje diga que no le gusta.

Decir que éste o áquel lenguaje no te gusta, solo tiene sentido, cuando lo conoces en profundidad, porque entonces lo que tengas que decir del mismo será con conocimiento de causa y no por 'manía persecutoria'.

A muchos escolares, les basta con que su profesor les diga que tal o cual lenguaje es malo, para que luego se pasen los años despreciando tal lenguaje sin tener ni PU74 idea del mismo. Luego cuando salen con su título siguen con esos ideales distraídos sin una causa real para despreciar a uno u otro lenguaje.

Por ejemplo, jamás he programado en Delphi, pero a todos cuantos he conocido en persona que programan en Delphi, estaban ( y están) encantados con él mismo, motivo suficiente, como mínimo para tener un respeto por algo que no conoces en profundidad.

...pero hay mucho bocazas que se pronuncia sin haber escrito 4 líneas en un lenguaje, así que no puedo dar por válido los resultados del 'estudio' de esa empresa...
3478  Programación / Java / Re: problemas para crear un archivo binario en java en: 4 Noviembre 2017, 16:36 pm
Seguramente sí se está creando, sólo que tú no sabes donde los estás creando.

Tienes como ruta: "prestamos.dat", prueba a poner la ruta absoluta, si es relativa, lo será de donde actualmente esté apuntando.
3479  Foros Generales / Noticias / Re: Suspenden a IBM Watson por recomendar “tratamiento mortal” para pacientes de ... en: 3 Noviembre 2017, 18:14 pm
Es evidente, que el programa tiene en consideración el costo dle tratamiento, que será parte importante de lo que se le exija al programa, en consecuencia, la 'inteligencia artificial', va a lo práctico, matar al paciente cuanto antes ahorra costos.

...más o menos la misma inteligencia que tienen los políticos...
3480  Programación / .NET (C#, VB.NET, ASP) / Re: thread multihilos en: 2 Noviembre 2017, 16:36 pm
De entrada el tema, no debiera haberse puesto aquí. este hilo es para VB6.0 y versiones previas, el adecuado es en .net: https://foro.elhacker.net/net-b62.0/

El tema d ela actualización de vistas, ya se ha tratado.
Se ralentiza cuando un control tras añadir un ítem, trata de actualizar la vsta... entonces si en vez de querer añadir 1 sólo ítem se pretende añadir cientos o miles, el control debe repintarse cientos o miles de veces, de ahí la lentitud...

La solución?, Hay varias...
1 - La más sencilla es ver si el control admite un método AddRange(items), con lo que puedes pasarle un array o colección de algún tipo... (ver sobrecargas).

2 - Otra opción en NET (cuando programas controles del propio NET) es usar los métodos:
    
Código:
objeto.BeginUpdate
    objeto.DataSource = elArray
    objeto.EndUpdate
...cuya misión es precisamente evitar el redibujado. BeginUpdate y EndUpdate marcan el inicio y fin del 'NO-redibujado'...

3 - La práctica cuando el objeto no admite ninguna opción al respecto:
  
Código:
objeto.visible =false
   bucle desde 0 hasta array.count ' o el tope del objeto que sea.
      objeto.addItem(array(k))
   fin bucle
   objeto.visible=true
De hecho este mismo código puede ser parte de una función que tú crees llamada precisamente AddRange(coleccion de algún tipo)

De este modo, fuerzas a que no se redibuje con cada añadido. El propio control (salvo que esté muy mal programado), cuando se añade un ítem no intentará redibujar si resulta que el control no está visible, en consecuencia no pierde tiempo en redibujarlo x veces, si no sólo una al final, cuando lo haces visible de nuevo.


Entonces te darás cuenta que no necesitas múltiples hilos para actualizar un control, de hecho no es aconsejable, porque se pelearán (competirán) por el acceso al control. Los hilos múltiples son adecuados para trareas asíncronas, y esta es una tarea síncrona.


P.d.:
OJO: El pseudocódigo:
 
Código:
objeto.visible =false
   bucle desde 0 hasta array.count ' o el tope del objeto que sea.
      objeto.addItem(array(k))
   fin bucle
   objeto.visible=true
No considera el caso de que el objeto esté invisible, en realidad si fue ocultado desde otro lado, aquí no debería hacerse visible.
 
Código:
   Buleano v = objeto.visible
   objeto.visible =false
   bucle desde 0 hasta array.count ' o el tope del objeto que sea.
      objeto.addItem(array(k))
   fin bucle
   objeto.visible=v ' esto es, reasignamos el mismo estado que tenía previamente
Páginas: 1 ... 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 [348] 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 ... 431
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines