Você está aqui: Java ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o seno de um número ou ângulo em Java usando o método sin() da classe MathQuantidade de visualizações: 3114 vezes |
Em geral, quando falamos de seno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função seno disponível nas linguagens de programação para calcular o seno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria. No entanto, é sempre importante entender o que é a função seno. Veja a seguinte imagem: ![]() Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles. Assim, o seno é a razão entre o cateto oposto (oposto ao ângulo theta) e a hipotenusa, ou seja, o cateto oposto dividido pela hipotenusa. Veja a fórmula: \[\text{Seno} = \frac{\text{Cateto oposto}}{\text{Hipotenusa}} \] Então, se dividirmos 20 por 36.056 (na figura eu arredondei) nós teremos 0.5547, que é a razão entre o cateto oposto e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.5547. O resultado será 0.9828 (em radianos). Convertendo 0.9828 radianos para graus, nós obtemos 56.31º, que é exatamente o ângulo em graus entre o cateto oposto e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é seno na trigonometria, vamos entender mais sobre a função sin() da linguagem Java. Esta método, que faz parte da classe Math, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String args[]){ System.out.println("Seno de 0 = " + Math.sin(0)); System.out.println("Seno de 1 = " + Math.sin(1)); System.out.println("Seno de 2 = " + Math.sin(2)); } } Ao executar este código Java nós teremos o seguinte resultado: Seno de 0 = 0.0 Seno de 1 = 0.8414709848078965 Seno de 2 = 0.9092974268256817 Note que calculamos os senos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função seno mostrada abaixo: ![]() |
![]() |
Java ::: Tratamento de Erros ::: Passos Iniciais |
Quais as diferenças entre checked exceptions, runtime exceptions e errors na linguagem Java?Quantidade de visualizações: 15479 vezes |
Checked exceptions (exceções verificadas), runtime exceptions (exceções de tempo de execução) e errors (erros) possuem diferenças importantes e devem ser entendidas perfeitamente para tirarmos maior proveito da plataforma Java. Entre as checked exceptions podemos citar FileNotFoundException, ClassNotFoundException e IOException. Agora veja: problemas tais como um arquivo não encontrado, uma classe não encontrada ou problemas com entrada e saída (talvez a impressora parou de responder ou a rede caiu) fogem completamente do domínio da aplicação. Tais exceções não são provocadas por código mal escrito ou mal testado. Desta forma, o Java força que todas as checked exceptions estejam em um bloco try...catch. Vamos ver se isso é verdade? Observe o trecho de código abaixo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import java.io.*; public class Estudos{ public static void main(String[] args){ DataInputStream in = new DataInputStream( new BufferedInputStream( new FileInputStream("conteudo.txt"))); while(in.available() != 0) System.out.print((char) in.readByte()); System.exit(0); } } Se tentarmos compilar este código teremos o seguinte resultado: Estudos.java:7: unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown new FileInputStream("conteudo.txt"))); ^ Estudos.java:9: unreported exception java.io.IOException; must be caught or declared to be thrown while(in.available() != 0) ^ Estudos.java:10: unreported exception java.io.IOException; must be caught or declared to be thrown System.out.print((char) in.readByte()); ^ 3 errors Aqui nós temos uma exceção FileNotFoundException e duas exceções IOException. Vamos nos concentrar na exceção gerada pelo construtor da classe FileInputStream. Folheando a documentação do Java nós encontramos: public FileInputStream(String name) throws FileNotFoundException É aqui que as coisas começam a ficar interessantes. Todos os métodos Java que podem atirar exceções verificadas são marcados com throws e o tipo de exceção lançada. A palavra throws é usada para transferir a responsabilidade do tratamento do erro para o chamador de tais métodos. Outro exemplo é o método readByte() da classe DataInputStream: public final byte readByte() throws IOException Para corrigir as exceções acima, só precisamos usar um bloco try...catch. Veja: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import java.io.*; public class Estudos{ public static void main(String[] args){ try{ DataInputStream in = new DataInputStream( new BufferedInputStream( new FileInputStream("conteudo.txt"))); while(in.available() != 0) System.out.print((char) in.readByte()); } catch(IOException e){ System.out.print(e.getMessage()); } System.exit(0); } } Exceções verificadas são todas aquelas que descendem de Exception mas não descendem de RuntimeException. As exceções de tempo de execução (runtime exceptions) são provocadas por código mal escrito ou mal testado, ou seja, são causadas por nós programadores. Entre estas exceções podemos citar ArithmeticException, IndexOutOfBoundsException e NoSuchElementException. De fato, um erro aritmético é responsabilidade do programador, pois cabe a este verificar se os valores estão dentro da faixa permitida por cada tipo de dados. Ao contrário das exceções verificadas, o compilador não força o uso do bloco try...catch para as runtime exceptions. De fato, isso é fácil de compreender, uma vez que tais exceções não deveriam jamais aparecer. Contudo, pode ser desejável usar o bloco try...catch em casos em que os valores de uma operação são definidos pelo usuário. Veja um exemplo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import java.util.*; public class Estudos{ public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.print("Informe um inteiro: "); int valor = in.nextInt(); System.out.print("Informe outro inteiro: "); int valor2 = in.nextInt(); System.out.println("O resultado é " + valor / valor2); } } Se executarmos este código e informarmos o valor 0 para o segundo inteiro, teremos a seguinte exceção: Informe um inteiro: 4 Informe outro inteiro: 0 Exception in thread "main" java.lang.ArithmeticException: / by zero at Estudos.main(Estudos.java:13) Uma forma de corrigir isso é testando os valores informados para verificar suas faixas ou lançar uma exceção. Veja como usamos esta última alternativa: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- import java.util.*; public class Estudos{ public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.print("Informe um inteiro: "); int valor = in.nextInt(); System.out.print("Informe outro inteiro: "); int valor2 = in.nextInt(); try{ System.out.println("O resultado é " + valor / valor2); } catch(ArithmeticException e){ System.out.println("Uma exceção " + "ArithmeticException ocorreu, " + "possivelmente uma tentativa de " + "divisão por zero."); } } } Agora se informarmos zero para o segundo inteiro, teremos: Informe um inteiro: 5 Informe outro inteiro: 0 Uma exceção ArithmeticException ocorreu, possivelmente uma tentativa de divisão por zero. As runtime exceptions (causadas por falha nossa, os programadores) descedem de java.lang.RuntimeException. Além das runtime exceptions e das checked exceptions, temos também os errors, que descedem de java.lang.Error e não devem jamais ser atirados ou tratados em blocos try...catch. Este tipo de erro é reservado para indicar problema na JVM. Entre tais erros temos OutOfMemoryError, que é lançado quando a Java Virtual Machine não consegue alocar um objeto porque sua fatia de memória esgotou e o Garbage Collector ainda não liberou mais memória. Não há razão para tratarmos isso em um bloco try...catch uma vez que, ao contrário de C++, a liberação de memória só é feita pelo GC. O melhor a fazer é deixar mesmo o programa ser encerrado e encontrar alternativas para a correção do problema. |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Como obter os modificadores dos métodos de uma classe ou interface usando o método getModifiers() da classe Method da linguagem JavaQuantidade de visualizações: 8529 vezes |
O método getModifiers() da classe Method permite obter os modificadores (public, static, final, private, etc) de um determinado método. O retorno deste método é um valor inteiro que pode ser testado usando alguns métodos estáticos da classe Modifier. O exemplo a seguir mostra como listar todos os métodos públicos da classe javax.swing.JButton e seus modificadores: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arquivodecodigos; import java.lang.reflect.*; public class Estudos{ public static void main(String args[]){ // vamos carregar a classe JButton try{ Class c = Class.forName( "javax.swing.JButton"); // obtém os nomes dos métodos Method[] metodos = c.getMethods(); for(int i = 0; i < metodos.length; i++){ // obtém o nome do método String nome = metodos[i].getName(); // obtém os modificadores int modificador = metodos[i].getModifiers(); String modificadores = ""; if(Modifier.isPublic(modificador)) modificadores += "public "; if(Modifier.isPrivate(modificador)) modificadores += "private "; if(Modifier.isProtected(modificador)) modificadores += "protected "; if(Modifier.isStatic(modificador)) modificadores += "static "; if(Modifier.isFinal(modificador)) modificadores += "final "; System.out.println(nome + " - " + modificadores); } } catch(ClassNotFoundException e){ System.out.println(e.getMessage()); } System.exit(0); } } Ao executar este exemplo nós teremos uma lista gigantesca de métodos declarados e herdados pela classe javax.swing.JButton. Veja: getAccessibleContext - public getUIClassID - public isDefaultButton - public isDefaultCapable - public removeNotify - public setDefaultCapable - public updateUI - public getUI - public setAction - public setModel - public setUI - public addActionListener - public addChangeListener - public addItemListener - public doClick - public doClick - public getAction - public getActionCommand - public getActionListeners - public getChangeListeners - public getDisabledIcon - public getDisabledSelectedIcon - public getDisplayedMnemonicIndex - public getHideActionText - public getHorizontalAlignment - public getHorizontalTextPosition - public getIcon - public getIconTextGap - public getItemListeners - public getLabel - public getMargin - public getMnemonic - public getModel - public getMultiClickThreshhold - public getPressedIcon - public getRolloverIcon - public getRolloverSelectedIcon - public getSelectedIcon - public getSelectedObjects - public getText - public getVerticalAlignment - public getVerticalTextPosition - public imageUpdate - public isBorderPainted - public isContentAreaFilled - public isFocusPainted - public isRolloverEnabled - public isSelected - public removeActionListener - public removeChangeListener - public removeItemListener - public setActionCommand - public setBorderPainted - public setContentAreaFilled - public setDisabledIcon - public setDisabledSelectedIcon - public setDisplayedMnemonicIndex - public setEnabled - public setFocusPainted - public setHideActionText - public setHorizontalAlignment - public setHorizontalTextPosition - public setIcon - public setIconTextGap - public setLabel - public setLayout - public setMargin - public setMnemonic - public setMnemonic - public setMultiClickThreshhold - public setPressedIcon - public setRolloverEnabled - public setRolloverIcon - public setRolloverSelectedIcon - public setSelected - public setSelectedIcon - public setText - public setVerticalAlignment - public setVerticalTextPosition - public update - public contains - public getLocation - public print - public getSize - public isOpaque - public disable - public enable - public firePropertyChange - public firePropertyChange - public firePropertyChange - public getRootPane - public getListeners - public paintImmediately - public paintImmediately - public repaint - public repaint - public revalidate - public setAlignmentX - public setAlignmentY - public addAncestorListener - public addNotify - public addVetoableChangeListener - public computeVisibleRect - public createToolTip - public getActionForKeyStroke - public getActionMap - public final getAlignmentX - public getAlignmentY - public getAncestorListeners - public getAutoscrolls - public getBaseline - public getBaselineResizeBehavior - public getBorder - public getBounds - public getClientProperty - public final getComponentPopupMenu - public getConditionForKeyStroke - public getDebugGraphicsOptions - public getDefaultLocale - public static getFontMetrics - public getGraphics - public getHeight - public getInheritsPopupMenu - public getInputMap - public final getInputMap - public final getInputVerifier - public getInsets - public getInsets - public getMaximumSize - public getMinimumSize - public getNextFocusableComponent - public getPopupLocation - public getPreferredSize - public getRegisteredKeyStrokes - public getToolTipLocation - public getToolTipText - public getToolTipText - public getTopLevelAncestor - public getTransferHandler - public getVerifyInputWhenFocusTarget - public getVetoableChangeListeners - public getVisibleRect - public getWidth - public getX - public getY - public grabFocus - public hide - public isDoubleBuffered - public isLightweightComponent - public static isManagingFocus - public isOptimizedDrawingEnabled - public isPaintingForPrint - public final isPaintingTile - public isRequestFocusEnabled - public isValidateRoot - public paint - public printAll - public putClientProperty - public final registerKeyboardAction - public registerKeyboardAction - public removeAncestorListener - public removeVetoableChangeListener - public requestDefaultFocus - public requestFocus - public requestFocus - public requestFocusInWindow - public resetKeyboardActions - public reshape - public scrollRectToVisible - public setActionMap - public final setAutoscrolls - public setBackground - public setBorder - public setComponentPopupMenu - public setDebugGraphicsOptions - public setDefaultLocale - public static setDoubleBuffered - public setFocusTraversalKeys - public setFont - public setForeground - public setInheritsPopupMenu - public setInputMap - public final setInputVerifier - public setMaximumSize - public setMinimumSize - public setNextFocusableComponent - public setOpaque - public setPreferredSize - public setRequestFocusEnabled - public setToolTipText - public setTransferHandler - public setVerifyInputWhenFocusTarget - public setVisible - public unregisterKeyboardAction - public add - public add - public add - public add - public add - public remove - public remove - public list - public list - public removeAll - public addPropertyChangeListener - public addPropertyChangeListener - public getComponent - public getComponentCount - public getComponents - public getFocusTraversalPolicy - public invalidate - public isFocusCycleRoot - public isFocusCycleRoot - public setFocusTraversalPolicy - public addContainerListener - public applyComponentOrientation - public areFocusTraversalKeysSet - public countComponents - public deliverEvent - public doLayout - public findComponentAt - public findComponentAt - public getComponentAt - public getComponentAt - public getComponentZOrder - public getContainerListeners - public getFocusTraversalKeys - public getLayout - public getMousePosition - public insets - public isAncestorOf - public isFocusTraversalPolicyProvider - public final isFocusTraversalPolicySet - public layout - public locate - public minimumSize - public paintComponents - public preferredSize - public printComponents - public removeContainerListener - public setComponentZOrder - public setFocusCycleRoot - public setFocusTraversalPolicyProvider - public final transferFocusDownCycle - public validate - public add - public remove - public toString - public getName - public contains - public size - public getLocation - public getParent - public setName - public list - public list - public list - public getSize - public location - public setSize - public setSize - public resize - public resize - public enable - public firePropertyChange - public firePropertyChange - public firePropertyChange - public firePropertyChange - public firePropertyChange - public action - public isEnabled - public isFocusOwner - public removePropertyChangeListener - public removePropertyChangeListener - public repaint - public repaint - public repaint - public getBackground - public getBounds - public getFocusCycleRootAncestor - public getFont - public getForeground - public getPeer - public getPropertyChangeListeners - public getPropertyChangeListeners - public getTreeLock - public final isDisplayable - public isMaximumSizeSet - public isMinimumSizeSet - public isPreferredSizeSet - public isShowing - public isVisible - public nextFocus - public setBounds - public setBounds - public setLocale - public setLocation - public setLocation - public dispatchEvent - public final getGraphicsConfiguration - public getMousePosition - public handleEvent - public isFocusable - public isLightweight - public isValid - public postEvent - public transferFocus - public transferFocusBackward - public addComponentListener - public addFocusListener - public addHierarchyBoundsListener - public addHierarchyListener - public addInputMethodListener - public addKeyListener - public addMouseListener - public addMouseMotionListener - public addMouseWheelListener - public bounds - public checkImage - public checkImage - public createImage - public createImage - public createVolatileImage - public createVolatileImage - public enableInputMethods - public getColorModel - public getComponentListeners - public getComponentOrientation - public getCursor - public getDropTarget - public getFocusListeners - public getFocusTraversalKeysEnabled - public getHierarchyBoundsListeners - public getHierarchyListeners - public getIgnoreRepaint - public getInputContext - public getInputMethodListeners - public getInputMethodRequests - public getKeyListeners - public getLocale - public getLocationOnScreen - public getMouseListeners - public getMouseMotionListeners - public getMouseWheelListeners - public getToolkit - public gotFocus - public hasFocus - public inside - public isBackgroundSet - public isCursorSet - public isFocusTraversable - public isFontSet - public isForegroundSet - public keyDown - public keyUp - public lostFocus - public mouseDown - public mouseDrag - public mouseEnter - public mouseExit - public mouseMove - public mouseUp - public move - public paintAll - public prepareImage - public prepareImage - public removeComponentListener - public removeFocusListener - public removeHierarchyBoundsListener - public removeHierarchyListener - public removeInputMethodListener - public removeKeyListener - public removeMouseListener - public removeMouseMotionListener - public removeMouseWheelListener - public setComponentOrientation - public setCursor - public setDropTarget - public setFocusTraversalKeysEnabled - public setFocusable - public setIgnoreRepaint - public show - public show - public transferFocusUpCycle - public wait - public final wait - public final wait - public final equals - public hashCode - public getClass - public final notify - public final notifyAll - public final |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição |
Exercícios Resolvidos de Java - Como testar se um número é perfeito usando JavaQuantidade de visualizações: 749 vezes |
Pergunta/Tarefa: Escreva um programa Java que pede para o usuário informar um número inteiro e informa se este número é um número perfeito. Um número perfeito é aquele cuja soma dos seus divisores, exceto ele próprio, é igual ao número. Por exemplo, o número 6 é perfeito, pois 1 + 2 + 3 = 6. Sua saída deverá ser parecida com: Informe um número inteiro: 6 O número informado é um número perfeito. Veja a resolução completa para o exercício em Java, comentada linha a linha: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; import java.util.Scanner; public class Estudos{ public static void main(String[] args){ int numero; // número informado pelo usuário int soma = 0; // vai guardar a soma dos dígitos // para efetuar a leitura da entrada do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar o valor inteiro System.out.print("Informe um número inteiro: "); // lê o número informado numero = Integer.parseInt(entrada.nextLine()); // um laço que começa em 1 e até o número informado - 1 for(int i = 1; i < numero; i++){ // o número é divisível pelo valor de i? if(numero % i == 0){ soma = soma + i; // aumenta a soma } } // a soma é igual ao número informado? if(soma == numero){ System.out.println("O número informado é um número perfeito."); } else{ System.out.println("O número informado não é um número perfeito."); } } } |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como retornar o tamanho de um array em Java usando a propriedade length do objeto ArrayQuantidade de visualizações: 11171 vezes |
Nesta dica mostrarei como usar a propriedade length de um vetor (array de uma linha e várias colunas) para retornar a quantidade de elementos que ele possui. Este retorno é um número inteiro. Veja o código completo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String[] args){ // cria um vetor de cinco elementos String[] pessoas = {"Fábio", "Fernanda", "Francisco", "João", "Osmar"}; // obtém o tamanho do vetor int quant = pessoas.length; System.out.println("Este array possui " + quant + " elementos"); System.exit(0); } } Ao executarmos este código nós teremos o seguinte resultado: Este array possui 5 elementos Este código foi revisado e testado no Java 8. |
Java ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o comprimento da hipotenusa em Java dadas as medidas do cateto oposto e do cateto adjascenteQuantidade de visualizações: 1458 vezes |
Nesta dica mostrarei como é possível usar a linguagem Java para retornar o comprimento da hipotenusa dadas as medidas do cateto oposto e do cateto adjascente. Vamos começar analisando a imagem a seguir:![]() Veja que, nessa imagem, eu já coloquei os comprimentos da hipotenusa, do cateto oposto e do cateto adjascente. Para facilitar a conferência dos cálculos, eu coloquei também os ângulos theta (que alguns livros chamam de alfa) e beta já devidamente calculados. Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras), tudo que temos a fazer a converter esta fórmula para código Java. Veja: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arquivodecodigos; public class Estudos{ public static void main(String args[]){ double a = 20; // medida do cateto oposto double b = 30; // medida do cateto adjascente // agora vamos calcular o comprimento da hipotenusa double c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2)); // e mostramos o resultado System.out.println("O comprimento da hipotenusa é: " + c); } } Ao executar este código Java nós teremos o seguinte resultado: O comprimento da hipotenusa é: 36.05551275463989 Como podemos ver, o resultado retornado com o código Java confere com os valores da imagem apresentada. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Internet, LAN e E-Mail |
Exercícios Resolvidos de Java - Como testar se há um serviço sendo executado em uma porta de um servidor ou máquina localQuantidade de visualizações: 7492 vezes |
Pergunta/Tarefa: Este exercício resolvido é sobre Internet, Rede e E-Mail usando programação Java. Escreva um programa Java console ou GUI que peça ao usuário para informar um número de porta na máquina local. Em seguida, tente se conectar a esta porta e informe se há algum serviço sendo executado na porta informada. A entrada e saída do programa pode ser algo como: Informe o número da porta a ser pesquisada: 3306 Há um serviço na porta informada Informe o número da posta a ser pesquisada: 2040 Não há nenhum serviço na porta informada Resposta/Solução: Veja a resolução comentada deste exercício usando Java console: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package estudos; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; public class Main { public static void main(String[] args){ Socket socket; // vamos declarar um objeto da classe Socket String host = "localhost"; // define o nome da máquina host // vamos pedir ao usuário que informe a porta a ser pesquisada Scanner entrada = new Scanner(System.in); System.out.print("Informe o número da posta a ser pesquisada: "); int porta = Integer.parseInt(entrada.nextLine()); // vamos verificar se há algum serviço na porta informada try{ socket = new Socket(host, porta); System.out.println("Há um serviço na porta informada"); } catch (UnknownHostException e) { // não foi possível encontrar a máquina host System.out.println("Não foi possível encontrar a máquina host: " + e); } catch (IOException e) { System.out.println("Não há nenhum serviço na porta informada"); } } } Veja que, neste exercício, podemos ter o surgimento de duas exceções: UnknownHostException (a máquina informada não pôde ser encontrada) e IOException (houve erro de entrada e/ou saída). Por esta razão, é uma boa idéia envolver o código em um bloco try...catch. |
Java ::: Pacote java.lang ::: String |
Curso de Java - Como usar a classe String da linguagem JavaQuantidade de visualizações: 7350 vezes |
A classe String, presente no pacote java.lang, permite a representação de cadeias (strings) de caracteres. Todos os strings literais em Java, tais como "abc", são implementados como instâncias desta classe. Por pertencer ao pacote java.lang, não precisamos importar nenhum pacote para poder usar esta classe em nossos programas Java. Veja um exemplo de como declarar e inicializar uma variável do tipo String: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- public class Main { public static void main(String[] args) { String nome = "Osmar J. Silva"; System.out.println(nome); } } Veja a posição desta classe na hierarquia de classes da plataforma Java: java.lang.Object java.lang.String Esta classe implementa as interfaces Serializable, CharSequence e Comparable<String>. Objetos do tipo String são constantes, ou seja, seus valores não podem ser alterados depois de criados. Assim, se você tiver um código parecido com: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- public class Main { public static void main(String[] args) { // ambas as variáveis apontam para uma mesma string // há somente uma cópia de "Osmar J. Silva" na memória String nome = "Osmar J. Silva"; String nome2 = "Osmar J. Silva"; // agora uma nova string é criada e a anterior é preservada nome2 = "Marcos de Souza Gomes"; } } Note que o compilador, com o propósito de poupar recursos do sistema, cria apenas uma string "Osmar J. Silva" e a coloca no pool de strings. No momento que alteramos o valor da variável nome2, uma nova string "Marcos de Souza Gomes" é criada e a anterior permanece intacta. A classe String inclui métodos para examinar os caracteres individuais da sequencia, para a comparação de strings, pesquisar, extrair substrings e também criar uma cópia da string com todos os caracteres convertidos para letras maiúsculas ou minúsculas. O mapeamente das letras maiúsculas e minúsculas é feito com base na versão Unicode Standard especificada na classe Character. A linguagem Java fornece suporte especial para a concatenação de strings, usando o operador (+) e para a conversão de outros objetos em strings. A concatenação é implementada por meio da classe StringBuilder (ou StringBuffer) e seu método append(). As conversões de strings são implementadas por meio do método toString(), definido na classe Object e herdado por todas as demais classes Java. Quando não devidamente observado, passar um argumento null para o construtor ou método da classe String fará com que uma exceção do tipo NullPointerException seja atirado. A classe String representa uma string no formato UTF-16, no qual caracteres suplementares são representados por pares prepostos. Valores de índice referem-se às unidades de código de caracteres. Assim, caracteres suplementares usam duas posições em uma String. |
Java ::: Dicas & Truques ::: Formulários e Janelas |
Java Swing para iniciantes - Como criar seu primeiro aplicativo de interface gráfica em Java SwingQuantidade de visualizações: 80151 vezes |
Um aplicativo de interface gráfica em Java é criado usando-se a classe JFrame, do Java Swing. Objetos desta classe servem como containeres para outros componentes e são as janelas principais dos aplicativos, com título e botões para redimensionar, minimizar, maximizar e fechar. Veja um exemplo de um simples aplicativo de interface gráfica em Java Swing: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- package arquivodecodigos; import javax.swing.*; public class Estudos extends JFrame{ public Estudos() { super("Minha primeira aplicação GUI"); setSize(350, 250); setVisible(true); } public static void main(String args[]){ Estudos app = new Estudos(); app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } Este código gera uma janela principal de um aplicativo com 350 pixels de largura e 250 pixels de altura. O título da janela é: "Minha primeira aplicação GUI". Veja o resultado na figura abaixo: ![]() |
Vamos testar seus conhecimentos em |
Vidros Qual dos tipos abaixo não é um vidro: A) Soda-cálcico. B) Boro-silicato. C) Ao chumbo. D) Quartzitos. E) Alumínio borosilicato. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Vigas a flexão simples: seções retangulares O dimensionamento de vigas retangulares armadas à flexão leva em consideração a resistência do concreto à compressão e a resistência do aço à tração. Nesse caso, a viga está simplesmente armada e é composta por armadura principal e armadura construtiva. Dependendo do domínio em que a seção da viga se encontra, pode ser necessário também considerar a resistência do aço à compressão, quando a viga é composta por armadura dupla. Considere uma viga retangular de concreto com largura de 14cm, concreto C30, e que a agressividade ambiental do local é classe III. Considere também que essa viga deve resistir a uma solicitação por um momento fletor de 95,50kN.m. Nesse caso, qual é a altura mínima da viga para que não seja necessária armadura dupla? A) 35cm. B) 40cm. C) 45cm. D) 50cm. E) 55cm. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Dimensionamento de lajes maciças à flexão Determinadas estruturas, como as empregadas em pavimentos de garagens de edificações residenciais, demandam o emprego de vãos maiores entre os pilares, de modo a garantir espaço para a manobra dos veículos. A partir disso, analise as afirmativas a seguir: I. O acréscimo de altura nas seções transversais é a solução mais empregada para aumentar a rigidez da laje e, desse modo, aumentar a capacidade desta em resistir aos esforços de flexão. PORÉM II. O acréscimo de altura provoca o aparecimento de sobrecargas na laje, sendo necessário proceder ao redimensionamento da estrutura, de modo a verificar se os critérios de segurança e serviço serão atendidos. Assinale a alternativa correta: A) As afirmações I e II são proposições verdadeiras, mas a II não justifica a I. B) As afirmações I e II são proposições verdadeiras e a II justifica a I. C) A afirmativa I é uma proposição verdadeira, e a II, falsa. D) A afirmação II é uma proposição verdadeira, e a I, falsa. E) As afirmações I e II são proposições falsas. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual é a forma correta de se declarar uma variável do tipo real em Python? A) valor = float(6.3) B) valor = Float(6.3) C) valor = 6.3 D) As formas A, B e C estão corretas E) As formas A e C estão corretas Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual o resultado da execução do seguinte código Python?soma = 0 for i in range(0, 10): soma = soma + 3 if i > 4: break print("A soma é: {0}".format(soma)) A) A soma é: 9 B) A soma é: 19 C) A soma é: 24 D) A soma é: 18 E) A soma é: 28 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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |