Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: C Básico |
Como testar se um número é potência de quatro usando C - Exercícios Resolvidos de CQuantidade de visualizações: 739 vezes |
Pergunta/Tarefa: Escreva um programa C contendo um método que recebe um número inteiro e retorna um valor boolean indicando se o valor informado é potência de quatro. Sua saída deverá ser parecida com: Informe um valor inteiro: 8 O valor 8 não é potência de quatro Informe um valor inteiro: 64 O valor 64 é potência de quatro Informe um valor inteiro: 16 O valor 16 é potência de quatro 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 que recebe um número inteiro e informe se ele é // potência de quatro int is_potencia_quatro(int n){ // enquanto o módulo do número por quatro for igual a zero while (n % 4 == 0){ // número recebe ele mesmo dividido por quatro n = n / 4; } // returna verdadeiro se número for igual a 1 return n == 1; } int main(int argc, char *argv[]){ // variáveis usadas para int valor; setlocale(LC_ALL,""); // para acentos do português // vamos pedir para o usuário informar um valor inteiro printf("Informe um valor inteiro: "); scanf("%d", &valor); // vamos testar se o número informado é potência de quatro if(is_potencia_quatro(valor)){ printf("O valor %d é potência de quatro", valor); } else{ printf("O valor %d não é potência de quatro", valor); } printf("\n\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 ::: Desafios e Lista de Exercícios Resolvidos ::: Operadores de Manipulação de Bits (Bitwise Operators) |
Exercícios Resolvidos de C - Como converter de decimal para binário usando os operadores de bits em CQuantidade de visualizações: 738 vezes |
Pergunta/Tarefa: Escreva um programa C para pede para o usuário informar um número decimal e faça a conversão para binário usando os operadores de bits. Sua saída deverá ser parecida com: Informe um número decimal: 9 O número binário é: 00000000000000000000000000001001 Veja a resolução completa para o exercício em C, comentada linha a linha: ---------------------------------------------------------------------- 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> // vamos definir o tamanho do vetor para guardar // os dígitos do número binário #define TAM_INT sizeof(int) * 8 int main(int argc, char *argv[]){ // variáveis para ajudar a resolver o problema int decimal, indice, i; // vetor para guardar o número binário int binario[TAM_INT]; setlocale(LC_ALL,""); // para acentos do português // vamos pedir para o usuário informar um decimal inteiro printf("Informe um número decimal: "); scanf("%d", &decimal); // ajustamos índice para o último elemento do vetor indice = TAM_INT - 1; // enquanto índice for maior ou igual a 0 while(indice >= 0){ // vamos guardar o bit menos significativo LSB binario[indice] = decimal & 1; // diminuímos o índice indice--; // desloca bits para a direita uma posição decimal = decimal >> 1; } // agora vamos exibir o número binário printf("O número binário é: "); for(i = 0; i < TAM_INT; i++){ printf("%d", binario[i]); } printf("\n\n"); system("PAUSE"); return 0; } |
C ::: Dicas & Truques ::: Arquivos e Diretórios |
Como excluir arquivos em C usando a função remove()Quantidade de visualizações: 19212 vezes |
A função remove(), disponível no header stdio.h, pode ser usada para excluir arquivos. Veja sua assinatura:---------------------------------------------------------------------- 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 remove(const char *filename); Veja que esta função recebe o caminho e nome do arquivo a ser excluído e retorna um valor inteiro. Se o arquivo for excluído com sucesso, o valor 0 será retornado. Veja um exemplo: ---------------------------------------------------------------------- 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[]) { // nome do arquivo a ser excluído char *arquivo = "c:\\testes.txt"; // vamos excluir if(remove(arquivo) == 0) printf("Arquivo foi excluido com sucesso."); else printf("Nao foi possivel excluir o arquivo."); printf("\n\n"); system("PAUSE"); return 0; } |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C - Criando dois vetores de inteiros de forma que a soma dos elementos individuais de cada vetor seja igual a 30Quantidade de visualizações: 739 vezes |
Pergunta/Tarefa: Considere os seguintes vetores: // dois vetores de 5 inteiros cada int a[] = {50, -2, 9, 5, 17}; int b[] = new int[5]; Sua saída deverá ser parecida com: Valores no vetor a: 50 -2 9 5 17 Valores no vetor b: -20 32 21 25 13 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 // dois vetores de 5 inteiros cada int a[] = {50, -2, 9, 5, 17}; int b[5]; int i; // vamos preencher o segundo vetor de forma que a soma dos // valores de seus elementos seja 30 for(i = 0; i < 5; i++){ b[i] = 30 - a[i]; } // vamos mostrar o resultado printf("Valores no vetor a: "); for(i = 0; i < 5; i++){ printf("%d ", a[i]); } printf("\nValores no vetor b: "); for(i = 0; i < 5; i++){ printf("%d ", b[i]); } printf("\n\n"); system("PAUSE"); return 0; } |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como concatenar strings em C usando a função strcat() - Aprenda a programar na linguagem CQuantidade de visualizações: 42248 vezes |
Concatenar strings é a operação de anexar uma string a outra. Em C, isso é feito com o auxílio da função strcat(), disponível no header string.h. Esta função recebe a string de destino, a string de origem, anexa a string de destino no final da string de origem e retorna um ponteiro para o resultado final. Veja um exemplo no qual usamos esta função para concatenar três strings:---------------------------------------------------------------------- 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[]) { char frase1[100] = "Gosto"; strcat(frase1, " muito de "); strcat(frase1, " programar em C"); // exibe o resultado printf("%s\n\n", frase1); system("PAUSE"); return 0; } Veja que a string de destino deve ser declarada com um tamanho suficiente para acomodar as strings que serão anexadas a ela. Veja agora um exemplo que usa o ponteiro retornado pela função strcat() para inicializar um ponteiro do tipo char: ---------------------------------------------------------------------- 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[]) { // declara e inicializa duas strings char frase1[100] = "Gosto muito de "; char frase2[15] = "programar em C"; char *res = strcat(frase1, frase2); // exibe o resultado printf("%s\n\n", res); 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 delesQuantidade de visualizações: 605 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 Veja a resolução comentada deste exercício em 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> // 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; } } |
C ::: C para Engenharia ::: Física - Mecânica |
Como calcular a energia cinética de um corpo dado sua massa e sua velocidade usando a linguagem CQuantidade de visualizações: 1446 vezes |
Energia Cinética é a forma de energia relacionada aos corpos em movimento e é diretamente proporcional ao quadrado da velocidade do corpo. Sendo uma grandeza física escalar, a energia cinética possui como unidade de medida, de acordo com as unidades do SI (Sistema Internacional de Medidas), o joule. A energia cinética é a capacidade de algum corpo em movimento realizar trabalho, modificando o estado de movimento dos corpos ao seu redor ou deformando-os. Quanto maior é a velocidade e a massa do corpo, maior é a sua capacidade de realizar trabalho quando estiver em movimento. De forma análoga, podemos pensar que um corpo que apresenta uma grande energia cinética necessita de uma grande quantidade de energia para cessar o seu movimento. A fórmula para obtenção da Energia Cinética de um corpo, quando temos a sua massa e a sua velocidade é: \[ E_c = \frac{\text{m} \cdot v^2}{\text{2}} \] Onde: Ec ? energia cinética (em joule, J). m ? massa do corpo (em kg). v ? velocidade do corpo (em m/s). É comum, também, encontrarmos essa fórmula escrita da seguinte forma: \[ E_c = \frac{1}{2} \text{m} \cdot v^2 \] É importante observarmos que, caso um corpo se encontre em repouso, a energia cinética a ele associada é nula, ou seja, zero. Além disso, a energia cinética depende da velocidade desse corpo ao quadrado. Sendo assim, ao duplicarmos a velocidade de um corpo, sua energia cinética aumenta quatro vezes e, ao triplicá-la, a energia cinética desse corpo fica nove vezes maior. Vamos ver um exemplo agora? Observe o seguinte enunciado: 1) Um ciclista e sua bicicleta possuem uma massa total de 100kg, e uma velocidade de 54km/h. Calcule sua energia cinética. O exercício já nos dá a massa total em kg, mas precisamos converter km/h em m/s antes de realizar o cálculo da energia cinética. Fique atento(a). Veja o código C completo que efetua este cálculo e exibe a energia cinética resultante: ---------------------------------------------------------------------- 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 <math.h> int main(int argc, char *argv[]){ // a massa total float massa = 100; // em kg // velocidade (em m/s) float velocidade = 54 / 3.6; // converti de km/h para m/s // agora calculamos a energia cinética float energia_cinetica = (massa * pow(velocidade, 2)) / 2; // mostramos o resultado printf("A energia cinética é: %fJ", energia_cinetica); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: A energia cinética é: 11250.000000J |
C ::: C para Engenharia ::: Física - Mecânica |
Como calcular a massa de um corpo dada sua energia cinética e sua velocidade usando a linguagem CQuantidade de visualizações: 2553 vezes |
Na Física, a energia cinética em um objeto é a energia que ele possui devido ao seu movimento. Isso é definido como o trabalho necessário para acelerar um corpo de massa em repouso para que este adquira velocidade. Tendo ganho essa energia durante a aceleração, o corpo mantém essa energia cinética a menos que a sua velocidade mude. A mesma quantidade de trabalho é produzida por um corpo desacelerando da sua velocidade atual para um estado de repouso. Os carros de uma montanha-russa atingem sua energia cinética máxima quando estão no fundo de sua trajetória. Quando eles começam a subir, a energia cinética começa a ser convertida em energia potencial gravitacional, mas, se forem assumidos atritos insignificantes e outros fatores de atraso, a quantidade total de energia no sistema permanece constante. A fórmula para obtenção da massa de um corpo, quando temos a sua energia cinética e a sua velocidade é: \[ \text{m} = \frac{\text{2} \cdot E_c}{v^2} \] Onde: m ? massa do corpo (em kg). Ec ? energia cinética (em joule, J). v ? velocidade do corpo (em m/s). Vamos ver um exemplo agora? Observe o seguinte enunciado: 1) Uma bola de golfe está viajando a uma velocidade de 50m/s, e possui energia cinética de 75J. Qual é a sua massa? Note que o exercício nos dá a velocidade já em m/s, evitando a necessidade da conversão de km/h para m/s. Temos também a energia cinética já em sua medida apropriada. Assim, só precisamos jogar na fórmula. Veja o código C completo para este 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> #include <math.h> int main(int argc, char *argv[]){ // velocidade (em m/s) float velocidade = 50; // em m/s // energia cinética float energia_cinetica = 75; // em joule // e então calculamos a massa do corpo float massa = (2 * energia_cinetica) / pow(velocidade, 2); // mostramos o resultado printf("A massa do corpo é: %fkg", massa); printf("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: A massa do corpo é: 0.060000kg (ou 0.060000 x 1000 = 60 gramas). |
Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira |
Evolução das estruturas No final do século XIX, a alvenaria utilizada nas grossas paredes portantes e nas cúpulas, começa a perder a sua importância e seu destaque nas construções. Assinale abaixo a alternativa correta quanto às razões deste fato: Selecione a resposta: A) O alto custo deste sistema devido à mão de obra especializada. B) O longo tempo de execução dos arranha-céus executados em alvenaria de pedra. C) A dificuldade em transportar e em armazenar o material para a execução da estrutura. D) A possibilidade da construção de altos edifícios nos centros urbanos, feitos em aço. E) A inadequação estética conforme os movimentos artísticos da época. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em JavaScript |
Na construção switch...case...default do JavaScript, em qual parte colocamos a expressão a ser avaliada? A) O JavaScript não possui switch...case B) switch C) case D) default Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
A responsabilidade moral O humano é um ser social e, para tal fim, estabelece valores e princípios como regras e normas de convivência para sua sobrevivência. Isso significa que: A) o homem possui, em sua essência, a necessidade de interação com os outros seres da mesma espécie. B) o ser humano precisa viver sozinho. C) os animais não podem viver com humanos. D) o ser humano não gosta de viver em sociedade. E) humanos e animais não têm instinto. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Analise o seguinte código Pythona = 1 while True: if a % 3 == 0: break print(a) a += 1 Qual é o resultado de sua execução? A) Um erro de execução B) 1 2 C) 1 2 3 D) Um laço while infinito Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual o resultado da execução do seguinte código Python?valores = [4, 1, 8, 3, 7, 9] for i in range(0, len(valores)): if i % 2 == 0: print("{0} ".format(valores[i]), end="") A) Erro NameError: name 'end' is not defined na linha 4 B) 4 1 8 C) Erro SyntaxError: invalid syntax na linha 3 D) 1 3 9 E) 4 8 7 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 |