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

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

Quantidade de visualizações: 3356 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 C++. Esta função, disponível no header math.h, recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja:

#include <iostream>
#include <math.h>
#include <cstdlib>
 
using namespace std;
 
int main(int argc, char *argv[]){
  cout << "Seno de 0 = " << sin(0) << "\n";
  cout << "Seno de 0 = " << sin(1) << "\n";
  cout << "Seno de 0 = " << sin(2) << "\n\n"; 
 
  system("PAUSE"); // pausa o programa
  return EXIT_SUCCESS;
}

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

Seno de 0 = 0
Seno de 0 = 0.841471
Seno de 0 = 0.909297

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:




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

Exercícios Resolvidos de VisuAlg - Uma loja está concedendo desconto de 20% para clientes do sexo feminino com idade entre 18 e 35 anos (ambas incluídas)

Quantidade de visualizações: 452 vezes
Exercícios Resolvidos de VisuAlg - Uma loja está concedendo desconto de 20% para clientes do sexo feminino com idade entre 18 e 35 anos (ambas incluídas)

Pergunta/Tarefa:

Uma loja está concedendo desconto de 20% para clientes do sexo feminino com idade entre 18 e 35 anos (ambas incluídas). Para os demais clientes o desconto é 5% apenas. Leia o valor do produto, o nome, sexo e a idade do cliente e aplique o desconto correspondente.

Sua saída deverá ser parecida com:

Informe o valor do produto: 520
Informe o nome do cliente: FABRICIA DE CASTRO
Informe a idade: 23
Informe o sexo: F
FABRICIA DE CASTRO, você ganhou o desconto de 20%
Valor a pagar: 416.0

Informe o valor do produto: 830
Informe o nome do cliente: OSMAR SLVA
Informe a idade: 38
Informe o sexo: M
OSMAR SLVA, você ganhou apenas o desconto de 5%
Valor a pagar: 788.5
Resposta/Solução:

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

algoritmo "Ler o valor do produto, o valor do produto, o sexo..."
var
  valor: real
  nome, sexo: caractere
  idade: inteiro

inicio
  //  vamos ler o valor do produto
  escreva("Informe o valor do produto: ")
  leia(valor)

  // agora vamos ler o nome do cliente
  escreva("Informe o nome do cliente: ")
  leia(nome)

  // agora vamos ler a idade
  escreva("Informe a idade: ")
  leia(idade)

  // e finalmente vamos ler o sexo do cliente
  escreva("Informe o sexo: ")
  leia(sexo)

  // vamos verificar se o cliente faz jus ao desconto
  // de 20%
  se ((idade >= 18) e (idade <= 35) e (sexo = "F")) entao
    valor <- valor - (valor * (20 / 100))
    escreval(nome, ", você ganhou o desconto de 20%")
    escreval("Valor a pagar: ", valor)
  senao
    valor <- valor - (valor * (5 / 100))
    escreval(nome, ", você ganhou apenas o desconto de 5%")
    escreval("Valor a pagar: ", valor)
  fimse
  
fimalgoritmo



JavaScript ::: URLs e Parâmetros de URLs ::: URLSearchParams

Como obter a quantidade de parâmetros em um objeto URLSearchParams do JavaScript

Quantidade de visualizações: 1051 vezes
Em algumas situações nós precisamos saber quantos parâmetros de URL foram informados em um objeto URLSearchParams. Para isso nós só precisamos converter o Map representado por URLSearchParams em um array bidimensional usando Array.from(). A partir daí é só chamar a propriedade length do array.

Veja o código completo para o exemplo:

<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  
<title>Acessando parâmetros de URL</title>
   
</head>
<body>
  
<script type="text/javascript">
  // vamos obter a URL atual e seus parâmetros GET
  var parametros = new URLSearchParams(window.location.search);
  window.alert("Quantidade de parâmetros: " + Array.from(parametros).length);
</script>
   
</body>
</html>

Ao executar este exemplo JavaScript com a URL:

http://localhost/estudos/index.php?nome=Osmar&idade=39

nós teremos uma mensagem window.alert() com o seguinte texto:

Quantidade de parâmetros: 2


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

Datas e horas em Ruby: Time, Date ou DateTime - Qual classe devo usar?

Quantidade de visualizações: 8643 vezes
A linguagem Ruby oferece três classes básicas para lidar com datas e horas: Time, Date e DateTime. Para ajudá-lo em seus estudos, veja uma descrição breve de cada uma:

1) A classe Time está mais para um encapsulamento das funções de datas e horas da biblioteca C. Estas bibliotecas são geralmente baseadas na época UNIX (UNIX epoch) e, assim, não conseguem representar datas e horas antes de 1970.

2) A classe Date foi criada para superar estas deficiências da classe Time. Com esta classe nós podemos lidar com datas realmente antigas, tais como o aniversário de Leonardo da Vinci (15 de abril de 1452) e, esta classe funciona muito bem com a reforma do calendário. No entanto, a classe Date não permite lidar com horas, ou seja, ao usá-la não seremos capazes de representar a hora que Leonardo da Vinci nasceu. Apenas a data de nascimento.

3) A classe DateTime herda da Date e tenta ser o melhor de ambos os mundos. Com esta classe podemos representar datas da mesma forma que Date e horas da mesma forma que Time. Geralmente os desenvolvedores optam por esta classe, por considerá-la a forma mais correta de representar datas e horas.


C# ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Vetores e matrizes em C# - Como ordenar um vetor de inteiros usando o método Sort() da classe Array do C#

Quantidade de visualizações: 16693 vezes
Nesta dica mostrarei como podemos usar o método Sort() da classe Array da linguagem C# para classificar um vetor de inteiros em ordem crescente. Note que o método Sort() é estático e modifica o conteúdo do array original.

Veja o código completo para o exemplo:

using System;

namespace Estudos{
  class Program{
    static void Main(string[] args) {
      // cria e inicializa um array de inteiros
      int[] valores = { 4, 69, 1, 0, 17, 23, 14 };

      Console.WriteLine("Ordem original:");
      for (int i = 0; i < valores.Length; i++)
        Console.WriteLine(valores[i]);

      // ordena o array
      Array.Sort(valores);

      // exibe os elementos na ordem crescente
      Console.WriteLine();
      Console.WriteLine("Ordem crescente:");
      for (int i = 0; i < valores.Length; i++)
        Console.WriteLine(valores[i]);

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

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

Ordem original:
4
69
1
0
17
23
14

Ordem crescente:
0
1
4
14
17
23
69


JavaScript ::: Dicas & Truques ::: Data e Hora

Como retornar o dia do mês em JavaScript usando a função getDate() do objeto Date

Quantidade de visualizações: 740 vezes
A função getDate() do objeto Date da linguagem JavaScript nos permite obter o dia do mês como um valor inteiro na faixa de 1 à 31. Veja abaixo um exemplo de seu uso:

<!doctype html>
<html>
<head>
  <title>O objeto Date do JavaScript</title>
</head>
<body>

<script type="text/javascript">
  // vamos obter a data atual
  var data = new Date();
  // vamos obter o dia da data atual
  var dia = data.getDate();
  // Vamos exibir o resultado
  document.write("O dia do mês é: " + dia);
</script>
  
</body>
</html>

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

O dia do mes é: 5


Ruby ::: Fundamentos da Linguagem ::: Passos Iniciais

Como retornar a versão do Ruby instalada na sua máquina usando ruby -v ou a constante RUBY_DESCRIPTION

Quantidade de visualizações: 9396 vezes
Se você quiser saber a versão do Ruby instalada em seu computador, ou a versão do interpretador sendo usado no momento, basta abrir uma janela de comando e disparar o comando:

ruby -v

Você terá um resultado parecido com o seguinte:

ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x64-mingw32]

Se você estiver na tela do Interactive Ruby, você pode simplesmente digitar RUBY_DESCRIPTION e pressionar Enter. O resultado será o mesmo exibido em uma janela de comando usando ruby -v.

Podemos também usar a constante RUBY_DESCRIPTION dentro de um script Ruby. Veja:

# Este exemplo mostra como obter a versão do Ruby
# usando a constante RUBY_DESCRIPTION
 
# guarda a versão em uma variável
versao = RUBY_DESCRIPTION

# mostra na tela
puts "A versão do Ruby é: #{versao}"

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

A versão do Ruby é: ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x64-mingw32]


Java ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Listas Ligadas

Exercícios Resolvidos de Java - Como remover no início de uma lista ligada em Java - Escreva um programa Java que cria uma lista dinamicamente encadeada

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

Escreva um programa Java que cria uma lista dinamicamente encadeada (lista singularmente encadeada) e peça para o usuário inserir 5 elementos do tipo inteiro. Em seguida faça a remoção do nó no início da lista ligada e retorne o seu valor.

Sua saída deve ser parecida com:

Inserindo 5 valores na lista

Informe o 1.o valor: 3
Informe o 2.o valor: 8
Informe o 3.o valor: 4
Informe o 4.o valor: 7
Informe o 5.o valor: 6

Valores na lista: 3 -> 8 -> 4 -> 7 -> 6 -> null

Removendo no início da lista
O nó removido foi: 3

Valores na lista novamente: 8 -> 4 -> 7 -> 6 -> null
Resposta/Solução:

Na saída podemos ver que a lista contém os valores 3, 8, 4, 7 e 6. Depois que o nó no início é removido, os elementos da lista ficam 8, 4, 7 e 6.

Veja a resolução comentada deste exercício usando Java:

package estudos;
  
import java.util.Scanner;

// classe interna usada para representar um
// nó na lista ligada
class No {
  int valor; // valor do nó
  No proximo; // aponta para o novo nó
 
  // construtor cheio da classe No
  public No(int valor, No proximo) {
    this.valor = valor;
    this.proximo = proximo;
  }
  
  // construtor vazio da classe No
  public No() {
    this.valor = 0;
    this.proximo = null;
  }
}

public class Estudos { 
  // vamos criar uma referência para o início da lista
  static No inicio = null;
  
  public static void main(String args[]){
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos inserir 5 valores inteiros na lista ligada
    int valor;
    System.out.println("Inserindo 5 valores na lista\n");
    for (int i = 0; i < 5; i++) {
      System.out.print("Informe o " + (i + 1) + ".o valor: ");
      valor = Integer.parseInt(entrada.nextLine());
      // vamos inserir este valor no final da lista
      inserirFinal(valor);
    }
    
    // vamos exibir os valores na lista ligada
    System.out.print("\nValores na lista: ");
    exibirLista();
    
    // vamos remover o nó no início da lista ligada
    System.out.println("\nRemovendo no início da lista");
    No removido = removerInicio();
    System.out.println("O nó removido foi: " +
      removido.valor);
    
    // vamos exibir os valores na lista ligada
    System.out.print("\nValores na lista novamente: ");
    exibirLista();
  }
  
  // função que permite remover o nó no início de uma lista
  // dinamicamente ligada em Java
  public static No removerInicio() {
    // primeiro apontamos para o início da lista
    No no = inicio;
    
    // a lista está vazia?
    if (no != null) {
      // o início da lista aponta para o seu próximo
      inicio = inicio.proximo;
    }
    
    // retorna o nó removido ou null no caso da lista vazia
    return no;
  }

  // função que permite adicionar um nó no final da
  // lista ligada
  public static void inserirFinal(int valor) {
    // vamos apontar para o nó inicial
    No atual = inicio;
    // criamos um novo nó
    No novo = criarNo(valor);
  
    // a lista ligada ainda está vazia?
    if (atual == null){
      // inicio recebe o novo nó
      inicio = novo;
    }    
    else { // temos um ou mais nós na lista ligada
      // vamos localizar o último nó
      while (atual.proximo != null) {
        atual = atual.proximo;
      }
       
      // encontramos o último nó. Agora vamos inserir
      // o novo nó depois dele
      atual.proximo = novo;
    }
  }
  
  // função usada para construir e retornar um novo nó
  public static No criarNo(int valor) {
    // cria o novo nó
    No no = new No(valor, null);
    // retorna o nó criado
    return no;
  }
  
  // função usada para percorrer a lista ligada e
  // exibir os valores contidos em seus nós
  public static void exibirLista() {
    // vamos apontar para o início da lista
    No temp = inicio;
    
    // a lista está vazia?
    if (temp == null) {
      System.out.println("A lista está vazia.");
    }
    else {
      // esse laço se repete enquanto tempo for
      // diferente de null
      while (temp != null) {
        // vamos mostrar o valor desse nó
        System.out.print(temp.valor + " -> ");
        // avança para o próximo nó
        temp = temp.proximo;
      }
    
      // mostra o final da lista
      System.out.println("null");
    }
  }
}



Python ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle

Exercício Resolvido de Python - Um comerciante comprou um produto e quer vendê-lo com um lucro de 45% se o valor da compra for menor

Quantidade de visualizações: 1910 vezes
Algoritmos Resolvidos de Python - Um comerciante comprou um produto e quer vendê-lo com um lucro de 45% se o valor da compra for menor

Pergunta/Tarefa:

Um comerciante comprou um produto e quer vendê-lo com um lucro de 45% se o valor da compra for menor que R$ 20,00; caso contrário, o lucro será de 30%. Elabore um algoritmo que leia o valor do produto e imprima o valor de venda para o produto.

Sua saída deverá ser parecida com:

Informe o valor do produto: 85
O valor de venda é: 110.5
Resposta/Solução:

Veja a resolução comentada deste exercício usando Python:

Código para principal.py:

# método principal
def main():
  # valor ler o valor do produto
  valor = float(input("Informe o valor do produto: "))
  
  # vamos calcular o valor de venda
  if valor < 20:
    valor_venda = valor + (valor * (45.0 / 100)) 
  else:
    valor_venda = valor + (valor * (30.0 / 100))
  
  print("O valor de venda é: {0}".format(valor_venda))
  
if __name__== "__main__":
  main()



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

Exercício Resolvido de Java - Escreva um algoritmo Java que leia o nome de um vendedor, o seu salário fixo e o total de vendas efetuadas por ele no mês

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

Escreva um algoritmo Java que leia o nome de um vendedor, o seu salário fixo e o total de vendas efetuadas por ele no mês (em dinheiro). Sabendo que este vendedor ganha 15% de comissão sobre suas vendas efetuadas, informar o seu nome, o salário fixo e o salário no final do mês.

Sua saída deverá ser parecida com:

Nome do vendedor: CAMILA REIS
Informe o salário fixo: 1850
Total de vendas efetuadas: 5000

Resultados:

Nome do vendedor: CAMILA REIS
Salário fixo: 1850.0
Salário final do mês: 2600.0
Resposta/Solução:

Veja a resolução deste exercício usando Java:

package estudos;

import java.util.Scanner;

public class Estudos {
  public static void main(String[] args) {
    // para ler a entrada do usuário
    Scanner entrada = new Scanner(System.in);
    
    // vamos ler o nome do vendedor
    System.out.print("Nome do vendedor: ");
    String nome = entrada.nextLine();
    
    // vamos ler o salário fixo
    System.out.print("Informe o salário fixo: ");
    double salario_fixo = Double.parseDouble(entrada.nextLine());
    
    // vamos o total de vendas efetuadas pelo vendedor
    System.out.print("Total de vendas efetuadas: ");
    double total_vendas = Double.parseDouble(entrada.nextLine());
    
    // agora vamos calcular o total da comissão a ser paga
    double total_comissao = total_vendas * (15.0 / 100.0);
    
    // calculamos o salário final
    double salario_final = salario_fixo + total_comissao;
    
    // e mostramos os resultados
    System.out.println("\nResultados:\n");
    System.out.println("Nome do vendedor: " + nome);
    System.out.println("Salário fixo: " + salario_fixo);
    System.out.println("Salário final do mês: " + salario_final);
  }
}


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á 28 usuários muito felizes estudando em nosso site.