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 ... 4 5 6 7 8 [9] 10 11 12 13 14 ... 100
161
Buenas, para quien revise este ejercicio, puede verse una explicación a los resultados que se obtienen en https://aprenderaprogramar.com/foros/index.php?topic=3969.0

Salu2

162
Buenas, para quien revise este ejercicio, cumple con lo que se pedía y funciona correctamente.

Hay un detalle que no veo correcto. Se incluye un método

Código: [Seleccionar]
    public String setEntrada() {
        entradaTeclado = sc.nextLine();
        return entradaTeclado;
    }

Los métodos set, por convención, no llevan return. Por tanto este nombre de método no es correcto de acuerdo con la convención que se suele seguir en programación Java.

De resto todo bien.

Salu2

163
Buenas elendur14, por favor lee https://aprenderaprogramar.com/foros/index.php?topic=1460.0 y sigue las recomendaciones que ahí se dan a la hora de poner título a los temas. Incluye varias palabras clave que correspondan hasta alcanzar el espacio disponible para el título (es importante incluir el nombre del lenguaje y más palabras clave; en este título te ha faltado incluir Java) y pon el código de los ejercicios (por ejemplo CU00667B) al final del título del tema, no al principio.

Algunos comentarios. En el constructor de ListaCantantesFamosos en lugar de listaCantantesFamosos = new ArrayList<>(); deberías haber escrito listaCantantesFamosos = new ArrayList<CantanteFamoso>(); por ser preferible siempre especificar el tipo de objeto que contiene la lista.

La inicialización de Strings por convenio se hace a cadena vacía, no a un espacio en blanco. Es decir, en lugar de
nombreCantante = " ";
discoConMasVentas = " ";

Debe ser (para atenernos al convenio):
nombreCantante = "";
discoConMasVentas = "";

Ten en cuenta que aunque parezca lo mismo, no es lo mismo una cadena vacía (longitud 0) que un espacio en blanco (longitud 1).

Respecto a si es recomendable hacer esto: tempCantante = it.next(); la respuesta es que sí, puedes usarlo siempre que te resulte útil y lo hagas de una forma coherente, como en este caso.

Por otro lado, tu código está muy bien. Lo único que te recomendaría es que como ejercicio pruebes a hacerlo más compacto de la siguiente manera: en la clase con el main, en lugar de crear los dos objetos y luego usar los métodos set, prueba a hacerlo directamente usando el constructor.
Y en el bucle prueba a en lugar de crear el cantante y hacer los set para luego añadir a la lista, hacerlo todo directamente en el lista1.addCantanteFamoso

Finalmente animarte a que nos ayudes a responder en los foros. Revisando ejercicios de compañeros adquirirás destreza en la revisión de código y serás cada vez más rápido en su análisis, aparte de que nos ayudarás.

Salu2

164
Buenas, para quien revise este ejercicio, tener en cuenta que soluciona (bien) sólo el primer ejercicio propuesto. Quien quiera ver una solución a ambos ejercicios de la entrega CU01150E del curso de javascript puede verla en https://aprenderaprogramar.com/foros/index.php?topic=3390.0

Salu2

165
Buenas, para quien revise este ejercicio, cumple con lo que se pedía y funciona correctamente.

Hay un detalle que no veo correcto. Se incluye un método

Código: [Seleccionar]
    public String setEntrada() {
        entradaTeclado = sc.nextLine();
        return entradaTeclado;
    }

Los métodos set, por convención, no llevan return. Por tanto este nombre de método no es correcto de acuerdo con la convención que se suele seguir en programación Java.

De resto todo bien.

Salu2

166
Buenas, para quien revise este ejercicio, cumple con lo que se pedía y funciona correctamente.

Hay un detalle que no me gusta. Se incluye un método

Código: [Seleccionar]
    public String setEntrada() {
        entradaTeclado = sc.nextLine();
        return entradaTeclado;
    }

Los métodos set, por convención, no llevan return. Por tanto este nombre de método no es correcto de acuerdo con la convención que se suele seguir en programación Java.

Otra cosa la clase Dni por su nombre parece representar un Dni, pero no contiene el atributo numeroDNI. Posiblemente hubiera sido preferible nombrarla como calculadoraLetraDNI para que el nombre describiera mejor sus responsabilidades.

De resto todo bien, y bien planteada la distribución en varias clases para distribuir las responsabilidades.

Salu2

167
Buenas, por favor mirar este hilo donde se explica cómo poner título a los temas en el foro: https://aprenderaprogramar.com/foros/index.php?topic=1460.0 es importante que pongas un título como se indica. Este lo corregiré yo.

La cosa como bien dices se va complicando un poco, pero sólo un poco. Creo que lo más importante es que avances comprendiendo lo que vas haciendo, aunque vayas un poco más lento. A veces asimilar las cosas requiere un poco de tiempo. Y una vez vas asentando los conceptos la complejidad se va diluyendo como un azucarillo en el agua porque cada vez tienes más experiencia...

El ejercicio está bien resuelto, y me gusta cómo has planteado el código pues aunque podría haberse hecho un poco más compacto, la lógica está muy bien autodescrita por el propio código y los nombres de variables. Animo. Salu2

168
Buenas, para quien revise este ejercicio comentar lo siguiente:

- Hace uso de expresiones regulares, que no se han explicado en el curso y por tanto no es necesario su uso dentro del programa del curso.

- Los nombres no son del todo adecuados. Por ejemplo el método validarNumero en realidad no es un método para validar un número. Hace más cosas: pide una entrada el usuario, la valida y devuelve un número, por lo tanto no es un nombre que describa adecuadamente lo que hace el método.

- El diseño no es el más adecuado (todo el código en una única clase, uso de atributos estáticos, etc.).

Salu2

169
Buenas, para quien revise este ejercicio decir que está bien resuelto y es un buen ejemplo de herencia en JavaScript con prototype. El código anterior hay que montarlo en archivos para que funcione. Para que resulte más fácil de probar lo dejo aquí todo unido para que pueda probarse con un solo archivo:

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Ejercicios (CU01147E) </title>
<style type="text/css">
body{
background: green;
font-family: Arial, Helvetica, sans-serif;
}
button{
margin: 100px;
background-color:blue;color:white;width:120px;
border-radius: 5px;
}
</style>
<script type="text/javascript">
function cometa(diametro, temperatura, nombre){
this.diametro = diametro;
this.temperatura = temperatura;
this.nombre = nombre;
this.radio=0;
this.farenheit=0;
}

function prototipoCometa(){
this.definicionSegunDiccionario = 'Astro formado por un núcleo poco denso y una cola o cabellera luminosa, que describe una órbita muy excéntrica, visible cuando se aproxima al Sol';
this.obtenerRadio = function (){
this.radio = this.diametro/2;
};
this.obtenertemperaturaFarenheit = function(){
this.farenheit = (this.temperatura * 9/5) + 32;
};
}
cometa.prototype = new prototipoCometa();
function cargarCometa(){
var cometa1 = new cometa(50000,32,'Halley');
var cometa2 = new cometa(30000,22,'Shoemaker-Levy 9');
var cometa3 = new cometa(10000,12,'Hale-Bopp');
cometa1.obtenerRadio();
cometa1.obtenertemperaturaFarenheit();
alert('La definición segun diccionario es '+cometa1.definicionSegunDiccionario+' El cometa1 su nombre es '+cometa1.nombre+' tiene un diametro de '+cometa1.diametro+
' con una temperatura de '+cometa1.temperatura+'°C'+' con un radio de '+ cometa1.radio+' y temperatura farenheit '+cometa1.farenheit+' °F');
cometa2.obtenerRadio();
cometa2.obtenertemperaturaFarenheit();
alert('La definición segun diccionario es '+cometa2.definicionSegunDiccionario+' El cometa2 su nombre es '+cometa2.nombre+' tiene un diametro de '+cometa2.diametro+
' con una temperatura de '+cometa2.temperatura+'°C'+' con un radio de '+ cometa2.radio+' y temperatura farenheit '+cometa2.farenheit+' °F');
cometa3.obtenerRadio();
cometa3.obtenertemperaturaFarenheit();
alert('La definición segun diccionario es '+cometa3.definicionSegunDiccionario+' El cometa3 su nombre es '+cometa3.nombre+' tiene un diametro de '+cometa3.diametro+
' con una temperatura de '+cometa3.temperatura+'°C'+' con un radio de '+ cometa3.radio+' y temperatura farenheit '+cometa3.farenheit+' °F');

}
</script>
</head>
<body>
<section>
<div>
<button onclick="cargarCometa();">Cargar valor de las cometas</button>
</div>
</section>
<script type="text/javascript" src="js/funciones47.js"></script>
</body>
</html>

170
Buenas, para quien revise este ejercicio decir que está bien resuelto y es un buen ejemplo de cómo crear objetos JavaScript a partir de funciones. El código anterior hay que montarlo en archivos para que funcione. Para que resulte más fácil de probar lo dejo aquí todo unido para que pueda probarse con un solo archivo:

Código: [Seleccionar]
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Ejercicios javascript (CU01143E)
</title>
<style type="text/css">
body{
font-family: Arial, Helvetica, sans-serif;
background: yellow;
}
button{
background-color:blue;color:white;width:120px;
border-radius: 5px;
}
</style>
<script type="text/javascript">
function cargarDatos(){

var nombre = prompt("Ingrese su nombre: ", "");
var apellido = prompt("Ingrese su apellido: ", "");
var saldo = prompt("Ingrese el saldo: ", "");
var cuenta1 = new CuentaBancaria(nombre,apellido,saldo);
cuenta1.mostrarDatos();
}
function validar(){

}

function CuentaBancaria (nombre,apellido,saldo) {
this.nombreTitular = nombre;
this.apellidosTitular = apellido;
this.saldo = saldo;
this.mostrarDatos = function () {
var msg = 'Ha creado una cuenta bancaria ';
    msg = msg + 'Los datos de la cuenta son Nombre: ' + this.nombreTitular;
    msg = msg + '; Apellidos: ' + this.apellidosTitular + '; Saldo: ' + this.saldo;
    alert(msg);
};
}
</script>
</head>
<body>
<div>
<button onclick="cargarDatos();">Crear cuenta bancaria</button>
</div>
</body>
</html>

Salu2.

171
Buenas, añado algunas cuestiones: tienes mal el planteamiento del constructor de la clase Casa, ya que no estás incluyendo los atributos SalonCasa y CocinaCasa. Todos los atributos son atributos, independientemente de que sean tipos primitivos u objeto. También tienes mal los métodos set y get de la clase Casa. En este hilo tienes una explicación (verla con calma): https://aprenderaprogramar.com/foros/index.php?topic=1220.0

Nota: siguiendo a https://aprenderaprogramar.com/foros/index.php?topic=1460.0 cuando pongas título a un tema por el código (p.ej. CU00641B) al final del mensaje

Salu2

172
Buenas, para quien revise este hilo, tener en cuenta que para operar con los ficheros se deben abrir y cerrar y además debemos especificar para qué se abre: sólo para escribir, sólo para leer, para ambas cosas, etc. Si manipulamos un fichero sin tener en cuenta esto tendremos problemas al tratar de hacer operaciones no especificadas o sin haber cerrado el fichero antes de volver a manipularlo.

Este sería un ejemplo de operación con ficheros:

Código: [Seleccionar]
Dim textFileStream As New IO.FileStream("C:\Temp\fichero.txt", IO.FileMode.OpenOrCreate, IO.FileAccess.ReadWrite, IO.FileShare.None)
       
Dim myFileWriter As New IO.StreamWriter(textFileStream)
Dim intCounter As Integer

For intCounter = 0 To 10
      myFileWriter.WriteLine("Esta es la línea " & CStr(intCounter))
Next intCounter
       
myFileWriter.Close()
textFileStream.Close()

Salu2

173
Buenas, para quien revise este hilo, overrides alude a sobreescribir un método para que no haya conflicto de nombres cuando se trata de un método que existe definido en una superclase.

Ejemplo superclase donde se define el método GetInfo()

Código: [Seleccionar]
' Superclase o clase base
Public Class Users
    Public Overridable Sub GetInfo()
        Console.WriteLine("Base Class")
    End Sub
End Class


Ejemplo subclase donde se define el método GetInfo() sobreescrito

Código: [Seleccionar]
'Subclase o clase derivada

Public Class Details
    Inherits Users
    Public Overrides Sub GetInfo()
        Console.WriteLine("Derived Class")
    End Sub
End Class

Si no lo declaramos overrides nos salta un aviso para indicarnos que puede haber un conflicto de nombres.

174
Buenas, puede que alguna persona llegue a este hilo que había quedado sin respuesta. Voy a dar una opinión al respecto. Ciertas validaciones de un formulario se pueden hacer del lado del cliente con JavaScript, pero hay validaciones como usuario y contraseña que obligadamente hemos de hacer del lado del servidor pues ahí tendremos nuestra base de datos.

En este caso se indica que se trata de la creación de usuarios. Una vez se ponga el usuario y password contra la base de datos podríamos tener un condicional que verifique si ya existe ese usuario o no. La operación puede hacerse con ajax, o bien con el action del formulario para que lleve a la misma página de registro o bien a una página de aterrizaje. Una vez hecha la comprobación, sobre la misma página de login o sobre otra página de aterrizaje, mediante con un condicional haríamos que se ejecute el código html para mostrar el mensaje que se desee:

1.- Usuario creado con éxito.
2.- El nombre de usuario ya esta en uso.
3.- Las contraseñas ingresadas no coinciden

Curso de Ajax disponible en https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=83&Itemid=212
Curso de JavaScript disponible en https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&Itemid=206

Salu2

176
Buenas JAntonio, y bienvenido ya que veo que es tu primer mensaje en los foros. Lo primero que recordamos es que para escribir en los foros es importante seguir las normas que se indican en https://aprenderaprogramar.com/foros/index.php?topic=1460.0 (revisar las indicaciones: cómo poner los títulos de los temas, si es un ejercicio código de la entrega del curso, forma correcta de insertar código, etc.). El código no está correctamente insertado con las etiquetas code (no te preocupes, ya lo corregiré yo. Si tienes dudas sobre cómo escribir en los foros escribe una consulta en el foro "Comunidad" exponiendo la duda para intentar solucionarla.)

Sobre la duda que planteas la forma correcta de redireccionar es window.location = "https://aprenderaprogramar.com" o con la url que quieras, te sobra el href, por ello tienes un TypeError: window.location.href is not a function

En https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=78&Itemid=206 tienes un tutorial JavaScript donde puedes ampliar información.

Salu2

177
Los archivos *.tld (Tag Library Descriptors) son archivos con formato XML que contienen información sobre una librería de Java y todas sus etiquetas. El mensaje en principio no es ningún problema, simplemente te informa de algo. Puedes hacer que no te informe de esto de varias maneras. Puedes probar a añadir

org.apache.jasper.servlet.TldScanner.level = SEVERE

al final de logging.properties para que te muestre menos mensajes informativos.
Pero si lo que estás buscando es el mensaje de "CONECTADO" no parece que estuvieras mirando en el lugar adecuado. Parece que estás mirando el log del servidor, pero ese mensaje tendrás que buscarlo en la consola desde donde invoques la ejecución, que por cierto no sé desde dónde la invocas.

Salu2

178
Buenas Carlos y bienvenido. En https://aprenderaprogramar.com/index.php?option=com_content&view=article&id=57&Itemid=86 puedes acceder a un curso de Visual Basic, aunque no sé si va a resultar adecuado con la versión que tú utilizas.

Para escribir en los foros consulta https://aprenderaprogramar.com/foros/index.php?topic=1460.0 ahí está explicado cómo poner título a los temas y las recomendaciones generales.

Creo que para capturar una fecha habría distintas opciones. Puedes capturarla como texto y luego hacer validaciones y transformarla a fecha.

Un ejemplo que he encontrado para permitir escribir la fecha al usuario con un DateTimePicker sería este aunque no lo he probado

Código: [Seleccionar]
Public Class Form1

    Private Sub TextBox1_Enter(sender As Object, e As EventArgs)
        Debug.WriteLine("Entra al TextBox")
        RemoveHandler DateTimePicker1.Validating, AddressOf DateTimePicker1_SomethingChanged

    End Sub
    Private Sub TextBox1_Leave(sender As Object, e As EventArgs)
        Debug.WriteLine("Sale del textbox")
        Dim tb = DirectCast(sender, TextBox)
        If String.IsNullOrEmpty(tb.Text.Trim()) Then
            Exit Sub
        End If
        Dim dt As DateTime
        Dim dateStringStyles = {"ddMMyyyy", "dd/MM/yyyy"}
        If DateTime.TryParseExact(tb.Text, dateStringStyles, Nothing, Globalization.DateTimeStyles.AllowWhiteSpaces, dt) Then
            DateTimePicker1.Value = dt
            tb.Text = dt.ToString("dd/MM/yyyy")
        Else
            ' alert user date was invalid
            MsgBox("Fecha no válida")
        End If
        AddHandler DateTimePicker1.Validating, AddressOf DateTimePicker1_SomethingChanged

    End Sub

    Private Sub DateTimePicker1_Enter(sender As Object, e As EventArgs)
        Debug.WriteLine("DTP entrada")
        RemoveHandler TextBox1.Leave, AddressOf TextBox1_Leave

    End Sub

    Private Sub DateTimePicker1_SomethingChanged(sender As Object, e As EventArgs)
        Debug.WriteLine("DTP VC")
        Dim dtp = DirectCast(sender, DateTimePicker)
        TextBox1.Text = dtp.Value.ToString("dd/MM/yyyy")
        AddHandler TextBox1.Leave, AddressOf TextBox1_Leave

    End Sub
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        AddHandler TextBox1.Enter, AddressOf TextBox1_Enter
        AddHandler TextBox1.Leave, AddressOf TextBox1_Leave
        AddHandler DateTimePicker1.Enter, AddressOf DateTimePicker1_Enter
        AddHandler DateTimePicker1.Validating, AddressOf DateTimePicker1_SomethingChanged
        AddHandler DateTimePicker1.Leave, AddressOf DateTimePicker1_SomethingChanged
        AddHandler DateTimePicker1.ValueChanged, AddressOf DateTimePicker1_SomethingChanged

    End Sub


End Class

Salu2

179
Buenas, si te han pedido usar Date para introducir una fecha en base de datos mysql tienes que usar java.sql.Date que es una subclase de Date, y java.sql.Timestamp para la hora si tienes que introducir la hora. He encontrado estos ejemplos que creo pueden ayudar

Para crear un java.sql.Date a partir de un Date la idea sería esta:

Código: [Seleccionar]
public class MainClass {

  public static void main(String[] args) {
    java.util.Date utilDate = new java.util.Date();
    java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
    System.out.println("utilDate:" + utilDate);
    System.out.println("sqlDate:" + sqlDate);

  }

}


Y para insertar en la base de datos la idea sería esta:

Código: [Seleccionar]

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
 
public class EjemploInsertarFecha {
public static void main(String args[]){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/demo","root","root");

java.util.Date date=new java.util.Date();

java.sql.Date sqlDate=new java.sql.Date(date.getTime());
java.sql.Timestamp sqlTime=new java.sql.Timestamp(date.getTime());

PreparedStatement ps=con.prepareStatement("insert into baseDatos.Fecha (date,time) values(?,?)");
ps.setDate(1,sqlDate);
ps.setTimestamp(2,sqlTime);
ps.executeUpdate();

ps.close();
con.close();
}catch(Exception e){
e.printStackTrace();
}
}
}

180
Buenas Ntek93/ y bienvenido. Como siempre hacemos para los recién llegados, recomendarte que leas https://aprenderaprogramar.com/foros/index.php?topic=1460.0 donde hay indicaciones para escribir en los foros. Programar un CRM puede ser algo muy, muy, complejo. Y si encima te planteas que funcione en web y como aplicación móvil, más complejo aún. Piensa que los grandes CRM los programan empresas con cientos o miles de programadores. No quiero desanimarte, por supuesto que se puede programar un CRM a pequeña escala por parte de una persona con conocimientos suficientes. Pero si lo va a hacer una única persona, necesita conocimientos de programación, lenguajes de marcado como HTML, CSS, diseño web, bases de datos, etc. No sé de dónde partes. Si partes de cero, lee https://aprenderaprogramar.com/foros/index.php?topic=1313.0 y si partes de otro punto, mírate los cursos disponibles en https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=57&Itemid=86

Salu2

Páginas: 1 ... 4 5 6 7 8 [9] 10 11 12 13 14 ... 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".