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 - Sergio Perez

Páginas: [1]
1
Ya le hice algunos cambios pero aun así no se si en realidad lo este aplicando bien, ya que aún así no me marca alertas ni errores el programa.

En la función VerificarCaracteres es donde con condicionales estoy haciendo lo de los caracteres, solo he implementado lo de:

Citar
Si el carácter es ‘!’ se eliminan todos los caracteres que se hayan introducido.
Si el carácter es ‘.’ se termina el programa.

Según yo...

Y aquí esta el código:

Código: [Seleccionar]
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<locale.h>

#define MAX 50

struct nodo {
    char simbolo;
    struct nodo *sig;
};

struct nodo *raiz=NULL;

void insertar(char x)
{
    struct nodo *nuevo;
    nuevo = malloc(sizeof(struct nodo));
    nuevo->simbolo = x;
    if (raiz == NULL)
    {
        raiz = nuevo;
        nuevo->sig = NULL;
    }
    else
    {
        nuevo->sig = raiz;
        raiz = nuevo;
    }
}


char extraer()
{
    if (raiz != NULL)
    {
        char informacion= raiz->simbolo;
        struct nodo *bor = raiz;
        raiz = raiz->sig;
        free(bor);
        return informacion;
    }
    else
    {
        return -1;
    }
}

void liberar()
{
    struct nodo *reco = raiz;
    struct nodo *bor;
    while (reco != NULL)
    {
        bor = reco;
        reco = reco->sig;
        free(bor);
    }
}

int vacia()
{
    if (raiz == NULL)
        return 1;
    else
        return 0;
}

void cargarCadena(char *cadena)
{
    printf("Ingrese la cadena: ");
    gets(cadena);
}

int verificarCaracteres(char *cadena)
{
    int i, j=0;
    char tmpCad[MAX];
   
    for (i=0;i<strlen(cadena);i++)
    {
        if (cadena[i]=='.')
        {
            exit( 0 );
    return 0;
        }
        else
        {
            if (cadena[i]=='!')
            {
                tmpCad[j] = cadena[i];
               
                tmpCad[j] = '\0';

puts(tmpCad);
return 0;
               
            }
            //
        }
        //j++;
    }
    if (vacia())
    {
        return 1;
    }
    else
    {
        return 0;
    }
}


int main()
{

setlocale(LC_ALL, "spanish");

    char cadena[MAX];
    char tmpCad[MAX];
   
    cargarCadena(cadena);
    if (verificarCaracteres(cadena))
    {
        printf("Proceso finalizado con éxito");
    }
    else
    {
        printf("La cadena esta vacia");
       

    }
    liberar();
    getch();
    return 0;
}

Se agradece su valiosa ayuda y orientación por favor...  :-\

2
Hola buena tarde a todos, espero me puedan orientar o ayudar con lo siguiente:

Me gustaría saber como puedo implementar el siguiente fragmento de código:

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

main()
{
setlocale(LC_ALL, "spanish");

char cadena[50];

        printf("Escriba una cadena: ");
        scanf(cadena); /* Las cadenas NO llevan & */
       
        gets(cadena);
       
printf("\nLa cadena leída era: \n");
       
        puts(cadena);
       
}

para que trabaje con la estructura de Pila y pueda con ello también hacer lo siguiente:

Citar
Si el carácter es ‘@’, eliminar la última palabra. Por ejemplo, si se tiene la cadena “cadena de caracteres yu378”, la última palabra es “yu378”.
Si el carácter es ‘,’, se elimina el último carácter.
Si el carácter es ‘!’ se eliminan todos los caracteres que se hayan introducido.
Si el carácter es ‘.’ se termina el programa.
Por cada operación realizada se deben mostrar los caracteres que queden.

Espero por favor me puedan ayudar  :(

3
Hola buenas tardes de momento tengo este código:


Clase con el main

Código: [Seleccionar]
package clases;

import ventanas.Inventario;

public class main {

   
    public static void main(String[] args) {
       
        Inventario e = new Inventario();
        e.setVisible(true);
       
    }
}


Clase Preguntas

Código: [Seleccionar]
package clases;

public class Preguntas {
   
    String[] preguntas = {
        "1. Torpe o entumecido", "2. Acalorado", "3. Con temblor en las piernas",
        "4. Incapaz de relajarse", "5. Con temor a que ocurra lo peor","6. Mareado, o que se le va la cabeza",
        "7. Con latidos del corazón fuertes y acelerados","8. Inestable","9. Atemorizado o asustado",
        "10. Nervioso","11. Con sensación de bloqueo","12. Con temblores en las manos",
        "13. Inquieto, inseguro","14. Con miedo a perder el control","15. Con sensación de ahogo",
        "16. Con temor a morir","17. Con miedo","18. Con problemas digestivos",
        "19. Con desvanecimientos","20. Con rubor facial","21. Con sudores, frios o calientes"
    };
   
   public String getPregunta(int posicion){
        return preguntas[posicion];
    }
   
}


Clase Respuestas

Código: [Seleccionar]
package clases;

import java.util.StringTokenizer;

public class Respuestas {

    String[] respuestas =  {
      "[0]En Absoluto","[1]Levemente","[2]Moderadamente","[3]Severamente"
    };
   
    public String getRespuesta(int posicion){
        return respuestas[posicion];
    }
   
    public String[] separar(String cadena, String separador){
        StringTokenizer token = new StringTokenizer(cadena,separador);
       
        String[] a = new String[21];
        int i = 0;
       
        while(token.hasMoreTokens()){
            a[i] = token.nextToken(); // obtenido el token
            i++;
        }
       
        return a;
    }
   
    public String[] setRespuestas(int posicion){
        String s1 = respuestas[posicion];
        String[] s2 = separar(s1,",");
        return s2;
    }
   
}

Y lo quería usar en un Frame

Solo quiero saber cómo puedo aplicarle la clase Stack, ya que en respuesta no necesito ya el

Citar
[0]En Absoluto,[1]Levemente,[2]Moderadamente,[3]Severamente


por que los puedo poner con un Label, si no que sea String repuestas[21] y lea números enteros en el TextField desde teclado para que al terminar el Test me dé un promedio.

Y de ser posible que el botón "Avanzar" y "Regresar" funcionen con "push" y "pop" del stack  :-[

4
Muchas gracias moderador de verdad me sirvió bastante el ejemplo y si pude enlazar todo  :D

5
Buen día a todos

Quisera saber si puedo invocar un panel desde otro panel con un boton, en una extension JFrame.

En el caso digamos que mi panel principal es el de PanelBiblioteca.java y con el botón que tiene incluido de Siguiente hacer que aparezca el segundo panel PanelUsuario.java, y con el de anterior lo contrario, que desaparezca y viceversa

Mis códigos son:

PanelBiblioteca.java
Código: [Seleccionar]
package biblioteca;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public final class PanelBiblioteca extends JFrame implements ActionListener {

    JComboBox Año,Dia,Mes;
JLabel etiqNombre, etiqDireccion, etiqTelefono, etiqFNacim, etiqFInsc, etiqFVigen, etiqCodLib, etiqTitLib, etiqAutores, etiqISB, etiqEditorial, etiqAñoImpr, etiqNumCopias;
JTextField txtNombre, txtDireccion, txtTelefono, txtFNacim, txtFInsc, txtFVigen, txtCodLib, txtTitLib, txtAutores, txtISB, txtEditorial, txtAñoImpr, txtNumCopias, txtBuscar;
JButton BtnGuardar, BtnNuevo, BtnEliminar, BtnSalir, BtnBuscar,BtnSiguiente,BtnAnterior;;
JPanel panel;
    private String [] dias={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"};
private Libro resultado;
private Persona usuario;
private PanelUsuario Us;
private String [] mes = {"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"};
private String[] año = {"2021","2022","2023","2024","2025","2026","2027","2028","2029","2030"};
PanelBiblioteca(){

resultado = new Libro();
usuario = new Persona();
Us = new PanelUsuario();
//Listas despegables
Mes= new JComboBox(mes);
Mes.setBounds(870, 52, 70, 20);
Dia= new JComboBox(dias);
Dia.setBounds(830, 52, 40, 20);
Año= new JComboBox(año);
Año.setBounds(940, 52, 70, 20);
//Etiquetas
etiqNombre = new JLabel("Nombre");
etiqNombre.setBounds(130, 30, 50, 20);
etiqDireccion = new JLabel("Direccion");
etiqDireccion.setBounds(245, 30, 70, 20);
etiqAutores = new JLabel("Autor(es)");
etiqAutores.setBounds(305, 100, 120, 20);
etiqTelefono = new JLabel("Teléfono");
etiqTelefono.setBounds(370, 30, 70, 20);

etiqFNacim = new JLabel("Fecha de Nacimiento");
etiqFNacim.setBounds(450, 30, 120, 20);
txtFNacim = new JTextField();
txtFNacim.setBounds(460, 55, 100, 20);
etiqFInsc = new JLabel("Fecha de Inscripción");
etiqFInsc.setBounds(650, 30, 120, 20);
etiqFVigen = new JLabel("Fecha de Vigencia");
etiqFVigen.setBounds(850, 30, 120, 20);
etiqCodLib = new JLabel("Código de Libro");
etiqCodLib.setBounds(45, 100, 120, 20);
etiqTitLib = new JLabel("Titulo");
etiqTitLib.setBounds(193, 100, 120, 20);
etiqISB = new JLabel("ISB");
etiqISB.setBounds(443, 100, 120, 20);
etiqEditorial = new JLabel("Editorial");
etiqEditorial.setBounds(550, 100, 120, 20);
etiqAñoImpr = new JLabel("Año de Impresión");
etiqAñoImpr.setBounds(640, 100, 120, 20);
etiqNumCopias = new JLabel("Número de Copias");
etiqNumCopias.setBounds(758, 100, 120, 20);


//Campos de texto
txtTelefono = new JTextField();
txtTelefono.setBounds(340, 55, 100, 20);
txtDireccion = new JTextField();
txtDireccion.setBounds(220, 55, 100, 20);
txtNombre = new JTextField();
txtNombre.setBounds(100, 55, 100, 20);
txtCodLib = new JTextField();
txtCodLib.setBounds(40, 125, 100, 20);
txtTitLib = new JTextField();
txtTitLib.setBounds(160, 125, 100, 20);
txtAutores = new JTextField();
txtAutores.setBounds(280, 125, 100, 20);
txtISB = new JTextField();
txtISB.setBounds(400, 125, 100, 20);
txtEditorial = new JTextField();
txtEditorial.setBounds(520, 125, 100, 20);
txtAñoImpr = new JTextField();
txtAñoImpr.setBounds(640, 125, 100, 20);
txtBuscar = new JTextField();
txtBuscar.setBounds(400, 270, 100, 20);
txtNumCopias = new JTextField();
txtNumCopias.setBounds(760, 125, 100, 20);
        //Botones
BtnGuardar = new JButton("Guardar");
BtnGuardar.setBounds(230, 200, 80, 20);
BtnGuardar.addActionListener(this);
BtnNuevo = new JButton("Nuevo");
BtnNuevo.setBounds(350, 200, 80, 20);
BtnNuevo.addActionListener(this);
BtnEliminar = new JButton("Eliminar");
BtnEliminar.setBounds(470, 200, 80, 20);
BtnSalir = new JButton("Salir");
BtnSalir.setBounds(590, 200, 80, 20);
BtnSalir.addActionListener(this);
BtnBuscar = new JButton("Buscar");
BtnBuscar.setBounds(410, 300, 80, 20);
BtnBuscar.addActionListener(this);
BtnSiguiente = new JButton("Siguiente");
BtnSiguiente.setBounds(430, 330, 80, 20);
BtnSiguiente.addActionListener(this);
BtnAnterior = new JButton("Anterior");
BtnAnterior.setBounds(240, 330, 80, 20);
BtnAnterior.addActionListener(this);


//Ventanas
panel = new JPanel();
panel.setLayout(null);

//Panel1
//Etiquetas añadidas al panel
panel.add(etiqNombre);
panel.add(etiqDireccion);
panel.add(etiqTelefono);
panel.add(etiqFNacim);
panel.add(etiqFInsc);
panel.add(etiqFVigen);
panel.add(etiqCodLib);
panel.add(etiqTitLib);
panel.add(etiqAutores);
panel.add(etiqISB);
panel.add(etiqEditorial);
panel.add(etiqAñoImpr);
panel.add(etiqNumCopias);
//Campos de texto añadidos al panel
panel.add(txtNombre);
panel.add(txtDireccion);
panel.add(txtTelefono);
panel.add(txtFNacim);
panel.add(txtCodLib);
panel.add(txtTitLib);
panel.add(txtAutores);
panel.add(txtISB);
panel.add(txtEditorial);
panel.add(txtAñoImpr);
panel.add(txtNumCopias);
panel.add(txtBuscar);
//Botones añadidos al panel
panel.add(BtnGuardar);
panel.add(BtnNuevo);
panel.add(BtnEliminar);
panel.add(BtnSalir);
panel.add(BtnBuscar);
panel.add(BtnSiguiente);
panel.add(BtnAnterior);
//Listas desplegables añadidas al panel
panel.add(Mes);
panel.add(Dia);
panel.add(Año);
panel.add(Us.panel2);
setTitle("                                                                                                  BIBLIOTECA CENTRAL");
add(panel);
setSize(1100, 400);
setVisible(true);






}

public static void main(String[] args) {
new PanelBiblioteca();
}//cerrar main


public void actionPerformed(ActionEvent e) {
String  c,t,a,ed,I,an,cop;
t=txtTitLib.getText();
c=txtCodLib.getText();
a=txtAutores.getText();
ed=txtEditorial.getText();
I=txtISB.getText();
an=txtAñoImpr.getText();
cop=txtNumCopias.getText();
Mes.getAction();
Dia.getAction();


if(e.getSource()==BtnGuardar) {



}if(e.getSource()==BtnBuscar) {

}

}if(e.getSource()==BtnNuevo) {

txtCodLib.setText("");
txtNombre.setText("");
txtAutores.setText("");
txtTitLib.setText("");
txtEditorial.setText("");
                txtISB.setText("");
txtNumCopias.setText("");
txtAñoImpr.setText("");
Mes.setAction(null);
Dia.setAction(null);
}if(e.getSource()==BtnSalir) {
System.exit(0);
if(e.getSource()==BtnSiguiente) {
panel.setVisible(false);
Us.panel2.setVisible(true);

}


}
}
}

PanelUsuario.java

Código: [Seleccionar]
package biblioteca;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class PanelUsuario extends JFrame implements ActionListener {

JComboBox Año2,Dia2,Mes2;
JLabel etiqNombre, etiqDireccion, etiqTelefono, etiqFNacim, etiqFInsc, etiqFVigen;
JTextField txtNombre, txtDireccion, txtTelefono, txtFNacim, txtFInsc, txtFVigen,txtBuscar;
JButton BtnGuardar, BtnNuevo, BtnEliminar,BtnBuscar,BtnSiguiente,BtnAnterior;
JPanel panel2;

private String [] dias={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"};
private Libro resultado;
private Persona usuario;
private PanelBiblioteca library;
private String [] mes = {"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"};
private String[] año = {"2021","2022","2023","2024","2025","2026","2027","2028","2029","2030"};
PanelUsuario(){
resultado = new Libro();
usuario = new Persona();
//Listas despegables
Mes2= new JComboBox(mes);
Mes2.setBounds(870, 52, 70, 20);
Dia2= new JComboBox(dias);
Dia2.setBounds(830, 52, 40, 20);
Año2= new JComboBox(año);
Año2.setBounds(940, 52, 70, 20);
//Etiquetas
etiqNombre = new JLabel("Nombre");
etiqNombre.setBounds(130, 30, 50, 20);
etiqDireccion = new JLabel("Direccion");
etiqDireccion.setBounds(245, 30, 70, 20);
etiqTelefono = new JLabel("Teléfono");
etiqTelefono.setBounds(370, 30, 70, 20);
txtTelefono = new JTextField();
txtTelefono.setBounds(340, 55, 100, 20);
etiqFNacim = new JLabel("Fecha de Nacimiento");
etiqFNacim.setBounds(450, 30, 120, 20);
txtFNacim = new JTextField();
txtFNacim.setBounds(460, 55, 100, 20);
etiqFInsc = new JLabel("Fecha de Inscripción");
etiqFInsc.setBounds(650, 30, 120, 20);
etiqFVigen = new JLabel("Fecha de Vigencia");
etiqFVigen.setBounds(850, 30, 120, 20);
//Campos de texto
txtTelefono = new JTextField();
txtTelefono.setBounds(340, 55, 100, 20);
txtDireccion = new JTextField();
txtDireccion.setBounds(220, 55, 100, 20);
txtNombre = new JTextField();
txtNombre.setBounds(100, 55, 100, 20);
txtBuscar = new JTextField();
txtBuscar.setBounds(400, 270, 100, 20);
//Botones
BtnGuardar = new JButton("Guardar");
BtnGuardar.setBounds(230, 200, 80, 20);
BtnGuardar.addActionListener(this);
BtnNuevo = new JButton("Nuevo");
BtnNuevo.setBounds(350, 200, 80, 20);
BtnNuevo.addActionListener(this);
BtnEliminar = new JButton("Eliminar");
BtnEliminar.setBounds(470, 200, 80, 20);
BtnBuscar = new JButton("Buscar");
BtnBuscar.setBounds(410, 300, 80, 20);
BtnBuscar.addActionListener(this);
BtnSiguiente = new JButton("Siguiente");
BtnSiguiente.setBounds(430, 330, 80, 20);
BtnSiguiente.addActionListener(this);
BtnAnterior = new JButton("Anterior");
BtnAnterior.setBounds(240, 330, 80, 20);
BtnAnterior.addActionListener(this);

panel2= new JPanel();
panel2.setLayout(null);


//Etiquetas añadidas al panel
panel2.add(etiqNombre);
panel2.add(etiqDireccion);
panel2.add(etiqTelefono);
panel2.add(etiqFNacim);
panel2.add(etiqFInsc);
panel2.add(etiqFVigen);
//Campos de texto añadidos al panel
panel2.add(txtNombre);
panel2.add(txtDireccion);
panel2.add(txtTelefono);
panel2.add(txtBuscar);
//Botones añadidos al panel
panel2.add(BtnGuardar);
panel2.add(BtnNuevo);
panel2.add(BtnEliminar);
panel2.add(BtnBuscar);
panel2.add(BtnSiguiente);
panel2.add(BtnAnterior);
//Listas desplegables añadidas al panel
panel2.add(Mes2);
panel2.add(Dia2);
panel2.add(Año2);
panel2.add(Mes2);
panel2.add(Dia2);
panel2.add(Año2);

setTitle("                                                                                              Usuarios");
add(panel2);
setSize(1000, 400);
setVisible(false);
}





public void actionPerformed(ActionEvent e) {
if(e.getSource()==BtnAnterior) {

library.panel.setVisible(false);
panel2.setVisible(true);
library.add(panel2);
library.validate();
}


}

}


6
¿Qué tal? Esto es una de rutina y consiste en lo siguiente, tengo las clases:


Código: [Seleccionar]
public class ClsFraccion
{
//Atributos
private int numerador;
private int denominador;
private String resultado;
;
//Constructores
public ClsFraccion() {
numerador=0;
denominador=0;
}

public ClsFraccion(int n, int d) {
numerador=n;
denominador=d;
}



public ClsFraccion(ClsFraccion q) {
this.numerador=q.numerador;
this.denominador=q.denominador;
}

//getters y setters
public String getResultado() {
return resultado;
}

public void setResultado(String resultado) {
this.resultado = resultado;
}
public int getNumerador() {
return numerador;
}

public void setNumerador(int numerador) {
this.numerador = numerador;
}

public int getDenominador() {
return denominador;
}

public void setDenominador(int denominador) {
this.denominador = denominador;
}

//Metodos-Operaciones
    public static int mcdRecursivo(int numerador, int denominador){
        if(denominador == 0) {
            return numerador;
        }else {
            return mcdRecursivo(denominador, (numerador%denominador));
        }
    }
public ClsFraccion mul(ClsFraccion p, ClsFraccion q) { //mul en lugar de "por"

ClsFraccion r=new ClsFraccion();
r.denominador=(p.denominador*q.denominador);
r.numerador=(p.numerador*q.numerador);
return r;
}

public ClsFraccion suma(ClsFraccion p, ClsFraccion q) {

ClsFraccion r = new ClsFraccion();
r.setDenominador(p.denominador*q.denominador);
r.setNumerador((p.numerador*q.denominador)+(p.denominador*q.numerador));
return r;
}



public ClsFraccion resta(ClsFraccion p, ClsFraccion q) { 

ClsFraccion r = new ClsFraccion();
r.setDenominador(p.denominador*q.denominador);
r.setNumerador((p.numerador*q.denominador)-(p.denominador*q.numerador));
return r;
}

public ClsFraccion division(ClsFraccion p, ClsFraccion q) {

ClsFraccion r=new ClsFraccion();
r.setDenominador(p.denominador*q.numerador);
r.setNumerador(p.numerador*q.denominador);
return r;
}

public void Simplificar() {
int divisor=2;
while(numerador>=divisor && denominador>=divisor) {
while(numerador%divisor==0 && denominador%divisor==0) {
numerador/=divisor;
denominador/=divisor;
}
divisor+=1;
}
}
public String Imprimir() {
resultado=(numerador+"/"+denominador);
return resultado;
}

public String respuesta() {
String q="";

Simplificar();
if(numerador>denominador) {
q+=(numerador/denominador)+" ";
}
q+=(numerador%denominador)+"/"+denominador;

return q;
}

public double valor() {
return (double)numerador/denominador;
}

}


Código: [Seleccionar]
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public final class Calculadora extends JFrame implements ActionListener {

JLabel eti1, guion1, guion2, ig, guion3, txtresn, txtresd;
JTextField txtvalores, txtnum1, txtden1, txtnum2, txtden2;
JButton BtnSuma, BtnResta, BtnMulti, BtnDiv, BtnIgual, BtnNumerador, BtnDenominador, BtnDEL, BtnDecimal,BtnGuardar,BtnAbrir;
JPanel panel;
JFileChooser seleccionar= new JFileChooser();
File archivo;
FileInputStream entrada;
FileOutputStream Salida;
byte[] bytesImg;
Calculadora(){

eti1 = new JLabel("Calculadora de Fracciones");
eti1.setBounds(128, 35, 200, 10);

//txtvalores = new JTextField();
//txtvalores.setBounds(58, 70, 280, 20);

txtnum1 = new JTextField();
txtnum1.setBounds(130, 60, 20, 20);

guion1= new JLabel("_");
guion1.setBounds(130, 70, 30, 20);

txtden1= new JTextField();
txtden1.setBounds(130, 90, 20, 20);

txtnum2 = new JTextField();
txtnum2.setBounds(160, 60, 20, 20);

guion2= new JLabel("_");
guion2.setBounds(160, 70, 30, 20);

txtden2= new JTextField();
txtden2.setBounds(160, 90, 20, 20);

ig= new JLabel("=");
ig.setBounds(190, 76, 20, 20);

txtresn= new JLabel();
txtresn.setBounds(210, 70, 20, 20);

txtresd= new JLabel();
txtresd.setBounds(210, 90, 20, 20);

guion3= new JLabel("_");
guion3.setBounds(210, 70, 30, 20);

BtnNumerador = new JButton("Num");
BtnNumerador.setBounds(60, 110, 90, 20);

BtnDenominador = new JButton("Den");
BtnDenominador.setBounds(230, 110, 90, 20);

BtnSuma = new JButton("+");
BtnSuma.setBounds(100, 150, 60, 20);
BtnSuma.addActionListener(this);

BtnResta = new JButton("-");
BtnResta.setBounds(220, 150, 60, 20);
BtnResta.addActionListener(this);

BtnMulti = new JButton("x");
BtnMulti.setBounds(100, 200, 60, 20);
BtnMulti.addActionListener(this);

BtnDiv = new JButton("/");
BtnDiv.setBounds(220, 200, 60, 20);
BtnDiv.addActionListener(this);

BtnIgual = new JButton("=");
BtnIgual.setBounds(100, 250, 60, 20);

BtnDEL = new JButton("DEL");
BtnDEL.setBounds(220, 250, 60, 20);

BtnGuardar= new JButton("Guardar");
BtnGuardar.setBounds(140, 290, 100, 20);

BtnAbrir= new JButton("Abrir");
BtnAbrir.setBounds(180, 290, 100, 20);

panel = new JPanel();
panel.setLayout(null);

panel.add(eti1);
//panel.add(txtvalores);
panel.add(txtnum1);
panel.add(guion1);
panel.add(txtden1);
panel.add(txtnum2);
panel.add(guion2);
panel.add(txtden2);
panel.add(txtresn);
panel.add(txtresd);
panel.add(guion3);
panel.add(ig);
//panel.add(BtnNumerador);
//panel.add(BtnDenominador);
panel.add(BtnSuma);
panel.add(BtnResta);
panel.add(BtnMulti);
panel.add(BtnDiv);
//panel.add(BtnIgual);
//panel.add(BtnDEL);
panel.add(BtnGuardar);

add(panel);
setSize(400, 400);
setVisible(true);


}//cerrar calculadora


public static void main(String[] args) {
new Calculadora();
Calculadora c = new Calculadora();

}

public void actionPerformed(ActionEvent e) {
//System.out.println("A");
String sx1, sx2, sy1, sy2;
int mcd, aux;
sx1=txtnum1.getText();
sx2=txtnum2.getText();
sy1=txtden1.getText();
sy2=txtden2.getText();


ClsFraccion f1=new ClsFraccion(Integer.parseInt(sx1), Integer.parseInt(sy1));
ClsFraccion f2=new ClsFraccion(Integer.parseInt(sx2), Integer.parseInt(sy2));

ClsFraccion resultado=new ClsFraccion();
Archivo file = new Archivo();
BtnGuardar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent eventoAccion) {
GuardarArchivo(eventoAccion);
}
});
if(e.getSource()==BtnSuma) {
System.out.println("Suma");
resultado=resultado.suma(f1, f2);
mcd=resultado.mcdRecursivo(resultado.getNumerador(), resultado.getDenominador());
txtresn.setText(String.valueOf(resultado.getNumerador()/mcd));
txtresd.setText(String.valueOf(resultado.getDenominador()/mcd));
resultado.Imprimir();
}
if(e.getSource()==BtnResta) {
System.out.println("Resta");
resultado=resultado.resta(f1, f2);
mcd=resultado.mcdRecursivo(resultado.getNumerador(), resultado.getDenominador());

txtresn.setText(String.valueOf(resultado.getNumerador()/mcd));
txtresd.setText(String.valueOf(resultado.getDenominador()/mcd));

}
if(e.getSource()==BtnDiv) {
System.out.println("Division");
resultado=resultado.division(f1, f2);
mcd=resultado.mcdRecursivo(resultado.getNumerador(), resultado.getDenominador());
txtresn.setText(String.valueOf(resultado.getNumerador()/mcd));
txtresd.setText(String.valueOf(resultado.getDenominador()/mcd));
resultado.Imprimir();
}
if(e.getSource()==BtnMulti) {
System.out.println("Multiplicacion");
resultado=resultado.mul(f1, f2);
mcd=resultado.mcdRecursivo(resultado.getNumerador(), resultado.getDenominador());
txtresn.setText(String.valueOf(resultado.getNumerador()/mcd));
txtresd.setText(String.valueOf(resultado.getDenominador()/mcd));
resultado.Imprimir();

}}


private void GuardarArchivo(ActionEvent evt) {
ClsFraccion c = new ClsFraccion();
try {
FileWriter fw = new FileWriter("Calculadora.txt");
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);

pw.print(c.getResultado());
pw.close();
bw.close();

}catch(java.io.IOException ioex) {
JOptionPane.showMessageDialog(null, ioex.toString());
}


}


public void actionPerformed1(ActionEvent e) {
// TODO Auto-generated method stub

}
}


Y en especial es esta donde empiezo con el archivo:

Código: [Seleccionar]
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.PrintWriter;

import javax.swing.JOptionPane;

public class Archivo {
public void GuardarArchivo(ClsFraccion cls) {
try {
FileWriter fw = new FileWriter("Calculadora.txt");
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter pw = new PrintWriter(bw);

pw.print(""+cls.getResultado());
pw.close();
bw.close();

}catch(java.io.IOException ioex) {
JOptionPane.showMessageDialog(null, ioex.toString());
}


}
}


Ya que la Clase Calculadora ocupa método gráfico, pero lo que me importa es que el resultado lo imprima en el archivo y solo me esta creando un archivo txt con "null" de contenido  :(

Y tambien quisiera saber como puedo hacer para que lea la entrada desde otro archivo  :'(


7
Que grande que sos Kabuto!!!  8)

No había tomado en cuenta lo de la concatenación que mencionas por las prisas pero corre bastante bien, de verdad que ha sido de gran ayuda  :D :D :D


8
Buen día a todos!!! Espero me puedan orientar, tengo el siguiente código:

Código: [Seleccionar]
import javax.swing.JOptionPane; //Clase Decimal.java

public class Decimal
{
        public static void main(String[] args)
        {
        int numero = Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese el número en base 10: "));                                                                                     
       
        int base = Integer.parseInt(JOptionPane.showInputDialog(null,"Ingrese la base a transformar..."));
        Base bases = new Base(numero,base);
        bases.transformar();
        JOptionPane.showMessageDialog(null,"El número "+numero+" en base "+base+" es:\n"+bases.getResultado());               
       
        }
}

class Base //Clase Base.java
{
String equivalente; 
int posicion; 
int numero; 
int base; 
int[] digitos;
int[] auxiliar;
                 
        public Base(int n, int b)
        {
                posicion = 0;
                equivalente = "";
                base = b;
                numero = n;
                digitos = new int [1];
        }
                           
        public void transformar()
        {
                if(numero<base)
                {
                        digitos[posicion]=numero;
                        tamaño();
                }
                else
                {
                        digitos[posicion]=numero%base;
                        tamaño();
                        posicion++;
                        numero = numero/base;
                        transformar();
                 }
        }
                 
        public String getResultado()
        {
                for (int j = digitos.length-2; j >= 0; j--)
                {
                        equivalente+=Character.toUpperCase(Character.forDigit(digitos[j], 16));
                }
                return equivalente;
        }
                               
        private void tamaño()
        {
                 auxiliar = digitos;
                 digitos = new int [auxiliar.length+1];
                 System.arraycopy(auxiliar, 0, digitos, 0, auxiliar.length);
        }
}


El problema que tengo es si hay una manera de sustuir el "for" que tengo en la siguiente parte de clase "Base" :

Citar
public String getResultado()
        {
                for (int j = digitos.length-2; j >= 0; j--)
                {
                        equivalente+=Character.toUpperCase(Character.forDigit(digitos[j], 16));
                }
                return equivalente;

        }

por algún "if-else" ya que según tengo entendido no se puede utilizar "for o while" para la recursividad  :(

9
Ohhhhh grande maestro Kabuto!!!!

La verdad de lo que yo estaba intentando me daba otros valores pero ya con tú código veo en donde estaba mi error... De verdad gracias!!!  :)

10
De hecho si esta mejor el planteamiento que propone estimado moderador  ;D

Ya solo tengo que ver la forma de que en lugar de imprimir sólo el 30 en pares por ejemplo, imprima: 2+4+6+8+10=30

11
Ya logre modificarlo de la siguiente manera:

Código: [Seleccionar]
package ejemploseriefibonacci;

import java.util.Scanner;

public class EjemploSerieFibonacci {

public static void main(String[] args) {
// Leer teclado
Scanner teclado = new Scanner(System.in);
System.out.println("Ingresa el tamaño de la serie: ");
int numero = teclado.nextInt();

//muestra resultado o serie
for(int i = 0; i < numero; i++) {
System.out.print(Fibonacci(i+2)+" ");
}
System.out.print("\n");

for(int x = 0; x < numero; x++) {
System.out.print(Fibonacci(x+1)+" ");
}
System.out.println("");
}

//Metodo que calcula secuencia hasta llegar a n números
public static int Fibonacci(int n) {
if(n > 1) {
//funcion recursiva
return Fibonacci(n - 1) + Fibonacci(n - 1);
}else if(n==1){
//caso base
return 1;
}else if(n==0) {
//caso base
return 0;
}else {
//Error
System.out.println("Debes ingresar un tamaño de valor = ó > a 1");
return -1;
}

}

}
El problema es que ahora me saca esto en pantalla:
Citar
Ingresa el tamaño de la serie: 5
2 4 8 16 32 (aquí debería ser: 2 4 6 8 10)
1 2 4 8 16 (aquí debería ser: 1 3 5 7 9)

12
Buen día a todos, estaba trabajando con el siguiente código:

Código: [Seleccionar]
package ejemploseriefibonacci;

import java.util.Scanner;

public class EjemploSerieFibonacci {

public static void main(String[] args) {
// Leer teclado
Scanner teclado = new Scanner(System.in);
System.out.println("Ingresa el tamaño de la serie: ");
int numero = teclado.nextInt();

//muestra resultado o serie
for(int i = 0; i < numero; i++) {
System.out.print(Fibonacci(i)+" ");
}
System.out.println("");
}

//Metodo que calcula secuencia hasta llegar a n números
public static int Fibonacci(int n) {
if(n > 1) {
//funcion recursiva
return Fibonacci(n - 1) + Fibonacci(n - 2);
}else if(n==1){
//caso base
return 1;
}else if(n==0) {
//caso base
return 0;
}else {
//Error
System.out.println("Debes ingresar un tamaño de valor = ó > a 1");
return -1;
}

}

}


Alguna sugerencia de que le puedo quitar/agregar para que haga lo siguiente:

La suma de los primeros n números pares.
Por ejemplo: si n=5 obtener 2+4+6+8+10

La suma de los primero n números impares.
Por ejemplo: si n=5 obtener 1+3+5+7+9    :-\

13
En efecto estimado Kabuto, ya revise todo meticulosamente y redefiní la cuestión de los espacios para los caracteres y en el for estaba mal trabajar con 5 y quedó así:

Código: [Seleccionar]
for(int i = 1; i <= 1; i++) {
listFicheros.add(new File("C:\\Users\\user\\Desktop\\ArchivoJava.txt"));
}
for(int i = 0; i < listFicheros.size(); i++) {
Archivo archivo = new Archivo(listFicheros.get(i));
lineas += archivo.getLineas();
palabras += archivo.getPalabras();
caracteres += archivo.getCaracteres();
       
    }
System.out.println("Lineas: "+lineas+"\nPalabras: "+palabras+"\nCaracteres: "+caracteres+"\nArchivos: "+listFicheros.size());
    }


Mil gracias por la orientación!!!  ;D

14
Buen día a todos, sé que este es un clásico que algunos ya han solicitado pero en mi caso estaba trabajando con el siguiente código:

Código: [Seleccionar]
package JavaArchivo;//esta es la clase principal

import java.io.File;
import java.util.LinkedList;

public class principal {

public static void main(String[] args) {
int lineas=0, palabras=0, caracteres=0;

LinkedList<File> listFicheros = new LinkedList<>();

for(int i = 1; i <= 5; i++) {
listFicheros.add(new File("C:\\Users\\user\\Desktop\\ArchivoJava.txt"));
}
for(int i = 0; i < listFicheros.size(); i++) {
Archivo archivo = new Archivo(listFicheros.get(i));
lineas += archivo.getLineas();
palabras += archivo.getPalabras();
caracteres += archivo.getCaracteres();
       
    }
System.out.println("Lineas: "+lineas+"\nPalabras: "+palabras+"\nCaracteres: "+caracteres);
    }

}

Y esta es la clase que definí como Archivo
Código: [Seleccionar]
package JavaArchivo;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Archivo {

    private File fichero;
    private String contenido;

    public Archivo() {

    }

    public Archivo(File fichero) {
        this.fichero = fichero;
        this.contenido = "";
        leerContenido();
    }

    public void leerContenido() {
        String linea = null;
        FileReader f = null;
        BufferedReader b = null;
        StringBuilder aux = new StringBuilder();
        try {
            f = new FileReader(this.fichero);
            b = new BufferedReader(f);
            try {

                while ((linea = b.readLine()) != null) {
                    aux.append(linea);
                    aux.append("\n");
                }
            } catch (IOException ex) {
                Logger.getLogger(principal.class.getName()).log(Level.SEVERE, null, ex);
            }

        } catch (FileNotFoundException ex) {
            Logger.getLogger(principal.class.getName()).log(Level.SEVERE, null, ex);
        }
        this.contenido = aux.toString();
    }

    public String getContenido() {
        return contenido;
    }

    public int getLineas() {
        if (this.contenido.equals("")) {
            return 0;
        } else {
            return this.contenido.split("\n").length;
        }
    }

    public int getPalabras() {
        if (this.contenido.equals("")) {
            return 0;
        } else {
            return this.contenido.replace("\n", "").split("\\s+").length;
        }
    }

    public int getCaracteres() {

        return this.contenido.replaceAll("\\s+", "").replace("\n", "").length();
    }

}

En sí el código no me marca error en la sintaxis o algo por el estilo, lo hace al ejecutarse
Por ejemplo si tengo un Archivo.txt que en su contenido tiene:
Citar
Hola
Buenas Tardes

Me dice que son 10 Líneas, 10 palabras y 80 caracteres...  :-\

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