![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Java ::: Pacote java.lang ::: Integer |
Java para iniciantes - Como usar o método parseInt() da classe Integer para converter uma String em um valor do tipo intQuantidade de visualizações: 95747 vezes |
Em algumas situações, principalmente quando estamos lidando com valores informados pelo usuário, nós precisamos converter uma String em um valor inteiro. Para isso podemos usar o método parseInt() da classe Integer. Veja sua assinatura: public static int parseInt(String s) throws NumberFormatException A String fornecida como argumento deve conter apenas digitos decimais, exceto que o primeiro caractere pode ser o caractere ASCII sinal de menos "-" ('\u002D') para indicar um valor negativo ou o caractere ASCII sinal de mais "+" ('\u002B') para indicar um valor positivo. Veja um exemplo no qual usamos o método parseInt() para converter uma String informada pelo usuário em um valor do tipo int: import java.util.Scanner; public class Estudos { public static void main(String[] args) { // vamos usar um objeto da classe Scanner para ler a idade do usuário Scanner entrada = new Scanner(System.in); // solicita a idade System.out.print("Informe sua idade: "); int idade = Integer.parseInt(entrada.nextLine()); // mostra o valor lido System.out.println("A idade informada foi: " + idade); } } Ao executarmos este código teremos o seguinte resultado: Informe sua idade: 28 A idade informada foi: 28 Há, porém, situações nas quais o usuário pode não seguir as recomendações de não inserir caracteres inválidos, o que inviabiliza a conversão para inteiro. Veja: Informe sua idade: osmar Exception in thread "main" java.lang.NumberFormatException: For input string: "osmar" at java.lang.NumberFormatException.forInputString(NumberFormatException. java:48) at java.lang.Integer.parseInt(Integer.java:447) at java.lang.Integer.parseInt(Integer.java:497) at Estudos.main(Estudos.java:10) Para contornar esta situação nós precisamos fornecer um bloco try...catch para tratar a exceção NumberFormatException. Veja: import java.util.Scanner; public class Estudos { public static void main(String[] args) { // vamos usar um objeto da classe Scanner para ler a idade do usuário Scanner entrada = new Scanner(System.in); // solicita a idade System.out.print("Informe sua idade: "); try{ int idade = Integer.parseInt(entrada.nextLine()); // mostra o valor lido System.out.println("A idade informada foi: " + idade); } catch(NumberFormatException nfe){ System.out.println("Valor inválido: " + nfe.getMessage()); } } } Agora o programa exibirá uma mensagem de erro caso o usuário forneça uma String que não pode ser convertida para inteiro. |
Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens |
Como carregar uma imagem em um BufferedImage do Java usando o método read() da classe ImageIOQuantidade de visualizações: 12378 vezes |
O método read() da classe ImageIO possui várias assinaturas. Entre elas há uma que aceita um objeto File representando o caminho e nome da imagem a ser carregada. Este método retorna um BufferedImage e atira uma exceção IOException se a imagem não puder ser carregada. O exemplo abaixo mostra como carregar uma imagem JPG em um BufferedImage usando ImageIO.read(): import java.awt.*; import java.io.*; import java.awt.image.*; import java.awt.event.*; import javax.swing.*; import javax.imageio.*; public class Estudos extends JFrame{ private BufferedImage imagem; public Estudos() { super("Estudos Java"); Container c = getContentPane(); c.setLayout(new FlowLayout()); JButton btn = new JButton("Carregar Imagem"); btn.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ imagem = null; try{ imagem = ImageIO.read( new File("imagens/fundo.jpg")); } catch(IOException exc){ JOptionPane.showMessageDialog(null, "Erro ao carregar a imagem: " + exc.getMessage()); } if(imagem != null) JOptionPane.showMessageDialog(null, "Imagem carregada com sucesso."); } } ); c.add(btn); setSize(400, 300); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } |
wxWidgets ::: Dicas de Estudo e Anotações ::: Passos Iniciais |
Como baixar, compilar a biblioteca e criar um projeto C++ wxWidgets usando o Visual Studio 2017Quantidade de visualizações: 2453 vezes |
O wxWidgets (conhecido anteriormente como wxWindows) é um toolkit para a criação de interfaces gráficas de usuário (UI) multiplataforma. É lançado sob uma licença livre, a wxWindows Library Licence. Lançada em 1992 por Julian Smart, que continua como desenvolvedor, a biblioteca wxWidgets permite que um programa seja compilado e executado em diversas plataformas de computação, com poucas ou nenhuma modificação. Ela suporta sistemas como: Microsoft Windows, Apple Inc. Mac OS, Linux/Unix (para X11). A biblioteca é implementada em C++, mas outras implementações estão disponíveis para várias das linguagens de programação mais comuns, entre elas: Python, Smalltalk, Perl e Java. Fazendo o dowload do código fonte do wxWidgets Agora que você já sabe o que é o wxWidgets, chegou a hora da notícia triste. Compilar e usar esta biblioteca em nossos programas C++ é um pesadelo, principalmente no Windows. Por isso, resolvi compartilhar com todos as minha experiência, já que o entendimento de todos os passos envolvidos me consumiu alguns finais de semana. O primeiro passo é baixar o código fonte (source code) do wxWidgets. Para isso aponte o seu navegador para https://www.wxwidgets.org. Para esta dica eu usei a versão 3.1.3 no Visual Studio 2017. Acredito que outras versões, tanto do wxWidgets quanto do Visual Studio C++ tenham procedimentos parecidos. Vá até a área de downloads e localize o instalador Windows Installer 1.3.1, com o tamanho de 53Mb. Lembre-se que estamos baixando o código fonte da biblioteca, e não os binários já prontos. Finalizado o download, faça a instalação em um diretório sem espaços. Uma boa sugestão é "C:\wxWidgets-3.1.3" Compilando o wxWidgets usando o Visual Studio 2017 Chegou a hora da compilação. Se você ainda não o fez, abra o VS 2017, vá no menu Abrir -> Pasta/Solução e navegue até o diretório C:\wxWidgets-3.1.3\build\msw. Neste diretório você encontrará projetos para as mais diferentes versões do Visual Studio. Como estamos usando o VS 2017, o projeto a ser aberto é wx_vc15.sln. Escolhe logo este arquivo e clique Abrir. Para o processo de compilação nós temos quatro opções: Debug (static), DLL Debug, DLL Release e Release (static). O Debug deixa o executável maior, porque inclui verificações de faixas e outras informações importantes para o desenvolvimento. As versões com DLL são escolhas boas, pois deixa o executável menor e agiliza o processo de compilação. O alvo da CPU pode ser Win32 ou x64, dependendo do seu desejo. Para esta dica eu usei Win32. Agora vamos compilar para estas quatro opções. Escolha a primeira (Debug), defina a CPU alvo e use a opção Compilar Solução. Pode ir buscar um cafezinho porque o processo é um pouco demorado. Faça isso com as outras três opções de compilação. Correu tudo bem? Nada de erros? Vamos continuar então. Criando o seu primeiro projeto wxWidgets para testar sua compilação Em geral, quando terminamos de compilar o wxWidgets, a primeira coisa que fazemos é abrir uma das samples (amostras) que acompanham a biblioteca, tais como a "minimal", no diretório "C:\wxWidgets-3.1.3\samples\minimal". Se você fizer isso agora, verá que esta aplicação (minimal_vc15.sln) é compilada e executada com sucesso. O problema é quando queremos construir nossa aplicação a partir deste template. O simples fato de renomearmos o projeto ou movê-lo desse diretório já trará uma dor de cabeça danada. Então vamos criar nosso próprio projeto. Feche e abra o VS 2017 novamente. Em seguida vá até o menu Arquivo -> Novo -> Projeto -> Projeto Vazio. Dê um nome e um local para este projeto, sempre sem espaços e caracteres especiais. No Gerenciador de Soluções, clique com o botão auxiliar no nó Arquivos de Origem (Source Code) e escolha Adicionar -> Novo Item. Na janela que se abrirá, escolha Arquivo do C++ (.cpp), dê o nome "Main.cpp" e clique Adicionar. Agora copie o código abaixo (retirado do manual do wxWidgets) e cole no arquivo Main.cpp: // wxWidgets "Hello World" Program // For compilers that support precompilation, // includes "wx/wx.h". #include <wx/wxprec.h> #ifndef WX_PRECOMP #include <wx/wx.h> #endif class MyApp : public wxApp { public: virtual bool OnInit(); }; class MyFrame : public wxFrame { public: MyFrame(); private: void OnHello(wxCommandEvent& event); void OnExit(wxCommandEvent& event); void OnAbout(wxCommandEvent& event); }; enum { ID_Hello = 1 }; wxIMPLEMENT_APP(MyApp); bool MyApp::OnInit() { MyFrame *frame = new MyFrame(); frame->Show(true); return true; } MyFrame::MyFrame() : wxFrame(NULL, wxID_ANY, "Hello World") { wxMenu *menuFile = new wxMenu; menuFile->Append(ID_Hello, "&Hello...\tCtrl-H", "Help string shown in status bar for this menu item"); menuFile->AppendSeparator(); menuFile->Append(wxID_EXIT); wxMenu *menuHelp = new wxMenu; menuHelp->Append(wxID_ABOUT); wxMenuBar *menuBar = new wxMenuBar; menuBar->Append(menuFile, "&File"); menuBar->Append(menuHelp, "&Help"); SetMenuBar(menuBar); CreateStatusBar(); SetStatusText("Welcome to wxWidgets!"); Bind(wxEVT_MENU, &MyFrame::OnHello, this, ID_Hello); Bind(wxEVT_MENU, &MyFrame::OnAbout, this, wxID_ABOUT); Bind(wxEVT_MENU, &MyFrame::OnExit, this, wxID_EXIT); } void MyFrame::OnExit(wxCommandEvent& event) { Close(true); } void MyFrame::OnAbout(wxCommandEvent& event) { wxMessageBox("This is a wxWidgets Hello World example", "About Hello World", wxOK | wxICON_INFORMATION); } void MyFrame::OnHello(wxCommandEvent& event) { wxLogMessage("Hello world from wxWidgets!"); } Assim que você colar esse código, você já verá um monte de erros, várias partes do código sublinhadas de vermelho. Não se desespere que nós vamos corrigir isso agora. Clique com o botão direito no nó do seu projeto e escolha a opção Propriedades. Nessa janela, localize a opção Configuração e selecione Todas as configurações. Plataforma fica à sua escolha, Win32 (x86) ou x64. Na dúvida deixe Win32. Agora vá em C/C++, na aba Geral e localize Diretórios de Inclusão Adicionais. Clique e escolha a opção Editar. Adicione uma nova entrada para o diretório "C:\wxWidgets-3.1.3\include" (sem as aspas). Clique a opção Aplicar. Agora, ainda na opção C/C++, escolha Pré-processador, clique Editar e vamos acrescentar o valor WXUSINGDLL. Clique Aplicar novamente e vamos agora até o Veiculador (Linker). Localize Diretórios de Bibliotecas Adicionais e adicione a entrada "C:\wxWidgets-3.1.3\lib\vc_dll". Clique Aplicar. Agora mude a configuração para Release. Em seguida vá na seção C/C++, localize a opção Diretórios de Inclusão Adicionais e acrescente a entrada "C:\wxWidgets-3.1.3\lib\vc_dll\mswu" (sem aspas). Vá agora no Veiculador (Linker), opção Entrada e informe o valores wxbase31u.lib e wxmsw31u_core.lib para Dependências Adicionais, cada um em uma linha. Vamos repetir a mesma coisa para a configuração Debug. Dessa vez os valores para Dependências Adicionais na opção Entrada do Veiculador serão wxbase31ud.lib e wxmsw31ud_core.lib (cada um em uma linha). Para finalizar, vá em C/C++ e adicione "C:\wxWidgets-3.1.3\lib\vc_dll\mswud" como uma nova entrada para Diretórios de Inclusão Adicionais. Chegou o grande momento Se você seguiu todos os passos atentamente, já está pronto para compilar seu projeto. Dispare a opção Compilar e cruze os dedos. É bem provável que você já veja de cara o erro abaixo: Erro LNK2019 símbolo externo indefinido _main referenciado na função "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) estudos C:\estudos_wxwidgets\estudos\estudos\estudos\MSVCRTD.lib(exe_main.obj) 1 Se isso acontecer, vá de novo até as propriedades do projeto, selecione Todas as Configurações, localize a opção Veiculador (Linker) e depois Sistema. Em SubSystem, troque o valor Console (/SUBSYSTEM:CONSOLE) por Windows (/SUBSYSTEM:WINDOWS). Tente compilar novamente. É provável que você encontre mais um erro, e esperamos que será o último. O programa não pode ser iniciado porque está faltando wxmsw313u_core_vc_custom.dll no seu computador. Tente reinstalá-lo para resolver esse problema. O programa não pode ser iniciado porque está faltando wxbase313u_vc_custom.dll no seu computador. Tente reinstalá-lo para resolver esse problema. Isso aconteceu porque você deve estar compilando em Debug DLL ou Release DLL (o que não é uma má idéia). Para resolver, vá até "C:\wxWidgets-3.1.3\lib\vc_dll" e copie essas duas DLLs para o diretório do seu executável (que deve estar dentro da pasta Debug ou Release) ou para o diretório Windows. A opção de colocar junto ao seu executável é melhor, pois evita o risco de erros caso você tiver versões diferentes do wxWidgets no seu sistema. Abraços e vida longa ao C/C++. |
PHP ::: Dicas & Truques ::: Variáveis e Constantes |
Como verificar se uma variável PHP é do tipo object usando a função is_object()Quantidade de visualizações: 9407 vezes |
Em algumas situações podemos querer saber se o tipo de uma determinada variável é object. Este teste pode ser feito com o auxílio da função is_object() da linguagem PHP. Esta função retorna um valor true se a variável for do tipo object e false em caso contrário. Veja o código completo para o exemplo: <html> <head> <title>Estudos PHP</title> </head> <body> <?php class Pessoa{ public $nome = ''; function nome($novo_nome = NULL){ if(!is_null($novo_nome)){ $this->nome = $novo_nome; } return $this->nome; } } $pessoa = new Pessoa; if(is_object($pessoa)){ echo 'A variável $pessoa é do tipo object.'; } ?> </body> </html> Ao executarmos este código PHP nós teremos o seguinte resultado: A variável $pessoa é do tipo object. |
Delphi ::: Win32 API (Windows API) ::: Formulários e Janelas |
Como usar a função GetWindow() da API do Windows para pesquisar e retornar um handle para uma janela baseado em seu título completo ou parcial usando DelphiQuantidade de visualizações: 15152 vezes |
Em algumas situações nós precisamos pesquisar e retornar um handle para uma janela baseado em seu título completo ou parcial, ou seja, gostaríamos de encontrar uma janela que contenha a palavra "sexo". Isso pode ser feito com o auxílio da função GetWindow() da API do Windows. Veja: // função personalizada que permite encontrar uma janela // baseado em seu título function FindWindowByTitle(WindowTitle: string): Hwnd; var NextHandle: Hwnd; NextTitle: array[0..255] of char; begin // vamos obter a primeira janela NextHandle := GetWindow(Application.Handle, GW_HWNDFIRST); while NextHandle > 0 do begin // vamos obter o título da janela GetWindowText(NextHandle, NextTitle, 256); // a janela contém o título que procuramos? if Pos(Uppercase(WindowTitle), UpperCase(String(NextTitle))) <> 0 then begin Result := NextHandle; Exit; end else // vamos tentar a próxima janela NextHandle := GetWindow(NextHandle, GW_HWNDNEXT); end; // não encontramos nada? vamos retornar um handle nulo Result := 0; end; procedure TForm1.Button1Click(Sender: TObject); var handle: hwnd; begin // vamos localizar e fechar a Calculadora do Windows // ou qualquer janela que contenha o texto "Calculadora" handle := FindWindowByTitle('Calculadora'); if handle <> 0 then // encontramos a janela? vamos fechá-la SendMessage(handle, WM_SYSCOMMAND, SC_CLOSE, 0) else ShowMessage('A janela pesquisada não foi encontrada'); end; Neste exemplo nós pesquisamos uma janela que contenha a palavra "Calculadora" em seu título. Se encontrada, nós a fechamos com o auxílio da função SendMessage() e a mensagem WM_SYSCOMMAND com o valor SC_CLOSE para o parâmetro wParam. Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Ruby ::: Dicas & Truques ::: Strings e Caracteres |
Como retornar a quantidade de vezes que um caractere aparece em uma string Ruby usando a função count()Quantidade de visualizações: 8346 vezes |
O método count() da classe String da linguagem Ruby pode ser usado para obter a quantidade de vezes em que um determinado caractere aparece em uma string. Para isso, só precisamos fornecer o caractere que será pesquisado. O retorno será um número inteiro. Veja o exemplo:# declara e inicializa uma variável string frase = "Gosto muito de Ruby" # vamos obter a quantidade de vezes em que o # caractere "o" aparece na frase quant = frase.count("o") # exibe o resultado puts "O caractere \"o\" aparece " + quant.to_s \ + " vezes" Ao executar este código Ruby nós teremos o seguinte resultado: O caractere "o" aparece 3 vezes |
Java ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular porcentagem em Java - Como efetuar cálculos de porcentagem em JavaQuantidade de visualizações: 55437 vezes |
Cálculos de porcentagens estão presentes em boa parte das aplicações que desenvolvemos. Porém, há momentos em que a mente trava e não conseguimos lembrar com clareza como estes cálculos são feitos, principalmente em Java. Esta anotação tem o objetivo de ser uma fonte de pesquisa para os momentos em que suas habilidades matemáticas insistirem em continuar ocultas. Ex: 1 - Suponhamos que um produto que custe R$ 178,00 sofra um acréscimo de 15%. Qual o valor final do produto? Veja o código em Java: // Algoritmo que calcula porcentagem em Java package estudos; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema double valor, percentual, valor_final; valor = 178.00; // valor original percentual = 15.0 / 100.0; // 15% valor_final = valor + (percentual * valor); // mostra o resultado System.out.println("O valor final do produto é: " + valor_final); // O resultado será 204,70 } } Ex: 2 - Um produto, cujo valor original era de R$ 250,00, teve um desconto de 8%. Qual foi seu valor final? Veja o código em Java: // Algoritmo que calcula porcentagem em Java package estudos; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema double valor, percentual, valor_final; valor = 250.00; // valor original percentual = 8.0 / 100.0; // 8% valor_final = valor - (percentual * valor); // mostra o resultado System.out.println("O valor final do produto é: " + valor_final); // O resultado será 230,00 } } Ex: 3 - Em um concurso de perguntas e respostas, um jovem acertou 72 das 90 perguntas apresentadas. Qual foi a porcentagem de acertos? E a porcentagem de erros? Veja o código em Java: // Algoritmo que calcula porcentagem em Java package estudos; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema double perguntas, acertos; perguntas = 90.0; acertos = 72.0; // mostra a porcentagem de acertos System.out.print("Porcentagem de acertos: "); System.out.println(((acertos / perguntas) * 100) + "%"); // mostra a porcentagem de erros System.out.print("Porcentagem de erros: "); System.out.println((((perguntas - acertos) / perguntas) * 100) + "%"); // Os resultados serão 80% e 20% } } Ex: 4 - Um aparelho de CD foi adquirido por R$ 300,00 e revendido por R$ 340,00. Qual foi a porcentagem de lucro na transação? Veja o código em Java: // Algoritmo que calcula porcentagem em Java package estudos; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema double valor_anterior, novo_valor, porcentagem_lucro; valor_anterior = 300.0; // valor anterior novo_valor = 340.0; // valor novo // calcula a porcentagem de lucro // efetua o cálculo porcentagem_lucro = ((novo_valor * 100) / valor_anterior) - 100; System.out.println("A porcentagem de lucro foi de: " + porcentagem_lucro + "%"); // O resultado será 13,33 } } Ex: 5 - Uma loja repassa 5% do lucro a seus vendedores. Se um produto custa R$ 70,00, qual o valor em reais repassado a um determinado vendedor? Veja o código em Java: // Algoritmo que calcula porcentagem em Java package estudos; public class Estudos { public static void main(String[] args) { // variáveis usadas na resolução do problema double valor, percentual, comissao; valor = 70.0; // valor do produto percentual = 5.0 / 100.0; // 5% // calcula a comissão comissao = percentual * valor; // mostra o resultado System.out.println("O valor repassado ao vendedor é: " + comissao); // O resultado será 3,5 } } |
Java ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o arco cosseno de um número em Java usando o método acos() da classe MathQuantidade de visualizações: 11961 vezes |
O arco cosseno, ou arco coseno (também chamado de cosseno inverso) pode ser representado por cos-1 x, arccos x ou acos x. Esta função é a inversa do cosseno, ou seja, se o cosseno é a relação entre o cateto adjacente ao ângulo e a hipotenusa, o arco cosseno parte desta relação para encontrar o valor do ângulo. Em Java, o arco cosseno de um número pode ser obtido por meio do método acos() da classe Math. Este método recebe um valor double e retorna também um double, na faixa 0 <= x <= PI, onde PI vale 3.1416. Veja um código Java completo no qual informamos um número e em seguida calculamos o seu arco-cosseno: package arquivodecodigos; public class Estudos{ public static void main(String args[]){ double numero = 0.5; System.out.println("O arco cosseno de " + numero + " é " + Math.acos(numero)); } } Ao executar este código nós teremos o seguinte resultado: O arco cosseno de 0.5 é 1.0471975511965979 Não se esqueça de que as funções trigonométricas são usadas para modelar o movimento das ondas e fenômenos periódicos, como padrões sazonais. Elas formam a base para análises avançadas em engenharia elétrica, processamento digital de imagem, radiografia, termodinâmica, telecomunicações e muitos outros campos da ciência e da tecnologia. |
C# ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de C# - Como testar se um ano é bissexto em C# - Um programa que lê um ano com quatro dígitos e informa se ele é bissexto ou nãoQuantidade de visualizações: 505 vezes |
Pergunta/Tarefa: Chama-se ano bissexto o ano ao qual é acrescentado um dia extra, ficando ele com 366 dias, um dia a mais do que os anos normais de 365 dias, ocorrendo a cada quatro anos (exceto anos múltiplos de 100 que não são múltiplos de 400). Isto é feito com o objetivo de manter o calendário anual ajustado com a translação da Terra e com os eventos sazonais relacionados às estações do ano. O último ano bissexto foi 2012 e o próximo será 2016. Um ano é bissexto se ele for divisível por 4 mas não por 100, ou se for divisível por 400. Escreva um programa C# que pede ao usuário um ano com quatro dígitos e informa se ele é bissexto ou não. Sua saída deverá ser parecida com: Informe o ano: 2024 O ano informado é bissexto. Veja a resolução comentada deste exercício usando C# console: using System; namespace Estudos { class Principal { // função principal do programa C# static void Main(string[] args) { // vamos solicitar que o usuário informe um ano Console.Write("Informe o ano: "); int ano = Int32.Parse(Console.ReadLine()); // vamos verificar se o ano informado é bissexto if (((ano % 4 == 0) && (ano % 100 != 0)) || (ano % 400 == 0)){ Console.WriteLine("O ano informado é bissexto."); } else { Console.WriteLine("O ano informado não é bissexto."); } Console.WriteLine("\nPressione uma tecla para sair..."); Console.ReadKey(); } } } |
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: 4781 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 |
Nossas 20 dicas & truques de programação mais populares |
VB.NET - Como contar as ocorrências de um caractere em uma string em VB.NET usando o método IndexOf() |
Você também poderá gostar das dicas e truques de programação abaixo |
GNU Octave - Como calcular o cateto oposto dadas as medidas da hipotenusa e do cateto adjascente em GNU Octave JavaScript - Como usar objetos Set em seus códigos JavaScript Android Java - Como usar a classe Toast em suas aplicações Android |
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 |