Você está aqui: C ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca)

C para iniciantes - Como ordenar os elementos de um vetor de inteiros usando a ordenação da bolha (Bubble Sort) na linguagem C

Quantidade de visualizações: 9569 vezes
O método ou algorítmo de ordenação da bolha é uma das técnicas mais simples de ordenação. No entanto, este método não é eficiente, visto que o tempo despendido para sua execução é muito elevado se comparado à outros métodos existentes. Geralmente usamos este método quando queremos ordenar 50 elementos ou menos.

O entendimento deste método é fácil. Se estivermos ordenandos os valores do menor para o maior, o método da bolha percorre os elementos do vetor (array), comparando e movendo o menor valor para a primeira posição do vetor, tal qual bolhas indo para a superfície. Veja um exemplo completo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

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

void bubble_sort(int matriz[], int tam){
  int temp, i, j;

  for(i = 0; i < tam; i++){
    for(j = 0; j < tam; j++){
      if(matriz[i] < matriz[j]){
        temp = matriz[i];
        matriz[i] = matriz[j];
        matriz[j] = temp;
      }
    }
  }
}

int main(int argc, char *argv[])
{
  int valores[] = {4, 6, 2, 8, 1, 9, 3, 0, 11};
  int i, tamanho = 9;

  // imprime a matriz sem a ordenação
  for(i = 0; i < 9; i++){
    printf("%d ", valores[i]);
  }

  // vamos ordenar a matriz
  bubble_sort(valores, tamanho);

  // imprime a matriz ordenada
  puts("\n");
  for(i = 0; i < 9; i++){
    printf("%d ", valores[i]);
  }

  puts("\n");
  system("pause");
  return 0;
}

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

Sem ordenação:
4, 6, 2, 8, 1, 9, 3, 0, 11

Ordenados:
0, 1, 2, 3, 4, 6, 8, 9, 11

Link para compartilhar na Internet ou com seus amigos:

C ::: C para Engenharia ::: Física - Mecânica

Como calcular a altura da queda livre de um corpo dado o tempo de queda e a aceleração da gravidade usando a linguagem C

Quantidade de visualizações: 1765 vezes
A Queda livre é um movimento unidimensional e uniformemente acelerado. Tal movimento ocorre quando algum corpo é solto do repouso a partir de certa altura. Uma vez que a aceleração da gravidade é constante, se desconsiderarmos a ação de forças dissipativas, o tempo de descida nesse movimento será sempre igual.

Na prática, o movimento de queda livre ideal é bastante próximo daquele em que um objeto é solto a uma pequena altura em relação ao chão. No entanto, rigorosamente, esse movimento só acontece quando algum objeto é solto no vácuo. De acordo com as equações do movimento de queda livre, o tempo de queda não depende da massa dos objetos, mas da aceleração da gravidade e da altura em que esse objeto é solto.

A queda livre é um movimento vertical que ocorre com aceleração constante, de modo que a velocidade de queda do corpo aumenta a cada segundo em relação ao centro da Terra, de acordo com a aceleração da gravidade local.

Quando soltos no vácuo, corpos de massas diferentes chegarão no mesmo tempo ao chão. O fato de uma pena não chegar ao chão no mesmo tempo em que uma bola de boliche, quando soltas na superfície da Terra, está associado ao atrito com o ar, que é quase desprezível para objetos pesados e aerodinâmicos, como a bola de boliche.

A altura da queda livre de um objeto, quando temos apenas o tempo (duração da queda), pode ser obtida por meio da seguinte fórmula:

\[ \text{H} = \frac{\text{g} \cdot t^2}{2} \]

Onde:

H ? altura em metros na qual o corpo é abandonado.

g ? aceleração da gravidade (m/s2).

t ? tempo da queda (em segundos).

Em alguns livros de Física esta fórmula é encontrada também na forma:

\[ \text{h} = \frac{1}{2} \text{g} \cdot t^2 \]

Vamos ver um exemplo? Veja o seguinte enunciado:

1) Sabendo que um corpo leva 2s para chegar ao chão após ter sido abandonado a uma altura H em relação ao solo, calcule a altura em que esse corpo foi abandonado, em metros.

Note que o tempo de queda é de 2 segundos. Então, como sabemos que a aceleração da gravidade terrestre é 9.80665, só precisamos jogar na fórmula. Veja o código C completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <math.h> 
     
int main(int argc, char *argv[]){
  // gravidade terrestre em m/s2
  float gravidade = 9.80665;
  // tempo da queda
  float segundos = 2; // em segundos
  
  // vamos calcular a altura da queda
  float altura = (gravidade * pow(segundos, 2)) / 2;
  
  // mostramos o resultado
  printf("A altura da queda livre é: %f metros",
    altura);
			  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

A altura da queda livre é: 19.613300 metros.


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

Como percorrer os caracteres de uma string C usando um laço for

Quantidade de visualizações: 17451 vezes
Como em C uma string é um vetor de caracteres, tais caracteres podem ser acessados por meio de seu índice no vetor (um valor inteiro começando em 0). Este trecho de código mostra como você pode usar o laço for para acessar cada caractere individualmente e exibí-lo na tela do programa:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

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

int main(int argc, char *argv[]){
  char palavra[] = "Arquivo";

  // vamos percorrer os caracteres usando um laço for
  int i;
  for(i = 0; i < strlen(palavra); i++){
    printf("Caractere na posicao %d = %c\n", i, palavra[i]);
  }

  puts("\n\n");
  system("PAUSE");
  return 0;
}

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

Caractere na posicao 0 = A
Caractere na posicao 1 = r
Caractere na posicao 2 = q
Caractere na posicao 3 = u
Caractere na posicao 4 = i
Caractere na posicao 5 = v
Caractere na posicao 6 = o


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

Como calcular o cateto adjascente dadas as medidas da hipotenusa e do cateto oposto em C

Quantidade de visualizações: 2289 vezes
Nesta dica mostrarei como podemos tirar proveito do Teorema de Pitágoras para obter a medida do cateto adjascente quando temos as medidas da hipotenusa e do cateto oposto. Este teorema diz que "o quadrado da hipotenusa é igual à soma dos quadrados dos catetos", o que torna a nossa tarefa, na linguagem C, muito fácil.

Comece observando 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. A medida da hipotenusa é, sem arredondamentos, 36.056 metros.

Então, sabendo que o quadrado da hipotenusa é igual à soma dos quadrados dos catetos (Teorema de Pitógoras):

\[c^2 = a^2 + b^2\]

Tudo que temos que fazer é mudar a fórmula para:

\[b^2 = c^2 - a^2\]

Veja que agora o quadrado do cateto adjascente é igual ao quadrado da hipotenusa menos o quadrado do cateto oposto. Não se esqueça de que a hipotenusa é o maior lado do triângulo retângulo.

Veja agora como esse cálculo é feito em linguagem C:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main(int argc, char *argv[]){
  float c = 36.056; // medida da hipotenusa
  float a = 20; // medida do cateto oposto
  
  // agora vamos calcular a medida da cateto adjascente
  float b = sqrt(pow(c, 2) - pow(a, 2));
 
  // e mostramos o resultado
  printf("A medida do cateto adjascente é: %f", b);
 
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

A medida do cateto adjascente é: 30.000586

Como podemos ver, o resultado retornado com o código C confere com os valores da imagem apresentada.


Desafios, Exercícios e Algoritmos Resolvidos de C

Veja mais Dicas e truques de C

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
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á 73 usuários muito felizes estudando em nosso site.