Você está aqui: C ::: C para Engenharia ::: Física - Mecânica |
Como calcular a velocidade da queda livre de um corpo dado o intervalo de tempo (e a aceleração da gravidade) em CQuantidade de visualizações: 2496 vezes |
A Queda Livre é um Movimento Uniformemente Variado, na qual um objeto em queda livre tem a sua velocidade aumentada a taxas constantes. Abandonado em alturas próximas da terra, a velocidade com que um corpo cai aumenta a uma taxa de aproximadamente 9,8m/s. Isso é o mesmo que dizer que a aceleração da gravidade terrestre é de 9,8m/s2, o que aumenta a velocidade do objeto em 35,28km/h a cada segundo. Assim, a fórmula da velocidade de um objeto em queda livre é: \[ \text{v} = \text{g} \cdot \text{t} \] Onde: v ? velocidade de queda (m/s) g ? aceleração da gravidade (m/s2) t ? intervalo de tempo (s) Vamos ver um exemplo? Veja o seguinte enunciado: 1) Um corpo é abandonado a uma altura qualquer no tempo 0s e está em queda livre. Calcule a sua velocidade no tempo 15s. Como sabemos que o intervalo de tempo é 15s, só precisamos jogar na fórmula. Veja o código C completo para o cálculo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ // gravidade terrestre em m/s2 float gravidade = 9.80665; // intervalo de tempo da queda livre (em segundos) float tempo = 15.00; // em segundos // velocidade da queda nesse intervalo float velocidade = gravidade * tempo; // mostramos o resultado printf("A velocidade da queda livre é: %fm/s", velocidade); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: A velocidade da queda livre é: 147.099747m/s Se quisermos saber a velocidade em km/h, basta multiplicar o resultado por 3.6, o que dará 529.56km/h. Vamos tornar o experimento mais interessante? Veja uma modificação no código C que mostra a velocidade da queda nos 10 primeiros segundos, de forma individual: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]){ int i; // variável de controle do laço // gravidade terrestre em m/s2 float gravidade = 9.80665; // intervalo de tempo da queda livre (em segundos) int tempo; // velocidade da queda nesse intervalo float velocidade; // um laço for que repete 10 vezes for(i = 1; i <= 10; i++){ tempo = i; // inicialmente será um segundo velocidade = gravidade * tempo; printf("A velocidade no tempo %d: %fm/s\n", tempo, velocidade); } printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: A velocidade no tempo 1: 9.806650m/s A velocidade no tempo 2: 19.613300m/s A velocidade no tempo 3: 29.419950m/s A velocidade no tempo 4: 39.226601m/s A velocidade no tempo 5: 49.033249m/s A velocidade no tempo 6: 58.839901m/s A velocidade no tempo 7: 68.646553m/s A velocidade no tempo 8: 78.453201m/s A velocidade no tempo 9: 88.259850m/s A velocidade no tempo 10: 98.066498m/s |
![]() |
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: 26167 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 para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #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 ::: Dicas & Truques ::: Recursão (Recursividade) |
Como calcular o fatorial de um número em C usando recursividadeQuantidade de visualizações: 15871 vezes |
O fatorial de um determinado número, representado por n! equivale a multiplicar este número por seus antecessores. Assim, o fatorial de 4 (4!) pode ser calculado da seguinte forma:4 x 3 x 2 x 1 = 24 Sempre que falamos de recursão, o cálculo de fatorial nos auxilia na exemplificação por ser relativamente fácil de se entender todas as etapas do processo. O código abaixo mostra uma função recursiva em C que calcula o fatorial de qualquer número. Tenha cuidado. Calcular o fatorial de um número maior que 10 pode tornar sua máquina extremamente lenta, além de, muitas vezes, não retornar os resultados esperados. ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <locale.h> // cabeçalho da função fatorial recursiva int fatorial(int n); // função principal do programa int main(int argc, char *argv[]){ setlocale(LC_ALL,""); // para acentos do português // vamos calcular o fatorial de 5 int res = fatorial(5); // exibe o resultado printf("O fatorial de 5 é: %d", res); printf("\n\n"); system("PAUSE"); return 0; } // função recursiva para calcular o fatorial // de um determinado número int fatorial(int n){ if(n == 0){ return 1; } else{ return n * fatorial(n - 1); } } Ao executar este código C nós teremos o seguinte resultado: O fatorial de 5 é: 120 |
C ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar o laço while em C - Linguagem C para iniciantes em programaçãoQuantidade de visualizações: 33429 vezes |
O laço while é usado quando queremos que um bloco de instruções seja executado ENQUANTO uma condição for verdadeira (true). Veja um trecho de código exemplificando isso:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- int valor = 1; while(valor <= 10){ printf("%d ", valor); valor++; } Este trecho de código exibe os números de 1 à 10 na página. Veja agora o mesmo trecho de código, desta vez contando de 10 à 1: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- int valor = 10; while(valor >= 1){ printf("%d ", valor); valor--; } Lembre-se de que a condição testada em um laço while deve resultar em um valor boolean (true ou false). O trecho de código seguinte deixa isso mais claro: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int continuar = 1; // 1 é true em C int valor = 1; while(continuar){ printf("%d ", valor); valor++; if(valor > 10) continuar = 0; // 0 é false em C } printf("\n\n"); system("PAUSE"); return 0; } Para finalizar, lembre-se de que um laço while pode nunca ser executado, ou seja, se a condição testada na primeira iteração já resultar false, o fluxo de código é transferido para a primeira instrução após o laço. |
C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico |
Exercícios Resolvidos de C - Como somar o primeiro e o último dígito de um número inteiro informado pelo usuário em CQuantidade de visualizações: 713 vezes |
Pergunta/Tarefa: Escreva um programa C que pede para o usuário informar um número inteiro e mostre a soma do primeiro dígito com o último dígito. Atenção: você deve usar apenas os operadores matemáticos e a função log10(). Sua saída deverá ser parecida com: Informe um número inteiro: 48763 A soma do primeiro e do último dígito é: 7 Veja a resolução comentada deste exercício usando C: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <locale.h> #include <math.h> int main(int argc, char *argv[]){ setlocale(LC_ALL,""); // para acentos do português int numero, quant, primeiro_digito, ultimo_digito, soma; // vamos pedir para o usuário informar um número inteiro printf("Informe um número inteiro: "); scanf("%d", &numero); // vamos obter a quantidade (-1) de dígitos no número informado quant = (int)log10(numero); primeiro_digito = (int)(numero / pow(10, quant)); ultimo_digito = numero % 10; // soma o primeiro e o último dígito soma = primeiro_digito + ultimo_digito; // mostra o resultado printf("A soma do primeiro e do último dígito é: %d", soma); printf("\n\n"); system("PAUSE"); return 0; } |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como copiar os caracteres de uma string para outra usando a função strcpy() da linguagem CQuantidade de visualizações: 12990 vezes |
Pessoas acostumadas com Delphi, Java ou PHP podem pensar que a tarefa de copiar o conteúdo de uma string para outra em C pode ser tão simples quanto o código a seguir:---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]){ char frase1[] = "Gosto de PHP"; char frase2[50]; // pode receber até 49 caracteres // copia a primeira frase para a segunda frase2 = frase1; // exibe o resultado printf(frase2); puts("\n\n"); system("PAUSE"); return 0; } Este código não funciona. No Dev-C++ (MingW) a seguinte mensagem de erro de compilação é exibida: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- incompatible types in assignment of `char[13]` to `char[50]` Em C, a forma correta de copiar os caracteres de uma string para outra é obtendo ponteiros para a posição inicial das duas strings, percorrer todos os caracteres da primeira e atribuí-los um de cada vez nas posições de memória reservadas para a segunda string. Veja o protótipo da função strcpy(), usada para tal finalidade: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- char *strcpy(char *destino, const char *origem); Como podemos ver, a função copiará todos os caracteres contidos na string origem para a string destino. É importante observar que a string destino deverá ser declarada de forma que todos os caracteres a serem copiados possam ser acomodados sem que o programa corra o risco de escrever em áreas de memória reservadas a outras finalidades. Veja um exemplo completo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <string.h> int main(int argc, char *argv[]){ char frase1[] = "Gosto de PHP"; char frase2[50]; // pode receber até 50 caracteres // copia a primeira frase para a segunda strcpy(frase2, frase1); // exibe o resultado printf(frase2); puts("\n\n"); system("PAUSE"); return 0; } |
C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico |
Exercício Resolvido de C - Como ler um número inteiro e imprimir seu sucessor e seu antecessor em CQuantidade de visualizações: 1419 vezes |
Pergunta/Tarefa: Escreva um programa C para ler um número inteiro e imprimir seu sucessor e seu antecessor. O usuário poderá informar um valor positivo ou negativo. Sua saída deverá ser parecida com: Informe um número inteiro: 16 O número informado foi: 16 O antecessor é 15 O sucessor é: 17 Veja a resolução comentada deste exercício usando C: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #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 problema int numero, sucessor, antecessor; setlocale(LC_ALL,""); // para acentos do português // vamos pedir para o usuário informar um número inteiro printf("Informe um número inteiro: "); scanf("%d", &numero); // vamos calcular o sucessor do número informado sucessor = numero + 1; // vamos calcular o antecessor do número informado antecessor = numero - 1; // e agora mostramos os resultados printf("O número informado foi: %d\n", numero); printf("O antecessor é %d\n", antecessor); printf("O sucessor é: %d", sucessor); printf("\n\n"); system("PAUSE"); return 0; } |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercícios Resolvidos de C - Ler os lados de um triângulo e informar se ele é isósceles, escaleno ou equiláteroQuantidade de visualizações: 2389 vezes |
Pergunta/Tarefa: Um triângulo é uma forma geométrica (polígono) composta de três lados, sendo que cada lado é menor que a soma dos outros dois lados. Assim, para que um triângulo seja válido, é preciso que seus lados A, B e C obedeçam à seguinte regra: A < (B + C), B < (A + C) e C < (A + B). Escreva um programa C que leia os três lados de um triângulo e verifique se tais valores realmente formam um triângulo. Se o teste for satisfatório, informe se o triângulo é isósceles (dois lados iguais e um diferente), escaleno (todos os lados diferentes) ou equilátero (todos os lados iguais). Sua saída deverá ser parecida com: Informe o primeiro lado do triângulo: 30 Informe o segundo lado do triângulo: 40 Informe o terceiro lado do triângulo: 60 O triângulo é escaleno Veja a resolução comentada deste exercício usando C: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <locale.h> int main(int argc, char *argv[]){ setlocale(LC_ALL,""); // para acentos do português int lado_a, lado_b, lado_c; // vamos ler o primeiro lado do triângulo printf("Informe o primeiro lado do triângulo: "); scanf("%d", &lado_a); // vamos ler o segundo lado do triângulo printf("Informe o segundo lado do triângulo: "); scanf("%d", &lado_b); // vamos ler o terceiro lado do triângulo printf("Informe o terceiro lado do triângulo: "); scanf("%d", &lado_c); // os lados informados formam um triângulo? if((lado_a < (lado_b + lado_c)) && (lado_b < (lado_a + lado_c)) && (lado_c < (lado_a + lado_b))){ // é um triângulo equilátero (todos os lados iguais)? if((lado_a == lado_b) && (lado_b == lado_c)){ printf("\nO triângulo é equilátero\n"); } else{ // é isósceles (dois lados iguais e um diferente)? if((lado_a == lado_b) || (lado_a == lado_c) || (lado_c == lado_b)){ printf("\nO triângulo é isósceles\n"); } else{ // é escaleno printf("\nO triângulo é escaleno\n"); } } } else{ printf("\nOs lados informados não formam um triângulo.\n"); } printf("\n\n"); system("pause"); return 0; } |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como escrever uma função strtolower() para transformar uma palavra inteira em letras minúsculas usando a linguagem CQuantidade de visualizações: 9908 vezes |
O C padrão não possui uma função para transformar todas as letras de uma palavra em minúsculas, embora alguns compiladores a forneça. O que temos é a função: int tolower(int c); que permite transformar um caractere em seu correspondente minúsculo. Podemos tirar vantagem disso e escrever uma função strtolower() personalizada. Veja a listagem logo abaixo: ---------------------------------------------------------------------- Se precisar de ajuda para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> void strtolower(char *string){ while(*string){ *string = tolower(*string); string++; } } int main(int argc, char *argv[]) { char frase[] = "PROGRAMANDO EM C"; strtolower(frase); printf("%s\n\n", frase); system("PAUSE"); return 0; } Ao executar este código nós teremos o seguinte resultado: programando em c Pressione qualquer tecla para continuar... |
Vamos testar seus conhecimentos em Hidrostática |
Qual a massa, em quilograma, de um cubo maciço de lado igual a 5 cm que é fabricado de um material com massa específica de 11,3 g/cm3? A) 1,4125 kg B) 2,8250 kg C) 4,2375 kg D) 5,6500 kg E) 7,0625 kg Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Agregados naturais Assinale a alternativa que contenha um agregado natural: A) Brita. B) Pedra britada. C) Pó de pedra. D) Bica corrida. E) Seixos. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Fórmula de Hazen-Williams A fórmula de Hazen-Williams (1903) é resultado de um estudo estatístico com grande número de dados experimentais, recomendada para escoamento turbulento de transição, água a 20ºC e diâmetro maior ou igual a 50mm. Calcule o diâmetro de uma tubulação de aço (C=90), com 1.000m de comprimento e perda de carga de 51m, cuja vazão é de 200l/s. A) Aproximadamente 0,3m de diâmetro. B) Aproximadamente 0,4m de diâmetro. C) Aproximadamente 0,1m de diâmetro. D) Aproximadamente 0,5m de diâmetro. E) Aproximadamente 0,2m de diâmetro. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Responsabilidade civil no código de defesa do consumidor A Constituição Federal brasileira confere à defesa do consumidor garantia de: A) ordem social. B) direitos e garantias fundamentais. C) direitos políticos. D) princípio fundamental. E) direito de nacionalidade. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Qual evento JavaScript ocorre quando o usuário clica em um elemento HTML? A) onchange B) onmouseover C) onmouseclick D) onclick Verificar Resposta Estudar Cards Todas as Questões |
Desafios, Exercícios e Algoritmos Resolvidos de C |
Veja mais Dicas e truques de C |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |