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


 


Tema destacado: Java [Guía] Patrones de diseño - Parte 1


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 148
21  Foros Generales / Foro Libre / Re: Trump, a su gabinete: "¿No podemos simplemente invadir Venezuela? en: 5 Julio 2018, 07:45
Es que éste tipo, es como un elefante 'hociqueando' en una farmacia... a cada paso que dá, rompe todo a su paso...

Si hay un conflicto armado en Venezuela que sea por que esa es la solución que elija el propio pueblo venezolano (pienso yo), no por intervención externa.
22  Programación / Programación Visual Basic / Re: No puedo utilizar Load Label en PictureBox en: 4 Julio 2018, 19:41
Un poco más tarde miro el vídeo, ahora tengo solo justo un ratito libre...

Bien... ya me has contestado...
Todo apunta a que el problema es el que asumía... 246 controles en el form... luego en efecto la causa es alcanzar el límite de controles para el formulario...
pero, vamos ahora a encasillarlo exactamente...

En la función que te origina el error, coloca algo de código similar a esto:
Código
  1. private function tufuncionCargandocontroles
  2.    On local error goto CuentameLosControles
  3.  
  4.    '... aquí tu código...
  5.  
  6.  
  7.   Exit function ' ó Sub
  8. CuentameLosControles:
  9.    Call MsgBox(CStr(Me.Controls.Count))
  10. End function

Lós métodos gráficos, circle, line, no son problema, pero ojo, no confundas los métodos gráficos con los 'controles de usuario': line, shape, label, image y frame, todos ellos son 'irreales', pero ocupan puesto como control de usuario...

A la noche que llegue a casa, miro el vídeo y te pongo un ejemplo de operativo...

23  Programación / Programación C/C++ / Re: obtener el número máximo y el número mínimo de matriz aleatoria c++ en: 4 Julio 2018, 10:03
Es absurdo, preguntar que te resuelvan algo como eso...

Son matemáticas de niño de 8 años... hallar el mayor o menor de una serie.

Vas recorriendo la serie si el actual es menor que el que tenías como el menor, entonces ese valor pasa a ser el menor, es decir se 'memoriaza el valor del que ahora es el menor, y se mmemoria para poder en adlante compararlo con el resto... al final d ela serie el que consta como el menor, resulta serlo.
Como el primero de la serie no tiene con quien compararse, el primero se toma de entrada como el menor, luego el resto de comparaciones d ela serie comienza con el siguiente, es decir con el 1.

Hallar el mayor d ela serie, es lo mismo, pero manteniendo otra 'memorizado' (variable), para el considerado mayor hallado...

Y como decía, el código tan elemental, que no merece ponerlo, si alguien es incapaz de hacerlo por su cuenta, lo que debe hacer es dedicarse a otra cosa, que como mínimo "se le dé mejor".
24  Programación / Programación C/C++ / Re: funciòn en C en: 4 Julio 2018, 09:50
Las variables, como sabes (o debieras saber) contienen valores...

Por lo general son declaradas en alguna parte (hay lenguajes que no exigen una declaración explícita (se deduce implícitamente de su uso)).

Sin embargo parece que tú esperas o crees que solo pueden estar declaradas en el cuerpo del código... pero también pueden estar declaradas como constantes, como retorno de funciones  (en ese caso, la función actuaría como una variable), como parámetros en funciones, etc... ése último caso descrito, es el tuyo.

Si se tienes un código como este:

Código:
entero edad
edad = DameMiEdad(fechaNacimiento, AñoActual)
mostrar edad

Y tu pasas estos datos:
Código:
edad= DameMiEdad(2000, 2018)
Te dirá que tu edad es 18 años...

Tu e parte alguna haces una asignación:
Código:
fechanacimiento= 2000
AñoActual = 2018
Esos son los nombres de los parámetros de la función... tu puedes pasar una contante (valor inmediato, como en el jeemplo), u otra variable o expresión numérica, siempre que sea del mismo tipo o sea convertida a dicho tipo (para que no genere error)...

es decir perfectamente podrías haber hecho:

así...
Código:
propiedad get DosMileniosDC
    Devolver 2000
fin propiedad
edad = DameMiEdad(DosMileniosDC, 2018)

ó...
Código:
entero malditoaño = 20 * 100
edad = DameMiEdad(malditoaño, 2018)

ó...
Código:
entero e = 8
entero c = 22
edad = DameMiEdad(((50 +10) * e) - (c * 40) ,  2018)

en el primer caso, al parámetro se la pasa el valor que devuelve una propiedad, en el segundo caso, el valor de otra variable, en el 3º caso, el valor de una expresión... y en ningún caso se ha hecho:
Código:
fechanacimiento= .....

Por que la idea de una función (del diseño léxico de una función), es precisamente decorrar la asignación de variables de una forma que nos parezca un único bloque, coherente, donde se exige el pasó de cada parámetro.... por supuesto el compilador,  tendrá que señalar una posición de memoria y pasar un valor a dicha posición o a un registro de la CPU, es decir a nivel atómico, es lo mismo que asignar el valor a una variable mediante el símbolo '=' ... pero más eficaz en el diseño, más rápido e intuitivo...

Lo demás, que preguntas no tiene sentido... si tu mismo dices que funciona el código, y si lo has programado tú, se supone que cada línea está ahí, porque la entiendes y has puesto lo que entendías que cabe poner...
Cuando un programador da nombres a variables, debe darles nombres de tal modo  que entienda su cometido, que su solo nombre sea autoexplicativo... la única razón para no hacerlo así es que sea algo tan sencillo, que no requiera más complicaciones, pero aún así, sobretodo para los novatos y estudiantes es buena práctica que el nombre dado a una variable autoexplique lo que hace.

Entonces:
Código:
esp=f-1
' esto lo hace a medias... esp, podría ser 'espacios' como podría ser 'esparragos', ó 'espera' ó 'espabiado' ó 'español' ó 'espartaco', ó... si es 'espacio', por qu´leches nio poner 'espacios = ...' te cobran por cada carácter que escribes?????.
En los 80 había que conformarse con una letra y a lo sumo con una letra seguida de un número porque la memopria era muy , muy limitada, ahora resulta de risa la estupidez en ahorrar caracteres a las variables.

Igualmente 'f'... por qué rayos no poner 'filas', pero más aún dado el que esa filas son las filas que tendrá el ejercicio, mejor sería señalarlo como: FilasDeAsteriscos...
Y finalmente llegamos al autoentendimiento del código:
Código:
EspaciosPorLinea = (AsteriscosPorLinea - 1)

Es un problema matemático, antes que de programación que... ...si "unos quedan delimitados por otros", la cantidad de delimitadores siempre es 1 menos, salvo que lo delimite también por fuera en cuyo caso es 1 más...  Así "As" delimitadas por "Bs"...
ABA
ABABA
ABABABA
ABABABABABABABABABABA
...siempre habrá una 'B' menos que 'A'
entonces aún mejor que:
Código:
EspaciosPorLinea = (AsteriscosPorLinea - 1)
"
que es específico al problema sería
Código:
NumDelimitadores = (NumDelimitados -1)
es genérico se aplica a cualquier caso o cosa, pero si te resulta más abstracto, y te deja perplejo o con dudas, sigue siendo válido el
Código:
EspaciosPorLinea = (AsteriscosPorLinea - 1)
pero:
Código:
esp = f-1
Resulta lastimosos de entender...

...falta ver si te lo aplicas en adelante...
25  Programación / Programación Visual Basic / Re: No puedo utilizar Load Label en PictureBox en: 3 Julio 2018, 22:53
Ya, pero es que ese mensaje de errror, no se puede generar así como así...

VB6, tiene un límite de controles gráficos que se pueden cargar en un solo formulario... tal como señalas que tienes muchos objetos... solo puedo asumir que el problema esté por ahí...

Prueba antes de cargar con load... un msgbox que indique cuantos controles tienes cargados...

Código
  1. Private Sub Form_Load()
  2.    With Label1(0)
  3.        .BackStyle = 1 ' opaco
  4.        .BackColor = vbBlack
  5.        .ForeColor = vbWhite
  6.    End With
  7.  
  8.    For k = 1 To 9
  9.        Load Label1(k)
  10.        With Label1(k)
  11.            Call .Move(k * 60, k * 60)
  12.            .Visible = True
  13.        End With
  14.    Next
  15.  
  16.    Call MsgBox(CStr(Me.Controls.Count))
  17. End Sub
  18.  

y repite lo mismo, justo antes de que se origine el error, aver si viendo la diferencia de controles entre el antes y el después queda claro algo más...


Haz copia del formulario antes de nada (y su *.frx asociado)...

Una forma de reproducir dicho picturebox, es crear un nuevo proyecto vacío... y 'copiar el picturebox' y pegarlo al formulario de ese nuevo proyecto (si lo pegas en el mismo formulario-proyecto, corres el riesgo de que se las colecciones de controles aumenten su índice, pero pegado a un nuevo proyecto, cada control se mantiene con su índice (y tabindex) correctamente...

Si la copia resultó sin problemas, crea otro nuevo proyecto ahora corta el picturebox y pégalo allí... guarda cambios en los 3 proyectos, y luego la copia que pegaste en el proyecto nuevo previo, muévelo al proyecto original... y vuelve a guardar cambios... si sigue dando problemas sin más detalles será difícil saber qué es...
No puedes dar al menos el nº de error?... aquí tengo la ayuda en ingés, y no aparece ningún texto similar (traducido)...

De todos modos, por lo que me cuentas, creo que estás cometiendo un grave error al querer manipular gráficos complejos con controles de usuario... dichos controles realmente ni lo son, no poseen un handle propio, si no el del contenedor y sobrecargas innecesariamente el contenedor... aunque este tipo de 'controles' son muy livianos, precisamente por no tener un manejador propio...

Lo adecuado es tener un 'hiddenSurface', una clase que alberga un objeto bitmap, donde vas dibujando con las API de GDI32 y luego tras el dibujado lo vuelcas como gráfico al picturebox... allí si que no importa si luego tienes unos pocos controles line, o label, pero 4, 8, 12, 20, pero ya, no 150...
26  Foros Generales / Noticias / Re: Microsoft resucita al legendario ratón IntelliMouse en: 2 Julio 2018, 19:58
...y por fin pude tener un ratón agarrado adecuadamente, para un zurdo que mueve el ratón en sentido opuesto adónde avanza...

No he vuelto a haber otro que me permita configurarlo "to my way"...
27  Foros Generales / Foro Libre / Re: "Español va a reclamar a la FIFA 15 millones de euros por el VAR" en: 1 Julio 2018, 21:13
...pués suerte, pero...

Las patentes duran 20 años, así que, que se asegure bien esa fecha de 1999...

Además, si la patente no es internacional, si solo se ciñe a España, o si está presentada en más países, pero no en Rusia... perderá el tiempo y algo de dinero en abogados, aunque si son decentes, le dirán (dados los documentos que presente), si merece o no la pena...
28  Foros Generales / Foro Libre / Re: Inolvidable Marranona (Maradona) en: 1 Julio 2018, 09:32
Es el típico problema entre la persona y el profesional.

Como profesional del fútbol, es indiscutible hasta donde llegó Maradona. Como indiscutible es lo penoso de hasta donde ha llegado como persona.

En cualquier caso, donde podría ser un referente para niños en el deporte, cabe en cambio intentar alejarlo lo más posible, porque los niños, no saben separar la vida personal de la profesional y al final resultaría mal ejemplo para los niños...

Pienso que los argentinos, van a tener que remplazar aquello de "la mano de Dios", por "la mano del Diablo"... porque a saber cuanta droga (dosis de drogas) habrá pasado por sus manos... asumo que hasta más que balones...
29  Programación / Programación C/C++ / Re: [ANSI C] Si guardo punteros dinamicos en un archivo ¿Debo hacer free? en: 1 Julio 2018, 09:16
No es lógico, tantas preguntas sobre el tema...

Para qué termines de entenderlo de una vez, te pongo un eemplo simplón, asequible a todo el mundo (incluído niños de 8 años).

- Imagina que tienes un vehículo, coche (carro), moto, bicileta, etc... esto es como el dato en programación, una variable... el objeto que nos interesa hacer algo con él.
- Ahora imagina que has ido a trabajar en tu vehículo... lo aparacas en un  estacionamiento... la plaza donde está aparcado, trayendo el ejemplo a la programación, equivale a la dirección donde consta el dato (la plaza donde yace el vehículo)...

- Así vehículo y plaza ocupada, guardan exactamente la misma relación que dato y su localización en memoria. Piensa en ello, lo que no es razonable en uno, tampoco lo es en otro y viceversa...

Lógicamente mañana, puedes aparacar en esa misma plaza, pero posiblemente sea otra y seguramente cuando termines de trabajar, irás a otra parte y por tanto la plaza será otra... La plaza no se garantiza, por tanto tú necesitas saber siempre donde lo tienes aparcado y no dar por hecho que está en un sitio u otro siempre... pués lo mismo con los datos...

- Por tanto, la plaza donde aparcas es importante, pero ese dato no puede retenerse eternamente como si fuera única... tu vehículo (una variable), si será el mismo pero, puede o no estar aparacardo en una dirección u otra en cualquier momento dado. Luego igualmente no conviene guardar punteros de forma indefinida, sino a cada instante que se precise, tenerlo y mantenerlo y olvidarlo... exactamente igual que la plaza donde está aparacado tu vehículo, ahora está aquí, luego lo mueves y estará alló y puede que un momento ni recuerdes donde está, así que pulsarás el botoncito que incorpora el mando a distancia (que se incluye en el llavero), para hacelro sonar y reconocer donde está...

- Nada de la informática es un 'invento único', siempre se basa en experiencias cotidianas, o bien puede asemejarse bastante a dichas cosas...
30  Programación / Programación General / Re: Duda sobre expresiones condicionales. en: 30 Junio 2018, 11:46
Nunca usé paréntesis en una condición, no sé si mi lenguaje lo admite.
"Mi lenguaje", no es un lenguaje del que podamos decir nada, si no especificas...
¿¿¿Es alguno conocido que usas con regularidad, tu preferido, uno propio que estés haciendo???

Los paréntesis los "inventé" para mostrar que una misma expresión (sin paréntesis o sin suficientes paréntesis) se podría interpretar de distintas formas según dónde se pusieran.
Pués no, no inventaste nada... Supongo que habrás ido a la escuela, y habrás dado algo de matemáticas... y si tienes algo de memoria, podrías recordar que los paréntesis se aplican para dar prioridad y agrupar cordinadamente las expresiones...

En cualquier caso considera que una gramática que no tiene adecuadamente delimitado el orden de precedencia () se dice que es una gramática ambigua, y por consiguiente una misma expresión puede ser interpretada de modo diferente... lo cual se considera un grave error de diseño.

No da el mismo resultado:
  (9-2) + 5 = 12
  9 - (2+5) = 2
Aunque usemos los mismos valores, los paréntesis señalan que deben resolverse antes su interior, tanto antes cuanto más al interior...
 ((((((20-8) + 4) /2) + 1) -2) + 5) = 12
El primero en resolverse es 20-8, porque es el más adentro.


Igual te faltó responder algo:
¿Cualquier relación puede expresarse sin necesidad de paréntesis, y se interpretaría bien?
No está bien formulada la pregunta... Como sigue sí:
¿Hay alguna forma de de formular expresiones que no requieran paréntesis?. SÍ
Hay 3 tipos de notaciones básicas:
Notación de infijo (o normal): Las que solemos usar, porque las entendemos bién al 'leerlas', los operadores aparecen a ambos lados y el operador en medio.
Ejemplos: A + B;  (A*B)+(C-(D*E)) <-- nota que los ejemplos son los mismos para los 3, para que veas las diferencias).
Notación de prefijo (o polaca): Los operadores van delante, los operadores detrás.
Ejemplos: +AB; +*ABC-*DE  
Notación de sufijo (o postfijo, inversa):Los operandos van delante, los operadores al final.
Ejemplos: AB+; AB*C+DE*-

Las dos últimas suelen llamarse Notación polaca (la de sufijo: polaca inversa), y no precisan el uso de paréntesis... La notación polaca es la que se ha venido usando en las calculadoras desde que llegó la electrónica digital... por los pocos recursos de hardware que demandaba. También suelen requerir menos pulsaciones de teclas.
Para pasar una expresión de infijo (normal) a una notación de sufijo, suele recurrirse al algoritmo Shunting yard, y en general suele hacerse uso de una pila para ello...
Supongo que si te cuesta entender expresiones simples, va a serte harto difícil implementar una pila y más el propio algoritmo...

En otro sitio me recomendaron "ifs anidados, arrays, funciones, y objetos" pero no entiendo bien cómo aplicar esas cosas en este asunto.

Como siga así voy a tener que practicar hacer las complicaciones manualmente y cuando tenga más experiencia con eso intentar pasar a este nivel. No pensé que fuese tan difícil.
No sé que estás haciendo, pero hasta una docena de operandos (o la mitad para otros), puede resolverse casi que de cabeza si se tiene cierta práctica...

En general si tienes ciertos condicionantes que suelen ser repetitivos y no son excesivos, suele ser útil resumirlo en unas pocas funciones que devuelvan un boleano, y que la función evalúa 3, 4 parámetros...
por ejemplo la típica funcion: EsAñoBisiesto(año), es un buen ejemplo... aunque solo se pasa un parámetro (los otros se deducen de él, por ser datos conocidos, como los meses y duración de cada mes, etc), donde se analizan varias condiciones hasta llegar a un único valor Verdad o Falso.

Cuando la cantidad de condiciones es abrumadora, o cuando resultan difíciles de entender se recurre a una tabla de verdad, se ponen todas las variables que entran en juego con todos los posibles valores que pueden adoptar y cual es el estado final a cada caso... finalmente se extrae una función con todas las soluciones que arrojan verdad (o falso, si son menos en cantidad)... vamos lo que toda la vida en matemáticas se ha llamado expresiones algebraicas... pero

Por último, aunque no parece que estés muy ducho en el tema, cuando logres avanzar dale un repaso al algoritmo de Warshall (o de floyd-Warshall).
Páginas: 1 2 [3] 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... 148
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines