Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: Engenharia Civil - Cálculo Estrutural |
|
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 - Exercícios Resolvidos de CQuantidade de visualizações: 613 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 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; } |
|
Link para compartilhar na Internet ou com seus amigos: | |
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: 623 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 com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- #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 ::: Struct (Estruturas, Registros) |
Linguagem C para iniciantes - Como usar estruturas (struct) em CQuantidade de visualizações: 68074 vezes |
Vetores e matrizes (arrays) são muito importantes quando precisamos agrupar várias variáveis de um mesmo tipo de dados. Porém, há casos em que precisamos agrupar variáveis de diferentes tipos. Para estes casos a linguagem C nos fornece as estruturas (struct). Veja como declará-las:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // uma estrutura Pessoa struct Pessoa { char *nome; int idade; }; Veja que esta estrutura possui dois tipos de dados diferentes: um ponteiro para uma cadeia de caracteres e uma variável do tipo int. Para declarar variáveis do tipo Pessoa você tem duas opções. A primeira consiste em declarar as variáveis juntamente com a declaração da estrutura. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // uma estrutura Pessoa struct Pessoa { char *nome; int idade; }pessoa, cliente, chefe; A outra forma consiste em declarar a variável no local no qual ela será usada. Esta forma é mais prática. Veja um exemplo completo de como isso é feito: ---------------------------------------------------------------------- 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> // uma estrutura Pessoa struct Pessoa { char *nome; int idade; }; int main(int argc, char *argv[]) { // declara uma variável do tipo struct struct Pessoa cliente; cliente.nome = "Osmar J. Silva"; cliente.idade = 36; // obtém os dados printf("O nome do cliente e: %s\n", cliente.nome); printf("A idade do cliente e: %d\n", cliente.idade); printf("\n\n"); system("PAUSE"); return 0; } |
C ::: Dicas & Truques ::: Strings e Caracteres |
Como escrever uma função C personalizada que copia os caracteres de uma string para outra stringQuantidade de visualizações: 8464 vezes |
Quando precisamos copiar os caracteres de uma string para outra string em C, geralmente usamos a função strcpy(). Para que você entenda como esta função realmente funciona, o código abaixo mostra como escrever uma função personalizada que realiza tal tarefa. Estude-a cuidadosamente. É uma boa forma de entender como percorrer os caracteres de uma string usando ponteiros:---------------------------------------------------------------------- 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> // função personalizada que copia os caracteres de // uma string para outra char *str_copy(char *destino, const char *origem){ while(*destino++ = *origem++){ ;; } return (destino - 1); } 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 str_copy(frase2, frase1); // exibe o resultado printf(frase2); puts("\n\n"); system("PAUSE"); return 0; } Ao executar este código C nós teremos o seguinte resultado: Gosto de PHP |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Equação de Bernoulli Considere o tubo de fluxo abaixo contendo óleo, que flui de forma a podermos considera-lo um fluido ideal. Ele flui por um tubo que sobe de nível e se estreita. Dois manômetros marcam a pressão em dois pontos do tubo, como mostra a figura. Qual o valor da pressão indicada no segundo manômetro? (Dados: ρóleo = 900 kg / m3 e g = 9,8 m/s2) A) 38,4 kPa B) 162 kPa C) 64,4 kPa D) 135 kPa E) 74,0 kPa Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Ética, Legislação e Entidades que regulamentam a profissão No ambiente corporativo você pode deparar-se com comportamentos ou sinais de condutas antiéticas. Com base nos ensinamentos estudados no livro, qual é a forma mais apropriada de identificar um sinal de comportamento antiético? A) Coletando fatos e comparando-os com padrões éticos. B) A partir da aplicação natural do bom senso. C) Pela observação das pessoas envolvidas que podem esboçar expressões suspeitas. D) A partir de denúncias. E) Questionando diretamente as pessoas com comportamentos suspeitos. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Responsabilidade civil dos prepostos e preponentes De acordo com as definições de preposto gerente, assinale a alternativa correta. A) O gerente é autorizado a praticar todos os atos necessários ao exercício dos poderes que lhe foram outorgados, mesmo que a lei exija poderes especiais para tal. B) O gerente responde sozinho pelos atos praticados em seu nome e em nome do preponente. C) O preponente pode estar em juízo em nome do gerente, pelas obrigações resultantes do exercício da sua função. D) Considera-se gerente o preposto permanente no exercício da empresa, em sua sede, filial ou agência. E) Os gerentes são responsáveis pelos atos dos preponentes, praticados nos seus estabelecimentos e relativos à atividade da empresa, ainda que não autorizados por escrito. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Hidrologia |
(Udesc 2011) Segundo a Agência Nacional de Energia Elétrica (ANEEL), existem no Brasil oito bacias hidrográficas. Assinale a alternativa correta em relação a essas bacias. A) As bacias do Paraná e do Uruguai formam a Bacia Platina. Essa última drena somente 5% do território nacional e seu potencial hidrelétrico instalado é pequeno e inexpressivo. B) A Bacia do Rio São Francisco é a segunda maior bacia brasileira e seu rio principal é totalmente navegável. C) A maior bacia é a do Rio Amazonas, que recebe afluentes dos dois lados e possui o maior volume de água do planeta. D) A Bacia do Rio Tocantins recebe seus dois principais afluentes: o Araguaia e o Tietê. Possui a segunda maior usina do país, mas seu potencial hidrelétrico é o menor de todas as bacias hidrográficas brasileiras. E) A Bacia do Atlântico Norte/Nordeste é a terceira maior bacia hidrográfica do Brasil. Seus rios principais são o Madeira e o Juruá. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais |
Água Fria: Reservatórios Um reservatório é dimensionado com diversos componentes que auxiliam na manutenção e limpeza do mesmo. Sobre os componentes acessórios de um reservatório é correto afirmar: A) A tubulação extravasora deve ter o mesmo diâmetro da tubulação de alimentação do reservatório. B) A tubulação de limpeza deve estar posicionada acima da saída da distribuição predial. C) Em pequenas edificações, com reservatórios de 500 litros, não é necessária a instalação de tubulação de limpeza. D) A tubulação extravasora deve jogar a água em local visível para alertar sobre o extravasamento do reservatório. E) É obrigatória a instalação de registro na saída da tubulação extravasora. 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 |
Códigos Fonte |
Software 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 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 |