Распределенную нагрузку привести к сосредоточенной и приложить в центре кю : Фкю = кю*8м = 5*8=40 Н Ф разложить на две составляющие : Фх = Ф*кос40=30,642Н ; Фу = Ф*син40 = 25,712 Н. Сумма моментов относительно левой опоры равна 0, тогда : - Фу*1м - Фкю*6м + Рправой. у*10м + М = 0 Рправой. у = (Фу*1м + Фкю*6м - М) / 10 м = 25,5712Н Сумма всех сил на ось у равна нулю, тогда : Рправ. у - Фу - Фкю + Рлевая. у = 0, отсюда Рлевая. у = - Рправ. у + Фу + Фкю = 40,1408Н Обе опоры в одинаковой степени воспринимают горизонтальную составляющую Фх. Тогда Рправ. х = Рлевая. х = Фх / 2 = 30,642 / 2 = 15,321Н Полные реакции опор: Рлевая = корень (Рлев. у^2 + Рлев. х^2) = кор (40,1408^2 + 15,321^2) = 42,965Н Рправая = корень (Рправ. у^2 + Рправ. х^2) = кор (25,5712^2 + 15,321^2) = 29,810Н Обе направлены вправо вверх.
Polovina = Sum_chisel/2; //Ну это половина от среднего арифметического. Фактически эту переменную можно убрать, но компу будет проще один раз высчитать, чем высчитывать это 200 раз
cout << "Половина от среднего арифметического: " << Polovina << endl;
cout << endl; //Опять просто отступ
for(int i = 0; i < 200; i++)
{
if(abs(mas[i]-Sum_chisel) > Polovina) mas[i] = 0; //Как работает: |значение_массива - среднее_ариф| и если значение этого выражения больше половины_среднего_ариф, то значение_массива = 0
printf("mas[%d]=%d \n", i, mas[i]);
}
system("pause > nul"); //Чтобы консоль сразу не закрылась. В Code Blocks она не закроется, но при запуске exe-шника окно закроется
return 0;
}
//вообще можно сделать лучше, но мне лень, сам догадаешься
#include <iostream>
#include <stdio.h> //Библиотека ввода/вывода из языка Си. Мне она нужна для printf()
#include <cstdlib> //Эта библиотека мне нужна для переключения на русский язык
#include <cmath> //Эта математическа библиотека нужна только для модуля
using namespace std;
int main()
{
system("chcp 1251 > nul"); //подключаем русский язык
int mas[200];
double Sum_chisel = 0, Kolichestvo = 1, Polovina;
mas[0] = 2; // Это наша гарантия того, что в массиве будет хотя бы один четный элемент
Sum_chisel += mas[0]; // Сразу прибавляем в нужную переменную
printf("mas[0]=%d \n", mas[0]); // Сразу ее пишем, чтобы не замарачиваться с этим в цикле
for(int i = 1; i < 200; i++)
{
mas[i] = rand()%10000;//создаем рандомное число
if (mas[i]%2 == 0 && mas[i]!=0) // Проверка на четность. Я не совсем понял, что делать с 0-ми. Так что сам подправишь
{
Sum_chisel += mas[i]; //Получаем сумму всех четных чисел
Kolichestvo++; //записываем их кол-во
}
printf("mas[%d]=%d \n", i, mas[i]); //выводим в консоль. Думаю, что ты знаешь Си поэтому пишу так, ибо удобнее
}
cout << endl; //просто отступ, чтобы выглядело норм
//Тут я пишу различну инфу. Ничего важного, так что можешь все удалить, кроме помеченного математических выражений
cout << "Сумма всех четных значений: " << Sum_chisel << endl;
cout << "Кол-во всех четных значений: " << Kolichestvo << endl;
Sum_chisel = Sum_chisel/Kolichestvo; // Мне лень было объявлять новую переменную, поэтому записываю в старую новое значение - среднее арифметическое
cout << "Среднее арифметичекое всех четных значений: " << Sum_chisel << endl;
Polovina = Sum_chisel/2; //Ну это половина от среднего арифметического. Фактически эту переменную можно убрать, но компу будет проще один раз высчитать, чем высчитывать это 200 раз
cout << "Половина от среднего арифметического: " << Polovina << endl;
cout << endl; //Опять просто отступ
for(int i = 0; i < 200; i++)
{
if(abs(mas[i]-Sum_chisel) > Polovina) mas[i] = 0; //Как работает: |значение_массива - среднее_ариф| и если значение этого выражения больше половины_среднего_ариф, то значение_массива = 0
printf("mas[%d]=%d \n", i, mas[i]);
}
system("pause > nul"); //Чтобы консоль сразу не закрылась. В Code Blocks она не закроется, но при запуске exe-шника окно закроется
return 0;
}
//вообще можно сделать лучше, но мне лень, сам догадаешься