C ::: Dicas & Truques ::: Matemática e Estatística

Como calcular desvio padrão em C - C para Matemática e Estatística

Quantidade de visualizações: 6465 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 C completo que obtém o desvio padrão a partir de um conjunto de dados contendo quatro valores:

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

// função principal do programa
int main(int argc, char *argv[]){
  // conjunto dos dados
  float conjunto[] = {10, 30, 90, 30};
  float soma = 0.0; // soma dos elementos
  float desvio_padrao = 0.0; // desvio padrão
  int tam = 4; // tamanho dos dados
  int i;
  float media;

  // vamos somar todos os elementos
  for(i = 0; i < tam; i++){
    soma = soma + conjunto[i];
  }

  // agora obtemos a média do conjunto de dados    
  media = soma / tam;

  // e finalmente obtemos o desvio padrão
  for(i = 0; i < tam; i++){
    desvio_padrao = desvio_padrao + pow(conjunto[i] - media, 2);
  }
    
  // mostramos o resultado
  printf("Desvio Padrão Populacional: %f\n", sqrt(desvio_padrao / tam));
  printf("Desvio Padrão Amostral: %f", sqrt(desvio_padrao / (tam - 1)));
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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


VB.NET ::: Dicas & Truques ::: Strings e Caracteres

Como concatenar strings em VB.NET usando o método Concat() da classe String

Quantidade de visualizações: 11756 vezes
Nesta dica mostrarei como podemos concatenar strings em VB.NET por meio do método Concat() da classe String do .NET Framework. Este método recebe uma ou mais strings e retorna um novo objeto da classe String.

Veja um exemplo de seu uso:

Imports System

Module Program
  Sub Main(args As String())
    ' declara uma variável do tipo String
    Dim frase, nome, cidade As String

    nome = "Osmar"
    cidade = "Goiânia"
    frase = "Meu nome é "
    frase = String.Concat(frase, nome)
    frase = String.Concat(frase, " e eu moro em ",
      cidade)

    ' e mostramos o resultado
    Console.WriteLine(frase)

    Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...")
    ' pausa o programa
    Console.ReadKey()
  End Sub
End Module

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

Meu nome é Osmar e eu moro em Goiânia


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

Exercício Resolvido de C - Ler três números inteiros e indicar se eles estão em ordem crescente ou decrescente

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

Escreva um programa C que pede para o usuário informar três números inteiros e informa se eles estão em ordem crescente ou decrescente. Se os números estiverem em ordem crescente, escreva "Ordem Crescente". Se estiverem em ordem decrescente, escreva "Ordem Decrescente". Do contrário escreva "Sem ordem definida".

Sua saída deverá ser parecida com:

Primeiro número: 4
Segundo número: 8
Terceiro número: 11
Ordem Crescente
Resposta/Solução:

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

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

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do exercício
  int a, b, c;
	
  setlocale(LC_ALL,""); // para acentos do português
  
  // vamos pedir para o usuário informar três números
  printf("Primeiro número: ");
  scanf("%d", &a);
  printf("Segundo número: ");
  scanf("%d", &b);
  printf("Terceiro número: ");
  scanf("%d", &c);
    
  // os números estão em ordem crescente?
  if (a < b && b < c){
    printf("Ordem Crescente");
  }
  // os números estão em ordem decrescente?
  else if (a > b && b > c){
    printf("Ordem Decrescente");
  }
  // sem ordem definida
  else{
    printf("Sem ordem definida");
  } 
	
  printf("\n\n");
  system("PAUSE");	
  return 0;
}



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 adjascente

Quantidade de visualizações: 1594 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:

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.


VBA ::: Dicas & Truques ::: Rotinas de Conversão

Como converter números em strings em VBA usando a função CStr()

Quantidade de visualizações: 473 vezes
A função CStr() do VBA pode ser usada quando queremos converter valores numéricos do tipo Integer ou Double em uma string. Em geral isso é necessário quando queremos aplicar funções de strings a valores numéricos, por exemplo, testar se um determinado dígito faz parte de um número.

Veja um trecho de código no qual usamos a função CStr() para converter valores Integer e Double em string e mostrar o resultado:

' Procedimento para converter Integer e Double em string
Sub ConverterNumeroString()
  ' vamos declarar duas variáveis numéricas
  Dim codigo As Integer
  Dim preco As Double
  
  codigo = 58
  preco = 32.15
  
  Dim resultado As String
  resultado = "O código do produto é: " + CStr(codigo) + _
    " e o preço é: " + CStr(preco)
  
  ' mostramos o resultado
  MsgBox resultado
End Sub

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

O código do produto é: 58 e o preço é: 32,15


Python ::: Flask Micro Framework ::: Rotas e Roteamento

Como criar rotas em suas aplicações Flask usando o decorador @app.route() - Tutorial Flask para iniciantes

Quantidade de visualizações: 1758 vezes
Aplicações web modernas usam uma técnica chamada roteamento nomeado, ou, na linguagem do pessoal do SEO, URLs amigáveis. Isso quer dizer que, em vez de termos URLS do tipo /livro.php?id_livro=39 nós temos /livro/39.

Neste modelo de roteamento, livro é o nome de uma função Python que será chamada quando o usuário acessar este endereço, e 39 será o argumento passado para o método.

Em Flask, as URLs são associadas às funções Python por meio do decorador @app.route(). Veja uma aplicação Flask completa que possui um método index() que é chamado quando o usuário acessa a raiz da aplicação:

# vamos importar a biblioteca Flask
from flask import Flask
 
# função principal do programa
def main():
  # vamos criar a aplicação Flask
  app = Flask(__name__)
 
  # definimos a rota para a função index()
  @app.route("/")
  def index():
    return "Este é o método index()"

  # e iniciamos a aplicação web na porta 5000
  app.run(port=5000, debug=True)

if __name__== "__main__":
  main()

Note que a nossa aplicação Flask estará disponível na porta 5000. Assim, ao acessar o endereço http://127.0.0.1:5000 nós teremos o seguinte resultado:

Este é o método index()

Veja agora como criar uma URL /listar_usuarios e associá-la a uma função listar_usuarios():

# vamos importar a biblioteca Flask
from flask import Flask
 
# função principal do programa
def main():
  # vamos criar a aplicação Flask
  app = Flask(__name__)
 
  # definimos a rota para a função index()
  @app.route("/")
  def index():
    return "Este é o método index()"

  # definimos a rota para a função listar_usuarios()
  @app.route("/listar_usuarios")
  def listar_usuarios():
    return "Este é o método para listar os usuários"  

  # e iniciamos a aplicação web na porta 5000
  app.run(port=5000, debug=True)

if __name__== "__main__":
  main()

Agora, experimente acessar o endereço http://127.0.0.1:5000/listar_usuarios e veja o resultado. Se tudo estiver correto, você verá o seguinte resultado:

Este é o método para listar os usuários

Em mais dicas desta seção você verá como criar URLs com parâmetros e passá-los para suas funções Python.


C ::: Dicas & Truques ::: Recursão (Recursividade)

Como somar os elementos de um vetor em C usando uma função recursiva - Linguagem C para iniciantes

Quantidade de visualizações: 5453 vezes
Em algumas ocasiões ficamos imaginando o que pode ser feito com os métodos e funções recursivas. A resposta é: praticamente tudo.

Veja abaixo um programa C completo no qual eu mostro como escrever uma função recursiva que recebe um array e mostra a soma de seus elementos (lembre-se de que um array é o mesmo que vetor, ou seja, uma matriz de uma linha e várias colunas):

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

// função recursiva para somar todos os elementos de um array
int somar(int indice, int tamanho, int vetor[]){
  // o caso base...hora de encerrar a recursividade
  if(indice == (tamanho - 1)){
    return vetor[indice];
  }
  else{
    // ainda não é o caso base? vamos fazer uma nova chamada à função somar()
    return vetor[indice] + somar(indice + 1, 10, vetor);
  }
}

// função principal do programa
int main(int argc, char *argv[]){
  // vamos declarar um array de 10 elementos
  int valores[10];
  int i, soma;

  // vamos pedir ao usuário para informar os valores para o vetor
  for(i = 0; i < 10; i++){
    printf("Informe o valor do elemento %d: ", i);
    scanf("%d", &valores[i]); 
  }

  // vamos efetuar uma chamada à função recursiva somar();
  // nota que estamos passando o índice inicial, o tamanho do
  // array e o array em si
  soma = somar(0, 10, valores);
  printf("\nA soma dos elementos è: %d", soma);
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

Informe o valor do elemento 0: 7
Informe o valor do elemento 1: 3
Informe o valor do elemento 2: 1
Informe o valor do elemento 3: 3
Informe o valor do elemento 4: 8
Informe o valor do elemento 5: 9
Informe o valor do elemento 6: 4
Informe o valor do elemento 7: 3
Informe o valor do elemento 8: 2
Informe o valor do elemento 9: 6

A soma dos elementos é: 46


PHP ::: Dicas & Truques ::: Matemática e Estatística

Como gerar um número aleatório (randômico) em PHP usando a função rand()

Quantidade de visualizações: 30665 vezes
Nesta dica mostrarei como gerar números randômicos dentro de uma determinada faixa usando a função rand() da linguagem PHP. Veja que esta função requer o limite inicial e final (incluso) da faixa a partir da qual o número aleatório será gerado.

Veja um código PHP no qual geramos um número aleatório entre 1 e 10:

<html>
<head>
<title>Estudando PHP</title>
</head>
<body>

<?php
  $num = rand(1, 10);
  echo "O número gerado foi: " . $num;
?>
 
</body>
</html>

Ao executar este código nós teremos um resultado parecido com:

O número gerado foi: 5

Obs: A partir da versão 4.2.0 do PHP, não é mais necessário usar srand() ou mt_srand() para inicializar a semente (seed) do gerador de números aleatórios.


PHP ::: Dicas & Truques ::: Expressões Regulares

Expressões Regulares em PHP - Como usar expressões regulares em PHP

Quantidade de visualizações: 9377 vezes
Expressões regulares são padrões pré-definidos que permitem pesquisar ou substituir uma substring em uma string. Isso quer dizer que expressões regulares são uma ferramenta muito útil para validar CEPs, números de telefones, cartões de crédito, endereços de e-mail, entre outros.

Várias linguagens de programação suportam expressões regulares, entre estas Perl, JavaScript, Java, C#, Python e VB.NET. Porém, o domínio destas expressões é privilégio de poucos. Talvez por sua complexidade ou até mesmo pelo fato de que alguns programadores se contentam em aprender apenas as características básicas de uma linguagem de programação. Quando precisam escrever um programa realmente avançado, vão em busca de códigos prontos e que satisfaçam suas necessidades depois de algumas pequenas alterações.

O PHP suporta dois tipos de expressões regulares: PCRE (Perl-Compatible Regular Expression) e POSIX Extended. O grupo de dicas apresentadas nesta seção de nosso site abrange estes dois tipos de expressões regulares.

Algumas funções de expressões regulares PCRE são: preg_grep(), preg_last_error(), preg_match_all(), preg_match(), preg_quote(), preg_replace_callback(), preg_replace() e preg_split(). Estas funções são abordadas com mais detalhes nesta seção.

Algumas funções de expressões regulares POSIX Regex são: ereg_replace(), ereg(), eregi_replace(), eregi(), split(), spliti(), sql_regcase().

Veja um trecho de código que usa a função eregi() para verificar se uma URL começa com http ou https:

<?
  $url = "http://www.arquivodecodigos.com.br";

  // vamos verificar se a URL começa com http ou https
  if(eregi("^http|https", $url))
    echo "A URL começa com o padrão analisado";
  else
    echo "A URL NÃO começa com o padrão analisado";
?>



C ::: Dicas & Truques ::: Geometria, Trigonometria e Figuras Geométricas

Como calcular o coeficiente angular de uma reta em C dados dois pontos no plano cartesiano

Quantidade de visualizações: 3535 vezes
O Coeficiente Angular de uma reta é a variação, na vertical, ou seja, no eixo y, pela variação horizontal, no eixo x. Sim, isso mesmo. O coeficiente angular de uma reta tem tudo a ver com a derivada, que nada mais é que a taxa de variação de y em relação a x.

Vamos começar analisando o seguinte gráfico, no qual temos dois pontos distintos no plano cartesiano:



Veja que o segmento de reta AB passa pelos pontos A (x=3, y=6) e B (x=9, y=10). Dessa forma, a fórmula para obtenção do coeficiente angular m dessa reta é:

\[\ \text{m} = \frac{y_2 - y_1}{x_2 - x_1} = \frac{\Delta y}{\Delta x} = tg \theta \]

Note que __$\Delta y__$ e __$\Delta x__$ são as variações dos valores no eixo das abscissas e no eixo das ordenadas. No triângulo retângulo que desenhei acima, a variação __$\Delta y__$ se refere ao comprimento do cateto oposto e a variação __$\Delta y__$ se refere ao comprimento do cateto adjascente.

Veja agora o trecho de código na linguagem C que solicita as coordenadas x e y dos dois pontos, efetua o cálculo e mostra o coeficiente angular m da reta que passa pelos dois pontos:

#include <stdio.h>
#include <stdlib.h>
   
int main(int argc, char *argv[]){
  // coordenadas dos dois pontos
  float x1, y1, x2, y2;
  // guarda o coeficiente angular
  float m; 
       
  // x e y do primeiro ponto
  printf("Coordenada x do primeiro ponto: ");
  scanf("%f", &x1);
  printf("Coordenada y do primeiro ponto: ");
  scanf("%f", &y1);
     
  // x e y do segundo ponto
  printf("Coordenada x do segundo ponto: ");
  scanf("%f", &x2);
  printf("Coordenada y do segundo ponto: ");
  scanf("%f", &y2);   
     
  // vamos calcular o coeficiente angular
  m = (y2 - y1) / (x2 - x1);
     
  // mostramos o resultado
  printf("O coeficiente angular é: %f", m);
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

Coordenada x do primeiro ponto: 3
Coordenada y do primeiro ponto: 6
Coordenada x do segundo ponto: 9
Coordenada y do segundo ponto: 10
O coeficiente angular é: 0.666667
Pressione qualquer tecla para continuar...

Veja agora como podemos calcular o coeficiente angular da reta que passa pelos dois pontos usando o Teorema de Pitágoras. Note que agora nós estamos tirando proveito da tangente do ângulo Theta (__$\theta__$), também chamado de ângulo Alfa ou Alpha (__$\alpha__$):

#include <stdio.h>
#include <stdlib.h>
   
int main(int argc, char *argv[]){
  // coordenadas dos dois pontos
  float x1, y1, x2, y2;
  // guarda os comprimentos dos catetos oposto e adjascente
  float cateto_oposto, cateto_adjascente;
  // guarda o ângulo tetha (em radianos) e a tangente
  float tetha, tangente; 
       
  // x e y do primeiro ponto
  printf("Coordenada x do primeiro ponto: ");
  scanf("%f", &x1);
  printf("Coordenada y do primeiro ponto: ");
  scanf("%f", &y1);
     
  // x e y do segundo ponto
  printf("Coordenada x do segundo ponto: ");
  scanf("%f", &x2);
  printf("Coordenada y do segundo ponto: ");
  scanf("%f", &y2);   
     
  // vamos obter o comprimento do cateto oposto
  cateto_oposto = y2 - y1;
  // e agora o cateto adjascente
  cateto_adjascente = x2 - x1;
  // vamos obter o ângulo tetha, ou seja, a inclinação da hipetunesa
  // (em radianos, não se esqueça)
  tetha = atan2(cateto_oposto, cateto_adjascente);
  // e finalmente usamos a tangente desse ângulo para calcular
  // o coeficiente angular
  tangente = tan(tetha);
	  
  // mostramos o resultado
  printf("O coeficiente angular é: %f", tangente);
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

Ao executar este código você verá que o resultado é o mesmo. No entanto, fique atento às propriedades do coeficiente angular da reta:

1) O coeficiente angular é positivo quando a reta for crescente, ou seja, m > 0;

2) O coeficiente angular é negativo quando a reta for decrescente, ou seja, m < 0;

3) Se a reta estiver na horizontal, ou seja, paralela ao eixo x, seu coeficiente angular é zero (0).

4) Se a reta estiver na vertical, ou seja, paralela ao eixo y, o coeficiente angular não existe.

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