Você está aqui: C ::: C para Engenharia ::: Física - Mecânica - Estática |
Como calcular o centroide ou centro de gravidade de um triângulo em CQuantidade de visualizações: 399 vezes |
O centro de gravidade, ou centroide (centro geométrico), é o ponto no qual a massa de um triângulo se equilibra. Para ajudar a visualizar isso, imagine uma figura triangular suspensa sobre a ponta de um lápis. A figura vai se equilibrar se a ponta do lápis for posicionada em seu centro de gravidade. Encontrar o centroide pode ser necessário em vários projetos e aplicações de engenharia, e pode ser encontrado usando geometria simples. Veja a seguinte figura: ![]() Nesta figura nós temos os três vértices do triângulo devidamente registrados, assim como o ponto representando seu centroide. Assim, a fórmula do centroide do triângulo é: \[x_c = \frac{x_1 + x_2 + x_3}{3}\] \[y_c = \frac{y_1 + y_2 + y_3}{3}\] Agora vamos ver como calcular o centro de gravidade do triângulo em C. Para isso nós vamos pedir para o usuário informar as coordenadas dos três vértices do triângulo e, em seguida, vamos mostrar as coordenadas do ponto que representa o centroide. Veja: ---------------------------------------------------------------------- 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 que usaremos na resolução do problema float va_x, va_y, vb_x, vb_y, vc_x, vc_y, c_x, c_y; // vamos ler as coordenadas do primeiro vértice printf("Informe o x do primeiro vértice: "); scanf("%f", &va_x); printf("Informe o y do primeiro vértice: "); scanf("%f", &va_y); // vamos ler as coordenadas do segundo vértice printf("Informe o x do segundo vértice: "); scanf("%f", &vb_x); printf("Informe o y do segundo vértice: "); scanf("%f", &vb_y); // vamos ler as coordenadas do terceiro vértice printf("Informe o x do terceiro vértice: "); scanf("%f", &vc_x); printf("Informe o y do terceiro vértice: "); scanf("%f", &vc_y); // vamos calcular as coordenadas do centroide c_x = (va_x + vb_x + vc_x) / 3.0; c_y = (va_y + vb_y + vc_y) / 3.0; // vamos mostrar o resultado printf("As coordenadas do centroide são: x=%f; y=%f\n", c_x, c_y); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Informe o x do primeiro vértice: 3 Informe o y do primeiro vértice: 10 Informe o x do segundo vértice: 12 Informe o y do segundo vértice: 15 Informe o x do terceiro vértice: 14 Informe o y do terceiro vértice: 7 As coordenadas do centroide são: x=9.67; y=10.67 |
![]() |
C ::: C para Engenharia ::: Física - Mecânica |
Como usar a Equação de Torricelli para calcular a velocidade da queda livre dada a altura (e a aceleração da gravidade) usando a linguagem CQuantidade de visualizações: 2248 vezes |
A Equação de Torricelli pode ser usada quando temos a altura na qual um corpo (objeto) foi abandonado e gostaríamos de calcular sua velocidade de queda livre em m/s ou km/h imediatamente antes de tal corpo tocar o chão. Para isso usaremos a seguinte fórmula: \[ v^2 = \text{2} \cdot \text{g} \cdot \text{H} \] Onde: g ? aceleração da gravidade (m/s2) H ? altura em metros na qual o corpo é abandonado. Vamos ver um exemplo? Veja o seguinte enunciado: 1) Uma bola de basquete é abandonada a uma altura de 5 metros em relação ao chão. Se essa bola estiver movendo-se em queda livre, qual será a velocidade da bola, em km/h, imediatamente antes de tocar o chão? Note que o exercício pede a velocidade em km/h, e não m/s. Assim, veja o código C completo para o cálculo: ---------------------------------------------------------------------- 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; // altura da queda (em metros) int altura = 5; // em metros // velocidade da queda em metros por segundo float velocidade_m_s = sqrt(2 * gravidade * altura); // velocidade da queda em km/h float velocidade_km_h = velocidade_m_s * 3.6; // mostramos o resultado printf("A velocidade da queda livre em m/s é: %fm/s", velocidade_m_s); printf("\nA velocidade da queda livre em km/h é: %fkm/h", velocidade_km_h); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: A velocidade da queda livre em m/s é: 9.902853m/s A velocidade da queda livre em km/h é: 35.650272km/h Note que definimos, no código, a aceleração da gravidade terreste como 9.80665m/s2. |
C ::: Dicas & Truques ::: Ponteiros, Referências e Memória |
Como alocar memória dinâmica usando a função calloc() da linguagem CQuantidade de visualizações: 18670 vezes |
A função calloc() é bem parecida com a função malloc() e também é usada em C para alocarmos um bloco de memória. A diferença é que calloc() recebe a quantidade de elementos e o número de bytes do elemento e retorna um ponteiro do tipo void (genérico) para o início do bloco de memória obtido. Veja sua assinatura:void *calloc(size_t n, size_t size); Se a memória não puder se alocada, um ponteiro nulo (NULL) será retornado. É importante se lembrar de alguns conceitos antes de usar esta função. Suponhamos que você queira alocar memória para um único inteiro. Você poderia ter algo assim: // aloca memória para um int ponteiro = calloc(1, 4); Embora este código esteja correto, não é um boa idéia assumir que um inteiro terá sempre 4 bytes. Desta forma, é melhor usar o operador sizeof() para obter a quantidade de bytes em um inteiro em uma determinada arquitetura. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // aloca memória para um int ponteiro = calloc(1, sizeof(int)); Eis o código completo para um aplicativo C que mostra como alocar memória para um inteiro e depois atribuir e obter o valor armazenado no bloco de memória alocado: ---------------------------------------------------------------------- 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> int main(int argc, char *argv[]) { // ponteiro para uma variável do tipo inteiro int *ponteiro; // aloca memória para um int ponteiro = calloc(1, sizeof(int)); // testa se a memória foi alocada com sucesso if(ponteiro) printf("Memoria alocada com sucesso.\n"); else printf("Nao foi possivel alocar a memoria.\n"); // atribui valor à memória alocada *ponteiro = 45; // obtém o valor atribuído printf("Valor: %d\n\n", *ponteiro); // libera a memória free(ponteiro); system("PAUSE"); return 0; } Uma aplicação interessante da função calloc() é quando precisamos construir uma matriz dinâmica. Veja como isso é feito no código abaixo: ---------------------------------------------------------------------- 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> int main(int argc, char *argv[]) { int i; // quantidade de elementos na matriz int quant = 10; // ponteiro para o bloco de memória int *ponteiro; // aloca memória para uma matriz de inteiros ponteiro = calloc(quant, sizeof(int)); // testa se a memória foi alocada com sucesso if(ponteiro) printf("Memoria alocada com sucesso.\n"); else{ printf("Nao foi possivel alocar a memoria.\n"); exit(1); } // atribui valores aos elementos do array for(i = 0; i < quant; i++){ ponteiro[i] = i * 2; } // exibe os valores for(i = 0; i < quant; i++){ printf("%d ", ponteiro[i]); } // libera a memória free(ponteiro); printf("\n\n"); system("PAUSE"); return 0; } |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como verificar a existência de qualquer um dos caracteres de um substring em uma string em C usando a função strpbrk()Quantidade de visualizações: 10394 vezes |
Muitas vezes precisamos verificar se qualquer um de um conjunto de caracteres está contido em uma string. Para isso nós podemos usar a função strpbrk(). Esta função recebe duas strings e retorna um ponteiro para a primeira ocorrência de qualquer um dos caracteres presentes na segunda string e também presentes na primeira string. Veja um exemplo no qual verificamos se uma string contém qualquer um dos digitos de 0 a 9:---------------------------------------------------------------------- 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> int main(int argc, char *argv[]) { char texto[] = "Gosto muito de C e C++"; char numeros[] = "1234567890"; char *pos_atual = strpbrk(texto, numeros); if(pos_atual != NULL){ puts("A string contem digitos"); } else{ puts("A string NAO contem digitos"); } system("pause"); return 0; } |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
Códigos Fonte |
![]() 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 |
![]() 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 |