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 - Kadistu

Páginas: [1]
1
Gracias Ogramar,

En relación al código que posteaste, tengo unas dudas:
La clase PalabraMemoria, como se vincula con las otras clases?
Esta clase PalabraMemoria es donde se puede ingresar una nueva letra utilizando los otros métodos getPalabra(),getCharAtPosition(int index)?
No me queda claro como se podrá ingresar una nueva letra al arreglo,,

2
Gracias  Ogramar,
El planteamiento que propones me parece una alternativa viable por supuesto.

Si,  es correcta la interpretación que haces respeto a la funcionalidad, y cumple con el objetivo del programa en definitiva.
Ahora bien respeto a la cantidad de espacios, 5 espacios estaría bien.
Es decir: H0000H0000H0000H0000H0000……H0000
Esto daría un total de 20 posibilidades. Dado que 20*5=100.
Se establece 4 como valor máximo, más de eso sería una acción prohibida. No hay problema.
El ingreso de letras y borrado que haces es correcta también, así como la cantidad.

Para hacer esto lo que propones seria un arreglo de String
String  [] arreglo = {H0000,H0000,H0000,etc};// hasta completar 100 espacios??

3
Gracias,

Lo que debe hacer el programa es:
Si ingreso una letra del abecedario esta se debe cargar en el arreglo e indicar los espacios de memoria que utilizara representados por el numero “1”:
Ejemplo:
Si digitan letra del abecedario “A” y cantidad “4”.
 
Entonces en el arreglo debe aparecer:
A11110 <-- ocupa espacios del arreglo disponible
H00000
H00000
H00000
Etc.
Ahora si  digitan en otro momento otra letra del abecedario "B" y cantidad "2":
 
Debe aparecer en el arreglo:
A11110
B11000 <--ocupa espacios del arreglo disponible
H00000
Etc.
Luego si deseo eliminar una letra que existe dentro del arreglo, Por ejemplo letra “A”:
 
Debe aparecer en el arreglo:
H00000<-- borra la letra A y remplazarla por H dejando espacio de arreglo disponible en0.
B11000
H00000
Etc.

4
Gracias Ogramar, Si este es el código que tengo ya completo..con algunas modificaciones del anterior que pegue.
Código: [Seleccionar]
package simuladormemoria2;
import javax.swing.JOptionPane;
/**
  @author Kadistu
 */
public class SimuladorMemoria2 {///main class
   //public class Memoria {
    String [] memoriatotal = new String [100];
    String nombre1="";
    public void inicializarmemoria(){ //con letra H
        for(int i=0;i<100;i++){
            memoriatotal [i] = "H";//
            }
    }//fin inicializarmemoria
    public void cargarLetra() {
       int espacios,n=0;
        String dato="H",numero1;
            nombre1= JOptionPane.showInputDialog("Digite Letra del Abecedario: " );
            String linea = nombre1.toUpperCase();
            if(!linea.equals("H")){
                numero1= JOptionPane.showInputDialog("Digite la cantidad de veces que se imprimira la Letra: " );             
                n= Integer.parseInt(numero1);
                    for(int c=0; c<5;c++){                       
                           espacios=n;
                            if(memoriatotal[c].equals(dato)){
                                for( int d=0; d<espacios;d++){
                                    memoriatotal[d]= linea;
                                     if(!memoriatotal[c].equals(dato))
                                        for( int e=c+1; e<espacios;e++){
                                            memoriatotal[d]= linea; }
                                } System.out.println( memoriatotal[c]+" "+c);
                             }
                    }     
            }
    }//fin cargarLetra()
    public void eliminarLetra(){
       String linea1="";
                nombre1= JOptionPane.showInputDialog("digite la letra que desea eliminar" );
                String linea = nombre1.toUpperCase();
                if(!linea.equals("H")){
                for(int i=0;i<6;i++){                       
                        if (memoriatotal[i].equals(linea))                           
                            linea1 = linea;
                            memoriatotal[i]="H";
                }
                if(linea1.equals(linea))
              JOptionPane.showMessageDialog(null, "se encontro la letra: " + linea1+ " y se borro de la memoria, remplazo H, ","Buscar Letra en Memoria", JOptionPane.INFORMATION_MESSAGE);
               
                else
               JOptionPane.showMessageDialog(null, "No se encontro la letra : " + linea, "Buscar Letra en Memoria", JOptionPane.INFORMATION_MESSAGE);
                }
                else
                JOptionPane.showMessageDialog(null, "No Puede Usar la H" , "Buscar Letra en Memoria", JOptionPane.INFORMATION_MESSAGE);
    }
    public static void main(String[] args) {
        SimuladorMemoria2  m = new SimuladorMemoria2 ();
         m.inicializarmemoria();
      String dec;
      int opcion=0;
    while(true){
            dec=(JOptionPane.showInputDialog(null,
            "+++++++++++++++++++++++++++++++++++++++\n" +
            "                                       \n" +
            "Simulador de Memoria                   \n" +
            "---------------------------------------\n" +
            "1. Incluir Letra                       \n" +
            "2. Eliminar Letra                     \n" +
            "3. Salir                               \n" +       
            "---------------------------------------\n" +
            "Teclea el Número de la Accion a Relizar:\n"+
            "++++++++++++++++++++++++++++++++++++++++"));
            opcion = Integer.parseInt(dec);
           
            switch(opcion){
            case 1: m.cargarLetra();
            break;
            case 2:m.eliminarLetra();
            break;
            case 3:System.exit(0);
            break;
            }
        }   
    }   
}

5
Saludos a todos,, tengo el siguiente problema:

Para un arreglo de Strings de tamaño 100 y que esta inicial izado con la letra "H", requiero cargar en el arreglo una letra del abecedario la cantidad de veces que el usuario indique.

El programa solo cargara la letra del usuario en el  espacio o espacios  que sean igual a "H" que serán los espacios disponibles, si un espacio esta ocupado por una letra distinta a "H" el programa deberá avanzar en el arreglo hasta encontrar un espacio igual a "H".

no logro establecer la condición correcta para esto que les cuento.

si alguien me puede ayudar se lo agradecería, aquí esta el código del programa que tengo..

Código: [Seleccionar]
import javax.swing.JOptionPane;

public class Memoria {
    String [] memoriatotal = new String [100];
    String nombre1="";
    public void inicializarmemoria(){ //con letra H
        for(int i=0;i<100;i++){
            memoriatotal [i] = "H";//
            }
    }//fin inicializarmemoria
    public void cargarProceso() {
       int espacios,n=0;
        String dato="H",numero1;
            nombre1= JOptionPane.showInputDialog("Digite Letra del Abecedario: " );
            String linea = nombre1.toUpperCase();
            if(!linea.equals("H")){
                numero1= JOptionPane.showInputDialog("Digite la cantidad de veces que se imprimira la Letra: " );             
                n= Integer.parseInt(numero1);
                    for(int c=0; c<5;c++){
                       
                           espacios=n;
                            if(memoriatotal[c].equals(dato)){
                                for( int d=0; d<espacios;d++){
                                    memoriatotal[d]= linea;
                                     if(!memoriatotal[c].equals(dato))
                                        for( int e=c+1; e<espacios;e++){
                                            memoriatotal[d]= linea; }
                                } System.out.println( memoriatotal[c]+" "+c);
                             }//fin cargarProceso
 }//fin class Memoria     
}
}
}

6
Gracias por las recomendaciones. ya digité algo de código que adjunto aquí, también algunos otros requerimientos del programa.

Especificaciones del programa.

1- El programa debe contar con una pantalla inicial, en dónde aparecerá el siguiente menú de opciones:

a. Incluir un proceso
b. Eliminar un proceso
c. Salir

2- Si se escoge la primera opción, el programa solicitará dos datos: nombre del archivo y tamaño; el nombre del proceso será una letra en mayúscula del abecedario, excepto la letra “H” ya que esta letra se utilizará para especificar los huecos en la memoria. El tamaño del proceso es un número entero, no mayor a 20. El usuario incluirá números para especificar el tamaño del proceso entre 1 y 20.

3-Si se trata de incluir un proceso de tamaño 0, o menor, o uno mayor de 20, se debe enviar un mensaje de error y no se tiene que permitir la entrada de esos datos inconsistentes.

Código: [Seleccionar]
package simuladormem;
import java.util.Scanner;

public class Memoria {
     String [] memoriatotal = new String [100]; // arreglo que define el tamaño de memoria.
    private Scanner teclado;
    public int[] vec;
    private Scanner let;
    private String letra;
    public void cargar() {
        teclado=new Scanner(System.in);
        let =new Scanner (System.in);
        System.out.println("Digite el nombre del proceso");//el nombre del proceso sera una letra
     
        letra = let.next() ;
        System.out.print("Digite el tamaño del proceso:");//un numero no mayor a 20
        int n;
        n=teclado.nextInt();
        vec=new int[n];
        System.out.println("el proceso ocupa "+ n +" espacios de memoria");
            for(int f=0;f<vec.length;f++)
            {           
            System.out.println(letra);
            }
    }
   
    public void acumularmemoriatotal() {//con este método pretendo cargar los procesos en el arreglo memoriatotal,,falta de implementar, tienes alguna sugerencia,, que                  debo cambiar o incluir???
        int suma=0;                     //
        for(int f=0;f<vec.length;f++) {
            suma=suma+vec[f];
        }
        System.out.println(" Los espacios de memoria utilizados son:"+suma);
    }
}   
    /*public static void main(String[] ar) {
        Memoria m =new Memoria();
        m.cargar();
        m.acumularEnMemoriaTotal();
    }
}

7
Saludos a todos, alguien me puede ayudar con esto..

Simular memoria.

• Cada unidad de medida representa 5 bytes, si un proceso de tamaño de 20 bytes utilizará 4 unidades de almacenamiento. Un proceso de 13 bytes utilizará 3 unidades de almacenamiento (se redondea al múltiplo de 5 mayor, en este caso, a 15).
 
• El tamaño del mapa de bits será de 100 unidades, esto equivale a almacenar cierta cantidad de procesos, de diferentes tamaños que sumándolos no pueden superar los 500 bytes o 100 unidades de almacenamiento (100 X 5 = 500).

Páginas: [1]

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