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 - Alex Rodríguez

Páginas: 1 ... 67 68 69 70 71 [72] 73 74 75 76 77 ... 93
1421
Sí, ahora bastante mejor. Puedes intentar mejorarlo todavía más: intentar extraer letra a letra en lugar de la palabra desde el inicio. Es decir si las palabras son barco y barcaza extraer: b - b (iguales)
a- a (iguales)
r-r (iguales)
c-c (iguales)
o - a (distintos)
 - z (la primera palabra no tiene letra)
 - a (la primera palabra no tiene letra)

La lógica básica la tienes, lo que tendrías que hacer es introducir las modificaciones precisas. Te puedes guiar por el ejercicio de referencia que te indiqué antes.

Saludos

1422
El problema parece estar en la peculiaridad de Visual Basic en cuanto a la petición de datos en comparación con otros lenguajes (en otros lenguajes al pedir un dato se detiene el programa, y en el caso de estar dentro de un bucle, el bucle se detiene). Con visual Basic si introduces los datos con un textBox no hay detención del programa y si estás dentro de un bucle el bucle no se detiene.

Para forzar la petición del dato con detención de la ejecución evitando que se genere un bucle donde no puedes introducir los datos nuevamente puedes probar a utilizar inputbox (forma de pedir datos que sí da lugar a la detención del programa).

El código sería similar a esto (no lo he probado, pero guíate por la idea y haz pruebas tú mismo):

Código: [Seleccionar]
Option Explicit

Dim Base As Integer
Dim Altura As Integer
Dim Area As Integer
Dim Aceptacion As Integer

Private Sub Command1_click()
Aceptacion = vbYes
Do While Aceptacion = vbYes
Base = InputBox("Introduzca la base del rectángulo en cm", "Dato base")
Altura = InputBox("Introduzca la altura del rectángulo en cm", "Dato altura")
Area = Base * Altura
Aceptacion = MsgBox("El area del rectángulo es de " & Area & " centímetros cuadrados" & vbCrLf & "¿Quieres calcular otro area?", vbYesNo, "Calculo de area")
Loop
If Aceptacion = vbNo Then
MsgBox ("Gracias por utilizar el programa")
End If
End Sub


Como ves he prescindido de textbox, y la petición de datos comenzaría una vez se pulse el botón.

Otra opción que tienes es meter el código dentro de Private Sub Form Load, con lo cual directamente empezará la petición de datos sin tener que pulsar un botón. De ambas maneras (teniendo que pulsar un botón o sin tener que pulsarlo) la idea es que se ejecute un bucle cierto número de veces hasta que el usuario decida terminar.

Creo que con lo expuesto puedes intentar resolverlo.

Saludos

1423
Hola, el código está perfecto. Además es un buen ejemplo de diferentes usos de la palabra clave this en java.

En este fragmento:

    public Profesor () {
        this("", "", 0, false, false);
    }

La palabra clave this seguida de paréntesis y parámetros lo que hace es invocar un constructor (al constructor que recibe cinco parámetros). En este caso invoca al constructor pasándole como nombre "", como apellido "", como edad 0, como casado false y como especialista false. También podía haberse escrito con iguales resultados:

   public Profesor () {
        nombre = "";
        apellido = "";
        edad = 0;
        casado = false;
        especialista = false;
    }

Esta forma, aunque es igualmente válida, consume más líneas de código.

En cambio this en otras partes del código como: this.nombre = nombre; lo que hace es diferenciar entre el atributo (this.nombre) y el parámetro que recibe la función (nombre).

Resulta un ejemplo interesante.

Saludos

1424
Hola, el código genera un error si se introducen dos cadenas como "ave" y "avecesar" porque estás tratando de extraer índices que no existen en una cadena, en concreto aquí:

recorridoCadena1=cadena1.substring(i,i+1);
recorridoCadena2=cadena2.substring(i,i+1);

Estás tratando de extraer un índice, el mismo índice para las dos cadenas, pero ¿qué ocurre si una cadena es muy larga y la otra corta? Que el índice que existe en una no existe en la otra (porque al ser más corta tiene menos índices).

Eso da lugar a que aparezca un error "java.lang.StringIndexOutOfBoundsException: String index out of range"

La lógica que tendrías que aplicar es:

1. Determinar la longitud máxima

2. Crear un bucle desde i=0 hasta la longitud máxima

3. Si existen los dos índices para las dos palabras (es decir, su longitud es mayor o igual que la longitud máxima) mostrar la comparación, si no existen indicar que una palabra no es suficientemente larga para comparar

Te recomiendo que revises el código que se encuentra en esta solución: https://www.aprenderaprogramar.com/foros/index.php?topic=1292.0

Analízalo y estudia paso a paso qué es lo que hace, ahí encontrarás una buena orientación.

Saludos

1425
El código es correcto y ya había sido revisado y comentado, aquí únicamente hemos procedido a dividir un hilo del foro que contenía dos ejercicios para dejar un sólo ejercicio por hilo y facilitar la localización y ordenación de temas. Saludos.

1426
Hola, dado que con pseudocódigo estás trabajando a nivel conceptual debes ser tú mismo quien decida si consideras que el dato es un valor numérico o un valor alfanumérico (texto).

Si escribes Mientras Clave <> 1234 Hacer se entiende que lo estás considerando numérico, si escribes Mientras Clave <> "1234" Hacer se entiende que lo estás considerando alfanumérico (texto y números). Ese sería el único cambio que habría que considerar en el pseudocódigo.

El diseño no está mal planteado, pero te recomendaría que pienses en una alternativa como esta:

Incluir la condición del número de repeticiones en el bucle así:

1.   Inicio
2.   Mientras Clave <> 1234 y numeroIntentos < 3 Hacer
Mostrar “Por favor, introduzca password”
Pedir Clave
numeroIntentos=numeroIntentos+1
Repetir
3. Si numeroIntentos>=3 Entonces
 Mostrar “Ha introducido 3 veces la clave errónea”
SiNo
Mostrar “Ha acertado la clave”
4. FinSi
5.   Fin

Pueden plantearse múltiples diseños. En un mientras (while) puedes poner varias condiciones. Con esta alternativa no haces uso de Finalizar, que es un final "anómalo" del bucle. Escoge el diseño que te parezca más adecuado en función de lo que te pida el ejercicio y de lo que resulte más fácil de entender y eficiente.

Si algo no queda claro coméntamelo ;)

1427
Aprender a programar desde cero / Re:Ejercicio 1 - Semana 10
« en: 08 de Septiembre 2014, 11:16 »
Hola, viendo las cuestiones te comento:


El pseudocódigo está correcto (el único detalle a corregir es Mostrar  “El área del rectángulo es “, Area, “centímetros cuadrados.”) pero debes tener en cuenta lo siguiente:

- Para que se produzca la entrada en el bucle debes añadir una línea que indique Aceptacion = "s", quedaría así:

Código: [Seleccionar]
1. Inicio
2. Aceptacion ="s"
3. Mientras Aceptacion=”s” o Aceptacion=”S” Hacer
3.1 Mostrar  “Inserte la base del rectángulo en centímetros”
Pedir Base
3.2 Mostrar  “Inserte la altura del rectángulo en centímetros”
Pedir altura
3.3 Area = Base x Altura
3.4 Mostrar  “El área del rectángulo es “, Area, “centímetros cuadrados.”
3.5 Mostrar  “¿Quiere realizar un nuevo cálculo? (S/N)”
3.6 Pedir Aceptación
Repetir
4. Fin

Esa línea permite que se entre en el bucle, de otra manera el programa no entraría en el bucle (si no se ha establecido valor para una variable puedes considerar que es 0 si es numérica o cadena vacía si es texto o false si es booleana)




Tal y como lo has definido, el programa termina cuando no se quiere calcular otra área. Si quisieras podrías añadir una línea con algo que ocurra después de que no se quiera calcular, por ejemplo:

Código: [Seleccionar]
1. Inicio
2.     Aceptacion = "s"
3. Mientras Aceptacion=”s” o Aceptacion=”S” Hacer
3.1 Mostrar  “Inserte la base del rectángulo en centímetros”
Pedir Base
3.2 Mostrar  “Inserte la altura del rectángulo en centímetros”
Pedir altura
3.3 Area = Base x Altura
3.4 Mostrar  “El área del rectángulo es “, Area, “centímetros.”
3.5 Mostrar  “¿Quiere realizar un nuevo cálculo? (S/N)”
3.6 Pedir Aceptación
Repetir
4. Mostrar "Gracias por utilizar el programa"
5. Fin

Pero añadir esto es opcional, conceptualmente está bien tanto de una manera como de otra.

La línea del "Mientras ... " la has colocado correctamente, lo único que te ha faltado es darle un valor a la variable para dar lugar a la entrada en el bucle.

Espero haber podido aclarar las dudas...

Saludos.

1428
Hola, tienes que  ir al menú Archivo y seleccionar la opción “Nuevo proyecto”, luego elegir “Aplicación de Windows Forms”. Una vez veas el formulario haz doble click sobre él (o sobre ver código), borra el código que te aparece y pega este código:

Código: [Seleccionar]

REM Curso Visual Basic aprenderaprogramar.com

Option Explicit On

Public Class Form1

    Dim mensaje As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        mensaje = "Bienvenido a este programa"

        MsgBox(mensaje)

    End Sub

End Class

Y comprueba si te funciona, debería funcionarte (aparecerte un mensaje "Bienvenido a este programa").

Si no te funciona, pega el código con el que tienes problemas para verlo: para ello pulsa el botón # del editor del foro, cuando te aparezca [cod ] ... [ / cod] pega el código entre esas dos etiquetas.

Saludos.

1429
Hola, las respuestas están bien. Comento las respuestas una a una:

a) Correcto, no se puede llamar a un método de un objeto declarado pero no creado. Si se hace se obtiene java.lang.nullPointerException

b) Correcto

c) Tal como indicas es una llamada a un método externo y la llamada al método tiene que hacerse sobre un objeto declarado y creado. Este proceso de declaración y creación no lo hacemos nosotros, sino que se realiza automáticamente cuando importamos la clase Math.

Saludos,

1430
Solución de toni_apr (hemos reorganizado el post para no mezclar temas)

----------------------
A continuación la clase MainConEntradaPorTeclado del ejercicio CU00657B

Esta clase sin atributos pide una entrada por teclado y con dos decisiones condicionales muestra unas observaciones sobre la entrada introducida.

A continuación va el código. Saludos.

Código: [Seleccionar]
import java.util.Scanner;
/**
 * Detalles de la clase.
 *
 * @author (Toni)
 * @version (0)
 */
public class MainConEntradaPorTeclado {

    // Atributos de la clase MainConEntradaPorTeclado
    // sin atributos
    /**
     * Constructor para objetos de la clase MainConEntradaPorTeclado
     */
    public MainConEntradaPorTeclado() {
        // Inicializa atributos
        // nada

    } // Fin del constructor MainConEntradaPorTeclado

    // Siguen los setters para los atributos de la clase MainConEntradaPorTeclado

    // Ahora los getters para los atributos de la clase MainConEntradaPorTeclado

    // Y seguidamente, procedimientos y funciones varios.
    public static void main (String [] args) {
        String entradaTeclado = "";
        Scanner entradaEscaner = new Scanner(System.in);
        int longitudEntrada = 0;
       
        System.out.println ("Este programa necesita que introduzca una entrada por teclado.\n" +
            "\tProceda, por favor.");
        entradaTeclado = entradaEscaner.nextLine();
        String respuesta = "La cadena introducida:\n\t\"" + entradaTeclado + "\"";
        longitudEntrada = entradaTeclado.length();

        if (longitudEntrada < 5) {
            respuesta = respuesta + "\nTiene menos de 5 caracteres.";
        } else if (longitudEntrada >= 5 && longitudEntrada <= 15) {
            respuesta = respuesta + "\nTiene entre 5 y 15 caracteres.";
        } else {
            respuesta = respuesta + "\nTiene más de 15 caracteres.";
        } // fin del if

        if (entradaTeclado.substring(0,1).equals("a") || entradaTeclado.substring(0,1).equals("A")) {
            respuesta = respuesta + "\nY empieza por 'A', o 'a'.";
        } else {
            respuesta = respuesta + "\nY no empieza por 'A', o 'a'.";
        } // fin del if
        System.out.println (respuesta);
    } // fin del main
} // Fin de la clase MainConEntradaPorTeclado

1431
Aprender a programar desde cero / Re:ayuda urgente
« en: 03 de Septiembre 2014, 09:42 »
Hola, los títulos de los temas deben ser descriptivos de aquello que se pregunta. "Ayuda urgente" no describe lo que se pretende.

Indícanos qué nivel de conocimientos tienes en las materias relacionadas para poder decirte algo sobre por dónde empezar, en particular sobre:

HTML
CSS
JavaScript
Java
Jsp
Servlets
MVC
Struts
SQL y bases de datos

Además dinos ¿Qué tipo de base de datos es la que vas a emplear?

Saludos.

1432
Aprender a programar desde cero / Re:¿Los temas los borran?
« en: 02 de Septiembre 2014, 22:07 »
Hola tata, el foro está sujeto a mantenimiento y esto implica distintas tareas. En general los temas no se borran, pero en algunas ocasiones sí pueden ser borrados o renombrados dentro de las tareas de mantenimiento. No hay una regla fija, ya que depende de la persona de mantenimiento. Saludos,

1433
Aprender a programar desde cero / Re:CU00634B
« en: 30 de Agosto 2014, 11:28 »
Sobre el ejercicio, todas las respuestas son correctas  :D


1434
Aprender a programar desde cero / Re:CU00634B
« en: 30 de Agosto 2014, 11:24 »
Fíjate que al publicar el post aparece m) (A+B == 8) esto se debe a que si se escribe 8 ) junto se interpreta como un emoticono. Para evitar que aparezca así, se puede publicar como código (entre etiquetas code ... / code ) ó simplemente introducir un espacio entre el 8 y el paréntesis para que no lo considere un emoticono. Al publicar mensajes conviene pulsar en previsualizar primero para comprobar si hay algo que corregir primero. Saludos

1435
Y no todo en la vida es preguntar... también agradeceríamos que además de hacer preguntas respondieras de vez en cuando a personas que tienen menos conocimientos que tú... Ya se sabe, solidaridad, correspondencia, hoy tú por mí, mañana yo por tí, etc...


1436
Hola, aquí tienes un quicksort recursivo (está en C, pero no creo que tengas demasiados problemas en trasladarlo a Java): https://www.aprenderaprogramar.com/foros/index.php?topic=1170.msg6485#msg6485


1437
Aprender a programar desde cero / Re:CUOO632b
« en: 29 de Agosto 2014, 08:52 »
Y también recordar que no se dupliquen mensajes en distintos hilos del foro. Gracias!

1438
Aprender a programar desde cero / Re:CUOO632b
« en: 29 de Agosto 2014, 08:46 »
Por favor cuando se trate de un nuevo ejercicio buscar un hilo donde se hable de dicho ejercicio, o crear un nuevo tema. Dado que la última respuesta es sobre CU00633B y aquí se hablaba de CU00632B, procedemos a cambiar el último mensaje de ubicación.

1439
Aprender a programar desde cero / Re:busqueda en visual basic 6.0
« en: 28 de Agosto 2014, 20:37 »
Hola, por favor para pegar código pulsar el botón # del foro e insertar el código entre las etiquetas [ code ] ... [ / code] que aparecen. Luego pulsar previsualizar y si está ok, pulsar publicar.

Sobre el código que has puesto, parece que es el código para insertar datos en la hoja de excel. Sin embargo tu pregunta parece estar referida a realizar búsquedas, que quizás esté en otra parte del código.

La búsqueda por RUT tiene la ventaja de que el rut es único, digamos un identificador. Si buscas 4584734 por ejemplo, o está o no está. Sin embargo, buscar por nombre presenta más problemas. Si buscas "Juan Fernandez" quizás exista "Juan Alberto Fernandez" ó "Juan Fernández" (con tilde, sin tilde, etc.) con lo cual es posible que no te devuelva una coincidencia aún existiendo la persona.

De cualquier forma, pega el código correspondiente o si es muy extenso, adjunta los archivos pulsando en "Opciones adicionales" y adjuntar, debajo de la ventana de texto del editor del foro. Saludos!

1440
Hola, pega el código php para poder revisarlo. Para ello pulsa el botón # del foro y pega el código entre las etiquetas [ code ] ... [ / code].

Si el código es muy largo pulsa en opciones adicionales y Adjuntar fichero.

Saludos

Páginas: 1 ... 67 68 69 70 71 [72] 73 74 75 76 77 ... 93

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