Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO

Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica.

Ruby ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas

Como calcular o cosseno de um ângulo em Ruby usando o método cos() da biblioteca Math - Calculadora de cosseno em Ruby

Quantidade de visualizações: 977 vezes
Em geral, quando falamos de cosseno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função cosseno disponível nas linguagens de programação para calcular o cosseno 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 cosseno. 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 cosseno é a razão entre o cateto adjascente e a hipotenusa, ou seja, o cateto adjascente dividido pela hipotenusa. Veja a fórmula:

\[\text{Cosseno} = \frac{\text{Cateto adjascente}}{\text{Hipotenusa}} \]

Então, se dividirmos 30 por 36.056 (na figura eu arredondei) nós teremos 0.8320, que é a razão entre o cateto adjascente e a hipotenusa (em radianos).

Agora, experimente calcular o arco-cosseno de 0.8320. O resultado será 0.5881 (em radianos). Convertendo 0.5881 radianos para graus, nós obtemos 33.69º, que é exatamente o ângulo em graus entre o cateto adjascente e a hipotenusa na figura acima.

Pronto! Agora que já sabemos o que é cosseno na trigonometria, vamos entender mais sobre a função cos() da linguagem Ruby. Esta método, que faz parte da biblioteca Math, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja:

puts "Cosseno de 0 = " + Math.cos(0).to_s
puts "Cosseno de 1 = " + Math.cos(1).to_s
puts "Cosseno de 2 = " + Math.cos(2).to_s

Ao executar este código Ruby nós teremos o seguinte resultado:

Cosseno de 0 = 1.0
Cosseno de 1 = 0.5403023058681398
Cosseno de 2 = -0.4161468365471424

Note que calculamos os cossenos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função cosseno mostrada abaixo:




Java ::: Dicas & Truques ::: Formulários e Janelas

Como definir um ícone para a janela do aplicativo Java Swing usando o método setIconImage() da classe JFrame

Quantidade de visualizações: 16767 vezes
Este exemplo mostra como definir um ícone para uma janela JFrame do Java Swing. Antes de testar o código, certifique-se de ter uma imagem chamada icon.gif no diretório de execução do aplicativo (ou no local que você especificar).

Veja o código completo para o exemplo:

import java.awt.*;
import javax.swing.*;

public class Estudos extends JFrame{
  public Estudos() {
    super("A classe JFrame");
    
    // Define o ícone para a janela    
    ImageIcon icone = new ImageIcon("icon.gif");
    setIconImage(icone.getImage());
   
    setSize(350, 250);
    setVisible(true);
  }
  
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



Java ::: Desafios e Lista de Exercícios Resolvidos ::: Laços de Repetição

Exercícios Resolvidos de Java - Laços - Faça um programa para calcular o valor das seguintes expressões

Quantidade de visualizações: 2227 vezes
Exercício Resolvido de Java - Laços - Faça um programa para calcular o valor das seguintes expressões

Pergunta/Tarefa:

Faça um programa para calcular o valor das seguintes expressões:

1) __$S_1 = \frac{1}{1} + \frac{3}{2} + \frac{5}{3} + \frac{7}{4} + \text{...} + \frac{99}{50} __$

2) __$S_2 = \frac{2^1}{50} + \frac{2^2}{49} + \frac{2^3}{48} + \text{...} + \frac{2^\text{50}}{1} __$

3) __$S_3 = \frac{1}{1} - \frac{2}{4} + \frac{3}{9} - \frac{4}{16} + \frac{5}{25} - \text{...} - \frac{10}{100} __$

Resposta/Solução:

Em ambas as expressões nós temos o último termo nos informando os valores limites. Dessa forma, basta fixarmos um laço for ou laço while com estes limites.

Veja a resolução deste exercício em código Java console:

package arquivodecodigos;

public class Estudos{
  public static void main(String[] args){
    // primeira expressão
    int numerador = 1;
    int denominador = 1;
    double resultado = 0.0;
    
    // laço while para montar os termos e fazer a somatória
    while(numerador <= 99){
      resultado = resultado + ((numerador * 1.0) / denominador);
      numerador = numerador + 2;
      denominador++;
    }
    
    // agora mostramos o resultado
    System.out.println("Primeira expressão: " + resultado);
    
    // segunda expressão
    int expoente = 1;
    denominador = 50;
    resultado = 0.0;
    
    // laço while para montar os termos e fazer a somatória
    while(denominador >= 1){
      resultado = resultado + ((Math.pow(2, expoente) * 1.0) / denominador);
      expoente++;
      denominador--;
    }
    
    // agora mostramos o resultado
    System.out.println("Segunda expressão: " + resultado);
    
    // terceira expressão
    numerador = 1;
    denominador = 1;
    resultado = 0.0;
    int sinal = 1;
    
    // laço while para montar os termos e fazer a somatória
    while(numerador <= 10){
      if(sinal > 0){ // somar
        resultado = resultado + ((numerador * 1.0) / denominador);
      }
      else{ // subtrair
        resultado = resultado - ((numerador * 1.0) / denominador);
      }
      
      numerador++;
      denominador = numerador * numerador;
      sinal = sinal * -1;
    }
    
    // agora mostramos o resultado
    System.out.println("Terceira expressão: " + resultado);
  }
}

Ao executar este código Java nós teremos o seguinte resultado:

Primeira expressão: 95.5007946616706
Segunda expressão: 1.5608286920413398E15
Terceira expressão: 0.6456349206349207


Java ::: Classes e Componentes ::: JButton

Como definir a cor do texto de um botão JButton do Java Swing

Quantidade de visualizações: 9592 vezes
Nesta dica eu mostrarei como é possível definir a cor do texto de um componente JButton do Java Swing. Para isso nós usamos o método setForeground() da classe JButton, fornecendo a cor desejada, por exemplo, Color.RED.

Veja um exemplo Java Swing completo:

package arquivodecodigos;
 
import java.awt.*;
import javax.swing.*;

public class Estudos extends JFrame{
  public Estudos() {
    super("Estudos Swing");
     
    Container c = getContentPane();
    c.setLayout(new FlowLayout(FlowLayout.LEFT));
 
    // Cria um JButton com a cor do texto vermelho
    JButton btn1 = new JButton("Clique Aqui!");
    btn1.setForeground(Color.RED);
 
    // Cria um JButton com a cor de fundo verde
    JButton btn2 = new JButton("Clique Aqui!");
    btn2.setForeground(Color.GREEN);
 
    // Adiciona os botões à janela
    c.add(btn1);
    c.add(btn2);  
 
    setSize(350, 250);
    setVisible(true);
  }
   
  public static void main(String args[]){
    Estudos app = new Estudos();
    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}



C# ::: Coleções (Collections) ::: ArrayList

Como passar uma ArrayList para um método C#

Quantidade de visualizações: 9450 vezes
Em algumas situações nós precisamos fornecer uma ArrayList para um método C# e manipulá-la a partir deste método. Nesta dica eu mostro como isso pode ser feito.

Veja que, dentro do método Main da aplicação nós criamos um novo objeto da classe ArrayList e inserimos 5 números inteiros nela. Em seguida nós efetuamos uma chamada ao método exibirArrayList() passando a lista como referência, ou seja, qualquer alteração que fizermos na ArrayList dentro do método afetará também o objeto criado fora do método.

Veja o código completo para o exemplo:

using System;
using System.Collections;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // Cria o ArrayList
      ArrayList lista = new ArrayList();

      // Adiciona 5 inteiros
      lista.Add(30);
      lista.Add(2);
      lista.Add(98);
      lista.Add(1);
      lista.Add(7);

      // passa o ArrayList para um método que exibirá
      // seus valores
      exibirArrayList(lista);

      Console.WriteLine("\n\nPressione qualquer tecla para sair...");
      // pausa o programa
      Console.ReadKey();
    }

    // método que receberá e exibirá o conteúdo do ArrayList
    static void exibirArrayList(ArrayList mLista) {
      foreach (int valor in mLista) {
        Console.Write("{0} ", valor);
      }
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

30 2 98 1 7


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Java Básico

Exercício Resolvido de Java - Um programa Java que calcula qual o menor número possível de notas de 100, 50, 10, 5 e 1 em que o valor a ser sacado pode ser decomposto

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

Escreva um programa Java que lê um valor inteiro e simule o comportamento de um caixa eletrônico, ou seja, calcule qual o menor número possível de notas de 100, 50, 10, 5 e 1 em que o valor a ser sacado pode ser decomposto. Seu programa deverá exibir uma saída parecida com:

Informe o valor do saque (valor inteiro): 139
O valor do saque pode ser expresso em:
1 notas de 100
0 notas de 50
3 notas de 10
1 notas de 5
4 notas de 1


Resposta/Solução:

Veja a resolução comentada deste exercício usando Java console (lendo a entrada do usuário por meio do uso da classe Scanner):

public static void main(String[] args){
  // não se esqueça de adicionar um import para a classe Scanner
  // import java.util.Scanner;

  // vamos criar um objeto da classe Scanner
  Scanner entrada = new Scanner(System.in);

  // variáveis que vão guardar a quantidade de notas de 100, 50, 10, 5 e 1;
  int cem = 0, cinquenta = 0, dez = 0, cinco = 0, um = 0;
  int valor; // guarda o valor lido
  int temp; // variável auxiliar

  // vamos solicitar o valor a ser sacado
  System.out.print("Informe o valor do saque (valor inteiro): ");

  // vamos ler o valor do saque
  valor = Integer.parseInt(entrada.nextLine());

  // inicializa a variável temporária
  temp = valor;

  // quantas notas de 100?
  if(temp >= 100){
    cem = valor / 100;
    temp = valor % 100;
  }
  // quantas notas de 50?
  if(temp >= 50){
    cinquenta = temp / 50;
    temp = temp % 50;
  }
  // quantas notas de 10?
  if(temp >= 10){
    dez = temp / 10;
    temp = temp % 10;
  }
  // quantas notas de 5?
  if(temp >= 5){
    cinco = temp / 5;
    temp = temp % 5;
  }
  // quantas notas de 1?
  if(temp >= 1){
    um = temp / 1;
  }

  // vamos exibir o resultado
  System.out.println("O valor do saque pode ser expresso em:");
  System.out.printf("%d notas de 100\n", cem);
  System.out.printf("%d notas de 50\n", cinquenta);
  System.out.printf("%d notas de 10\n", dez);
  System.out.printf("%d notas de 5\n", cinco);
  System.out.printf("%d notas de 1\n", um);
}



Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear

Como converter Coordenadas Cartesianas para Coordenadas Polares usando Java - Java para Engenharia

Quantidade de visualizações: 2225 vezes
Nesta nossa série de Java para Geometria Analítica e Álgebra Linear, mostrarei um código 100% funcional para fazer a conversão entre coordenadas cartesianas e coordenadas polares. Esta operação é muito frequente em computação gráfica e é parte integrante das disciplinas dos cursos de Engenharia (com maior ênfase na Engenharia Civil).

Na matemática, principalmente em Geometria e Trigonometria, o sistema de Coordenadas no Plano Cartesiano, ou Espaço Cartesiano, é um sistema que define cada ponto em um plano associando-o, unicamente, a um conjuntos de pontos numéricos.

Dessa forma, no plano cartesiano, um ponto é representado pelas coordenadas (x, y), com o x indicando o eixo horizontal (eixo das abscissas) e o y indicando o eixo vertical (eixo das ordenadas). Quando saímos do plano (espaço 2D ou R2) para o espaço (espaço 3D ou R3), temos a inclusão do eixo z (que indica profundidade).

Já o sistema de Coordenadas Polares é um sistema de coordenadas em duas dimensões no qual cada ponto no plano é determinado por sua distância a partir de um ponto de referência conhecido como raio (r) e um ângulo a partir de uma direção de referência. Este ângulo é normalmente chamado de theta (__$\theta__$). Assim, um ponto em Coordenadas Polares é conhecido por sua posição (r, __$\theta__$).

Antes de prosseguirmos, veja uma imagem demonstrando os dois sistemas de coordenadas:



A fórmula para conversão de Coordenadas Cartesianas para Coordenadas Polares é:

__$r = \sqrt{x^2+y2}__$
__$\theta = \\arctan\left(\frac{y}{x}\right)__$

E aqui está o código Java completo que recebe as coordenadas cartesianas (x, y) e retorna as coordenadas polares (r, __$\theta__$):

package arquivodecodigos;
 
import java.util.Scanner;

public class Estudos{
  public static void main(String args[]){
    Scanner entrada = new Scanner(System.in);
    // vamos ler as coordenadas cartesianas
    System.out.print("Valor de x: ");
    double x = Double.parseDouble(entrada.nextLine());
    System.out.print("Valor de y: ");
    double y = Double.parseDouble(entrada.nextLine());
    
    // vamos calcular o raio
    double raio = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));  

    // agora calculamos o theta (ângulo) em radianos 
    double theta = Math.atan2(y, x);

    // queremos o ângulo em graus também
    double angulo_graus = 180 * (theta / Math.PI); 

    // e exibimos o resultado
    System.out.println("As Coordenadas Polares são:\n" +
      "raio = " + raio + ", theta = " + theta + ", ângulo em graus = " +
      angulo_graus);
  }
}

Ao executar este código nós teremos o seguinte resultado:

Valor de x: -1
Valor de y: 1
As Coordenadas Polares são:
raio = 1.4142135623730951, theta = 2.356194490192345, ângulo em graus = 135.0

Veja que as coordenadas polares equivalentes são (__$\sqrt{2}__$, __$\frac{3\pi}{4}__$), com o theta em radianos. Sim, os professores das disciplinas de Geometria Analítica e Álgebra Linear, Física e outras gostam de escrever os resultados usando raizes e frações em vez de valores reais.


C ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções

Exercício Resolvido de C - Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior deles

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

Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior deles. Esse programa deve possuir uma função para verificar qual é o maior número.

Atenção: seu código deverá assegurar que os dois números informados pelo usuário sejam diferentes. Exiba uma mensagem na tela caso isso acontecer.

Sua saída deverá ser parecida com:

Informe o primeiro número inteiro: 6
Informe o segundo número inteiro: 3
O maior número é: 6
Resposta/Solução:

Veja a resolução comentada deste exercício em C:

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

// protótipo da função que receberá dois números inteiros
// e retornará o maior deles
int maior_numero(int num1, int num2);

// função principal do programa
int main(int argc, char *argv[]){
  setlocale(LC_ALL,""); // para acentos do português 
  
  // variáveis usadas na resolução do problema
  int num1, num2, maior;
  
  // vamos pedir para o usuário informar os dois números
  printf("Informe o primeiro número inteiro: ");
  scanf("%d", &num1);
  printf("Informe o segundo número inteiro: ");
  scanf("%d", &num2);
  
  // os números são iguais?
  if(num1 == num2){
    printf("Erro. Os dois números são iguais.");
  }
  else{
    // vamos chamar a função para obter o número maior
    maior = maior_numero(num1, num2);
    printf("O maior número é: %d", maior);	
  }
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}

// função que receberá dois números inteiros e retornará
// o maior deles
int maior_numero(int num1, int num2){
  // o primeiro número é maior que o segundo?
  if(num1 > num2){
    return num1;
  }
  else{
    return num2;
  }
}



Ruby ::: Dicas & Truques ::: Data e Hora

Como retornar o dia do mês em Ruby usando um objeto da classe Time e os métodos day e mday

Quantidade de visualizações: 6291 vezes
Muitas vezes precisamos obter o dia do mês de uma determinada data. Para isso a classe Time do Ruby nos fornece os métodos day e mday. Estes método retornam um número inteiro na faixa 1..31.

Veja uma demonstração destes métodos no trecho de código a seguir:

# obtém o dia do mês usando o método day
agora = Time.new
dia = agora.day

# exibe o resultado
puts "Dia do mês usando a função day: " + dia.to_s

# obtém o dia do mês usando o método mday
agora = Time.new
dia = agora.mday

# exibe o resultado
puts "Dia do mês usando a função mday: " + dia.to_s

Ao executar este código Ruby nós teremos o seguinte resultado:

Dia do mês usando a função day: 21
Dia do mês usando a função mday: 21


jQuery ::: Dicas & Truques ::: Manipulação e Conteúdo Dinâmico

jQuery para iniciantes - Como obter valores de elementos de formulários HTML usando a função val() do jQuery

Quantidade de visualizações: 8654 vezes
Nesta dica eu mostro como podemos usar o método val() da biblioteca jQuery para obter o conteúdo dos elementos de formulários HTML.

Veja, por exemplo, como obter o conteúdo de uma caixa de texto com o id "nome":

<script type="text/javascript">
<!--
  function obterTexto(){
    var texto = $('#nome').val();
    window.alert(texto);
  }
//-->
</script>

Lembre-se de que este método atuará apenas no primeiro da possível série de elementos retornados sob uma determinada condição.

O retorno val() do jQuery é uma string.

Carregar Publicações Anteriores


Nossas 20 dicas & truques de programação mais populares

Você também poderá gostar das dicas e truques de programação abaixo

Nossas 20 dicas & truques de programação mais recentes

Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site

Últimos Exercícios Resolvidos

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

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


E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser. Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book Apenas R$ 32,90


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