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

#2471

Cita de: Machacador en 18 Mayo 2018, 16:40 PM
Es algo recurrente que a ti cualquier noticia donde tenga que ver USA te moleste...

No entiendo tu actitud... Elektro simplemente comenta algo que yo mismo refrendo...

Hablar de un presidente (o de lo que sea) con la excusa de que Bill Gates está relacionado con la informática, no lo convierte en una noticia de informática, es un chascarrillo propio de viejas... y todo esto al margen de lo que uno piense o deje de pensar sobre política.  No veo que resulte tan difícil mantener claras y separadas las cosas.
#2472
Ok, si...
Como no pude probar el proyecto, lo escribí al vuelo... hay un par de faltas... relacionadas directamente con las colecciones en vb6.

- Vb6, no tiene una función directa para reclamar si un ítem existe en una colección, la solución pasa por provocar un error (si no existe)... que no hemos interceptado (luego lo hago).
Es una manera pobre en programación, resolver problemas a base de provocar 'conscientemente' un error... pero aquí no hay otra manera posible....

- El otro problema es que VB6, en el parámetro de ítem al admitir un valor numérico o un string (pero como un parámetro variant), en vez de determinar el 'vartype(parametrovariant) = que sea string (y en otro caso es un número), asumo que va a lo simple y rápido... si empieza por un dígito, lo toma como un número... desentiéndose de que el valor de un string, es legítimo que empiece por un dígito...

En realidad, tú que puedes ejecutar bien el código, podrías haberte dado cuenta... aunque sea la primera vez que operes con un trieview, la colección nodes, es una implementación de un objeto collection, con los que asumo qu si habrás trabajado más veces... y sus virtudes y carencias son las mismas.

Código (vb) [Seleccionar]

Sub CARGAR_COTI_SEGUN_NOMBRE(ByVal strQuery As String)
   Dim i As Long
   Dim FACTORY As Node
   Dim GROUP As Node
   Dim ARTICULO As Node
   Dim TIPO_ORDEN As String
   Dim Key As String   ' clave del nodo que se buscara y tal vez se añadira...
   Dim Existe As Node  ' nodo que se busca

   '// Conectar la Base Datos con ADO
   Call ConectarBDD
   StrSQL = strQuery
   RST.Open StrSQL, CN, adOpenStatic, adLockOptimistic, adCmdText


   'me.show
   Do While Not RST.EOF

       With TreeView1.Nodes
           .Clear
           Set FACTORY = .Add(, , , RST!NOMBRE_CLI, otFactory, 1)
           For i = 1 To RST.RecordCount

               '<------1 aquí la solución para claves que empiezan con dígito, antecederla con una letra cualquiera, pero mejor si tenemos un ascendente como padre, usamos su propia clave...
               Key = RST!NOMBRE_CLI & CStr(RST!IDCoti)  ' esta es la clave del grupo...

               on error resume next ' <----2 aquí la mitad de la solución para saber si un ítem existe,
               Set Existe = TreeView1.Nodes.Item(Key)  ' buscamos el nodo cuya clave interesa...
               If Not (Existe Is Nothing) Then  ' si existe anadimos el articulo bajo el (como hijo)...
                   Set ARTICULO = .Add(Existe, tvwChild, , "Cant.: " & RST!Cantidad & " - " & RST!Descripcion, 3)
                   'ARTICULO.EnsureVisible
               Else  ' Si no existe se anade el grupo (con su key) y el articulo bajo el...
                   err.clear '<------3 aquí la otra mitad del problema de buscar un ítem (cuando no existe).
                   Set GROUP = .Add(FACTORY, tvwChild, Key, "Número: " & RST!IDCoti & " - " & "Fecha: " & RST!Fecha, otGroup, 2)
                   'GROUP.EnsureVisible
                   Set ARTICULO = .Add(GROUP, tvwChild, , "Cant.: " & RST!Cantidad & " - " & RST!Descripcion, 3)
                   'ARTICULO.EnsureVisible
               End If

               RST.MoveNext
               FACTORY.Expanded = True
           Next i
       End With
   Loop

   '// Cerrar la base de datos y liberar la memoria
   Call CerrarADO
End Sub



Para que no te pierdas en averiguar cuales son los cambios y añadidos, aquí los aclaro:
Añado eso sí, alguna línea extra para ubicarlos correctamente...
Código (vb) [Seleccionar]

         For i = 1 To RST.RecordCount

               '<------1 aquí la solución para claves que empiezan con dígito, antecederla con una letra cualquiera,
                  ' pero mejor... si tenemos un ascendente como padre, usamos su propia clave... delante de la que queremos.
               Key = RST!NOMBRE_CLI & CStr(RST!IDCoti)  ' esta es la clave del grupo...
               ' antes: Key = CStr(RST!IDCoti)  ' esta es la clave del grupo...

               ' esta línea se olvidó... poder simplemente correr el programa, y se hubiera detectado a la primera,
                ' cuando todavía el treeview está vacío (solo con la raíz el 'factory'...
               on error resume next ' <----2 aquí la mitad de la solución para saber si un ítem existe,
               Set Existe = TreeView1.Nodes.Item(Key)  ' buscamos el nodo cuya clave interesa...
               '.....              
               '....
               Else  ' Si no existe se anade el grupo (con su key) y el articulo bajo el...
                   ' Justo en el caso que se produzca error, porque no existe, hay que liberar el error...
                   err.clear '<------3 aquí la otra mitad del problema de buscar un ítem (cuando no existe).
                   Set GROUP = .Add(FACTORY, tvwChild, Key, "Número: " & RST!IDCoti & " - " & "Fecha: " & RST!Fecha, otGroup, 2)


Por último, te diría que cambiaras el orden en el condicional, siempre resulta más sencillo ordenarlo en la forma:
  "si existe esto... hacer A... y si no ... hacer B
que decirlo al revés:
  "si no existe esto... hacer B y si no ... hacer A    (el y si no aquí, equivale a si existe)...
La forma de 'si no existe' es más adecuada cuando solo se hace algo en dicho caso, y nada en el otro...

Piensa que para cuestiones del foro (y más si son muy sencillas), escribo directamente en la cajita de respuesta, luego es fácil que se escape algún gazapo pero confiando que el interesado pueda darse cuenta... y corregirlo, mientras lo prueba.








p.d:
Ya que estamas... y que es tu primera vez con un treeview... nota que todos los nodos que son 'ramas' del árbol, para tener una estructura de árbol en la que pueda buscarse con acceso aleatorio (no por recorrido, que es lento), deben tener una clave única... en cambio los nodos terminales, llamados hojas, no es preciso... esas son las que uno debiera recorrer por índice o 'siguiente', 'previo'...

Dicho de otro modo:
En los nodos terminales, el dato importante es el 'texto' (el valor, que en este caso es un string llamado texto).
En los nodos internos, el dato importante es la 'clave'.



Como tengo hoy un tiempito libre a esta hora... Te adjunto un código que acabo de hacer, para que pruebes... y veas lo necesario de poder buscar un nodo...

Es un sencillo ejemplo, que añade años con sus meses bajo el año... si se intenta añadir un año dos veces, como ya existe, no deja, ni genera un conflicto (si genera un error como ya se ha comentado más arriba, pero se trata)...

Abajo adjunto una imagen de como se ve...
Lleva estos 4 controles, con los siguientes nombres:
Treeview: tv1
Label: labAño
Hscroll: hscrAño
command: comAdd


Código (vb) [Seleccionar]

Private n_Raiz As Node


Private Sub ComAdd_Click()
   Dim key As String
   Dim selYear As Node ', n As Node
   Dim k As Byte
   Dim año As Integer
   
   año = HScrAño.Value
   key = "Año: " & CStr(año)
   
   With Tv1.Nodes
       On Error Resume Next
       Set selYear = .Item(key)
       If (selYear Is Nothing) Then
           Err.Clear
           Set selYear = .Add(n_Raiz, tvwChild, key, key)
           selYear.EnsureVisible
           For k = 1 To 12
               ' si no se va a hacer luego nada con el nodo añadido, se puede ignorar...
               'Set n = .Add(selYear, tvwChild, , MonthName$(k))
               Call .Add(selYear, tvwChild, , MonthName$(k))
           Next
           selYear.Expanded = True
           Call InfoNodos(.Count - 1)
       Else
           MsgBox "Ya se ha añadido el año " & CStr(año) & " al árbol."
       End If
   End With
End Sub

Private Sub Form_Load()
   Set n_Raiz = Tv1.Nodes.Add(, , "Raiz", "Calendario anual")
   HScrAño.Value = year(Now)
End Sub

Private Sub HScrAño_Change()
   LabAño.Caption = "Año: " & CStr(HScrAño.Value)
End Sub

Private Sub InfoNodos(ByVal NumNodos As Long)
   Dim años As Long
   Dim mensajes As String
   
   If (NumNodos > 0) Then
       años = (NumNodos / 13)
       NumNodos = (NumNodos - años)
       mensaje = "El árbol tiene ahora " & CStr(años) & " años y " & CStr(NumNodos) & " nodos más..."
   Else
       mensaje = "El árbol está vacío... solo contiene la raíz..."
   End If
   MsgBox mensaje
End Sub


#2473
Yo no considero ni puedo considerar eso como delito... en realidad se trata de una denuncia pública de un delito... a no ser que me digan que el tipo se colo en la casa del tipo para grabar el vídeo...

Si estaba en la calle, sea poli, enfermero, político o juez... poco importa, leches... las cámaras de tv, graban todos los domingos a millones de espectadores que acuden al estadio a ver fútbol... y nunca ha pasado nada.
#2474
Voy a ver si lo hackeo, y antes de partir, meto a los 200 políticos más dañinos del mundo, y lo desvío al SOL... y 4 70M4R P0R CUL0. :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh: :laugh:
#2475
Cita de: aramys en 17 Mayo 2018, 20:13 PM
Cada jugador debe...   y se considerara que...  un tiempo mayor a 16 minutos... o que su promedio de tiempos... diariamente puede asistir un número variable de jugadores.. en máximo un mes todos los jugadores...

S1 -Cuantos jugadores deben salir del equipo como resultado de la evaluación de las pruebas?
S2 -Cuantos continúan con el equipo?
S3 -Cuantos continúan en el equipo de acuerdo a cada condición establecida?
Cuando existen muchos condicionantes, tantos que resulta prácticamente imposible o tedioso hacerlo de cabeza... en estos casos lo que se hace es recurrir a una tabla de verdad.

En la cabecera de la primera fila, se coloca cada condicionante (un identificador del condicionanteincluso en forma de expresión si fuere preciso), en cada fila bajo la primera, en la primera columna, cada una de las opciones posibles de cada condición... (pueden recogerse en rangos o lista, si comparten condición 5-12; 3-15, 3,7y11, en la misma fila, etc...)

Luego se va rellenando la tabla cruzando ambos datos (colocando en cada casilla del 'mapa' V,F; 1,0;L T,F (la pareja que prefieras). Importante no errar al rellenarlo, porque luego es prácticamente complicado de descubrir el fallo.... revisa varias veces que lo rellenaste correctamente.

Finalmente a la derecha de añade una columna por cada 'pregunta' (S1, S2, S3), y línea a línea se recorre cada caso actualizando mentalmente si se sigue cumpliendo o si deja de cumplirse, al final se pone V (verdadero) ó F (Falso), 1, 0 ó en ingles T, F, como Salida para esa pregunta en esa línea.
Una vez completo toda la columna (para cada salifa, función), se fija uno en si hay más Verdadero que Falsos... como esto es pura álgebra, si aparecen menos Verdadero que Falso, pues lo expresamos en afirmativo, si son menos los falsos lo expresamos en negativo...
Si Solo el Lunes nadas, es más sencillo afirmarlo... "solo nado el lunes" si sólo el sábado no nadas es más sencillo negar ese día que afirmar el resto "solo el sábado no nado" (que decir "nado el lunes, el martes, el miércoles... y el domingo").

Seguramente recuerdes del álgebra aquello de ABC+ACB+CB+DFG+AG...etc... pués igual, a cada condicionante asígnale una letra y a cada caso posible de ese condiionante un número, luego se trata de recorrer la tabla y poner las expresiones resultantes... y al igual que las expresiones de álgebra (porque esto también es álgebra), se pueden resumir desde la forma canónica (eso ya en una segunda fase)...

Finalmente ya reducidas las expresiones... de la tabla de verdad es luego bastante sencillo realizar el pseudocódigo, porque solo tienes que poner los casos de cada condicionante (que afirma o niega como se ha dicho antes, elegir el más breve).
#2476
Como te dije, no pude ejecutar el proyecto por falta de liberías de las referencias...

Cita de: jack06 en 17 Mayo 2018, 16:18 PM
Pues bien, estuve revisando tu codigo pero me lanza errores en 3 puntos el primero es esto

'Aca me marca el 1er error, indicando "No se encontro el elemento"
Set Existe = TreeView1.Nodes.Item(Key)  ' buscamos el nodo cuya clave interesa...
'Aca me indica que "la clave no es valida"
Set GROUP = .Add(FACTORY, tvwChild, , "Número: " & RST!IDCoti & " - " & "Fecha: " & RST!Fecha, otGroup, 2)
'Y aca me indica que "el objeto no es valido"
Set ARTICULO = .Add(GROUP, tvwChild, , "Cant.: " & RST!Cantidad & " - " & RST!Descripcion, 3)

Básicamente tu problema se reduce a que no has copiado la función que te he puesto...
Compara tu línea:
Set GROUP = .Add(FACTORY, tvwChild, , "Número: " & RST!IDCoti & " - " & "Fecha: " & RST!Fecha, otGroup, 2)
con la mía:
' Si no existe se anade el grupo (con su key) y el articulo bajo el...
Set GROUP = .Add(FACTORY, tvwChild, Key, "Número: " & RST!IDCoti & " - " & "Fecha: " & RST!Fecha, otGroup, 2)




Todavía no sé si has cometido otro error, porque la línea aparece dos veces, y el resto de errores pueden demanar del primero, si tras la corrección previa, todavía aparecer error, entonces considera que tampoco copiaste correctamente esta parte:
Nuevamente compara tu línea
Set ARTICULO = .Add(GROUP, tvwChild, , "Cant.: " & RST!Cantidad & " - " & RST!Descripcion, 3)

con la mía (nota que la línea de 'artículo' aparece dos veces, pero son diferentes cada vez)
If Not (Existe Is Nothing) Then  ' si existe anadimos el articulo bajo el (como hijo)...
    Set ARTICULO = .Add(Existe, tvwChild, , "Cant.: " & RST!Cantidad & " - " & RST!Descripcion, 3)

...en fin, es mejor que copies y pegues entera la función que te puse, y remplaza por completo la que tienes, o bien coméntala entera, por si luego quieres analizar más tranquilamente las diferencias...

Vamos, que copiar y pegar, es lo mínimo que uno nunca debería hacer mal... máxime dedicándose a esto...
#2477
Cita de: jack06 en 16 Mayo 2018, 18:46 PM
Que tal perdón por molestar, tengo un duda, espero me puedas ayudar te adjunto el code para que lo puedas apreciar mejor.

Te comento, que uso el control treeview y lo que estoy atascado es como agrupar los datos cargados en ellos, si lo ejecutas veras como esta quedando

https://drive.google.com/open?id=..... retirado por discrección


En la carpeta hay 3 capturas de como seria, espero me apoyes

Gracias x tu tiempo
Lo primero decirte que el propósito del foro es ayudar a todos... una duda resuelta vale para otros, luego procede preguntar en el foro, no en mensajes privados. Los mensajes privados, como su nombre indica, son para mensajes que no atañe a nadie más que a los que participan dle mensaje...

Es posible exponer claramente tus dudas, sin necesidad de exponer todo tu código (si razonablemente no lo quieres exponer), si es lo que te preocupa, de hecho, puedes ver como editando 2 de dichas imágenes que mandaste junto con una sola función de carga del Treeview, basta...

Después de todo, no he podido ejecutar tu proyecto, porque yo tengo instalado el entorno de vb6 en un XP, y tu tienes referencias a librerías, no disponibles en XP.

Lo siguiente decirte, que estás usando la versión de commoncontrols de vb5 (SP2), es mejor si la actualizas por la de vb6 (SP6)...
También podría decirte que hay lugar para mucha optimización, peor ese es otro tema...

A lo que venimos...

Cuando como en tu caso cargas datos procedentes de una base de datos y por tanto a priori, desconoces si los ítems a cargar son únicos o tienen subítems, y en cuyo caso quieres que se coloquen exactamente como subítems DEL MISMO ÍTEM, lo adecuado es localizar si existe ya el ITEM, y en tal caso se coloca como 'hijo' de él...

En tu código, no solo no haces búsqueda es que ni puedes hacerla porque no asignas ninguna clave, para luego poder buscar el nodo...

Este es tu código tal cual lo tenías (modificado para eliminar tantas líneas en blanco y antecediendo las declaraciones de variables a cualquier otra sentencia (das trabajo inútil al analizador léxico y al sintáctico, declarando variables en otras partes que no sea al comienzo)).
Código (vb) [Seleccionar]

Sub CARGAR_COTI_SEGUN_NOMBRE(ByVal strQuery As String)
    Dim i As Long
    Dim FACTORY As Node
    Dim GROUP As Node
    Dim ARTICULO As Node
    Dim TIPO_ORDEN As String
   
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
    '// Conectar la Base Datos con ADO
    Call ConectarBDD
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
   
    StrSQL = strQuery
    RST.Open StrSQL, CN, adOpenStatic, adLockOptimistic, adCmdText

    Do While Not RST.EOF   
        With TreeView1.Nodes
            .Clear
            Set FACTORY = .Add(, , , RST!NOMBRE_CLI, otFactory, 1)
            For i = 1 To RST.RecordCount               
                Set GROUP = .Add(FACTORY, tvwChild, , "Número: " & RST!IDCoti & " - " & "Fecha: " & RST!Fecha, otGroup, 2)                   
                Set ARTICULO = .Add(GROUP, tvwChild, , "Cant.: " & RST!Cantidad & " - " & RST!Descripcion, 3)                                   
       
                RST.MoveNext
                FACTORY.Expanded = True
            Next i
        End With
    Loop
   
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
    '// Cerrar la base de datos y liberar la memoria
    Call CerrarADO
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
End Sub


Y esta es la modificación de la función para que realice el cometido que reclamas...

Nota, que en cada ítem de 'Grupo' añadimos la clave, precisamente para luego poder buscarlo...
Y una vez encontrado (esto es, ya existe), solo se añade el artículo al grupo existente (como hijo de aquel)...
La sintaxis del método Add (nodo) es:
objeto.Add(relativa, relación, clave, texto, imagen, imagenSeleccionada)
Relativa: es una referencia al nodo bajo el cual se trabaja (clave o indice). Se usa el índice cuando la posición es fija y nunca cambia (es más rápido que buscar), se usa la clave, cuando se añaden y eliminan elementos, y por tanto varía y no tendrán nunca un puesto asegurado en un índice específico.
Relación: Indica el posicionado respecto del referenciado (relativo)... primero, último, siguiente, previo, hijo... excepto hijo, el resto es como 'hermano' del referenciado...
Clave: Un texto asociado como único para poder hacer búsquedas... Si se pone clave, y no hicieras búsqueda como hago, no podrías añadirlo, porque te diría que ya existe en la colección nodes un ítem con esa clave... en casos así, donde pueda haber claves repetidas y no interese ponerlos cmo hijos sino al mismo nivel debe omitirse la clave...
Texto: el dato textual que se mostrará en el control para ese ítem...
El resto es autoexplicativo...

Código (vb) [Seleccionar]

Sub CARGAR_COTI_SEGUN_NOMBRE(ByVal strQuery As String)
    Dim i As Long
    Dim FACTORY As Node
    Dim GROUP As Node
    Dim ARTICULO As Node
    Dim TIPO_ORDEN As String
    Dim Key As String   ' clave del nodo que se buscara y tal vez se añadira...
    Dim Existe As Node  ' nodo que se busca
   
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
    '// Conectar la Base Datos con ADO
    Call ConectarBDD
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
   
    StrSQL = strQuery
    RST.Open StrSQL, CN, adOpenStatic, adLockOptimistic, adCmdText

    'me.show
    Do While Not RST.EOF
   
        With TreeView1.Nodes
            .Clear
            Set FACTORY = .Add(, , , RST!NOMBRE_CLI, otFactory, 1)
            For i = 1 To RST.RecordCount

                Key = CStr(RST!IDCoti)  ' esta es la clave del grupo...
                Set Existe = TreeView1.Nodes.Item(Key)  ' buscamos el nodo cuya clave interesa...
                If Not (Existe Is Nothing) Then  ' si existe anadimos el articulo bajo el (como hijo)...
                    Set ARTICULO = .Add(Existe, tvwChild, , "Cant.: " & RST!Cantidad & " - " & RST!Descripcion, 3)
                    'ARTICULO.EnsureVisible
                Else  ' Si no existe se anade el grupo (con su key) y el articulo bajo el...
                    Set GROUP = .Add(FACTORY, tvwChild, Key, "Número: " & RST!IDCoti & " - " & "Fecha: " & RST!Fecha, otGroup, 2)
                    'GROUP.EnsureVisible
                    Set ARTICULO = .Add(GROUP, tvwChild, , "Cant.: " & RST!Cantidad & " - " & RST!Descripcion, 3)
                    'ARTICULO.EnsureVisible
                End If
       
                RST.MoveNext
                FACTORY.Expanded = True
            Next i
        End With
    Loop
   
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
    '// Cerrar la base de datos y liberar la memoria
    Call CerrarADO
    '+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
End Sub

NOTA: Para ver como van apareciendo uno a uno... 'descomenta' las línea de código comentadas...
'ARTICULO.EnsureVisible (y si la ventana aún no es visible
'me.show
OJO: Solo para verlo claro, ejecutando las líneas paso a paso (tecla de función: F8), luego lo vuelves a comentar... carga más rápido si el control se actualiza solo al final... y no con cada añadido.
#2478
Tranquilo, no hay ningún problema...
Cada uno tiene su forma de ver las cosas y en definitiva, nadie y todos a la vez tenemos razón. En defnitiva nos une buscar soluciones, aunque sea desde distintas perspectivas, es un "problema" del intelecto inquieto que no para...  :laugh: :laugh: :laugh:
#2479
A veces pienso que los físicos, desconocen el verdadero significado de la palabra "perturbación".

Para ellos, parece significar un cambio si o si, y prácticamente descomunal...

Lo cierto es que aunque en una miniaturización se realicen o intenten realizar mediciones, habría que cuantificar las desviaciones de cuando no se realizan mediciones, para ver si en efecto existen perturbaciones apreciables o no.

quiero decir, que hay veces en que internamente la fuerza es tal, que algo externo puede ser una perturbación mínima despreciable... algo así como una persona que s epresenta en un huracán de 300km/hora con un aparato para medir... que leches va a perturbar?.. desde luego introduce cambios, porque 'forma parte del sistema', si fuera un desierto, donde solo hay arena, sería un cuerpo de 60-100kg. sería algo notable, pero en una ciudad donde todo lo que barre el huracán puede ir desde una partícula de polvo a toneladas, 1 persona es despreciable como perturbación, es parte del sistema... luego es tonto, señalar siempre que al hacer mediciones perturbas el sistema. Al menos como la ciencia requiere, que sea con pruebas... y no hablar por hablar.
#2480
Cita de: Avispon99 en 16 Mayo 2018, 01:24 AM
... para ser sincero llevo esperando muchos años a que se anuncie la llegada de un asteroide pero nunca ocurre nada...
Pués casualidad o no, justo hoy pasaba uno del tamaño de un campo de bútbol entre la Tierra y la Luna, o quizás leí mal y era a una distancia equivalente a la de Tierra a la Luna (380mil km.)....