В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
260111092007
260111092007
01.05.2021 00:09 •  Информатика

Определить количество информации, содержащее в данных сообщениях с точки зрения двух разных подходов, если считать, что каждый символ кодируется 8 битами
1. на шестигранном кубике выпала цифра 6;
2. на экзамене достался один из 47 билетов;
3. мой итоговый за экзамен 97 из 100

Показать ответ
Ответ:
Const
  nn=50; // максимальное количество учеников
var
  i,n,sm,sd,km,kd:integer;
  am,ad:real;
  var a:array[1..nn] of integer;
begin
  Write('Введите количество учеников: ');
  Read(n);
  Writeln('Введите рост учеников');
  sm:=0; sd:=0; km:=0; kd:=0;
  for i:=1 to n do
    begin
    Read(a[i]);
    if a[i]>0 then begin sd:=sd+a[i]; Inc(kd) end
    else begin sm:=sm-a[i]; Inc(km) end
    end;
  am:=sm/km; ad:=sd/kd;
  Write('Средний рост мальчиков (',am:0:1,') ');
  if am-ad<=10 then Write('не ');
  Writeln('превышает средний рост девочек (',ad:0:1,') ');
  Writeln('больше, чем на 10 см')
end.
   
Примерное решение

Введите количество учеников: 9
Введите рост учеников
-192 165 -174 179 -172 171 169 170 -170
Средний рост мальчиков (177.0) не превышает средний рост девочек (170.8)
больше, чем на 10 см
0,0(0 оценок)
Ответ:
никак45
никак45
25.04.2022 03:09
Можно и короче, но так нагляднее:
#include <stdlib.h>
#include <iostream>
using namespace std;

int main() {
const int n=6;
int a;
int b;
int c;
int arr[n]={-3, -2, -1, 1, 2, 3};
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;

srand(time(0));
a = rand() % 6;
cout << "(" << a << ")" << " a = " << arr[a] << endl;
if (a != 0) b = rand() % a; else b=0;
cout << " b = " << b << " (" << arr[a-b] << " этаж)" << endl;
if ((n-a+b) != 0) c = rand() % (n-a+b); else c=0;
cout << " c = " << c << " (" << arr[a-b+c] << " этаж)" << endl;
}

Пример:
-3 -2 -1 1 2 3
 (5) a = 3
 b = 4 (-2 этаж)
 c = 2 (1 этаж)

Если этажей может быть много (до 100), то подробное решение может быть таким:
#include <stdlib.h>
#include <iostream>
using namespace std;

int main() {
int n, n1, a, b, c;
int a1, a2, a3;

srand(time(0));
n = (rand() % 50 + 1)*2;
n1 = n/2;
cout << " n = " << n << " (" << -n1 << " ... " << n1 << ")" << endl;
a1 = rand() % n;
a = a1-n1;
if (a <= 0) a--;
cout << " a = " << a << endl;
b = rand() % a1;
a2 = a1-b-n1; 
if (a2 <= 0) a2--; 
cout << " b = " << b << " (" << a2 << " этаж)" << endl;
if ((n-a1+b) != 0) c = rand() % (n-a1+b); else c=0;
a3 = a1-b+c-n1;
if (a3 <= 0) a3--; 
cout << " c = " << c << " (" << a3 << " этаж)" << endl;
}

Пример:
n = 96 (-48 ... 48)
a = -38
b = 9 (-47 этаж)
c = 83 (37 этаж)
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота