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

Como calcular o seno de um número ou ângulo em GNU Octave usando a função sin()

Quantidade de visualizações: 2248 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 GNU Octave. Esta função, que já vem embutido na ferramenta, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja:

>> sin(0) [ENTER]
ans = 0
>> sin(1) [ENTER]
ans = 0.8415
>> sin(2) [ENTER]
ans = 0.9093
>>

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 ::: 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: 16725 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);
  }
}



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

Como converter Coordenadas Cartesianas para Coordenadas Polares em LISP - LISP para Engenharia

Quantidade de visualizações: 775 vezes
Nesta nossa série de LISP e AutoLISP 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 LISP completo que recebe as coordenadas cartesianas (x, y) e retorna as coordenadas polares (r, __$\theta__$):

; programa LISP que converte Coordenadas Cartesianas
; em Coordenadas Polares
(let((x)(y)(raio)(theta)(angulo_graus))
  ; vamos ler as coordenadas cartesianas
  (princ "Valor de x: ")
  (force-output)
  (setq x (read))
  (princ "Valor de y: ")
  (force-output)
  (setq y (read))
  
  ; vamos calcular o raio
  (setq raio (sqrt (+ (expt x 2) (expt y 2))))
  
  ; agora calculamos o theta (ângulo) em radianos 
  (setq theta (atan y x))

  ; queremos o ângulo em graus também
  (setq angulo_graus (* 180 (/ theta pi)))
  
  ; e exibimos o resultado
  (princ "As Coordenadas Polares são: ")
  (format t "raio = ~F, theta = ~F, ângulo em graus: ~F"
    raio theta angulo_graus)
)

Ao executar este código LISP 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.


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: 6264 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


Java ::: Coleções (Collections) ::: HashMap

Como testar se uma determinada chave está contida no HashMap do Java usando o método containsKey()

Quantidade de visualizações: 8553 vezes
Em algumas situações precisamos verificar se uma determinada chave está contida no HashMap. Para isso podemos usar o método containsKey(), definido originalmente na interface Map. Veja sua assinatura:

public boolean containsKey(Object key)


Note que este método recebe um objeto contendo o valor da chave a ser pesquisada e retorna um valor true se o HashMap contiver a chave e false caso contrário. Veja o exemplo:

package estudos;

import java.util.*;

public class Estudos{
  public static void main(String[] args){
    
    // vamos criar uma instância de HashMap
    HashMap<Integer, String> clientes = new HashMap<>();

    // vamos adicionar três chaves e seus valores
    clientes.put(1, "Osmar J. Silva");
    clientes.put(2, "Salvador Miranda de Andrade");
    clientes.put(3, "Marcos da Costa Santos");
      
    // vamos verificar se a chave 2 está contida no HashMap
    if(clientes.containsKey(2)){
      System.out.println("A chave está contida no mapa");
    }
    else{
      System.out.println("A chave NÃO está contida no mapa");
    }

    System.exit(0);
  }
}

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

A chave está contida no mapa


C# ::: Dicas & Truques ::: Strings e Caracteres

Como remover espaços em branco no início e final de uma string C# usando o método Trim() da classe String

Quantidade de visualizações: 13897 vezes
Nesta dica mostrarei como podemos usar a função Trim() da classe String da linguagem C# para remover os espaços no início e no fim de uma palavra, frase ou texto. Esta técnica é muito útil quando estamos trabalhando com dados informados pelos usuários de nossas aplicações.

Veja o código completo para o exemplo:

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string texto = "  temos espaços no início e fim   ";
      Console.WriteLine(texto);

      // remove os espaços no início e fim da string
      texto = texto.Trim();

      Console.WriteLine("." + texto + ".");

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

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

  temos espaços no início e fim
.temos espaços no início e fim.



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

Exercícios Resolvidos de Portugol - Escreva um programa Portugol para calcular e imprimir o número de lâmpadas necessárias

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

Escreva um programa Portugol para calcular e imprimir o número de lâmpadas necessárias para iluminar um determinado cômodo de uma residência. Dados de entrada: a potência da lâmpada utilizada (em watts), as dimensões (largura e comprimento, em metros) do cômodo. Considere que a potência necessária é de 18 watts por metro quadrado.

Sua saída deverá ser parecida com:

Informe a potência da lâmpada (em watts): 100
Informe a largura do cômodo (em metros): 6
Informe o comprimento do cômodo (em metros): 4
Serão necessárias 4 lâmpadas.
Resposta/Solução:

Veja a resolução completa para o exercício em Portugol, comentada linha a linha (na resolução eu usei o Portugol Webstudio):

programa {
  // vamos incluir a biblioteca Tipos
  inclua biblioteca Tipos --> tp
  
  funcao inicio() {
    // variáveis usadas na resolução do problema
    real potencia_lampada, largura_comodo, comprimento_comodo
    real area_comodo, potencia_total
    inteiro quant_lampadas
 
    // vamos ler a potência da lâmpada   
    escreva("Informe a potência da lâmpada (em watts): ")
    leia(potencia_lampada)
    
    // vamos ler a largura do cômodo
    escreva("Informe a largura do cômodo (em metros): ")
    leia(largura_comodo)
 
    // agora vamos ler o comprimento do cômodo
    escreva("Informe o comprimento do cômodo (em metros): ")
    leia(comprimento_comodo)

    // agora vamos calcular a área do cômodo
    area_comodo = largura_comodo * comprimento_comodo

    // calculamos a potência total necessária para iluminar
    // todo o cômodo
    potencia_total = area_comodo * 18

    // e finalmente calculamos a quantidade de lâmpadas necessárias
    quant_lampadas = tp.real_para_inteiro(potencia_total / potencia_lampada)

    // será necessário no mínimo uma lâmpada
    se (quant_lampadas == 0) {
      quant_lampadas = quant_lampadas + 1
    }

    // e mostramos o resultado
    escreva("Serão necessárias ", quant_lampadas, " lâmpadas.")
  }
}



PHP ::: Fundamentos da Linguagem ::: Métodos, Procedimentos e Funções

Apostila de PHP - Como criar suas próprias funções em PHP

Quantidade de visualizações: 31174 vezes
Uma função é um bloco de código que executa uma determinada tarefa, possivelmente baseado em um conjuntos de valores fornecidos, ou parâmetros, e possivelmente retornando um único valor. Funções permitem a melhora na leitura do código e correção de bugs, visto que blocos de códigos bem testados podem ser reutilizados inúmeras vezes em seus programas.

Antes de continuarmos é bom estar ciente dos diferentes nomes que as linguagens de programação adotam quando o assunto é função. Em Java, funções são chamadas de métodos. Em Delphi, temos funções (function) e procedimentos (procedure). Se uma função em Delphi retorna um valor, ela é chamada de function. Se nenhum valor é retornado, ela é chamada de procedure. Em PHP o nome é função (function) mesmo, não importando se valores são retornados ou não.

Veja um exemplo onde criamos uma função que apenas escreve na página:

<?
  // define a função
  function escrever(){
    echo "Observe este texto";
  }
  
  // chama a função
  escrever();
?>

Podemos estender este exemplo e fornecer à função o texto que deverá ser escrito. Veja:

<?
  // define a função
  function escrever($texto){
    echo $texto;
  }
  
  // chama a função
  escrever("Observe este texto");
?>

Veja que agora a função possui parâmetros, neste caso a variável local $texto. Assim, ao efetuarmos a chamada nós podemos fornecer um valor (um argumento) a esta função. Vamos progredir escrevendo uma função que soma dois valores:

<?
  // define a função
  function somar($valor1, $valor2){
    echo "A soma é: " . ($valor1 + $valor2);
  }
  
  // chama a função
  somar(3, 5);
?>

Para finalizar, vamos escrever uma função que retorna um valor. Veja:

<?
  // define a função
  function somar($valor1, $valor2){
    return ($valor1 + $valor2);
  }
  
  // chama a função
  $soma = somar(3, 5);
  echo "O resultado é: " . $soma;
?>

Observe o uso da palavra-chave return para definirmos o valor que será retornado pela função.


Delphi ::: Dicas & Truques ::: Arquivos e Diretórios

Como ler todo o conteúdo de um arquivo texto usando Delphi - As funções AssignFile(), ReadLn() e Eof() do Delphi

Quantidade de visualizações: 31764 vezes
Nesta dica mostro como usar o Delphi para ler todo o conteúdo de um arquivo texto. Esta leitura será feita linha a linha e adicionaremos cada linha a um TMemo à medida que ela for lida.

O primeiro passo para se ler um arquivo texto usando Delphi é declarar uma variável do tipo TextFile. Em seguida usamos a procedure AssignFile() para associar a variável TextFile ao arquivo em disco.

Como queremos ler o conteúdo do arquivo, a função Reset() deve ser usada. Esta função abre o arquivo texto fornecido e posiciona o cursor de leitura no início do arquivo. A partir daí podemos usar um laço while e a função ReadLn() para ler cada linha do arquivo. Note o uso da função Eof() para testarmos se o ponteiro de leitura ainda não atingiu o fim do arquivo.

Veja o exemplo para um melhor entendimento:

procedure TForm1.Button1Click(Sender: TObject);
var
  arquivo: TextFile;
  linha: String;
begin
  // vamos fazer uma ligação entre a variável arquivo e o
  // arquivo que queremos ler
  AssignFile(arquivo, 'C:\arquivo de codigos\dados.txt');

  // vamos abrir o arquivo em  modo leitura
  Reset(arquivo);

  // vamos ler cada linha e adicioná-la a um Memo
  while not Eof(arquivo) do
  begin
    ReadLn(arquivo, linha);
    Memo1.Lines.Add(linha);
  end;

  // hora de fechar o arquivo
  CloseFile(arquivo);
end;


Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Java ::: Coleções (Collections) ::: Queue

Como criar uma fila em Java usando a interface Queue

Quantidade de visualizações: 1164 vezes
Uma fila é uma estrutura de dados do tipo FIFO (First-in, First-out), ou seja, o primeiro elemento a entrar é o primeiro a sair. Podemos pensar em uma estrutura de dados do tipo fila como uma fila real de um banco ou supermercado.

A linguagem Java não fornece uma classe pronta chamada Queue. Em vez disse nós temos uma interface Queue e suas implementações concretas, a saber, as classes java.util.LinkedList e java.util.PriorityQueue. É claro que existem outras implementações, mas estas duas são as que usamos com mais frequencia.

Como nesta dica a nossa intenção é representar uma fila comum, nós vamos descartar a classe PriorityQueue (fila de prioridade) e nos ater à implementação de Queue fornecida pela classe LinkedList.

Vamos começar com um exemplo bem simples. Veja um trecho de código no qual enfileiramos 5 valores inteiros em uma fila e os desenfileiramos em seguida:

package estudos;

import java.util.LinkedList;
import java.util.Queue;

public class Estudos{
  public static void main(String[] args){
    // vamos criar uma fila de inteiros e adicionar 5 inteiros
    Queue<Integer> fila = new LinkedList<>();
    fila.add(76);
    fila.add(80);
    fila.add(11);
    fila.add(32);
    fila.add(45);
    
    // agora vamos desenfileirar todos os elementos
    System.out.println("Ordem de remoção dos elementos da fila:");
    while(!fila.isEmpty()){
      System.out.print(fila.poll() + "  ");
    }
  }
}

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

Ordem de remoção dos elementos da fila:
76 80 11 32 45

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



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