Mostrar Mensajes

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


Mensajes - Ogramar

Páginas: 1 ... 76 77 78 79 80 [81] 82 83 84 85 86 ... 100
1601
A modo de recordatorio de árboles binarios:

Recorrido de árboles binarios:

    Preorden: (raíz, izquierdo, derecho). Para recorrer un árbol binario no vacío en preorden, hay que realizar las siguientes operaciones recursivamente en cada nodo, comenzando con el nodo de raíz:

    Visite la raíz
    Atraviese el sub-árbol izquierdo
    Atraviese el sub-árbol derecho

    Inorden: (izquierdo, raíz, derecho). Para recorrer un árbol binario no vacío en inorden (simétrico), hay que realizar las siguientes operaciones recursivamente en cada nodo:

    Atraviese el sub-árbol izquierdo
    Visite la raíz
    Atraviese el sub-árbol derecho

    Postorden: (izquierdo, derecho, raíz). Para recorrer un árbol binario no vacío en postorden, hay que realizar las siguientes operaciones recursivamente en cada nodo:

    Atraviese el sub-árbol izquierdo
    Atraviese el sub-árbol derecho
    Visite la raíz

Si hacemos una prueba con el árbol de enteros con el código que tú has puesto obtenemos por ejemplo lo siguiente:

Insertando los siguientes valores:
69 49 92 29 69 27 51 68 11 37

Recorrido preorden
69 49 29 27 11 37 51 68 92

Recorrido inorden
11 27 29 37 49 51 68 69 92

Recorrido posorden
11 27 37 29 68 51 49 92 69


El dibujo del árbol sería como éste:

            69
         49      92
      29      51
   27      37   
11


El único problema que he detectado en el árbol de enteros por el momento es que si tienes que insertar un valor que ya existía previamente no se inserta. Por eso en la serie anterior del ejemplo aparecen 10 valores como insertados pero sólo 9 valores en los recorridos. Si quisieras corregir esto, tendrías que cambiar alguno de los condicionales para introducir un igual, por ejemplo en vez de if (valorInsertar < datos){ sería if (valorInsertar <= datos){

Para la creación del árbol de enteros estás usando la siguiente estrategia: se crea el nodo raíz con un valor, por ejemplo 69. El siguiente número a insertar se compara con la raíz (69) y si es menor se inserta a la izquierda y si es mayor se inserta a la derecha. En el ejemplo 49 es menor y se inserta a la izquierda. Con el siguiente valor igual, se toma 92 y se compara con la raíz. Por ser mayor se inserta a la derecha. El siguiente valor es 27, se compara con la raíz y por ser menor se inserta a la izquierda. Como el nodo izquierdo ya está ocupado por el 49, se inserta sobre el 49. Se evalúa si es menor o mayor que 49, y por ser menor de 49 se inserta a la izquierda. El siguiente valor es 37. Se compara con la raíz (69) y por ser menor se inserta a la izquierda. Como está ocupado por 49 se compara con 49 y se inserta a la izquierda. Como está ocupado por 29 se compara con 29 y por ser mayor se inserta a la derecha... y así sucesivamente.

La cuestión es que con valores enteros insertas en el árbol basándote en comparaciones de mayor y menor para situar los elementos en un sitio u otro. Con Strings no puedes (o no se le ve sentido) hacer comparaciones mayor - menor, por tanto tienes que elegir otro criterio para realizar la inserción de elementos en el árbol. Puede ser longitud de palabras, orden alfabético, o simplemente crear un árbol balanceado (ir insertando por niveles, primero insertas dos hijos del nodo raíz; luego insertas dos hijos del nodo más a la izquierda y vas insertando nodos hasta que completas un nivel y vuelves a empezar por el siguiente nivel...).

¿Qué criterio es el que quieres usar con Strings?


1602
Si no te entra en el switch eso es lo primero que tienes que resolver. ¿Por qué no entra? Tienes que comprobar los resultados que te estás trayendo. Prueba con algo como esto a ver qué resultados te devuelve:

Código: [Seleccionar]
//Una vez hecho el query...

echo 'Comprobando'.$rs;

$extraido1= mysql_fetch_array($rs);

echo 'Otra comprobacion: '.$extraido1;

if (mysql_num_rows($rs)!=0){

echo 'Entrando en el if';

switch($rs)
{
echo 'Entrando en el switch';
case "1":
header('Location: volu.php');
break;

case "2":
header('Location: volu5.php');
break;

case "3":
header('Location: volu15.php');
break;
default:
        echo "Aun no has puesto el nivel"; 

}
}


1603
Hola, como solemos comentar usa por favor el botón # del foro para pegar código. Una vez lo pulsas te aparecen las etiquetas [ code ] ... [ / code], ahí entre esas etiquetas pega el código y luego pulsa previsualizar para ver si sale bien o si no hacer alguna corrección adicional.

Supongo que tienes activado el php debugging, si no actívalo como se comenta aquí: https://www.aprenderaprogramar.com/foros/index.php?topic=1261

Cuando tienes código relativamente largo no queda otra que ir haciendo comprobaciones paso a paso, lo primero comprueba que te está recuperando el usuario de la base de datos. Sería probar algo como esto:

Código: [Seleccionar]
switch($rs)
{
case "1":
//header('Location: volu.php');
echo 'DETECTADO CASE 1';
break;

case "2":
//header('Location: volu5.php');
echo 'DETECTADO CASE 2';
break;

case "3":
//header('Location: volu15.php');
echo 'DETECTADO CASE 3';
break;
default:
        echo "Aun no has puesto el nivel"; 

}

Según esto te funcione o no podrás enfocar el problema, ver si está al tratar de obtener el tipo de usuario o si está en la redirección.

Las comillas para detectar los case no me cuadran mucho, en la base de datos supongo que lo tendrás como valores numéricos.

Salu2

1604
Hola! Para pegar código pulsa el botón # del editor del foro y pega el código entre las etiquetas [ code ] ... [ / code ] que te aparecerán.

No acabo de entender bien el planteamiento que has hecho aunque a lo mejor si lo explicas sí logre entenderlo. Una matriz no se lee por separado en filas y columnas, sino que una matriz consta de elementos y cada elemento tiene una fila y una columna. Una matriz es un array (arreglo) bidimensional donde el primer índice indica la fila y el segundo la columna (esto normalmente, también podría ser al revés).

En este curso y entrega y en las siguientes puedes ver más explicaciones: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=253:tipos-de-variables-variables-con-indice-o-localizador-arrays-matrices-formaciones-o-arreglos-i-cu00128a&catid=28:curso-bases-programacion-nivel-i&Itemid=59

Para tomar los datos de la matriz lo más normal sería usar algo parecido a esto (F es filas y C columnas):

For Fil:= 1 to F do
For Col:= 1 to C do
writeln('ingrese el elemento ', Fil,Col, 'de su matriz: ');
readln(Matriz[Fil,Col]);
End;
End;

Salu2

1605
Lo que te comentaba es que dices que has conseguido que te funcione bien con int, y que pegues el código con int que te funcione bien para poder verlo y hacer pruebas, compararlo y en base a esa comparación ver qué es lo que falla con los String  ::)

1606
He revisado los archivos y el error que da parece que está relacionado con que alguno de los datos no está bien, es decir, tendrías que revisar cuál es el nombre de servidor, nombre de usuario de base de datos y nombre de la base de datos...

1607
Hola, el ejercicio 1 es muy similar al que se indica aquí para calcular el promedio de un precio: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=298:ejercicios-resueltos-ejemplos-de-pseudocodigo-calcular-volumen-de-un-cilindro-o-un-precio-medio-cu00137a&catid=28:curso-bases-programacion-nivel-i&Itemid=59

Puedes ir guiándote por este curso para intentar ir planteando las soluciones, fíjate en donde empieza a hablar de pseudocódigo y diagramas de flujo: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=28&Itemid=59

A medida que las vayas desarrollando vete pegándolas aquí en el foro y te las corregimos.

Salu2

1608
Hola, ¿qué mensaje de error tienes con el árbol de String? Es decir, dices que "no se que sucede !" pero a qué te refieres exactamente.

Según comentas tienes el código de un árbol tipo int que te funciona perfectamente. ¿Puedes pegar ese código para verlo? Posiblemente a través de ese código se pueda ver qué es lo que te falla en el código con String.

Salu2

1609
¿Dónde están los archivos conexion.php y config.php? Los he buscado en los adjuntos pero no los he visto.

Las rutas, si tú escribes require_once ('directorio/archivo.php'); el archivo será buscado dentro de la carpeta directorio, que estará junto al archivo donde se invoca el require_once.

En tu caso si en el archivo calendario.php tuvieras esto:

Código: [Seleccionar]
<?php 
require_once('include/conexion.php');
echo 
' CODIGO DE CALENDARIO';
?>

Y en el archivo conexion.php situado dentro de la carpeta include tuvieras esto:

Código: [Seleccionar]
<?php 
echo ' CODIGO DE CONEXION<br/><br/>';
?>

Cuando escribas en tu navegador http:// ... / calendario.php debería mostrarse por pantalla esto:

CODIGO DE CONEXION
CODIGO DE CALENDARIO

Salu2

1610
Hola, así es como lo explican en java tutorials:

Código: [Seleccionar]
import java.awt.*;
import java.awt.event.*;

public class SplashDemo extends Frame implements ActionListener {
    static void renderSplashFrame(Graphics2D g, int frame) {
        final String[] comps = {"foo", "bar", "baz"};
        g.setComposite(AlphaComposite.Clear);
        g.fillRect(120,140,200,40);
        g.setPaintMode();
        g.setColor(Color.BLACK);
        g.drawString("Loading "+comps[(frame/5)%3]+"...", 120, 150);
    }
    public SplashDemo() {
        super("SplashScreen demo");
        setSize(300, 200);
        setLayout(new BorderLayout());
        Menu m1 = new Menu("File");
        MenuItem mi1 = new MenuItem("Exit");
        m1.add(mi1);
        mi1.addActionListener(this);
        this.addWindowListener(closeWindow);

        MenuBar mb = new MenuBar();
        setMenuBar(mb);
        mb.add(m1);
        final SplashScreen splash = SplashScreen.getSplashScreen();
        if (splash == null) {
            System.out.println("SplashScreen.getSplashScreen() returned null");
            return;
        }
        Graphics2D g = splash.createGraphics();
        if (g == null) {
            System.out.println("g is null");
            return;
        }
        for(int i=0; i<100; i++) {
            renderSplashFrame(g, i);
            splash.update();
            try {
                Thread.sleep(90);
            }
            catch(InterruptedException e) {
            }
        }
        splash.close();
        setVisible(true);
        toFront();
    }
    public void actionPerformed(ActionEvent ae) {
        System.exit(0);
    }
   
    private static WindowListener closeWindow = new WindowAdapter(){
        public void windowClosing(WindowEvent e){
            e.getWindow().dispose();
        }
    };
   
    public static void main (String args[]) {
        SplashDemo test = new SplashDemo();
    }
}


Tienes que crear una carpeta denominada splash y dentro de ella meter la imagen splash.gif (ver ejemplo de archivo adjunto estando logeado, tú tendrás que poner la imagen propia de tu aplicación)

Ejecuta la aplicación indicando parámetros. Por línea de comandos se haría con java -splash:<file name> <class name>. En este ejermplo sería escribiendo:

java -splash:images/splash.gif SplashDemo

Dependiendo del entorno la invocación con parámetros se hace de una forma u otra

Si te aparece el mensaje SplashScreen.getSplashScreen() returned null
 es que no estás pasando bien los parámetros

1612
La idea natural parece que cuando detectes el evento de presión del button compruebes los valores y cambies las propiedades que tengas que cambiar. Fíjate en este ejemplo cómo recorren las celdas del datagridview y modifican propiedades: https://www.aprenderaprogramar.com/foros/index.php?topic=1029

Salu2

1613
Si ya tienes claro que el problema es de la plantilla (por lo que he entendido cambiando de plantilla desaparece el problema), tendría que ser en la plantilla donde buscar la solución, bien arreglando la plantilla o bien cambiando de plantilla. Es posible que se trate de un conflicto y la plantilla no se adapte bien a la versión de Joomla o a la versión de virtuemart, o bien un conflicto de nombres con estilos css o con funciones javascript, pero habría que estudiarlo. Lo que no acabo de ver es para qué tratar de modificar el código del componente si el problema no deriva de ahí  ::)

1614
Lo primero que tendrías que determinar (o tratar de determinar), de la forma más fiable posible, es qué es lo que ocasiona el problema (ya que puede deberse a varios motivos).

Te indico los pasos que daría yo por si quieres seguirlos:

a) Borrarlo todo, sistema de archivos y bases de datos (suponiendo que esto pueda hacerse)

b) Instalar Joomla desde cero. Sugerencia: usar Joomla 2.5 por ser LTS en vez de Joomla 3.3, a no ser que por algún motivo específico haya necesidad de instalar Joomla 3.3

c) Comprobar y anotar o hacer captura de pantalla de los mensajes que aparecen durante la instalación, ya que ahí a veces aparecen errores o warnings.

d) Comprobar el funcionamiento de Joomla con la plantilla de defecto: crear al menos un par de items de menú, un par de artículos, un par de módulos... y comprobar que todo funciona como debería funcionar.

En este momento volver a evaluar, dependiendo de lo que haya pasado. ¿Ha habido algún warning? ¿Ha habido algún error en la instalación? ¿Joomla funciona correctamente?

El siguiente paso sería cambiar de plantilla para probar la plantilla... y todo esto sin haber instalado virtuemart, ya que el origen de los problemas es posible que no sea virtuemart...

1615
Aquí puede verse un ejemplo de tienda con virtuemart: http://www.marionetasporcorreo.com/es/

1616
¿A qué te refieres con <<Si es una configuración de virtuemart 2.9 de serie>>?

Lo normal es que tú vayas comprando y los productos se vayan añadiendo al carrito, y sólo cuando tú decides terminar la compra es cuando te lleva al proceso de finalizar la compra... Así es como debe comportarse virtuemart cuando lo instalas. Si tras instalarlo no te respondía así, es que tienes algún problema que apunta más a conflicto de versiones, configuración del servidor, error de instalación, etc. en lugar de a un problema con el código.

1617
Pero eso dices que ya estaba ocurriendo ¿?

Citar
con esta plantilla cuando navegas por la web, al apretar el botón de añadir al carro, el popup de virtuemart que nos avisa de que el producto se añadido al carro, y nos da las opciones de seguir comprando o ir al carro, no aparece.

Si ya lo tenías funcionando como querías, ¿para qué lo desactivaste?  ::)

1618
Hola, virtuemart es un componente bastante complejo y no siempre fácil de adaptar a nivel de código. No comprendo bien lo que pretendes: ¿no quieres tener carro de la compra? ¿o quieres tenerlo pero que no aparezca el popup, sino que sea el usuario quien tenga que ir a un enlace de carro de la compra? Y si no quieres tener carro de la compra, ¿cómo quieres que sea el proceso?

Si no quieres el popup pero sí quieres el carro de la compra, y ya no te estaba apareciendo el popup, ¿para qué lo desactivas?

Seguramente tú que llevas un montón de horas dándole vueltas lo tengas todo claro pero al leer esto por primera vez no es tan sencillo de entender  :-\

1619
Hola, este código se resume básicamente en Thread.sleep(1000);

Donde: Thread es una clase del api de java que se usa para implementar diferentes "hilos" de ejecución en un programa. En este caso, simplemente está haciendo uso del método sleep, que detiene la ejecución del hilo (del programa) durante el número indicado de milisegundos, en este caso 1000 milisegundos, que es 1 segundo.

Este tipo de instrucciones se usan por ejemplo cuando hay un bucle en ejecución y se quiere proceder al repintado de pantalla o recálculo de posiciones contínuamente pero sin saturar al computador. Por eso se invoca un método como el que has expuesto tú, de modo que no se produce el repitando o recálculo hasta después de transcurrido un segundo.

Tener en cuenta que en computación un segundo es mucho pero que mucho tiempo  :D

Puedes consultar la documentación sobre Thread del api de Java: http://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html

1620
¿Puedes indicar alguna página web o alguna imagen donde se vea lo que quieres hacer, y también cuáles son los datos de partida para intentar hacerlo con esos datos?

Salu2

Páginas: 1 ... 76 77 78 79 80 [81] 82 83 84 85 86 ... 100

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".