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

Páginas: [1]
1
Hola a todos, intento compliar un programa usando netbeans que trabaje números racionales, pero al querer hacer que corra aparece la ventana de error "does not have a main metod" ¿qué puedo hacer?

Dejo aquí el codigo.


Código: [Seleccionar]
class racional {

  // ******************* atributos ***********************
  private int num;  // numerador
  private int den;  // denominador

  // ********** Métodos privados de la clase *************

  // método para calcular el máximo común divisor de dos
  // números enteros positivos. Algoritmo de Euclides
  private int mcd(int a, int b) {
     int r;
     while (a % b != 0) {
       r = a % b;
       a = b;
       b = r;
     }
     return b;
  }

  // método privado para simplificar una fracción que
  // represente un racional.

  // Por ejemplo: 60/-18  --simplifica--> -10/3

  // num != 0 && den != 0
  private void simplifica() {

     // es inf?
     if (den==0 && num !=0) num=1;
     // es 0?
     else if (den!=0 && num==0) den=1;
     // es una fracción? -> normalizarla
     else if (num!=0 && den!=0) {

            // valores absolutos:
            int absNum = Math.abs(num);
            int absDen = Math.abs(den);

            // signo del denominador:
            int signo = den/absDen;
            int s = mcd(absNum,absDen);

            num = signo*(num/s);
            den = signo*(den/s);
          }
    }
  //


  // ***********  Constructores de la clase  *************

  public racional (int num, int den) {
    this.num = num;
    this.den = den;
    // simplificación de la fracción
    simplifica();
  }

  public racional (int num) {
     this.num = num;
     this.den = 1;
  }

  // ***********   Operaciones aritméticas   *************
  //
  // Para mantener las convenciones aritméticas habituales
  // se han definido como operaciones "static"
  //

  public static racional suma (racional r1, racional r2) {
     racional sum = new racional(r1.num*r2.den+r1.den*r2.num,
                                                r1.den*r2.den);
     sum.simplifica();
     return sum;
  }

  public static racional resta (racional r1, racional r2) {
     racional dif = new racional(r1.num*r2.den-r1.den*r2.num,
                                                r1.den*r2.den);
     dif.simplifica();
     return dif;
  }

  public static racional multiplica (racional a, racional b) {
     racional mult = new racional(a.num*b.num, a.den*b.den);
     mult.simplifica();
     return mult;
  }

  public static racional inverso (racional a) {
     return new racional(a.den,a.num);
  }

  public static racional dividir (racional dn, racional dd) {
     return multiplica(dn, inverso(dd));
  }

   
  // ***************   Otras operaciones   *****************
                   
  // conversión a double:
  // this.den != 0
  public double todouble () {
     return num/den;
  }

  public String toString() {
     return this.num+"/"+this.den;
  }

  public boolean equals (racional r) {
     return (num==r.num && den==r.den);
  }

  public int compareTo (racional r) {
     if (this.equals(r)) return 0;
     else
     // supongamos que no es una indeterminación,
     // esto es num y den no son simultáneamente 0
     if (den == 0) return 1;
     else if (r.den==0) return -1;
     else // comparar números double
        if (this.todouble() > r.todouble()) return 1;
        else return -1;
  }

2
Estoy trabajndo con un codigo que al ejecutarse genere el CURP compuesto correcatamente.

http://www.condusef.gob.mx/index.php/clave­unica­de­registro­de­poblacion

Aún me hace falta:

1.- Sexo:​Concatenar la letra “M” cuando el usuario ingrese “Mujer” o “Femenino”; “H” para “Hombre” o “Masculino”. TIP: recuerda usar la función toLowerCase()​de String para
poder comparar la cadena en letras minúsculas.

2. Entidad Federativa​: Para esta ocasión, únicamente ingresa la clave del estado que
corresponde de acuerdo a la tabla de equivalencias descrita en las diapositivas.
Ej:
Estado: Guanajuato
Clave: GT

3. Consonantes internas​: Concatenar la 1er consonante interna del apellido paterno, 1er
consonante interna del apellido materno, 1a consonante interna del nombre. TIP: Utiliza
la función esVocal().

4. Homoclave​: Concatena el caracter alfabético que desees.

5. Dígito Verificador​: Investiga cómo generar un número aleatorio entre 0 ­ 9 y
concatenalo al final.



Mi codigo:


Código: [Seleccionar]
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package curp;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
import java.util.Scanner;


/**
 *
 * @author sjm
 */
public class Curp {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
       
        /*Declaracion de variables*/
        String nombre;
        String aPaterno;
        String aMaterno;
        Date fechaNac;
        String lugarNacimiento;
        String sexo;
        String curp = new String();
       
        /*Ingreso de datos del usuario*/
        System.out.println("Escribe el nombre:");
        Scanner sc = new Scanner(System.in);
        nombre = sc.nextLine();
       
        System.out.println("Escribe el apellido paterno:");
        aPaterno = sc.nextLine();

        System.out.println("Escribe el apellido materno:");
        aMaterno = sc.nextLine();
       
        System.out.println("Escribe fecha de nacimiento (Formato yyyy/mm/dd):");
        try {
            fechaNac = new SimpleDateFormat("yyyy/MM/dd").parse(sc.nextLine()); //Convierte la fecha de tipo String a tipo Date con el formato indicado
            LocalDate fechaTemporal = fechaNac.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); //Convierte fecha Date a LocalDate para poder obtener dia, mes, año por separado
            int anio = fechaTemporal.getYear(); //Obtiene el año como numero entero
            int mes = fechaTemporal.getMonthValue(); //Obtiene el mes como numero entero
            int dia = fechaTemporal.getDayOfMonth(); //Obtiene el dia como numero entero
           
            System.out.println("Escribe lugar de nacimiento:");
            lugarNacimiento = sc.nextLine();

            System.out.println("Escribe el sexo:");
            sexo = sc.nextLine();

            /* Comienza genereacion de CURP*/
            curp += aPaterno.charAt(0);

            for(int i=1; i <= aPaterno.length()-1; i++){ //Recorre cada caracter del apellido paterno
                /*System.out.println("El caracter " + aPaterno.charAt(i) + " es vocal?" + esVocal(aPaterno.toLowerCase().charAt(i)));*/
                if(esVocal(aPaterno.charAt(i))){ //Si el caracter es vocal
                    curp+=aPaterno.charAt(i);    //Concatena el valor a curp
                    break;                       //Sale del ciclo
                }
            }

            curp += aMaterno.charAt(0);
            curp += nombre.charAt(0);
            curp += String.valueOf(anio).substring(2);// La función substring regresa los caracteres del string a partir de la posición indicada como paŕametro
            curp += mes <10? "0"+String.valueOf(mes):String.valueOf(mes); //Operador ternario: variable = condición ? valor1 : valor2;
                                                                         //El simbolo "?" funciona como if y ":" (dospuntos) funciona como else
                                                                         //Si el valor de mes es menor a 9, agrega un cero a la izquierda, si no, solo usa el valor del mes
            curp += String.valueOf(dia);
 
           
            System.out.println("CURP = " + curp);
       
            } catch (ParseException ex) { //Cuando ocurre una excepcion ParseException,
            System.out.println("Ocurio un error al convertir la fecha: " + ex.getMessage());
        }
       
    }
   
    public static boolean esVocal(char c){
        if(c=='a' || c=='e' || c=='i' || c=='o' || c =='u'){
            return true;
        }else{
            return false;
        }
    }
   
   
   
}

3
Apenas estoy aprendiendo a programar con java, e intento hacer un archivo usando NETBeans en donde ocupe lo referente a la creación de objetos, pero el concepto no me queda muy claro.  :o

¿Alguien puede darme algún consejo o pequeño ejemplo que me sirva de ayuda?
Agradezco cualquier comentario.

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