Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística

Como converter de decimal para números romanos em Java - Desafio de Programação Resolvido em Java

Quantidade de visualizações: 519 vezes
Pergunta/Tarefa:

Escreva um programa Java que pede para o usuário informar um número inteiro decimal e converta-o para o número romano correspondente.

Sua saída deverá ser parecida com:

Informe um número decimal: 2023
O número romano correspondente é: MMXXIII 
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);

    // vamos criar um array com os valores decimais possíveis de
    // cada número romano
    int valoresNumerosRomanos[] = new int[]{1000, 900, 500, 400,
      100, 90, 50, 40, 10, 9, 5, 4, 1};

    // representação dos números romanos
    String numerosRomanos[] = new String[]{"M", "CM", "D", "CD",
      "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};

    // vamos pedir para o usuário informar um número decimal
    System.out.print("Informe um número decimal: ");
    int numero = Integer.parseInt(entrada.nextLine());

    // para guardar o resultado
    String resultado = "";

    // o número é maior que zero?
    if (numero > 0) {
      // percorremos o array de valores decimais dos números romanos
      for(int i = 0;i < valoresNumerosRomanos.length; i++){ 
        // enquanto o número informado for maior que o valor do
        // do número romano atual
        while(numero >= valoresNumerosRomanos[i]){  
          // reduz o número informado
          numero = numero - valoresNumerosRomanos[i];  
          // concatena o número romano e continua o cálculo
          resultado = resultado + numerosRomanos[i];  
        }  
      }
    }
    
    // mostramos o resultado
    if(resultado.isEmpty()){
      System.out.println("O número informado não possui número romano");
    }
    else{
      System.out.println("O número romano correspondente é: " + resultado);
    }
  }
}


Link para compartilhar na Internet ou com seus amigos:

Java ::: Estruturas de Dados ::: Lista Ligada Simples

Estruturas de Dados em Java - Como inserir nós no início de uma lista singularmente ligada em Java

Quantidade de visualizações: 10111 vezes
Esta dica mostra como inserir nós no início de uma lista singularmente ligada. A classe usada para representar cada nó é a seguinte (No.java):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// classe No
public class No{
  public int valor;
  public No proximo;
}
// fim da classe No

Note que cada nó contém apenas um valor inteiro e um ponteiro para o próximo nó. Ao analisar o código você perceberá que tanto a inserção no início quanto a exibição dos nós são feitas usando métodos. Isso permitirá o reaproveitamento deste código em suas próprias implementações. Vamos ao código para a lista singularmente ligada (Lista.java):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class Lista{
  No inicio; // início da lista  

  // método que permite exibir os valores de
  // todos os nós da lista
  public void exibir(){
    if(inicio != null){
      do{
        System.out.println(inicio.valor);
        inicio = inicio.proximo;
      }while(inicio != null);
    }
    else
      System.out.println("A lista esta vazia\n\n");
  }
 
  // método que permite inserir nós no
  // início da lista.
  // veja que o método recebe o valor a ser
  // armazenado em cada nó
  public void inserirInicio(int v){
    No novo;

    // verifica se a lista está vazia
    if(inicio == null){
      // reserva memória para o novo nó
      inicio = new No();
      inicio.valor = v;
      // é o primeiro nó...não deve apontar para
      // lugar nenhum
      inicio.proximo = null;
    }
    else{ // não está vazia....vamos inserir o nó no início
      // vamos criar um novo nó agora
      novo = new No();
      // atribui o valor do nó
      novo.valor = v;
      // define o inicio da lista como campo proximo
      // do novo nó
      novo.proximo = inicio;
      // o novo nó é o início da lista agora
      inicio = novo;
    }
  }
}

Compile as classes No.java e Lista.java e vamos escrever um aplicativo de teste (TesteLista.java):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

public class TesteLista{
  public static void main(String args[]){
    // vamos criar uma nova lista
    Lista lista = new Lista();

    // vamos inserir quatro valores no
    // início da lista
    lista.inserirInicio(45);
    lista.inserirInicio(3);
    lista.inserirInicio(98);
    lista.inserirInicio(17);

    // exibe os valores na lista
    lista.exibir();

    System.exit(0);   
  }  
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas

Exercícios Resolvidos de Java - Como inserir no início de uma lista ligada em Java - Escreva um programa Java que pede para o usuário informar vários

Quantidade de visualizações: 567 vezes
Pergunta/Tarefa:

Este exercício Java demonstra como inserir um nó no início de uma lista ligada. Escreva um programa Java que cria uma lista ligada, ou seja, uma lista dinamicamente encadeada, e pede para o usuário informar vários valores inteiros, colocando os valores sempre no início da lista.

Seu código deverá interromper a leitura dos valores quando o usuário informar o valor -1. Quando isso acontecer, mostre todos os valores contidos na lista ligada, na mesma ordem que foram inseridos (o último valor lido será o primeiro da lista).

Sua saída deve ser parecida com:

Inserindo valores no início da lista

Informe o valor (-1 para sair): 8
Informe o valor (-1 para sair): 2
Informe o valor (-1 para sair): 5
Informe o valor (-1 para sair): 7
Informe o valor (-1 para sair): -1

Valores na lista: 7 -> 5 -> 2 -> 8 -> null
Resposta/Solução:

Veja a resolução comentada deste exercício usando Java:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

package estudos;
  
import java.util.Scanner;

// classe interna usada para representar um
// nó na lista ligada
class No {
  int valor; // valor do nó
  No proximo; // aponta para o novo nó
 
  // construtor da classe No
  No(int valor, No proximo) {
    this.valor = valor;
    this.proximo = proximo;
  }
}

public class Estudos { 
  public static void main(String args[]){
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos criar uma referência para o início da lista
    No inicio = null;
    
    // agora vamos pedir para o usuário informar
    // valores inteiros. O valor -1 sai do laço
    int valor;
    System.out.println("Inserindo valores no início da lista\n");
    do {
      System.out.print("Informe o valor (-1 para sair): ");
      valor = Integer.parseInt(entrada.nextLine());
      if (valor != -1) {
        inicio = inserirInicio(inicio, valor);
      }
    } while(valor != -1);
    
    // vamos exibir os valores na lista ligada
    System.out.print("\nValores na lista: ");
    exibirLista(inicio);
  }
  
  // função que permite adicionar um nó no início da
  // lista ligada
  public static No inserirInicio(No inicio, int valor) {
    // vamos apontar para o nó inicial
    No atual = inicio;
    // criamos um novo nó
    No novo = criarNo(valor);
 
    // a lista ligada ainda está vazia?
    if (atual == null){
      // inicio recebe o novo nó
      inicio = novo;
    }    
    else { // temos um ou mais nós na lista ligada
      // vamos inserir este nó antes do nó que
      // representa o início da lista
      novo.proximo = inicio;
      inicio = novo;
    }
    
    // e retornamos o início da lista
    return inicio;
  }
  
  // função usada para construir e retornar um novo nó
  public static No criarNo(int valor) {
    // cria o novo nó
    No no = new No(valor, null);
    // retorna o nó criado
    return no;
  }
  
  // função usada para percorrer a lista ligada e
  // exibir os valores contidos em seus nós
  public static void exibirLista(No inicio) {
    // vamos apontar para o início da lista
    No temp = inicio;
    
    // a lista está vazia?
    if (temp == null) {
      System.out.println("A lista está vazia.");
    }
    else {
      // esse laço se repete enquanto tempo for
      // diferente de null
      while (temp != null) {
        // vamos mostrar o valor desse nó
        System.out.print(temp.valor + " -> ");
        // avança para o próximo nó
        temp = temp.proximo;
      }
    
      // mostra o final da lista
      System.out.println("null");
    }
  }
}



Java ::: Pacote java.lang ::: Character

Como usar o método isDigit() da classe Character da linguagem Java para verificar se um caractere é um dígito de 0 a 9

Quantidade de visualizações: 9270 vezes
Em algumas situações, principalmente quando estamos validando dados informados pelo usuário, pode ser necessário verificar se um determinado caractere é um dígito de 0 a 9. Isso pode ser feito por meio do método isDigit() da classe Character. Este método estático recebe um caractere como argumento e retorna true se o caractere for um dígito e false em caso contrário.

Veja um exemplo no qual lemos um caractere informado pelo usuário e informamos se o mesmo é um dígito ou não:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import javax.swing.JOptionPane;

public class Main {
  public static void main(String[] args) {
    // vamos pedir ao usuário para informar um caractere qualquer
    char caractere = JOptionPane.showInputDialog("Informe um caractere:").charAt(0);
    
    // vamos testar se o caractere informado é um dígito
    if(Character.isDigit(caractere)){
      JOptionPane.showMessageDialog(null, "O caractere informado é um dígito");
    }
    else{
      JOptionPane.showMessageDialog(null, "O caractere informado não é um dígito"); 
    }
  }
}

Uma outra forma de verificar se um determinado caractere é um dígito é testar se o retorno de uma chamada ao método estático getType() da classe Character é a constante DECIMAL_DIGIT_NUMBER, também definida na classe Character. Veja uma modificação do exemplo anterior:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import javax.swing.JOptionPane;

public class Main {
  public static void main(String[] args) {
    // vamos pedir ao usuário para informar um caractere qualquer
    char caractere = JOptionPane.showInputDialog("Informe um caractere:").charAt(0);
    
    // vamos testar se o caractere informado é um dígito
    if(Character.getType(caractere) == Character.DECIMAL_DIGIT_NUMBER){
      JOptionPane.showMessageDialog(null, "O caractere informado é um dígito");
    }
    else{
      JOptionPane.showMessageDialog(null, "O caractere informado não é um dígito"); 
    }
  }
}

Finalmente, veja como ler uma string e verificar se ela contém apenas dígitos de 0 a 9:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

import javax.swing.JOptionPane;

public class Main {
  public static void main(String[] args) {
    // vamos pedir ao usuário para informar uma string
    String str = JOptionPane.showInputDialog("Informe uma string:");
    
    // vamos verificar se a string contém apenas dígitos de 0 a 9
    boolean soDigitos = true;
    
    // percorre todos os caracteres da string
    for(int i = 0; i < str.length(); i++){
      if(!Character.isDigit(str.charAt(i))){
    	  soDigitos = false;
    	  break;
      }
    }
    
    if(soDigitos){
      JOptionPane.showMessageDialog(null, "A string contém apenas dígitos");
    }
    else{
      JOptionPane.showMessageDialog(null, "A string não contém somente dígitos"); 
    }
  }
}



Vamos testar seus conhecimentos em Hidrologia

Quantas são as unidades hidrográficas presentes no território do Brasil?

A) 10.

B) 11.

C) 12.

D) 15

E) 26.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Escoamento laminar

Em escoamento laminar, a região de entrada do fluido é definida por um comprimento de entrada. Esse comprimento é compreendido entre quais distâncias?

A) Entre a região de entrada e a região de comportamento completamente desenvolvido.

B) Entre a região de entrada e a região de comportamento parcialmente desenvolvido.

C) Entre a região de entrada e a região de saída do escoamento.

D) Entre a região de comportamento completamente desenvolvido e a região de saída do escoamento.

E) Entre a região de entrada e a região com defeito de velocidade.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

Estrutura e propriedade dos materiais

Os materiais podem ser de várias classes de acordo com as suas propriedades.

O objetivo de estudar suas tecnologias consiste em:

A) controlar precisamente e individualmente os átomos para fabricar materiais com propriedades e desempenho específicos.

B) fabricar materiais com novas propriedades.

C) controlar as propriedades dos materiais.

D) estudar e produzir materiais a nível macro para fabricar materiais com propriedades específicas.

E) controlar os átomos, em geral, para fabricar materiais com desempenho específico.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fundações

Fundações rasas

Uma fundação do tipo radier é, convencionalmente, uma laje de concreto usada quando, EXCETO:

A) O solo é mole, com baixa capacidade de carga.

B) É necessário combater a sobrepressão hidrostática.

C) Há ocorrência de bolsões de solos moles variáveis sob a projeção da estrutura.

D) A sapata corrida cobre 40% acima da área de fundação por causa de cargas elevadas de pilares.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Ética profissional, social, política

Se a maior preocupação de Maquiavel é o Estado, poderíamos dizer que isso o situa no presente temporal.

A respeito disto, afirma Sadek (1995, p. 17): "De fato, sua preocupação em todas as suas obras é o Estado. Não o melhor Estado, aquele tantas vezes imaginado, mas que nunca existiu. Mas o Estado real, capaz de impor a ordem".

A partir do trecho citado, assinale a alternativa correta:

A) Para Maquiavel, o tempo presente do Estado deve ser considerado pela ética.

B) Para Maquiavel, a ética está associada ao exercício da ordem.

C) Para Maquiavel, a ética está atrelada a uma idealização da ação na política.

D) Para Maquiavel, a ordem é fruto de um Estado ético.

E) Para Maquiavel, o Estado existe enquanto mantenedor da ética.
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de Java

Veja mais Dicas e truques de Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 60 usuários muito felizes estudando em nosso site.