1)var a:array [1..10] of integer; i,sum:integer;begin randomize; sum:=0; for i:=1 to 10 do begin a[i]:=random(100)-50; write (a[i],' '); if a[i] < 0 then sum:=sum+a[i]; end; writeln; writeln ('Summa: ',sum); readln;end. 2)var a:array [1..10] of integer; i,max,index:integer;begin for i:=1 to 10 do begin write ('A[',i,'] = '); readln (a[i]); end; max:=a[1]; index:=1; for i:=2 to 10 do if a[i] > max then begin max:=a[i]; index:=i; end; writeln ('Max: ',max,'.Index: ',index); readln;end. 3)var a:array [1..10] of integer; max,min,i,temp:integer;begin randomize; for i:=1 to 10 do begin a[i]:=random(50); write (a[i],' '); end; writeln; max:=1; min:=1; for i:=2 to 10 do if a[i] > a[max] then max:=i else if a[i] < min then min:=i; writeln ('Max: ',a[max]); writeln ('Min: ',a[min]); temp:=a[min]; a[min]:=a[max]; a[max]:=temp; for i:=1 to 10 do write (a[i],' ');end.Не знаю- правильно ли?
zimbickij19
22.11.2020
Попробую объяснить. Количество информации в большинстве предлагаемых задач оценивается по предложенному Р. Хартли. Если имеется некоторый алфавит из m символов (иногда говорят, такой алфавит имеет мощность m), и из этого алфавита строится последовательность длины n, то количество информации а битах, содержащейся в такой последовательность, можно найти по формуле Хартли: ." alt="I=m\times log_2n" />." /> На практике потребность находить логарифм встречается нечасто, обычно в заданиях n является какой-то степенью двойки, поэтому значение логарифма равно показателю степени. Рассмотрим несколько примеров. 1. Какое количество информации несет фраза длиной 50 символов, если алфавит содержит 64 символа? Тут n=64, m=50. По формуле Хартли: . (бит) "Для себя" можно было решать так: 64 - это два в шестой степени, умножаем 6 на длину фразы 50, ответ 300 бит.. Задача получается устной. 2. Какова мощность алфавита, если слово длиной 10 символов несет 30 бит информации? Записываем формулу Хартли: . Дано: I=30, m=10. Найти n. Из приведенной формулы находим: (символов) На практике: делим количество информации на количество символов в слове (фразе, сообщении) и возводим двойку в степень, равную полученному числу. 3. "Из ящика с 32 пронумерованными шарами вынули шар номер 17". Сколько информации в этом сообщении? Рассуждаем так: Шанс достать шар номер 17 равен 1 из 32 - ведь можно достать любой шар. Следовательно, сообщение о шаре №17 уменьшило неопределенность в наших знаниях по этому вопросу в 32 раза. Снова формула Хартли. n=32, m=1, найти I. Почему так? Шары - это наш алфавит, их 32. Вынутый шар - это наше слово, он один. А дальше мы уже умеем решать: 32 - это два в пятой степени, поэтому I=1x5=5 бит. 4. В коробке 5 красных карандашей, 4 зеленых, 3 синих и 4 желтых. Какое количество информации несет сообщение о том, что был вынут зеленый карандаш? Можно рассуждать так: наш алфавит - это цвета карандашей, а слово - количество карандашей. В алфавите 4 символа, т.е. два во второй степени. Вынули один карандаш, количество информации по формуле Хартли: 1х2=2 бита. Простое но абсолютно неверное решение!. Дело в том, что формула Хартли имеет свои границы применения: все символы в алфавите равноправны и шанс выбора каждого символа одинаков. В нашем случае в коробке лежат 5+4+3+4=16 карандашей, среди них 4 зеленых. Шанс достать зеленый карандаш равен 4 из 16, т.е. 1/4. Следовательно, сообщение о зеленом карандаше уменьшает неопределенность в 4 раза и вот теперь можно воспользоватся формулой Хартли при m=1 и получить ответ I=2 бита. Почему два? 4 - это два во второй степени. Общий совет по решению задач с вероятностью: находим вероятность совершения события в виде простой дроби, а потом ищем степень, в которую надо возвести двойку, чтобы получить знаменатель этой дроби.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
4. Используется только для временного хранения данных и программного обеспеченияЖесткий дискООперативнаяСетевой адаптерпамять
2)var a:array [1..10] of integer; i,max,index:integer;begin for i:=1 to 10 do begin write ('A[',i,'] = '); readln (a[i]); end; max:=a[1]; index:=1; for i:=2 to 10 do if a[i] > max then begin max:=a[i]; index:=i; end; writeln ('Max: ',max,'.Index: ',index); readln;end.
3)var a:array [1..10] of integer; max,min,i,temp:integer;begin randomize; for i:=1 to 10 do begin a[i]:=random(50); write (a[i],' '); end; writeln; max:=1; min:=1; for i:=2 to 10 do if a[i] > a[max] then max:=i else if a[i] < min then min:=i; writeln ('Max: ',a[max]); writeln ('Min: ',a[min]); temp:=a[min]; a[min]:=a[max]; a[max]:=temp; for i:=1 to 10 do write (a[i],' ');end.Не знаю- правильно ли?