Necesito ayuda para hacer una escalera numerica.

Iniciado por FaCeXD, 1 Febrero 2013, 23:26 PM

0 Miembros y 2 Visitantes están viendo este tema.

FaCeXD

Hola, gente!

Esta es mi primera publicacion, espero no causarles molestias.

En fin!
Necesito ayuda para elaborar una escalera numerica en java con JOptionPane
la cual debe funcionar asi:

Solicito al usuario el valor desde el cual quiere que empiece  la escalera.
Luego solicito al usuario la cantidad de filas (pisos) que desea que tenga la escalera.
por ejemplo:
     si el usuario digita el 3 como el valor de inicio de la escalera, y digita  el 4 como la cantidad de filas (pisos) que desea que tenga la escalera, se deberia imprimir algo como :

3
4 5
6 7 8
9 10 11 12

(claro en una ventana porque debe ser con JOptionPane)

yo se que se debe usar ciclos while, pero llevo horas y horas dandole y nada me sale :( .



Saludos

sapito169

solo ten paciencia
trata de resolver el problema con gráficos y pensamiento lógico
trata de entender en términos matemáticos de la forma precisa cuales son los pasos necesarios para resolver el problema hasta que encuentres la solución
luego trata de resolver el problema con la solución que creaste siguiendo al pie de la letra

sapito169

#2
bueno te pongo una pista esto debiste hacer antes de poner cualquier código

en lenguaje sapito


primerNumero = leerNumero()
cantidadDeFilas = leerCantidadDeFilas()

filaAcutal=1
numeroActual=primerNumero - 1

desde filaActual hasta cantidadDeFilas
 desde 1 hasta filaActual
    numeroActual=numeroActual+1
    imprime(numeroActual+espacioEnBlanco())
 finDesde
imprime(saltoDeLinea())
finDes



FaCeXD

hola
sapito169 muchas gracias pues mira esto es lo que tengo


import java.util.Scanner;
public class Triangulo{
  public static void main(String args[]){
    Scanner sc = new Scanner(System.in);
   
    System.out.println("digite un numero de inicio");
    int inicio= sc.nextInt();
   
    System.out.println("digite el numero de filas");
    int filas= sc.nextInt();
   
   
    int contNiv = 0;
    int contA = 1;
    int limA = 1;
   
    while( contNiv < filas){
     
      while( contA <= limA){
        System.out.print(inicio + " " );
        contA++;
        inicio++;
      }
      limA++;
      contA=1;
     
      System.out.print("\n");
     
      contNiv++;
     
    }
  }
}



eso me imprime la escalera a perfeccion pero en consola! y yo lo necesito con JOption.Pane que son ventanas y para eso hay que usar Strings y no me logra salir

FaCeXD

esta es la version en JOption.Pane  pero no funciona bien

import javax.swing.*;
public class escalerahdp{
  public static void main (String [] args){
 
   
      String valor4=JOptionPane.showInputDialog(null,"Digite el numero desde el cual quiere empezar");
        int inicio =Integer.parseInt(valor4);
        String valor5= JOptionPane.showInputDialog(null,"Digite el numero final del intervalo");
        int filas =Integer.parseInt(valor5);
   
   
   
    int contNiv = 0;
    int contA = 1;
    int limA = 1;
   
   String numeros="";
   String espacio="";   
    while( contNiv < filas){
     while( contA <= limA){
       numeros= numeros+ inicio + " ";
       espacio=  espacio + numeros + "\n";
         contA++;
          inicio++;
      }
      limA++;
      contA=1;
       


      contNiv++;
    }  JOptionPane.showMessageDialog(null,espacio);
   
  }
}

sapito169

huuu prueba con esto tienes que tener muchisima atencion cuando miras codigo

import javax.swing.*;
public class escalerahdp{
 public static void main (String [] args){

 
     String valor4=JOptionPane.showInputDialog(null,"Digite el numero desde el cual quiere empezar");
       int inicio =Integer.parseInt(valor4);
       String valor5= JOptionPane.showInputDialog(null,"Digite el numero final del intervalo");
       int filas =Integer.parseInt(valor5);
 
 
 
   int contNiv = 0;
   int contA = 1;
   int limA = 1;
 
  String numeros="";
  String espacio="";  
   while( contNiv < filas){
    while( contA <= limA){
      numeros= numeros+ inicio + " ";
     
        contA++;
         inicio++;
     }
     espacio=  espacio + numeros + "\n";
     limA++;
     contA=1;
     


     contNiv++;
   }  JOptionPane.showMessageDialog(null,espacio);
 
 }
}

FaCeXD

Hola Sapito gracias por ayudarme

el codigo que me diste cuando digite que empiece desde el 1 y haga 4 filas imprime esto

"1
1  2  3
1  2  3  4  5  6
1  2  3  4  5  6  7  8  9  10 "

cuando deberia imprimir

" 1
  2  3
  4  5  6
  7  8  9  10"

no sabes a que se debe?


sapito169

#7
deberías estudiar mas y tratar de leer el código y entenderlo y corregirlo

package javaapplication7;

import javax.swing.JOptionPane;

public class Esclera {

    public static void main(String arg[]) {
        int numero = Integer.parseInt(JOptionPane.showInputDialog("ingrese el primer numero de la escalera"));
        int filasMaxima = Integer.parseInt(JOptionPane.showInputDialog("ingrese la cantidad de filas"));
        int numeroActual = numero - 1;
        String respuesta = "";
        for (int filaActual = 1; filaActual <= filasMaxima; filaActual++) {
            for (int columna = 1; columna <= filaActual; columna++) {
                numeroActual = numeroActual + 1;
                respuesta = respuesta + numeroActual + " ";
            }
            respuesta = respuesta + "\n";
        }
        JOptionPane.showMessageDialog(null, respuesta);
    }
}


FaCeXD

Muchas gracias sapito169 siento las molestias que te cause, ya que noto que al final cause que te molestaras un poco, estoy inmensamente agradecido contigo por abrirme los ojos en este programa,  de igual manera envie mi trabajo con el codigo incorrecto ya que eran 5 programas y tenia 4 buenos y solo este no me salia y lo envie antes de ver tu respuesta final, perdona que no haya estudiado mas pero es un curso intensivo y estoy llevando otro y me ha quedado poco tiempo.



sapito169

no te preocupes estamos para aprender realmente no me moleste es que realmente soy asi soy critico soy troll soy detallista soy perfeccionista



a lo que me refiero es que si ves código que no esta bien se supone que debes buscar la razón por la que esta mal y corregirlo