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 - javi in the sky

Páginas: 1 2 3 4 [5] 6 7 8 9 10 ... 19
81
Hola voy con la respuesta, un palíndromo es una palabra que se lee igual de izquierda a derecha y de derecha a izquierda.

Ejemplo: reconocer es un palíndromo

El algoritmo para determinar si una palabra es un palíndromo puede ser descrito informalmente así: hay que comparar todos los pares de letras comenzando desde los extremos hacia el centro. Si todos los pares son iguales, entonces la palabra sí es un palíndromo. Basta que se encuentre un par de letras correspondientes distintas para que la palabra no sea un palíndromo.

Pseudocódigo:
Código: [Seleccionar]
Inicio
Mostrar 'Ingrese la palabra'
Pedir palabra
i = 1
j = longitud(palabra)
hacer mientras (extraerLetra(palabra, i) = extraerLetra(palabra,j) y i < j) {
        i = i + 1
        j = j - 1
Fin HacerMientras
Si (i >= j) entonces
     Mostrar "La palabra ", palabra, " es palindromo"
Sino
 Mostrar "La palabra ", palabra, " es palindromo"
FinSi
Fin


Ejemplo implementación en java:

Código: [Seleccionar]
public class Palindromo {
    public static void main(String[] args) {
        String[] palabras = {"reconocer","asdfdsa","AsDdSa","Sale El As","No palindromos","Cualquier frase","O palabra","Que no sea palindromo"};
        int indice = (int)(Math.random() * palabras.length);
        System.out.println("Palabra utilizada: "+ palabras[indice]);
        if (palindromo(palabras[indice]))
            System.out.println("Palindromo");
        else
            System.out.println("NO Palindromo");
    }
    static boolean palindromo(String palabra)
    {
        //Quitar espacios y convertirlo a minusculas para hacer las comparaciones
        String modificado = palabra.replaceAll(" ","").toLowerCase();
        int i=0;
        while (i < modificado.length() / 2)
        {
            if (modificado.charAt(i) != modificado.charAt(modificado.length() -1 -i))
                return false;
            i++;
        }
        return true;
    }
}

82
Hola addi, lo tienes explicado en las entregas iniciales de este curso: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=36&Itemid=60

Saludos!

83
Hola Alonso tienes esta declaración repetida con lo cual la primera linea es como si no existiera

Código: [Seleccionar]
            Dim stConexion As String = ("Provider=Microsoft.ACE.OLEDB.12.0­;" & ("Data Source=" & (stRuta & ";Extended Properties=""Excel 12.0;Xml;HDR=YES;IMEX=2"";&quo­t;")))
            Dim stConexion As String = ("Provider=Microsoft.Jet.OLEDB.4.0;" & ("Data Source=" & (stRuta & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";")))


Intenta probar este código

Código: [Seleccionar]
Imports System.Data.SqlClient
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim MyConnection As System.Data.OleDb.OleDbConnection
        Dim DtSet As System.Data.DataSet
        Dim MyCommand As System.Data.OleDb.OleDbDataAdapter
        MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\28b - Ejemplo.xlsx';Extended Properties=Excel 8.0;")
        MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection)
        MyCommand.TableMappings.Add("Table", "aprenderaprogramar.com")
        DtSet = New System.Data.DataSet
        MyCommand.Fill(DtSet)
        DataGridView1.DataSource = DtSet.Tables(0)
        MyConnection.Close()

    End Sub
End Class

saludos!

84
Hola Lorenzo te hablo tanto de lo que me ha gustado como de lo que no me ha gustado, aunque tengo que decirte que me ha gustado más que no gustado.

Ya te lo ha comentado Dan pero en el código de las interfaces

public interface InstalacionDeportiva {
    abstract public String getTipoInstalacion();
}

No debes escribir abstract public porque no hace falta.


El introducir la clase abstracta public abstract class Edificacion no parece mala idea porque favorece el reuso del código, aunque el ejercicio no lo pedía.

Esta forma de bucle creo que no se explica en el curso, pero es una forma de las existentes para crear un bucle.

Código: [Seleccionar]
        for(Iterator iter = lista.iterator(); iter.hasNext();){
            System.out.println(indice.toString()+ "*** " + iter.next().toString());
            indice++;
        }


Estos métodos dentro de GestorDeDatos se ven bien pensados...

Código: [Seleccionar]
public String recogerNombre(){ System.out.println("Introduce el nombre del polideportivo"); return recogerCadena(); }
y además demuestran que sabes bien lo que estás haciendo

En general me ha gustado la clase GestorDeDatos, bien pensada

Y también me ha gustado la clase con el main, breve y se encarga de lo que se debe encargar, de dirigir a las otras clases.

Saludos!!



 8) Distintas formas de bucles y algunas ideas en inglés

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

public class ListIterationExample {

     public static void main(String []args){
        List<Integer> numbers = new ArrayList<Integer>();

        // populates list with initial values
        for (Integer i : Arrays.asList(0,1,2,3,4,5,6,7))
            numbers.add(i);
        printList(numbers);         // 0,1,2,3,4,5,6,7

        // replaces each element with twice its value
        for (int index=0; index < numbers.size(); index++) {
            numbers.set(index, numbers.get(index)*2);
        }
        printList(numbers);         // 0,2,4,6,8,10,12,14

        // does nothing because list is not being changed
        for (Integer number : numbers) {
            number++; // number = new Integer(number+1);
        }
        printList(numbers);         // 0,2,4,6,8,10,12,14 

        // same as above -- just different syntax
        for (Iterator<Integer> iter = numbers.iterator(); iter.hasNext(); ) {
            Integer number = iter.next();
            number++;
        }
        printList(numbers);         // 0,2,4,6,8,10,12,14

        // ListIterator<?> provides an "add" method to insert elements
        // between the current element and the cursor
        for (ListIterator<Integer> iter = numbers.listIterator(); iter.hasNext(); ) {
            Integer number = iter.next();
            iter.add(number+1);     // insert a number right before this
        }
        printList(numbers);         // 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

        // Iterator<?> provides a "remove" method to delete elements
        // between the current element and the cursor
        for (Iterator<Integer> iter = numbers.iterator(); iter.hasNext(); ) {
            Integer number = iter.next();
            if (number % 2 == 0)    // if number is even
                iter.remove();      // remove it from the collection
        }
        printList(numbers);         // 1,3,5,7,9,11,13,15

        // ListIterator<?> provides a "set" method to replace elements
        for (ListIterator<Integer> iter = numbers.listIterator(); iter.hasNext(); ) {
            Integer number = iter.next();
            iter.set(number/2);     // divide each element by 2
        }
        printList(numbers);         // 0,1,2,3,4,5,6,7
     }

     public static void printList(List<Integer> numbers) {
        StringBuilder sb = new StringBuilder();
        for (Integer number : numbers) {
            sb.append(number);
            sb.append(",");
        }
        sb.deleteCharAt(sb.length()-1); // remove trailing comma
        System.out.println(sb.toString());
     }
}

85
Hola Dan

Cosas a corregir:

Esta línea <a id = "Inicio"><title>Animales de Africa</title></a> no debe ir dentro de <head> ... </head> . Entre estas dos etiquetas solo deben ir ciertas declaraciones, no el contenido propiamente dicho de la página web.

Mal:

<h1 style = "text-align: center; color: red;">Animales de Africa</h2>

Si abres h1 tienes que cerrar h1, no puedes cerrar h2.

El texto "El león, el llamado rey de ..." no está entre etiquetas, es preferible siempre tener el texto entre etiquetas <p> en este ejercicio <p>El león... por ciento </p>

Mal escrito: <a href = #Inicio > debe ser <a href ="#Inicio">, mismo fallo en otros puntos

Otra cosa: en mi navegador no se ven los tooltips al posicionarme sobre los links.

Tienes que cuidar la escritura, aquí no ocurre como con el código compilado que si tienes un error te avisa el compilador, aquí es posible que tengas errores y no los veas aunque pueden generar problemas de ahí que debas intentar no cometerlos.

Saludos :)

86
¡Lo siento! Pensé que como ya era una de las entregas finales ya se habían explicado las interfaces, retiro lo dicho pues no tiene sentido comentar algo que todavía no se ha estudiado  :-[

87
Hola! Explicación totalmente clara, con eso el ejercicio queda más que aclarado por lo que no veo necesidad de hacerle modificaciones.

Saludos!

88
Sí, ahora cumple lo que se pedía, aprovechando lo que se comenta en el otro hilo

Se puede usar Math.PI para recuperar el número pi

Se recomienda declarar los tipos estáticos de la clase de la interface para hacer uso del polimorfismo

Figura circulo1 = new Circulo(5.5);  tiene tipo estático Figura y tipo dinámico Circulo


Saludos!!

89
Hola RaGA!

Como se ha hablado en otros hilos recomendable no usar eñes en el código, private int añosConsolidados; - > private int annosConsolidados;

Luego

Código: [Seleccionar]
        Profesor profe1 = new Profesor("Danilo Salazar Quintana",28,2);
        Profesor profe2 = new ProfesorEmerito("Cándido Tolosa Martínez",63,28,3);
        ProfesorEmerito profe3 = new ProfesorEmerito("María Rosa Díaz Díaz",60,27,2);


Pero para hacerlo polimórfico completamente también escribiríamos Profesor profe3 = new ProfesorEmerito("María Rosa Díaz Díaz",60,27,2);

Tienes un error en este constructor

Código: [Seleccionar]
    /**
     * Constructor 2 para objetos de clase ProfesorEmerito
     */
    public ProfesorEmerito(int añosEmerito){
        super();
        añosEmerito=añosEmerito;
    }


Te ha faltado el this - > this.añosEmerito=añosEmerito;


Saludos!

90
Hola Lorenzo! La clase Figura según lo que pide el ejercicio debe tener como atributo dimensionPrincipal

Citar
Define una clase Figura de la que hereden otras dos clases denominadas Cuadrado y Círculo. La clase figura debe tener al menos el campo dimensionPrincipal. Las clases Cuadrado y Círculo deben tener al menos un método calcularArea que permita calcular el área a partir de la dimensión principal, utilizando la fórmula matemática correspondiente. Además, sobreescribe el método equals para que dos cuadrados sean iguales si tienen igual dimensión principal, y dos círculos idem. A continuación crea un programa test donde crees varios círculos y cuadrados y hagas comprobaciones de igualdad usando el método equals.

Las otras clases comparten este atributo, aunque en cada clase el significado es distinto.

En la clase Circulo, el atributo de la superclase se interpretará como radio (pero la subclase no tendrá este atributo, sino que lo usará a partir de la superclase)

En la clase Cuadradado, el atributo de la superclase se interpretará como si fuera el lado (pero la subclase no tendrá este atributo, sino que lo usará a partir de la superclase)

En este tema puedes ver un ejemplo y algunos comentarios - > https://www.aprenderaprogramar.com/foros/index.php?topic=2451.0

Saludos!!

91
Hola la instalación de koha no parece nada sencilla, lo primero que tienes que decidir es con qué distribución de Linux vas a trabajar. Para koha lo recomendado y más usado es Debian.

Saludos

92
Hola, código correcto y respuestas correctas. Lo veo todo bien!

Es interesante comprender el significado de los modificadores de acceso Java y también saber por qué se usan normalmente de una forma u otra.

Saludos!

93
a) ¿Un objeto de tipo estático declarado Taxi puede contener a un objeto Vehiculo en tiempo de ejecución?

Sobre este código lo que yo leería es esto:

Código: [Seleccionar]
public class test {

    public static void main (String[] Args){

        Vehiculo v1 = new Vehiculo();
        Taxi t1 = new Taxi();
        v1 = t1;
        t1 = (Taxi)v1;
        System.out.println("Ejecuta");
    }
}



Vehiculo v1 = new Vehiculo(); : v1 es un objeto de tipo estático vehiculo y tipo dinamico Vehiculo


Taxi t1 = new Taxi(); : t1 es un objeto de tipo estático Taxi y tipo dinámico Taxi

v1 = t1; : v1, que tiene declarado tipo estático vehículo, pasa a tipo dinámico Taxi

t1 = (Taxi)v1; : t1, que tiene tipo estático Taxi, ahora sigue con tipo dinámico Taxi pero referencia al objeto v1, que tiene declarado tipo estático Vehiculo

¿Un objeto de tipo estático declarado Taxi puede contener a un objeto Vehiculo en tiempo de ejecución?

No podría contener a un objeto de tipo dinámico Vehiculo, pero sí a un objeto de tipo estático Vehiculo y tipo dinámico taxi.

Puede ser que me haya liado...

94
Hola Dan del código todo correcto y de los coches yo me quedo con el Chevrolet Camaro, ya sabes, si te toca la lotería me lo envías por correo.

Saludos!!

95
Hola Lorenzo31! la respuesta a la pregunta a) es que sí, aunque es un poco difícil de explicar. Puedes ver la explicación en https://www.aprenderaprogramar.com/foros/index.php?topic=1276.0

La pregunta b) está bien la respuesta, la c) también (clase Vehiculo)

En la d) (clase Taxi) te falta la invocación a super en el método toString. Al ser una relación de herencia hemos de tener en cuenta lo que se hereda de la clase padre. Si no invocas a super en el método toString() no se mostrará toda la información completa (mira que en el constructor sí invocas a super para tener en cuenta a la clase padre). Puedes verlo en https://www.aprenderaprogramar.com/foros/index.php?topic=1147.0

La pregunta e) está bien la respuesta


Saludos!!

96
Hola Mikeien si te lo planteas a largo plazo, en casi cualquier lenguaje de programación se usa la orientación a objetos. El curso java desde cero te servirá para aprender los conceptos de la programación orientada a objetos si no la conoces

Link http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

Saludos!!

97
Hola fedegaray, tu código está bien.

En el bucle

      while (it.hasNext()) {
            System.out.println (it.next());
        }

Lo que haces es mostrar los objetos completos por pantalla, en este caso es Java quien se encarga de mostrar el objeto. Pero no estás recorriendo cada uno de los elementos que contienen los objetos. A modo de ejercicio, sería interesante que probaras a recorrer cada uno de los elementos y mostrar cada elemento por separado.

Esto sería un ejemplo

Código: [Seleccionar]
import java.util.HashSet;
import java.util.TreeSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.Iterator;

public class TestPolimorfismo
{
    public static void main(String[]args){
        List<Set>miLista=new ArrayList<Set>();
        Set<String>miConjuntoDeStrings=new HashSet<String>();
        Set<Integer>miConjuntoDeIntegers=new TreeSet<Integer>();

        miConjuntoDeStrings.add("luna");
        miConjuntoDeStrings.add("sol");
        miConjuntoDeStrings.add("saturno");

        miConjuntoDeIntegers.add(2);
        miConjuntoDeIntegers.add(8);
        miConjuntoDeIntegers.add(5);

        miLista.add(miConjuntoDeStrings);
        miLista.add(miConjuntoDeIntegers);

        Iterator it1 = miLista.iterator();
       
        while (it1.hasNext()) {
            Set tmp = (Set)it1.next();
            Iterator it2=tmp.iterator();
            if(tmp instanceof HashSet) {
                System.out.println("Elementos del HashSet.");
            } else {
                System.out.println("Elementos del TreeSet.");
            }
            int i = 0;                               
            while(it2.hasNext()){
                System.out.println("i: " + (i++) + " - " + it2.next());
            }
        }
    }
}

Otra opción, para evitar tener que hacer el casting Set tmp = (Set)it1.next(); sería declarar el tipo que devuelve el iterator así:

Código: [Seleccionar]
        Iterator<Set> it1 = miLista.iterator();
       
        while (it1.hasNext()) {
            Set tmp = it1.next();
            Iterator it2=tmp.iterator();
            int i = 0;                               
            while(it2.hasNext()){
                System.out.println("i: " + (i++) + " - " + it2.next());
            }
        }

Declarándolo así el iterador es sobre Set, mientras que de la otra manera es sobre Object y de ahí que haga falta el casting.

98
Hola! Debes diferenciar entre etiquetas deprecated (obsoletas, no se deben usar) de otras que no son deprecated aunque se puedan sustituir por código css.

En el código tenemos:

Etiquetas sin problemas: html, head, title, body

Etiquetas deprecated (no se deben usar): ---

Etiquetas que pueden ser sustituidas usando css (recomendable): strong, em, del, big, small, sub, sup

Atributos deprecated, el text en  <body text="green"> y el bgcolor en  <body text="green" bgcolor="white"> , estos atributos no deben usarse.



La etiqueta </pre> se explica en la entrega CU00715B

Saludos!!

99
Saludos morrison

<meta charset="charset utf-8"> está mal, es <meta charset="utf-8">

<seccion> está mal es <section>

Esta ruta está mal src="C:\Users\Public\Pictures\Sample Pictures/crimson editor.jpg" tienes espacios y barras a veces / y a veces \ además es de tu pc no una url por eso la imagen no sale

Te falta cerrar la etiqueta <form>



Antes de dar por terminado el código te recomiendo usar Notepad++ y activar el remarcado de etiquetas, así puedes comprobar si las etiquetas tienen su cierre bien puesto o no.

 ;)

100
Hola Wilfrido, para que se apliquen los estilos tienes que definir el atributo class de los elementos HTML.

Es recomendable realizar este curso de HTML: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=69&Itemid=192

Y luego el de CSS: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=75&Itemid=203

El código quedaría así:

Código: [Seleccionar]
<html>
<head>
<title>CSS - aprenderaprogramar.com</title>
<style type="text/css">
.color_verde {
color: green;
}
.color_amarillo {
color: yellow;
}
</style>
</head>
<body>
<p class="color_verde">Este texto va de color verde.</p>
<p class="color_amarillo">Este texto va de color amarillo.</p>
</body>
</html>

Saludos!

Páginas: 1 2 3 4 [5] 6 7 8 9 10 ... 19

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".