![]() |
|
||||
|
|||||
Java ::: Coleções (Collections) ::: Set (Conjunto) |
Como usar objetos da interface Set do Java para representar a interseção (ou intersecção) de dois ou mais conjuntosQuantidade de visualizações: 5032 vezes |
|
Na teoria dos conjuntos, a interseção (português brasileiro) ou intersecção (português europeu) de dois ou mais conjuntos é o conjunto dos elementos que, simultaneamente, pertencem a dois ou mais destes conjuntos. Assim, seja A = {2, 5, 8, 19, 30} e B = {2, 3, 1, 30}. A interseção desses dois conjuntos é C = {2, 30}. Na programação Java podemos representar a interseção de dois conjuntos usando objetos da interface Set e qualquer uma de suas implementações. Para este exemplo vou usar a classe TreeSet, que permite a ordenação dos elementos. Veja o código:
package estudos;
import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;
public class Estudos{
public static void main(String[] args) {
// primeiro conjunto
Set<Integer> conjuntoA = new TreeSet<>();
conjuntoA.add(2);
conjuntoA.add(5);
conjuntoA.add(8);
conjuntoA.add(19);
conjuntoA.add(30);
// segundo conjunto
Set<Integer> conjuntoB = new TreeSet<>();
conjuntoB.add(2);
conjuntoB.add(3);
conjuntoB.add(1);
conjuntoB.add(30);
// vamos obter a interseção dos dois conjuntos
Set<Integer> conjuntoC = intersecao(conjuntoA, conjuntoB);
// vamos exibir os elementos no conjunto C
Iterator iterator = conjuntoC.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
// método genérico que permite obter a interseção de dois conjuntos
public static <T> Set<T> intersecao(Set<T> conjA, Set<T> conjB){
Set<T> conjC = new TreeSet<>();
// percorremos todos os elementos do conjunto A
for(T elemento: conjA){
// e verificamos se o elemento está contido no conjunto B
if(conjB.contains(elemento)){
conjC.add(elemento); // se estiver contido nós o adicionamos no conjunto C
}
}
return conjC; // e retornamos o conjunto C
}
}
Ao executarmos este código teremos o seguinte resultado: 2 30 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Recursão (Recursividade) |
Exercícios Resolvidos de Java - Um método recursivo que calcula o MDC (máximo divisor comum) entre dois números inteirosQuantidade de visualizações: 9226 vezes |
|
Exercício Resolvido de Java - Um método recursivo que calcula o MDC (máximo divisor comum) entre dois números inteiros Pergunta/Tarefa: O máximo divisor comum ou MDC (mdc) entre dois ou mais números inteiros é o maior número inteiro que é fator de tais números. Por exemplo, os divisores comuns de 12 e 18 são 1, 2, 3 e 6, logo mdc(12, 18) = 6. A definição abrange qualquer número de termos, por exemplo mdc(10, 15, 25, 30) = 5. O cálculo do MDC entre x e y pode ser feito recursivamente da seguinte forma: Se y for igual a 0, então mdc(x, y) = x. Caso contrário, mdc(x, y) = mdc(y, x % y), no qual % é o operador de módulo (restante da divisão inteira). Escreva um método recursivo que receba dois inteiros e calcule o mdc. Seu método deverá possuir a seguinte assinatura:
public static int mdc(int x, int y){
// sua implementação aqui
}
Informe o primeiro inteiro: 12 Informe o segundo inteiro: 18 O MDC dos valores 12 e 18 é 6 Veja a resolução comentada deste exercício usando Java console:
package exercicio;
import java.util.Scanner;
public class Exercicio {
public static void main(String[] args) {
// cria um novo objeto da classe Scanner
Scanner entrada = new Scanner(System.in);
// vamos solicitar dois valores inteiros
System.out.print("Informe o primeiro inteiro: ");
// lê o primeiro inteiro
int a = Integer.parseInt(entrada.nextLine());
// solicita o segundo inteiro
System.out.print("Informe o segundo inteiro: ");
// lê o segundo inteiro
int b = Integer.parseInt(entrada.nextLine());
// mostra o resultado
System.out.print("O MDC dos valores " + a + " e " +
b + " é " + mdc(a, b));
System.out.println("\n");
}
// método recursivo que calcula o mdc de dois inteiros
public static int mdc(int x, int y){
// a recursividade é interrompida quando y for igual a 0
if(y == 0){
return x;
}
else{
return mdc(y, x % y); // efetua uma nova chamada recursiva
}
}
}
|
Ruby ::: Dicas & Truques ::: Data e Hora |
Como retornar a data e hora atual em Ruby usando os métodos new e now da classe TimeQuantidade de visualizações: 9799 vezes |
|
Quando precisamos obter a data e hora atual, o Ruby nos fornece dois métodos muito úteis e presentes na classe Time: new e now. Ambos retornam um objeto da classe Time representando a data e hora atual no sistema no qual o programa Ruby está sendo executado. Veja uma demonstração destes métodos no trecho de código a seguir:
# obtém a data e hora atual usando o método new
agora = Time.new
# exibe o resultado
puts "Usando new: " + agora.strftime("%d/%m/%Y - %H:%M:%S")
# obtém a data e hora atual usando o método now
agora = Time.now
# exibe o resultado
puts "Usando now: " + agora.strftime("%d/%m/%Y - %H:%M:%S")
Ao executar este código Ruby nós teremos o seguinte resultado: Usando new: 21/03/2021 - 17:00:09 Usando now: 21/03/2021 - 17:00:09 |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Matemática e Estatística |
Exercício Resolvido de Java - Como simplificar frações em JavaQuantidade de visualizações: 919 vezes |
|
Pergunta/Tarefa: Simplificar uma fração consiste em reduzir o numerador e o denominador por meio da divisão pelo máximo divisor comum aos dois números. Uma fração está totalmente simplificada quando verificamos que seus termos estão totalmente reduzidos a números que não possuem termos divisíveis entre si. Uma fração simplificada sofre alteração do numerador e do denominador, mas seu valor matemático não é alterado, pois a fração, quando tem seus termos reduzidos, torna-se uma fração equivalente. Escreva um programa Java que pede para o usuário informar o numerador e o denominador de uma fração e mostre a fração simplificada. Use uma classe Fracao para a operação de simplificação. Em outras seções do nosso site você encontra o cálculo do MDC para encontrar o Máximo Divisor Comum. Sua saída deverá ser parecida com: Informe o numerador: 32 Informe o denominador: 40 A fração gerada foi: 32/40 A fração simplificada é: 4/5 Veja a resolução comentada deste exercício em Java:
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 pedir para o usuário informar o numerador
System.out.print("Informe o numerador: ");
int numerador = Integer.parseInt(entrada.nextLine());
// vamos pedir para o usuário informar o denominador
System.out.print("Informe o denominador: ");
int denominador = Integer.parseInt(entrada.nextLine());
// vamos criar um objeto da classe Fracao
Fracao f = new Fracao(numerador, denominador);
// vamos mostrar a fração gerada
System.out.println("A fração gerada foi: " + f.toString());
// agora vamos simplificar esta fração
System.out.println("A fração simplificada é: " +
f.simplificar().toString());
}
}
// classe usada para representar uma Fração
class Fracao{
int numerador;
int denominador;
// construtor da classe
public Fracao(int numerador, int denominador) {
this.numerador = numerador;
this.denominador = denominador;
}
// método que simplifica a fração atual e retorna o
// resultado como uma fração
public Fracao simplificar(){
// cria uma fração temporária
Fracao temp = new Fracao(this.numerador, this.denominador);
// descobrimos que é maior, o numerador ou o
// denominador
int n = temp.numerador, d = temp.denominador, maior;
// o numerador é menor que 0?
if (temp.numerador < 0) {
n = -temp.numerador;
}
// descobrimos o maior
if (n > d) {
maior = n;
}
else {
maior = d;
}
// encontramos o maior número que divide o numerador e o
// denominador
int mdc = 0;
for (int i = maior; i >= 2; i--) {
if ((temp.numerador % i == 0) && (temp.denominador % i == 0)) {
mdc = i;
break;
}
}
// agora dividimos tanto o numerador quanto o denominador
// pelo mdc encontrado
if (mdc != 0) {
temp.numerador = temp.numerador / mdc;
temp.denominador = temp.denominador / mdc;
}
// retorna a fração temporária
return temp;
}
// retorna uma representação textual dessa fração
@Override
public String toString() {
return this.numerador + "/" + this.denominador;
}
}
|
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - Como testar se uma string começa com uma determinada substring em JavaScript usando a função startsWith() |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Python - Como converter Metros Quadrados em Quilômetros Quadrados em Python - Python para Física e Engenharia C - Como calcular a transposta de uma matriz em C - Curso de C para Geometria Analítica e Álgebra Linear Delphi - Como converter strings em valores TDateTime usando as funções StrToDate() e StrToDateDef() do Delphi |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





