Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Serapis

#2011
A ver, es que si está en pantalla completa, el foco se centra exclusivamente sobre el hDC que tiene el foco...

Se me ocurre, que lo cambies para que no esté en pantalla completa (SetWindowLong, con el estilo apropiado), y que aún así se baje la barra de herramientas (la systray) y la ventana con solo un 2 píxeles menos de ancho y alto que el escritorio... así no está en pantalla completa, pero lo parece y por tanto tolera otra ventana sin exclusividad.
#2012
Me parece magnífico, que los políticos me puedan enviar propaganda... Siempre y cuando los ciudadanos podamos a su vez enviarles también mensajitos por teléfono (que seguro que les van a gustar tanto como a los ciudadanos su propaganda).
#2013
.NET (C#, VB.NET, ASP) / Re: Matriz aleatoria
21 Noviembre 2018, 02:12 AM
Cita de: YreX-DwX en 21 Noviembre 2018, 02:04 AM
Yo había pensado generar el array de primos y en lugar de barajar el array y después asignarlo a cada posición de la matriz, asignar a cada posición de la matriz una posición aleatoria del array de primos (entre 0 y 23) y así no desordenas el array de primos.
No tiene importancia... la próxima vez, que barajes te llega el array tal como quedó desordenado la vez previa, se vuelve a barajar... nunca se precisan en su orden estricto, luego carece de importancia. La ventaja es que de este modo te basta un único array, no dos.
#2014
.NET (C#, VB.NET, ASP) / Re: Matriz aleatoria
21 Noviembre 2018, 02:00 AM
1º Creas un array con los primeros 24 números primos. Esto es trivial, debes ser capaz de hacerlo por tí mismo sin ayuda.
2º Crear una función de barajado. Aquí el algoritmo de Fisher-Yates-Dusternfeld

// el array primos se pasa por referencia
funcion Barajar(array de enteros primos() )
    entero i, j, k

    bucle para k desde 23 hasta 1 cuenta regresiva
        j= aleantorio(entre 0 y k)
        i =primos(k)
        primos(k) = primos(j)
        primos(j) = i
    fin bucle
fin funcion


3º Basta un solo bucle, recorrido hacia arriba, asignando los valores primos barajados. Como el array lo tienes con dos dmensiones desdoblamos el valor de k, o bien usa dos bucles y en cada iteracción interna aumenta 'k'.

hacer mientras k< 24
   x= (k and 3)
   y= (k\6)
   matriz(y,x)= primos(k)
   k +=1
fin mientras


Resumiendo tu código sería:
1º Generar array de primos
2º Barajar los primos.
3º Asignarlos valores primos barajados al array bidimensional (si bastara un array unidimensional, el array primos una vez barajado se podría devolver, haciendo innecesario el punto 3º.

p.d.:
La parte que podría resultarte compleja es la 2ª. Así que t ela explico... toda la vida se le ha llamado el 'algoritmo del sombrero'...
Metes 24 papelitos (con tus números primos), en un sombrero, se barajan... mueven... y se saca uno... sea cual sea, se le ubica en la posición última... el sombrero ahora solo tiene 23 papelitos con primos distintos... se saca otro, sea cual sea se uybica fuera en la posición 22... y se sigue hasta que solo queda 1 papelito, que se saca y se pone en la posición 0...
Al llevarlo al terreno de la programación, reusamos el mismo array, para los que se sacan... por eso al azar, lo que elegimos es una posición y tomamos el que se saca de esa posición para intercambiarlo con el que está en la última posición disponible del array, y ahora se considera que la dispoinibilidad del array es uno menos, ahora se elige al azar uno entre el 0 y el 22, porque la posición 23 ya quedó desierta, al depositar allí el que acaba de salir... al final solo quedan 2, el que se saque se intercambia con el dela psoición 1 y el que queda ocuparñá la posición 0...

Si te cuesta enrtenderlo, llévalo a la práctica, corta papelitos y ponles números ordenados, los barajas y procedes manualmente... eso te ayudará a terminar de entenderlo.
#2015
Yo lo que no entiendo aquí, es que si has creado una aplicación y necesitas loguearte en ella desde otra aplicación, porqué te empeñas en hacerlo a través de la interfaz de usuario, se me antoja como disparar a una diana a ciegas...

Si tu eres quien ha diseñado la 1ª aplicación y quieres hacer una 2ª, lo razonable es que modificarás la 1ª, para alojar un método que pueda ser invocado para hacer login... probablemente la 1ª deba hacer de servidor, para aceptar además otro tipo de peticiones y la 2ª aplicación haría las veces de 'cliente'...

Acceder a una aplicación mediante interfaz de usuario, sería más bien cuando tu no eres el dueño de la aplicación, o meor dicho, cuando tu no las has diseñado, no tienes el código fuente para modificarlo... caso típico de cuando se hizo por encargo, y con el tiempo el programador/empresa que te lo hicieron desapareció y no hay posibilidad de modificar el código...
#2016
.NET (C#, VB.NET, ASP) / Re: Matriz aleatoria
21 Noviembre 2018, 01:29 AM
Cita de: sleepy.lito en 20 Noviembre 2018, 21:50 PM
Código (csharp) [Seleccionar]
#include<stdio.h>
#include<time.h>
int main () {
int cont, primo, n, numero, x, y, c;
int matriz [6][4];
cont=0;
while (cont<=24) {
n=1;
x,y,c=0;
srand (time(NULL));
while (x<6) {
while (y<4) {
numero = 1 + rand () % ((81+1)-2);
while (n<=numero) {
if (numero%n==0) {
n++;
c++;
}
}
if (c==2) {
cont++;
}
}
}
}
}


No sé que sentido tiene no poder usar un bucle for si puedes usar un bucle while... quiero decir que un bucle es un bucle, entonce que más da, toda vez que un bucle de un tipo es fácilmente convertible en otro...
Otra cosa es que no se te permita usar bucles (ni for, ni while), en cuyo caso la opción es hacerlo de modo recursivo, en vez de iterativo.

En tu código veo 3 bucles... (solo considero los bucles de control). Uno que pretende contar hasta 24... pero si luego tienes uno que cuenta hasta 6 y otro que cuenta hasta 4, esos equivalen al otro (6*4=24), luego o el externo es inecesario, o los dos internos sobran.

Otra parte 'rara', es que dices que "...Los números que vayan generándose contiguamente se asignen en la siguiente casilla y así sucesivamente hasta completar la matriz de 6x4...", no sé bien como interpretarlo.
Si es de modo estricto, entiendo que en el ciclo 1 obtienes un valor que se pone en la segunda casilla del array?. Si es así, tienes el problema que cuando llegues al ciclo 24, no podrás ponerlo en la casilla 25 (pués no existe) y  a su vez, la casilla 0 queda desierta... (pués su rellenado exigiría un 'ciclo -1', o bien calcularlo previo a entrar a los bucles)...

Pese a las lagunas... el cascarón de tu problema podría ser algo así (si no he fallado en exceso al intentar entenderte):

Hacer mientras filas < 6
   Hacer mientras columnas < 4
       x= generarNumero  // generar número podría ser una función que realice cálculos, o lo que sea y que devuelve un número.
                                   // Si es algo sencillo, es preferible resolverlo in situ.
       matriz(filas,  columnas) = x  // Asignar el valor al array, pero en la casilla actual
       
       columnas + =1
   Fin mientras

   filas +=1
fin mientras
#2017
Si no recuerdo mal, meses atrás ya se te explicó todo, con ejemplos específicos...

...tu programa recibe los argumentos de la acción registrada para la cual el usuario eligió, entre ellos la ruta del fichero sobre el que se pinchó, naturalmente si se incluyó en el registro que te entregue la ruta, que como ya se te ha explicado se tramita como "%1".
#2018
Programación C/C++ / Re: bingo resuelto
19 Noviembre 2018, 22:55 PM
Para cumplir la tarea, vale... pero lamentablemente rellenar un cartón es un poco más complicado.

Verás, para un bingo, cuando emite cartones, emite como mínimo 6 cartones de 15 bolas (para el bingo de 90 bolas). Eso queire decir que las 90 bolas deben repartirse entre los 6 cartones, si no se cumple tal condición, los cartones estarían 'trucados'.
Además para cada cartón debe haber bolas de todas las decenas (9 bolas), y las otras 6 bolas son de 6 decenas distintas. Es decir ningún cartón puede tener más de dos bolas de una misma decena, y debe tener bolas de cada decena, esto garantiza lo dicho anteriormente, pués es otra forma de decir lo mismo.

Por tanto para hacer el reparto, justo, primero debe crearse un array de 90 bolas (1 al 90, ó 0 al 89)y ser barajado, por decenas (1-10, 11-19, etc..), es entonces cuando puedes hacer el reparto... de las 90 bolas entre los 6 cartones, eliges al azar para cada decena una bola de las que queden en esa decena, con cada elección bajas las bolas de encima (de esa misma decena) y restas una bola a dicha decena. Así ya has elegido las 9 primeras, las otras 6 lo harás eleigiendo al azar la decena (estas 6 no pueden repetirse entre sí), antes de elegir una bola en esa decena entre las que resten. Luego se complica porque para algunas decenas ya se han elegido suficientes, y el reparto debe ser equitativo, etc ...al repartir para 5 cartones, las que quedan son el 6º cartón...
En fin, que es algo más complicado que simplemente elegir al azar 15 bolas, si se pretende que no haya parcialidad.
#2019
ESto resulta ya en mera gilipollez...

Citar–Hey, sé que no me conoces, pero hace muchos años yo tenía tu mismo número. Estoy intentando registrarme en una cuenta vieja que sigue vinculada a –el número–, pero me dice que va a enviarme un código de verificación. Me gustaría saber si te parece bien que yo solicite el código y tú me lo envíes por mensaje. Si no, no hay ningún problema.
Por ejemplo, mi número de tf... lo tengo hace más de 20 años... cuando ni facebook, ni whatsapp, eran siquiera una idea...

Además puestos a 'abusar' de la inocencia de alguien, siempre se podrá decir: "dame tu contraseña, que quiero presumir de hacker"... y sí siempre habrá algún inocente gilip0llas...
#2020
Foro Libre / Re: maquinas expendedoras
16 Noviembre 2018, 15:20 PM
Tras el motor, suele haber varillas, hélices, brazos, etc... es decir tras el motor hay adaptadores para completar el mecanismo que expende el producot.
Si un producto queda al final de la varilla, no diré que quizás una pequeña vibración termine por dejar caer el producto, pero desde luego ninguna vibración hará girar el motor.

Dicho de otro modo, supongamos que a un motor paso a paso, está conectado un hélice sin fin, las vibraciones podrían hacer a  lo sumo mover el producto  dentro de la espira en la que se encuentra, con lo que se podría mover adelante atrás escasos centímetros, suponiendo cierta holgura entre el motor y la hérlice metálica... por lo que un producto solo podría caer, si esa espira es la última de la hélice, el producto cabe en el espacio disponible y se mueve lo suficiente.

Por ejemplo, en la imagen que adjunto, no sería posible. Porque el movimiento (de tener holguras) sería demasiado pequeño, la lata de refresco necesitaría mucho movimiento de desplazamiento para caer... unas meras vibraciones serían  insuficientes.