Даны длины сторон треугольника. Вычислить его площадь. Изобразить решение задачи в виде алгоритмов: линейный, циклический и разветвляющийся. Изучить код программы, реализовать его в программе и прикрепить скриншоты с результатом. Program Geron;
var
a,b,c:real;{длины сторон треугольника}
p:real;{полупериметр треугольника}
s:real;{площадь треугольника}
begin
write (‘Введите длины сторон треугольника:’);
readln (a,b,c);
p:=(a+b+c)/2;
s:=sqrt(p*(p-a)*(p-b)*(p-c));
write (‘Площадь треугольника равна’,s)
end. {Geron}
Выполнить программу для случаев, если:
a=13, b=14, c=15
a=5, b=5, c=6
a=17, b=65, c=80
#include <conio.h>
#include <time.h>
using namespace std;
void main()
{
srand(time(NULL));
setlocale(0, "");
int arr[17];
int a, b, chet=0, nechet = 0;
cout << "Введите диапазон ." << endl << "Нижняя граница диапазона: "; cin >> a; cout << "Верхняя граница диапазона: "; cin >> b; cout << endl;
for (int i = 0; i < 17; ++i)
{
arr[i] = a + rand() % (b-a+1);
cout <<" "<<arr[i];
}
for (int i = 0; i < 17; ++i)
{
if (arr[i] % 2 == 0) chet++;
else nechet++;
} if (chet > nechet)
cout << " \n Четных больше";
else if (nechet>chet)
cout << "\n Нечетных больше";
else cout << "\n Одинаковое количество четных и нечетных";
_getch();
}
Код Шеннона - Фано: делим знаки на две части, чтобы суммарные вероятности появления символов частей были максимально близки (тут в каждой части всего один символ - иначе никак). Одной приписываем 0, другой 1. На этом всё кончилось.
Код Хаффмана: выбираем два символа с наименьшими вероятностями, у одного постфикс 0, у другого 1. Объединяем в одну вершину, и она осталась одна. Конец.
В среднем 1 символ - 1 бит.
Энтропия -∑ p ㏒₂ p = -0.33 log 0.33 - 0.67 log 0.67 = 0.915 бит на символ.
Учитывая, что энтропия всегда не превосходит среднюю длину кода, тут сошлось.