Você está aqui: R ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
|
Como calcular o seno de um número ou ângulo usando a função sin() da linguagem RQuantidade de visualizações: 1312 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 R. Esta função recebe um valor numérico e retorna um valor, também numérico) entre -1 até 1 (ambos inclusos). Veja: > sin(0) [ENTER] [1] 0 > sin(1) [ENTER] [1] 0.841471 > sin(2) [ENTER] [1] 0.9092974 > 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: |
|
Link para compartilhar na Internet ou com seus amigos: | |
Delphi ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular desvio padrão em Delphi - Delphi para Matemática e EstatísticaQuantidade de visualizações: 1836 vezes |
Em Matemática e Estatística, o Desvio padrão (em inglês: Standard Deviation) é uma medida de dispersão, ou seja, é uma medida que indica o quanto um conjunto de dados é uniforme. Quando o desvio padrão é baixo, isso quer dizer que os dados do conjunto estão mais próximos da média. Como calcular o desvio padrão de um conjunto de dados? Vamos começar analisando a fórmula mais difundida na matemática e na estatística: \[\sigma = \sqrt{ \frac{\sum_{i=1}^N (x_i -\mu)^2}{N}}\] Onde: a) __$\sigma__$ é o desvio; b) __$x_i__$ é um valor qualquer no conjunto de dados na posição i; c) __$\mu__$ é a média aritmética dos valores do conjunto de dados; d) N é a quantidade de valores no conjunto. O somatório dentro da raiz quadrada nos diz que devemos somar todos os elementos do conjunto, desde a posição 1 até a posição n, subtrair cada valor pela média do conjunto e elevar ao quadrado. Obtida a soma, nós a dividimos pelo tamanho do conjunto. Veja o código Delphi completo que obtém o desvio padrão a partir de um conjunto de dados contendo quatro valores: // Algoritmo Delphi para calcular desvio padrão program estudos_delphi; {$APPTYPE CONSOLE} uses SysUtils, Math; var // conjunto de dados conjunto: array[1..4] of double = (10, 30, 90, 30); soma: double; // Soma dos elementos desvio_padrao: double; // Desvio padrão tam: integer; // Tamanho dos dados media: double; // média i: integer; begin soma := 0.0; desvio_padrao := 0.0; tam := 4; // vamos somar todos os elementos for i := 1 to tam do begin soma := soma + conjunto[i]; end; // agora obtemos a média do conjunto de dados media := soma / tam; // e finalmente obtemos o desvio padrão for i := 1 to tam do begin // não esqueça de adicionar a unit Math desvio_padrao := desvio_padrao + Power(conjunto[i] - media, 2); end; // mostramos o resultado WriteLn('Desvio Padrão Populacional: ' + FloatToStr(Sqrt(desvio_padrao / tam))); WriteLn('Desvio Padrão Amostral: ' + FloatToStr(Sqrt(desvio_padrao / (tam - 1)))); WriteLn; Write('Pressione Enter para sair...'); ReadLn; end. Ao executar este código Delphi nós teremos o seguinte resultado: Desvio Padrão Populacional: 30.0 Desvio Padrão Amostral: 34.64101615137755 Veja que, para calcular o Desvio Padrão Populacional, nós dividimos o somatório pela quantidade de elementos no conjunto, enquanto, para calcular o Desvio Padrão Amostral, nós dividimos o somatório pela quantidade de elementos - 1 (cuidado com a divisão por zero no caso de um conjunto com apenas um elemento). |
Portugol ::: Dicas & Truques ::: Matemática e Estatística |
Como resolver uma equação do segundo grau em Portugol - Como calcular Bhaskara em PortugolQuantidade de visualizações: 1795 vezes |
Como resolver uma equação do 2º grau usando Portugol Nesta dica mostrarei como encontrar as raízes de uma equação quadrática, ou seja, uma equação do 2º usando um algoritmo escrito na ferramenta Portugol Studio, uma das preferidas para o aprendizado de algoritmos e lógica de programação. Definimos como equação do 2º grau ou equações quadráticas qualquer equação do tipo ax² + bx + c = 0 em que a, b e c são números reais e a ≠ 0. Ela recebe esse nome porque, no primeiro membro da igualdade, há um polinômio de grau dois com uma única incógnita. Note que, dos coeficientes a, b e c, somente o a é diferente de zero, pois, caso ele fosse igual a zero, o termo ax² seria igual a zero, logo a equação se tornaria uma equação do primeiro grau: bx + c = 0. Independentemente da ordem da equação, o coeficiente a sempre acompanha o termo x², o coeficiente b sempre acompanha o termo x, e o coeficiente c é sempre o termo independente. Como resolver uma equação do 2º grau Conhecemos como soluções ou raízes da equação ax² + bx + c = 0 os valores de x que fazem com que essa equação seja verdadeira. Uma equação do 2º grau pode ter no máximo dois números reais que sejam raízes dela. Para resolver equações do 2º grau completas, existem dois métodos mais comuns: a) Fórmula de Bhaskara; b) Soma e produto. O primeiro método é bastante mecânico, o que faz com que muitos o prefiram. Já para utilizar o segundo, é necessário o conhecimento de múltiplos e divisores. Além disso, quando as soluções da equação são números quebrados, soma e produto não é uma alternativa boa. Como resolver uma equação do 2º grau usando Bhaskara Como nosso algoritmo Portugol vai resolver a equação quadrática usando a Fórmula de Bhaskara, o primeiro passo é encontrar o determinante. Veja: \[\Delta =b^2-4ac\] Nem sempre a equação possui solução real. O valor do determinante é que nos indica isso, existindo três possibilidades: a) Se determinante > 0, então a equação possui duas soluções reais. b) Se determinante = 0, então a equação possui uma única solução real. c) Se determinante < 0, então a equação não possui solução real. Encontrado o determinante, só precisamos substituir os valores, incluindo o determinante, na Fórmula de Bhaskara: \[x = \dfrac{- b\pm\sqrt{b^2- 4ac}}{2a}\] Vamos agora ao código Portugol (escrevi e testei no Portugol Webstudio). Nossa aplicação vai pedir para o usuário informar os valores dos três coeficientes a, b e c e, em seguida, vai apresentar as raizes da equação: // "Como resolver uma equação do 2º grau usando Portugol programa { // inclui a biblioteca Matematica inclua biblioteca Matematica --> mat // função principal do programa funcao inicio() { // variáveis usadas na resolução do problema // os coeficientes real a, b, c // as duas raizes, a imaginaria e o discriminante real raiz1, raiz2, imaginaria, discriminante // vamos pedir para o usuário informar os valores dos coeficientes escreva("Valor do coeficiente a: ") leia(a) escreva("Valor do coeficiente b: ") leia(b) escreva("Valor do coeficiente c: ") leia(c) // vamos calcular o discriminante discriminante = (b * b) - (4 * a * c) // a equação possui duas soluções reais? se (discriminante > 0) { raiz1 = ((b * -1) + mat.raiz(discriminante, 2.0)) / (2 * a) raiz2 = ((b * -1) - mat.raiz(discriminante, 2.0)) / (2 * a) escreva("Duas raizes: x1 = ", raiz1, " e x2 = ", raiz2) } // a equação possui uma única solução real? senao se (discriminante == 0){ raiz1 = (b * -1) / (2 * a) raiz2 = (b * -1) / (2 * a) escreva("Duas raizes iguais: x1 = ", raiz1, " e x2 = ", raiz2) } // a equação não possui solução real? senao{ raiz1 = (b * -1) / (2 * a) raiz2 = (b * -1) / (2 * a) imaginaria = mat.raiz((discriminante * -1), 2.0) / (2 * a) escreva("Existem duas raízes complexas: ") escreva("x1 = ", raiz1, " + " ,imaginaria, " e x2 = ", raiz2, " - ", imaginaria) } } } Ao executar este código Portugol nós teremos o seguinte resultado: Valor do coeficiente a: 1 Valor do coeficiente b: 2 Valor do coeficiente c: -3 Existem duas raizes: x1 = 1.0 e x2 = -3.0 |
PHP ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como pesquisar valores em arrays do PHP usando a função array_search()Quantidade de visualizações: 23809 vezes |
A função array_search() do PHP é muito útil quando precisamos pesquisar um determinado valor em um vetor e retornar o seu índice. É importante observar que esta função retorna o índice do elemento se ele for encontrado no array e, em caso contrário, retorna o valor FALSE. Veja um exemplo completo de seu uso: <?php $pessoas[0] = "Carlos"; $pessoas[1] = "Juliana"; $pessoas[2] = "Igor"; $pessoas[3] = "Marcelo"; $pessoas[4] = "Amélia"; $indice = array_search("Igor", $pessoas); if($indice){ echo "O valor foi encontrado no índice " . $indice; } else{ echo "O valor pesquisado não foi encontrado."; } ?> Ao executar este código PHP nós teremos o seguinte resultado: O valor foi encontrado no índice 2. |
Delphi ::: Dicas & Truques ::: Strings e Caracteres |
Como verificar se uma substring está contida no início de uma string em Delphi usando a função AnsiStartsStr()Quantidade de visualizações: 12161 vezes |
Em algumas situações precisamos verificar se uma substring está contida no início de uma string, ou seja, se a string começa com um determinado prefixo. Em Delphi isso pode ser feito com o auxílio da função AnsiStartsStr(). Esta função requer a substring a ser pesquisada e a string alvo da pesquisa. O retorno será true se a substring estiver contida no início da string. Do contrário o retorno será false. Veja o exemplo:procedure TForm1.Button1Click(Sender: TObject); var frase: string; begin frase := 'Gosto muito de Delphi e Java'; // vamos verificar se a string começa com "Gosto" if AnsiStartsStr('Gosto', frase) then ShowMessage('A frase começa com a substring indicada') else ShowMessage('A frase NÃO começa com a substring indicada') end; Lembre-se de que esta função diferencia maiúsculas e minúsculas. Não se esqueça de adicionar a unit StrUtils no uses do seu formulário. Para questões de compatibilidade, esta dica foi escrita usando Delphi 2009. |
Java ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar se uma matriz é uma matriz identidade usando JavaQuantidade de visualizações: 595 vezes |
Seja M uma matriz quadrada de ordem n. A matriz M é chamada de Matriz Identidade de ordem n (indicada por In) quando os elementos da diagonal principal são todos iguais a 1 e os elementos restantes são iguais a zero. Para melhor entendimento, veja a imagem de uma matriz identidade de ordem 3, ou seja, três linhas e três colunas: Veja um código Java completo no qual nós declaramos uma matriz quadrada de ordem 3, pedimos para o usuário informar os valores de seus elementos e no final informamos se a matriz é uma matriz identidade ou não: package estudos; import java.util.Scanner; public class Estudos{ public static void main(String[] args){ int n = 3; // ordem da matriz quadrada int matriz[][] = new int[n][n]; // matriz quadrada // para efetuar a leitura do usuário Scanner entrada = new Scanner(System.in); // vamos pedir para o usuário informar os elementos da matriz for (int i = 0; i < n; i++){ for (int j = 0; j < n; j++) { System.out.print("Elemento na linha " + (i + 1) + " e coluna " + (j + 1) + ": "); matriz[i][j] = Integer.parseInt(entrada.nextLine()); } } // agora verificamos se a matriz é uma matriz identidade boolean identidade = true; for(int linha = 0; linha < n; linha++){ for(int coluna = 0; coluna < n; coluna++){ if(matriz[linha][coluna] != 1 && matriz[coluna][linha] != 0){ identidade = false; break; } } } // agora mostramos a matriz lida System.out.printf("\n"); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { System.out.printf("%d ", matriz[i][j]); } System.out.printf("\n"); } if (identidade){ System.out.printf("\nA matriz informada é uma matriz identidade.\n"); } else{ System.out.printf("\nA matriz informada não é uma matriz identidade.\n"); } } } Ao executar este código Java nós teremos o seguinte resultado: Elemento na linha 1 e coluna 1: 1 Elemento na linha 1 e coluna 2: 0 Elemento na linha 1 e coluna 3: 0 Elemento na linha 2 e coluna 1: 0 Elemento na linha 2 e coluna 2: 1 Elemento na linha 2 e coluna 3: 0 Elemento na linha 3 e coluna 1: 0 Elemento na linha 3 e coluna 2: 0 Elemento na linha 3 e coluna 3: 1 1 0 0 0 1 0 0 0 1 A matriz informada é uma matriz identidade. |
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |