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++ - Desafio de Programação Resolvido em C++Quantidade de visualizações: 797 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++: // Algoritmo que calcula reação de apoio, momento fletor // e força cortante em uma viga bi-apoiada em C++ #include <iostream> #include <math.h> using namespace std; // função principal do programa int main(int argc, char *argv[]){ // variáveis usadas na resolução do problema double carga, distancia, reacao_a, reacao_b; double flexao_maxima, distancia_temp, flexao_distancia; double cortante_a, cortante_b; // vamos pedir para o usuário informar o valor da carga cout << "Valor da carga em kN/m: "; cin >> carga; // vamos pedir para o usuário informar a distância entre os apoios cout << "Distancia em metros: "; cin >> 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 cout << "\nA reacao no apoio A e: " << reacao_a << " kN" << endl; cout << "A reacao no apoio B e: " << reacao_b << " kN" << endl; cout << "O momento fletor maximo e: " << flexao_maxima << " kN" << endl; // vamos pedir para o usuário informar uma distância a // partir do apoio A |
![]() |
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 |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |