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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 [158] 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 ... 432
1571  Foros Generales / Foro Libre / Re: ¿Que pasa con la manipulacion de la genetica? en: 1 Marzo 2020, 17:09 pm
Citar
el nuevo cornona virus , que se transmitio de un murcielago a un pangolin , y de este al ser humano
Esto es un 'cuento chino' además contado por chinos....
Quién leches estaba ahí, para ver como un murciélago (el murciélago 0), pasó la enfermedad a un pangolín (pangolín 0) que a su vez se lo pasó a un humano (paciente 0)...  solo falta un vídeo en youtube mostrando el caso...

Desde el mercado de abastos (que dicen que salieron los primeros infectados) hasta el laboratorio de experimentación con virus peligrosos, hay algo así como 100 metros. Apenas había 50 infectados y ya sabían que era 'culpa del pangolín'... pobrecillo.

A mi me parece más razonable que al propio centro se le haya escapado un virus e infectado y matado a varios de sus trabajadores en el centro y para acallar voces y tapar la realidad, decidieran sacar una 'bestia' más sútil del laboratorio y 'soltarla' en el mercado de abastos... después de las primeras decenas de muertos, podrían simplemente sacar 'los suyos', culpando al 'coronavirus' y al mercado de abastos de sus muertes... total en casos de  infecciones graves y contagiosas el protocolo exige incineración, con lo que se elimina cualquier posibilidad de rastreo e investigación posterior.
Así que si alguien en el gobienro de China no estuviera al tanto de lo que pasó en el laboratorio, posiblemente a estas alturas nunca se enteren ya. A mi, la duda que me queda es esa, si el problema parte del gobierno central, si queda recluído a la dirección del laboratorio o (menos probable) limitado a algún investigador en solitario... pangolines llevan comiendo milenios y seguramente en peores condiciones que a día de hoy.

Sobre los clones, coincido en que cada 'recipiente' que actúe de intermediario podría significar una mutación que anule o magnifique la agresividad de un virus...

El problema grave de los laboratorios es que 'juegan a ser Dios', pero fuera del laboratorio, los conejillos de Indias de sus fracaso somos todos, ya que la cantidad de variables en juego diga lo que diga ningún científico, son de entrada desconocidas e inviables de controlar por ningún laboratorio por muy 'avanzado' que diga ser...

Un laboratorio puede investigar que dados: A, B, C ,G, X y T sucede el evento K (y ninguno otro), lo que no pueden saber es que esa sustancia una vez fuera del laboratorio, se enfrentan a miles de variables más que jamás han considerado, no solo la media docena: A,B,C,G,X,T...

Temperatura y presión son sus favoritas, pero el magentismo (por poner un ejemplo en laboratorios médicos pasa desapercibido, tiene que ser un laboratorio de física para que sea una variable clave que participa en la mayoría de experimentos, en los médicos suele ignorarse en todos o casi todos sus experimentos).

...conque deberíamos de dejar de llamar a los laboratorios 'laboratorios', para llamarlos mejor 'alboroto-rios', define mejor el "ni PU74 idea de lo que pasará después con 'esto' que hemos creado cuando salga de aquí"
1572  Programación / Java / Re: Ayuda con programa en Java en: 1 Marzo 2020, 16:13 pm
En realidad el programa estará controlado por el mnúmero de asientos libres.
Entrarías en un ciclo infinito, si le dices al viajero que ese asiento está ocupado y que elija otro (que tambié está ocupado).

Código:
// Inicialmente AsientosTotales = 21  (ó 20 si te expresaste mal).
// Inicialmente AsientosLibres = AsientosTotales
// Inicialmente un array (para un simple ejercicio es suficiente así):
//    Asientos(AsientosTotales) es declarado y dimensionado al número de
//    asientos totales (0 a 20). Y de tipo buleano como ya te han dicho va perfecto para ejercicios.

Si (AsientosLibres > 0)
    mensaje = "Elija su asiento entre el 0 y el 20 (algunos pueden estar ya ocupados)."
    ocupado = ""

    Hacer
        AsientoElegido = EleccionDelUsuario(mensaje + ocupado, 0, 20)
        ocupado = "El asiento " + Asientoelegido.ToString + " ya está ocupado."
    Repetir mientras (Asientos(AsientoElegido) = TRUE)

    Asientos(AsientoElegido) = TRUE
    AsientosLibres  -=1
    Si (AsientosLibres = 0)
        mensaje "Vuelo lleno..."
    fin si
Sino
    mensaje "Lo sentimos no quedan plazas en este vuelo. Elija otra fecha de vuelo u otro destino..."
fin si
Esto te puede dar alguna idea, pero tendrás que acomodarlo a tu código.

Acostúmbrate a poner algo de código o como mínimo un mensaje más descriptivo (ahora mismo es tan genérico que acepta cualquier cosa)... sino lo más probable es que ni recibas respuesta.
1573  Programación / .NET (C#, VB.NET, ASP) / Re: [Duda C#]Suma y Resta en un String en: 28 Febrero 2020, 14:53 pm
Bueno, lo hice del tirón y con prisas pués tenía sueño.
Ahora despejado del cansancio y con más calma veo que se me han escapado algunos detalles... saco un tiempo y lo corrijo.



pongo corregido como cita, para colorear donde haya cambios (las tiquetas code, no dejan, y (razonablemente) no hay geshi para pseudocodigo.
Citar
// Si devuelve true, valor contiene un número en caso contrario, se debe ignorar
Buleano = Funcion SiguienteToken(arraybytes Data(), porreferencia entero Indice, porreferencia entero Valor)
    TokenDeNumero tkn
    buleano negativo  // false de entrada

    Si SaltarEspaciosEIgnorarDesconocidos(data, indice) = FALSE devolver FALSE
 
    tkn = CharsToken(data(indice))
    si (tkn AND TOKEN_SIGNO) luego  // <--- este condicional debía ir por encima del bucle
        Hacer
            negativo  = (tkn = TOKEN_SIGNO_NEG) //true si el signo es negativo
            indice += 1
            Si SaltarEspacios(data, indice) = FALSE devolver FALSE  
            tkn = CharsToken(data(indice))
            si (tkn = TOKEN_DIGITO)
                salir del bucle
            sino
                negativo  = FALSE    // se invalida el resultado previo, hay caracteres desconodicos tras el signo que se encontró.
                Si SaltarEspaciosEIgnorarDesconocidos(data, indice) = FALSE devolver FALSE  
                tkn = CharsToken(data(indice)) // <----linea olvidada
            fin si        
        repetir mientras ( tkn  <> TOKEN_DIGITO)   // <---- la condición de reentrada va mejor abajo
        // visto que al inicio entra si signo, y repite hasta encontrar un dígito, es básicamente lo mismo pero queda más claro así
    fin si
    
    // proveo la solución a los dígitos '0' a la derecha (simplemente se filtran antes):
    Hacer mientras (data(indice) = 48)   // 48 es el valor ASCII del cero.
        indice += 1
        si (indice = Data.Length) devolver FALSE
    repetir
    
    si (indice < Data.Length)  // <--- el bucle anterior anula su necesidad
        indice += 1  //  ídem     "  ----------  "  --------------- " ídem
    
    Si (CharsToken(data(indice)) = TOKEN_DIGITO)  // tras los ceros, podría haber caracteres no dígitos, se resolverá en otra llamada
        Hacer
            indice += 1
            valor *= 10 + (data(indice) - 48)   // <---- Faltaba el -48, tratamos con valores ASCII...
            si (indice = Data.Length) Salir del bucle
        repetir mientras (CharsToken(data(indice)) = TOKEN_DIGITO)   // <--- faltaba el CharsToken(...) para obtener el tipo de token, si no evaluabamos un byte...

        // si no es negativo, se asume que es positivo.
        si (negativo = TRUE)  valor = - valor  // <--- este condicional es preferible bajo el bucle de digitos,
        // (para no complicar la simplicidad del bucle), si no,  daría error con negativos:    ejemplo: -87; -->  -8 * 10 + 7 = -73; --> -73 es distinto de -87
    
        Devolver TRUE  //y valor contiene el valor correcto, si devuelve false, se ignora el valor que contenga...
    sino
        Devolver FALSE
    fin si
fin funcion

en la siguiente función simplemente sobra una línea:
Citar
entero = funcion ParseStringToSumasYRestas(arrayBytes Data() )
    entero total, valor, indice
    
    Hacer mientras SiguienteToken(Data, Indice, valor ) = TRUE
        total += valor
        indice +=1 <--- sobra esta línea.
        si (indice = Data.Length) salir del bucle  //  <--- esta línea no sobra, pero podrría omitirse si se recibe info extra de vuelta
        // el último dígito de un número podría ser también el último del string...
    repetir      
    
    Devolver total
fin funcion

Finalmente indicar que es posible optimizarlo más... si uno se fija bien, podría llegar a haber un chorro de multiplicaciones "*10", tantos como dígitos haya, por cada número... técnicamente solo es necesario una única multiplicación, el resto pueden ser convertidas en sumas. Tiene su tiempito hacer dicha modificación, por lo que lo dejo al esfuerzo de los interesados...  
1574  Programación / .NET (C#, VB.NET, ASP) / Re: [Duda C#]Suma y Resta en un String en: 28 Febrero 2020, 01:31 am
Es mucho más potente (y sobre todo cómodo cuando la gente no domina las expresiones regulares), realizar un automáta que haga justo la parte que se precisa...

Podremos reconocer algo tan complejo como:  " 22  -134 +45 - 087 +170 voy a beber +44j82k"
cuya salida sería: 22 -134 +45 -87 +170 +44 +82 = lo que sume
 " +  232"= 232
 "+23" = 23
 "23   " = 23
 "  23"  = 23
 " 2323tf" = 2323
 " ++++23" = 23
 " +-+-+23" = 23
 " +-+-23" = -23
 " --- 23ffhj"= -23
 " 23.34" = +23  +34 (OJO: no se ha contemplado reconocer decimales, ni con punto ni con coma).
...etc... con negativos...

...cosa que para una expresión regular sería más complejo, dada una falta de uniformidad en el texto...
Nótese que si hay números en el ejemplo que no debieran ser reconocidos, debe ser expresado en las reglas más abajo de la forma conveniente... Como es un ejemplo, no voy a abordarlo en profundidad, lo dejo simple pero que se entienda y el interesado que lo amplíe a sus necesidades. Es decir, no considero 3 casos: decimales ni separadores de miles, tampoco otras bases numéricas que la decimal, una vez entendido el ejemplo, no debería resultar complicado al interesado ampliarlo para admitir tales casos.

Las reglas para número son (uno debe ternerlas claro y hacer los cambos precisos):
 regla "=" componentes     // comentario
--------------------------------------------
 entero = [signo] [spcs] digitos   // el signo es opcional y puede haber o no espacios entre el signo y los digitos
 signo = (positivo|negativo)
 positivo = "+"     // en ausencia de '-' se entenderá que es positivo.
 negativo = "-"
 spcs = espacio [spcs]      // uno o más espacios
 espacio = " "
 digitos = digito [digitos]    // uno o más dígitos
 digito = "0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9" // los digitos decimales, aunque si fuera preciso podrían separararse por bases numéricas, y reconocer números hexadecimales, binarios, octal, etc...

* Como es un ejemplo, no contemplo números con signo (en el pseudocódigo, aquí sería modificar numero y reconocer el caracter separador del decimal. Se ha elegido como separador decimal, la comilla simple como usamos en español (cambiese al gusto).
  numero =  [signo][spcs] digitos  ["'" digitos]   // un número es un entero o un decimal.

* Tampoco contemplo separadores de miles, con las mismas consideraciones que para decimales, se ha elgido el punto como se acostumbra a usar en español:
  entero = [signo][spcs] gruposDig
  gruposDig = primeGrpDig [gruposDigitos]
  primeGrpDig = digito [[digito] digito]      //esto es 1, 2 ó 3 digitos
  gruposDigitos = grupoDigitos [gruposDigitos]   // uno o más grupos de 3 digitos
  grupoDigitos = ["."] digito digito digito   // 3 digitos antecedidos o no, por un punto.

El peudocodigo pués empieza por una enumeración y luego un array que contenga a dicha enumeración.
Código:
enumeracion TokenDeNumero  //tipo byte
    TOKEN_DESCONOCIDO = 0
    TOKEN_SEP_ESPACIO = 1
    TOKEN_DIGITO = 2
    '
    TOKEN_SIGNO = 4                  // para no disitnguir positivo de negativo, si no solo un signo.
    TOKEN_SIGNO_POS = 5
    TOKEN_SIGNO_NEG = 6
    // otros token separadores que se quieran considerar.
fin enumeracion

Array CharsToken(0 a 255)  // uno por cada byte...

funcion Inicializar
    byte k

    CharsToken(32) = TOKEN_SEP_ESPACIO   // el espacio es el 32, el espacio duro el 160, aquí se ignora...

    bucle para k desde 48 a 57
        CharsToken(k) = TOKEN_DIGITO         // dígitos del 0 al 9.
    siguiente

    CharsToken(43) = TOKEN_SIGNO_POS
    CharsToken(45) = TOKEN_SIGNO_NEG
    
    // y eso es todo, el resto de caracteres son ignorados... tienen valor 0 en el array.
fin funcion

Ahora las funciones de reconocimeinto del número:
Código:
// Si devuelve true, valor contiene un número en caso contrario, se debe ignorar
Buleano = Funcion SiguienteToken(arraybytes Data(), porreferencia entero Indice, porreferencia entero Valor)
    TokenDeNumero tkn
    buleano negativo  // false de entrada

    Si SaltarEspaciosEIgnorarDesconocidos(data, indice) = FALSE devolver FALSE
 
    tkn = CharsToken(data(indice))
    Hacer mientras ( tkn  AND TOKEN_SIGNO)
        si (tkn AND TOKEN_SIGNO) luego
            negativo  = (tkn = TOKEN_SIGNO_NEG) //true si el signo es negativo
            indice += 1
            Si SaltarEspacios(data, indice) = FALSE devolver FALSE  
            tkn = CharsToken(data(indice))
            si (tkn = TOKEN_DIGITO)
                salir del bucle
            sino
                negativo  = FALSE    // se invalida el resultado previo, hay caracteres desconodicos tras el signo que se encontró.
                Si SaltarEspaciosEIgnorarDesconocidos(data, indice) = FALSE devolver FALSE  
            fin si
        fin si
    repetir   ' es un  bucle porque podría ser falsos positivos, casos como: "+   qwrt +asd -zxc ... pero saltarían aquí +   23"
    
    ' si no es negativo, se asume que es positivo.
    si (negativo = TRUE)
         valor = - Data(indice) // [b]ojo: si el valor es 0[/b]... dejo a tu esfuerzo resolver el caso.
    Sino
         valor = Data(indice)
    fin si
    
    si (indice < Data.Length)
        indice += 1
        Hacer mientras (data(indice) = TOKEN_DIGITO)
            indice += 1
            valor *= 10 + data(indice)
            si (indice = Data.Length) Salir del bucle
        repetir
    fin si

    Devolver TRUE  //y valor contiene el valor correcto, si devuelve false, se ignora el valor que contenga...
fin funcion

// Esta función y la siguiente son casi iguales, y no es baladí asignar el valor 0 a desconocidos y 1 al espacio...
// solo salta espacios,
//  Este caso está permitido solo entre signo y digitos: entero = [signo][spcs] digitos
Buleano = Funcion SaltarEspacios(arraybytes Data(), porreferencia entero Indice)
    Hacer mientras (CharsToken(Data(indice)) =  TOKEN_SEP_ESPACIO)
        indice += 1
        si (indice = Data.Length) Devolver FALSE   //final del array salimos d ela función.
    repetir
    
    Devolver TRUE
fin funcion

// esta funcion ignora espacios y caracteres desconocidos.
//  Este caso está permitido cuando termina un número y hasta que comience otro.
Buleano = Funcion SaltarEspaciosEIgnorarDesconocidos(arraybytes Data(), porreferencia entero Indice)
    Hacer mientras (CharsToken(Data(indice)) <= TOKEN_SEP_ESPACIO)
        indice += 1
        si (indice = Data.Length) Devolver FALSE   //final del array salimos de la función.
    repetir

    Devolver TRUE
fin funcion

y finalmente la función que interesada en ello:

Código:
entero = funcion ParseStringToSumasYRestas(arrayBytes Data() )
    entero total, valor, indice
    
    Hacer mientras SiguienteToken(Data, Indice, valor ) = TRUE
        total += valor
        indice +=1
        si (indice = Data.Length) salir dle bucle
    repetir      
    
    Devolver total
fin funcion

Esto siempre será más veloz que una expresión regular, además recoge, casos muy distintos de lo que se considera números, que contemplarlos en una expresión regular complicacría y por tanto ralentizaría su resultado. Claro que usarlo o no, depende de si es muy necesario o no, a veces un código menos eficiente (sin llegar a ser deficiente), expresado en 4 líeas e spreferible a otro más eficiente exresado en 200 líneas:
 " +  232"=232
 "+23" = 23
 "23   " = 23
 "  23"  = 23
 " 2323tf" = 2323
 " ++++23" = 23
 " +-+-+23" = 23
 " +-+-23" = -23
 " --- 23ffhj"= -23
 " 23.34" = +23  +34 (OJO: no se ha contemplado reconocer decimales, ni con punto ni con coma).
...etc... con negativos...

Por último, notar que en el pseudocódigo tampoco se ha contemplado la posibiidad de desbordamiento, evidentemente un número declarado de tipo entero, dará desbordamiento si se intenta parsear con "987654321987654321987654321".
Se supone que son valores coherentes 'sumables', en un rango fijado a ser aceptado en el tipo de datos numérico apropiado.
Si fuera el caso, podría llevarse una cuenta de los dígitos que se van hallando y cuando se alcance uno más de lo permitido devolver un error... si se contempla posibles errore,s la funció debería llamarse TryParse... y no Parse...


p.d.: Añado nota, para despistados: "// ojo: si el valor es 0... dejo a tu esfuerzo resolver el caso."
1575  Programación / Programación Visual Basic / Re: [Aporte] LabelPlus (user control) en: 27 Febrero 2020, 01:57 am
Vaya, ya es casualidad que justo fuera abrir el que usaba funciones no disponiobles en mi versión (hay otro proyecto más también).

Es un trabajo muy elaborado incluso con los ejemplos, así que "chapeau".
Confunde en principio lo de 'label..' pués esperaba un control label y bueno labelplus, se queda corto, quizás fuera más adecuado 'MultiControlPlus', porque no es un simple label, admite imágenes y muchas cosas más que lo llevan a comportarse como distintos tipos de controles, adecuadamente configurado...

Algunas críticas (constructivas):
- El eterno debate entre múltiples controles sencillos y un solo megacontrol que haga todo, aparece aquí. El control es tan amplio, que su problema básico proviene de aquí, será difícil dominarlo para adaptarlo a cada necesidad, en ese sentido es cuando múltples controles sencillos suponen una mejor oferta, cada cual dispone solo de las propiedades y rutinas que son precisas para su labor.
Forzar al control a comportarse como determinado otro, supone modificar muchas propiedades, para configurarlo adecuadamente, lo que exige eso... un dominio completo del mismo...
Por otro lado, no se adjunta info con cada propiedad/función que al menos te aclare su funcionalidad cuando el nombre resulta insuficiente.

- Otra pega que le veo, es que tiene, mejor dicho se compone todo su tratamiento gráfico de llamadas a API. Esto supone dos cosas:
---- La primera puede no tener sentido en ciertas circunstancias pero conviene anotarla igualmente: Si un proyecto tiene chorrocientas llamadas a API, ¿no sería mejor escribirlo en C en vez de en VB?.
--- La segunda es la reutilización, al estar toda la funcionalidad embutida en el propio control, él mismo es grande, y toda su funcionalidad no resulta reutilizable, yo hubiera movido todas esas rutinas gráficas a alguna clase.
Propongo dos opciones... una clase BackBuffer o una clase Draw (la diferencia entre ambas es que Draw sería un compendio de rutinas gráficas, y BackBuffer se asociaría al Handle del control que crea su instancia, con esas pequeñas  diferencias, suponen solo parámetros a las funciones de idéntico nombre pués mientras que en la clase 'BackBuffer', al crear la instancia convendrá pasarle el hWnd y medidas del control para crear la 'superficie'. En tanto que en la clase 'Draw', dichos valores deben ser pasados como parámetro a cada función que los precise...
El caso es que con una de las dos clases el mismo proyecto podría albergar varios controles, pués todo eso código que lo engrosa sería común para todos los controles. Es más incluso aunque uno piense para sí: "como es un único control, ningún otro piodrá aprovechar que haya código movido a una clase"... lo cierto es que todavía en ese caso, sería mucho más fácil a futuro atender al mantenimiento o búsqueda de errores en el control, separando la funcionalidad que se espera del control de las rutinas que le otorgan la apariencia gráfica.

- Otro asunto que he visto, es que por ejemplo, a veces una 'vista se compone de varios controles 'LabelPlus', si mueves el 'grande' los otros se quedan en su sitio, es decir están superpuestos para dar esa apariencia. Lo que aclaro es que sería útil disponer del mismo control en su versión ParentControl = TRUE, es decir que haya dos versiones, la que tienes y otra que actúe como contenedor... eso facilita que cuando sea preciso ese tipo de superposiciones, simplemente estarían dentro del control 'LabelplusCtn' que actúa como contenedor, por lo que su traslado (move), 'enbled', 'visible', etc... se aplica a todo su contenido... por supuesto en ese caso, ese cntrol contenedor, no precisaría cierta funcionalidad, aunque incluso en un caso como un scroll, el control haría las veces de la línea, y el botón desplazable y el 'labelPlus vs 'tooltip', podrian meterse dentroy así actuar en conjunto los 3... Pero en fin, es solo una idea.

- Y básicamente eso es todo, un asunto menor (pués es un proyecto de ejemplo), es que, por ejemplo veo un calendario en un form, montado a base de controles LabelPlus y otros controles, el caso es que cuento la friolera de 70 controles 'LabelPlus', sin contrar otros controles... es un claro ejemplo de como un control dedicado a la funcionalidad buscada, es preferible (al menos para mí), a un megacontrol del que luego precisas muchas intancias y cada cual con las propiedades específicas para lograr el objetivo deseado... yo (por ejemplo) tengo por ahí un control calendario, que es un solo control. Todo lo más que tiene es un shape (y un timer, pués ofrece la posibilidad de mostrar la hora en tiempo real y el timer se usa para dicho caso)... todos los supuestos botones y labels, son métodos gráficos (y ninguna llamada a APIs (si recuerdo bien))...

(por cierto, en ese mismo proyecto (el del calendario), en Win XP, el calandario emerge y se oculta rápidamente, no se ve. Lo he solucionado poniendo la propiedad del form Autroredraw a TRUE y desactivando el timer en tiempo de diseño, uno solo de los cambios no surte efecto. Ignoro si en otros sistemas sucede así, o si esos ligeros cambios para dichos sistemas impedirían verse adecuadamente, si no es el caso, convendría aplicarlos, pués así también queda 'listo' para XP (sé que habrá quien no separa como solucionarlo, y por ello preguntar aquí o allá).

A pesar de todo, como digo hay mucha elaboración detrás de este control y está muy bien afinado.  ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)
1576  Foros Generales / Foro Libre / Re: Empezando a aprender sobre hacking en: 26 Febrero 2020, 22:24 pm
Bueno, esto no es ninguna duda ni nada pero simplemente siento la necesidad de xpresar en algún lado mis ganas de empezar en esto, se que soy un chaval y que me queda mucho por aprender, pero la motivación no me la quita nadie!!

Deseadme ánimos y eso gente, y obviamente, cualquier consejillo es agradecido  ;D
Si tus conocimeintos son cero patatero, cualquier cosa para empezar vale, un simple libro es más que suficiente y si por tu edad no cuentas con dinero en tu bolsillo, wikipedia tiene muchos artículos, y en la red pues buscar luego para profundizar (si wikipedia se queda corto en un artículo).

Con esfuerzo y paciencia, a la vuelta de 3 años, la respuesta de Aguijon_zerO, podría  ser asequible... es muy importante no abrumarte al principio, cuando te asomes al abismo que supone el abanico de posibilidade de la computación, lo peor que te pueda pasar es que el exceso de información de desmoralice y desmotive.
1577  Foros Generales / Foro Libre / Re: Muere el aventurero Mike Hughes intentando demostrar que la Tierra es plana en: 26 Febrero 2020, 22:14 pm
En fin, el pobre no habrá podido demostrar que es plana, pero espero que sus seguidores al menos si hayan visto demostrado que es 'dura' de C0J0N3X  :laugh: :laugh:

....y digo yo.... si esto hubiera ocurrido hace 100 años... vale, pero a día de hoy, no habría sido más sencillo montarse en un avión en un viaje trasatlántico de esos que además cruvan por uno de los polos (para aprovechar corrientes y la curvatura terrestre precisamente)... o al menos un piloto adiestrado que sabe hasta donde puede  subir antes de que el avió entre en parada del motos a causa de la rareza del aire???...o mejor aún, un dron ligeramente modificado, o incluso un globo sonda creado exprofeso para sus propósitos????. La ausencia de todo ello, solo viene a corroborar la imbecilidad del tipo (lo que no apena de su muerte, aunque tozudo, creo que mejor para él sería que sigiera vivo).
1578  Foros Generales / Foro Libre / Re: Este árbol es el más peligroso del mundo según el Récord Guinness en: 26 Febrero 2020, 22:08 pm
Este tipo de 'manzano' debió ser el que había en el paraíso del que dio la Sierpe a Eva 
:laugh: :laugh: :laugh: :laugh:
:laugh: :laugh: :laugh:
 :laugh: :laugh:
 :laugh:
1579  Programación / .NET (C#, VB.NET, ASP) / Re: Neumann en c# en: 26 Febrero 2020, 21:55 pm
Es pseudocodigo....

El tipo de variables se deduce de la expresión que tiene a la derecha...
Si trabajo con cadenas, corto, añado, extraigo, concateno, etc... cadenas, pués claramente la asignación será a un tipo de cadena, ¿¿¿no???.
Si sumo, resto, divido, etc... no será un tipo numérico, del tipo exacto que encaje en la magnitud a manejar????

Los métodos dados en un pseudocodigo, ni siquiera tienen por qué existir, si existirá alguno equivalente que haga lo mismo donde difiera seguramente su nombre y puede que sus parámetros... se trata pués de adaptarlo, algo que suele ser sencillo cuando se entiende lo que se lee...

Es arbitrario, como llames a tus controles en tu proyecto, yo no necesito conocer tales nombres para ofrecerte un ejemplo que tu traslades a tu código. Es más, yo he asumido que no es importante siquiera que tengas unos controles 'tipo caja de texto', simplemente el pseudocódigo expuesto, puede ser una función que reciba don tipos númericos: 'Semilla' y 'x' ('x' es las veces que se repite el bucle), luego que esos valores procedan de un textbox, del enésimo valor en un listbox, del valor arrojado por un Scroll, de un inputbox, etc... es irrelevante.

Los códigos hay que entenderlos, si simplemente te pongo el código NET para que hagas un copypaste, no es estaría ayudando nada (aunque muchos creyeren que sí). Es mejor que te enseñen a pescar que darte el pez para la cena...
1580  Programación / .NET (C#, VB.NET, ASP) / Re: Neumann en c# en: 26 Febrero 2020, 09:50 am
No, Engel... has interpretado mal el enunciado (aunque incompleto y confuso)
1.234.567.890 al cuadrado = 1.524.157.875.019.052.100, es decir, elevar un número decimal al cuadrado, a lo sumo dupluca su número de cifras...

Básicamente el código casi está bien... le falta un par de detalles...

Entiendo que el bucle implica que se repite el proceso x veces...

Código:
bucle para k desde 1 a x veces
    cuadrado =semilla * semilla
    txtValor = cuadrado.toString
    listCuadrado.AddItem(txtValor)
    digitos = txtValor.length
    txtValor =txtValor.Substring((dígitos\2) - 3,5)
    semilla = txtValor.parseToLong
    listSemilla.AddItem(txtValor)
Siguiente
Páginas: 1 ... 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 [158] 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 ... 432
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines