Из условия видно, что количество оценок, распределенных экзаменатором различное и вопрос задачи указывает на одну из всех возможных оценок, поэтому воспользуемся подходом к определению количества информации для неравновероятных событий, а именно формулой Шеннона.Обозначим i4 – количество информации в сообщении "Абитуриент Сидоров получил четверку", i4или3 – количество информации в сообщении "Абитуриент Иванов не сдал экзамен на отлично", I - информационный объем зрительного сообщения о полученной оценки абитуриентом Сидоровым, к – показатель определенной оценки, р3, р4, р5 – вероятности выставления троек, четверок и пятерок соответственно, р4или3 – вероятность выставления оценки не отлично, тогда i4 или 3=3 -log27 бита, i4 = 2 бита. Основные формулы:
Так как в условии задачи речь идет о массиве действительных чисел,то будем использовать тип real. Четкого размера массива нет - используем динамический массив
var a: array of real; // динамический массив вещественных чисел n, x, y, i: integer; begin write('Vvedite razmer massiva n='); readln(n); // считываем размер динамического массива a := new real[n + 1]; // инициализируем динамический массив размера n for i := 1 to n do begin a[i] := random(n, -n) + 1 / (random(n) + 1); // заполняем элементы массива случайными значениями в диапазоне [n,-n] и искусственно создаем в них случайную дробную часть выражением (1/(random(n)+1)) if a[i] > 0 then inc(x) // если элемент массива больше 0,то увеличиваем x на 1 else if (a[i] < 0) then inc(y); //если элемент меньше 0,то увеличиваем y на 1 writeln(a[i]:4:3);// вывод значения элемента массива с ограничением [4 символа до запятой : 3 символа после запятой] end; writeln('Kolichestvo >0 = ', x ); writeln('Kolichestvo <0 = ', y); writeln('Kolichestvo 0 =', n-x-y); end.