Você está aqui: C ::: Topografia e Geoprocessamento ::: Passos Iniciais

Como converter graus, minutos e segundos para graus decimais em C

Quantidade de visualizações: 285 vezes
Em algumas situações, principalmente em cálculos da Engenharia Civil e Topografia, nós precisamos converter graus, minutos e segundos para graus decimais. É comum chamarmos graus, minutos e segundos de DMS ou GMS, enquanto os graus decimais são chamados de UTM.

Nesta dica veremos como converter 85º 42' 13.75'' para graus decimais. A fórmula que usaremos é a seguinte:

\[\text{Graus decimais} = \text{Graus} + \frac{\text{Minutos}}{60} + \frac{\text{Segundos}}{3600} \]

Veja agora o código C completo que pede para o usuário informar os graus, os minutos e os segundos e mostra os graus decimais:

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

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  float graus, minutos, segundos, graus_decimais;
	
  // vamos pedir para o usuário informar os graus, minutos
  // e segundos
  printf("Informe os graus: ");
  scanf("%f", &graus);
  printf("Informe os minutos: ");
  scanf("%f", &minutos);
  printf("Informe os segundos: ");
  scanf("%f", &segundos);
    
  // agora vamos calcular os graus decimais
  graus_decimais = graus + (minutos /  60.0) + (segundos / 3600.0);
    
  // e agora mostramos o resultado
  printf("Os graus decimais são: %f", graus_decimais);
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}

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

Informe os graus: 85
Informe os minutos: 42
Informe os segundos: 13.75
Os graus decimais são: 85.70381944444445

Fique atento ao sinal. Se o valor em graus, minutos e segundos possuir os caracteres "W" ou "S", então o valor em graus decimais deverá levar o sinal de negativo.

Link para compartilhar na Internet ou com seus amigos:

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

Como ordenar os elementos de um vetor C usando a ordenação da bolha (Bubble Sort)

Quantidade de visualizações: 26131 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 ordenados os valores do menor para o maior, o método da bolha percorre os elementos da matriz, comparando e movendo o menor valor para a primeira posição da matriz, 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;
}



C ::: Desafios e Lista de Exercícios Resolvidos ::: Engenharia Civil - Cálculo Estrutural

Exercícios Resolvidos de C - Como calcular as reações de apoio, momento de flexão máxima e forças cortantes em uma viga bi-apoiada com carga distribuída retangular usando C

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

Veja a seguinte figura:



Nesta imagem temos uma viga bi apoiada com uma carga q distribuída de forma retangular a uma distância l. Para fins didáticos, vamos considerar que a carga q será em kN/m e a distância l será em metros. O apoio A é de segundo gênero e o apoio B é de primeiro gênero.

Escreva um programa C que solicita ao usuário que informe o valor da carga q e a distância l entre os apoios A e B. Em seguida mostre os valores das reações nos apoios A e B, o momento de flexão máxima da viga e o momento de flexão para uma determinada distância (que o usuário informará) a partir do apoio A.

Mostre também as forças cortantes nos apoios A e B. Lembre-se de que, para uma carga distribuída de forma retangular, o diagrama de momento fletor é uma parábola, enquanto o diagrama de cortante é uma reta (com o valor zero para a força cortante no meio da viga).

Sua saída deve ser parecida com:

Valor da carga em kN/m: 10
Distância em metros: 13

A reação no apoio A é: 65.000000 kN
A reação no apoio B é: 65.000000 kN
O momento fletor máximo é: 211.250000 kN

Informe uma distância a partir do apoio A: 4
O momento fletor na distância informada é: 180.000000 kN

A força cortante no apoio A é: 65.000000 kN
A força cortante no apoio B é: -65.000000 kN
Resposta/Solução:

Veja a resolução comentada deste exercício usando 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[]) {
  // variáveis usadas na resolução do problema
  float carga, distancia, reacao_a, reacao_b;
  float flexao_maxima, distancia_temp, flexao_distancia;
  float cortante_a, cortante_b;
  
  // vamos pedir para o usuário informar o valor da carga
  printf("Valor da carga em kN/m: ");
  scanf("%f", &carga);
  
  // vamos pedir para o usuário informar a distância entre os apoios
  printf("Distancia em metros: ");
  scanf("%f", &distancia);
  
  // vamos calcular a reação no apoio A
  reacao_a = (1.0 / 2.0) * carga * distancia;
  
  // vamos calcular a reação no apoio B
  reacao_b = reacao_a;
  
  // vamos calcular o momento fletor máximo
  flexao_maxima = (1.0 / 8.0) * carga * pow(distancia, 2.0);
  
  // e mostramos o resultado
  printf("\nA reacao no apoio A e: %f kN", reacao_a);
  printf("\nA reacao no apoio B e: %f kN", reacao_b);
  printf("\nO momento fletor maximo e: %f kN", flexao_maxima);
  
  // vamos pedir para o usuário informar uma distância a
  // partir do apoio A
  printf("\n\nInforme uma distancia a partir do apoio A: ");
  scanf("%f", &distancia_temp);
  // vamos mostrar o momento fletor na distância informada
  if (distancia_temp > distancia) {
    printf("\nDistancia invalida.\n");
  }
  else {
    flexao_distancia = (1.0 / 2.0) * carga * distancia_temp * 
      (distancia - distancia_temp);
    printf("O momento fletor na distancia informada e: %f kN", 
      flexao_distancia);  
  }
  
  // vamos mostrar a força cortante no apoio A
  cortante_a = (1.0 / 2.0) * carga * distancia;
  printf("\n\nA forca cortante no apoio A e: %f kN", cortante_a);
  
  // vamos mostrar a força cortante no apoio B
  cortante_b = cortante_a * -1;
  printf("\nA forca cortante no apoio B e: %f kN\n\n", cortante_b);
  
  printf("\n\n");
  system("PAUSE");
  return 0;
}



C ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções

Exercício Resolvido de C - Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior deles

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

Escreva um programa que solicite dois números do tipo inteiro distintos ao usuário e que apresente na tela o maior deles. Esse programa deve possuir uma função para verificar qual é o maior número.

Atenção: seu código deverá assegurar que os dois números informados pelo usuário sejam diferentes. Exiba uma mensagem na tela caso isso acontecer.

Sua saída deverá ser parecida com:

Informe o primeiro número inteiro: 6
Informe o segundo número inteiro: 3
O maior número é: 6
Resposta/Solução:

Veja a resolução comentada deste exercício em 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 <locale.h>

// protótipo da função que receberá dois números inteiros
// e retornará o maior deles
int maior_numero(int num1, int num2);

// função principal do programa
int main(int argc, char *argv[]){
  setlocale(LC_ALL,""); // para acentos do português 
  
  // variáveis usadas na resolução do problema
  int num1, num2, maior;
  
  // vamos pedir para o usuário informar os dois números
  printf("Informe o primeiro número inteiro: ");
  scanf("%d", &num1);
  printf("Informe o segundo número inteiro: ");
  scanf("%d", &num2);
  
  // os números são iguais?
  if(num1 == num2){
    printf("Erro. Os dois números são iguais.");
  }
  else{
    // vamos chamar a função para obter o número maior
    maior = maior_numero(num1, num2);
    printf("O maior número é: %d", maior);	
  }
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}

// função que receberá dois números inteiros e retornará
// o maior deles
int maior_numero(int num1, int num2){
  // o primeiro número é maior que o segundo?
  if(num1 > num2){
    return num1;
  }
  else{
    return num2;
  }
}



Mais Desafios de Programação e 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á 52 usuários muito felizes estudando em nosso site.