Иван54654
03.05.2022 11:15

не знаю как решать, полностью с решением


не знаю как решать, полностью с решением
не знаю как решать, полностью с решением
не знаю как решать, полностью с решением

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ХошиСимидзу
10.07.2021 20:34

должно быть минимум 7 элементов

Объяснение:

Каждый излучающий элемент имеет два состояния- красный или синий цвет (выключенное состояние не рассматривается по условиям).

Значит, число возможных вариантов, которые можно показать на таком табло равно двум в степени, равной числу элементов.

Например:

один элемент: 2^{1}=2  различных сигнала (состояния панели)

три элемента: 2^{3}=8  различных сигналов можно отобразить

шесть элементов: 2^{6}=64  различных сигнала (мало, надо сто)

семь элементов: 2^{7}=128  различных сигналов (нам хватит)

Выбираем семь элементов, т.к. ими можно отобразить сто вариантов (и даже немного больше).

Можно и посчитать число элементов напрямую, без подбора.

Считается через логарифм по основанию два из десяти, затем округляется с избытком (то есть, всегда вверх):

N=\log_2 10=\frac{\lg 10}{\lg 2}=\frac{\ln 10}{\ln 2}=6,64385619...\approx 7

В расчёте также показано, что такой логарифм можно посчитать через отношение двух десятичных логарифмов (lg), либо двух натуральных логарифмов (ln).

0,0(0 оценок)
Ответ:
гений5623
27.02.2023 18:21

В данном фрагменте программы идёт

1) if (a[i] mod 2 <> 0) - условие: "если элемент массива нечетный, т.е. при делении на 2 есть остаток, то"

2) p:=p*a[i]; -  операция умножения элементов массива. Произведение обозначено p.

3) k:=k+1; - это суммирование, сколько раз выполняется команда

Верно: for i:=7 to 25 do begin

if (a[i] mod 2 <> 0) then begin p := p*a[i]; k:=k+1; end; end;

Объяснение: все ошибки выделены жирным шрифтом.

for i:=7 to 25 do;

read (a[i])

if (a[i] mod 2 <> 0) then begin p:=p*a[i]; k:=k+1; end;

Если в программе поставить знак ; сразу после запроса действия do (сразу после открытие цикла), она не начнёт выполнение условия. Лишним также является read (a[i]), т.к. программе вновь не задаётся цикл, либо её чтение было уже задано до данного цикла с условием.

Если интересна программа полностью, то вот код ниже, а также скриншот с результатами. Заполнение массива задано автоматически числами от 1 до 100. Размерность массива - 25 чисел. При произведении мы всегда задаём значение переменной 1, иначе программа не начнёт операцию, при сложении присваивать значение только 0, но это необязательно.

Program zadacha;

var  

 a: array [1..25] of integer;

 i,p,k: integer;

begin

  for i:=1 to 25 do

  a[i]:= Random(100); // числа от 1 до 100 будут присутствовать в массиве

writeln('Заполненный массив:'); for i := 1 to 25 do write(a[i],' ');

p:=1; k:=0;

for i:=7 to 25 do begin

if (a[i] mod 2 <> 0) then begin p := p*a[i]; k:=k+1; end; end;;

writeln;

writeln('Произведение нечетных элементов:', p);

writeln('Сколько раз выполнилось условие:', k);

end.


5. Исправьте ошибки во фрагменте программы (напишите верный код) и определите, сколько раз выполняют
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота