М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
covo1
covo1
11.11.2022 12:34 •  Информатика

Дан целочисленный массив из 30 элементов. элементы массива могут принимать значения от 0 до 1000. опишите на языке или на одном из языков программирования алгоритм, который позволяет подсчитать и вывести среднее арифметическое элементов массива, имеющих нечетное значение. гарантируется, что в исходном массиве хотя бы один элемент имеет нечетное значение.

👇
Ответ:
gorod1723
gorod1723
11.11.2022
Собственно, решение однострочное...

// PascalABC.NET 3.0, сборка 1150 от 22.01.2016
begin
  Writeln('Ср.арифм=',ArrRandom(30,0,1000).Println(', ').
      Where(x->Odd(x)).Average)
end.

Тестовое решение:
611, 443, 634, 637, 44, 297, 286, 431, 130, 767, 388, 513, 827, 681, 619, 810, 586, 697, 206, 823, 294, 238, 354, 138, 411, 141, 873, 864, 715, 564
Ср.арифм=592.875

И пояснение, как это работает, т.е. по сути алгоритм на русском языке.
ArrRandom(30,0,1000) создает массив из 30 элементов и заполняет его случайными значениями из диапазона [0,1000]. Далее этот массив обрабатывается методом Println, который направляет значения элементов на вывод, разделяя их запятой с последующим пробелом и в конце вывода добавляет смену строки. Затем элементы массива проходят фильтр Where(x->Odd(x)), который пропускает через себя только те значения, которые удовлетворяют условию Odd(значение элемента)=True, а мы знаем, что Odd() возвращает True для нечетного аргумента. Далее фильтр элементы обрабатываются методом Average, который умеет принимать набор значений и возвращать их среднее. И наконец, процедура Writeln выводит полученное значение, предваряя его текстовым пояснением.
4,4(47 оценок)
Ответ:
colaboyy7704ox6ktx
colaboyy7704ox6ktx
11.11.2022
Чтобы прекратить ввод чисел в массив нужно ввести число "-1".
class ArrayMiddle{
 public static void main(String args[]){
  java.util.Scanner in = new java.util.Scanner(System.in); long eArray[] = new long[1];
  while((eArray[eArray.length-1] = in.nextLong())!=-1){
   long nArray[] = new long[eArray.length+1];
   for(int nCell = 0; nCell<eArray.length; nCell++)nArray[nCell]=eArray[nCell];
   eArray = nArray;
  } eArray[eArray.length-1] = 0;
  for(int cCell = 0; cCell<eArray.length-1; cCell++)eArray[eArray.length-1]+=eArray[cCell];
  System.out.print(eArray[eArray.length-1]/(double)(eArray.length-1));
 }
}
4,4(26 оценок)
Открыть все ответы
Ответ:
Loloshka321
Loloshka321
11.11.2022
Используется 64 символьный алфавит его можно закодировать в 6 битах 2 в 6 степени. Найдем сколько всего символов в 3 страницах для этого перемножим количество страниц на количество строк и символ. 3*40*60=4800 символов. Найдем сколько занимают эти символы объем информации в битах для этого перемножим общее количество символов на объем одного символа. 4800*6=30400 бит. Нам нужен ответ в байтах. Переведем полученное значение в байты 30400/8=3800 байт.
ответ: 3 страницы содержат 3800 байт информации.
4,5(84 оценок)
Ответ:
katirina19
katirina19
11.11.2022
Смотри. Всё просто.

Тебе из 8 нужно перевести в двоичную, при этом у тебя дробное число. То есть у тебя есть целая часть (247) и дробная часть (16).

Нужно переводить по очереди, вначале целую часть, потом дробную, при этом при переводе целой - нужно делить, при переводе дробной - умножать, сейчас покажу алгоритм.

Вначале целую часть:
Мы делим на 2, потом пишем результат деления, а в скобочках пишем остаток.
247/2=123(1)
123/2=61(1)
61/2=30(1)
30/2=15(0)
15/2=7(1)
7/2=3(1)
3/2=1(1)

Теперь нам нужно записать то, что получилось, записывается снизу-вверх, начиная от той единички, что у нас получилась при делении 3 на 2.

Итого: 11110111 - это твоя целая часть.

Теперь дробная часть (16), мы должны приписать ноль, чтобы у нас получилось 0,16 (ведь это дробная часть). Теперь умножаем на 2 пока не получится РОВНО единица, при этом записываем в ответ 0, если у нас целая часть получается ноль и 1, если целая часть получается 1.

Сейчас поймёшь:
0,16 * 2 = 0,32 - видишь, получился ноль, поэтому мы его в ответ пишем и продолжаем умножать на 2 часть после ноля, пока не получится ровно 1.
0,32 * 2 = 0,64 - опять ноль получился, в ответ ноль записываем еще.
0,64 * 2 = 1,28 - тут уже у нас единица получилась, в ответ 1, отбрасываем 1 и опять множим на 2, пока не будет ровно единица в ответе.
0,28 * 2 = 0,56 - в ответ 0
0,56 * 2 = 1,12 - в ответ 1
0,12 * 2 = 0,24 - в ответ 0
0,24 * 2 = 0,48 - в ответ 0
0,48 * 2 = 0,96 - в ответ 0
0,96*2 = 1,92 - в ответ 1
0,92*2 = 1,84 - в ответ 1

У тебя тут такое число, в котором ты бесконечно будешь умножать и у тебя не получится никогда ровно 1(либо получится, но очень не скоро), поэтому просто спроси у учителя, до скольки знаков тебе считать. Я обычно до 5 считал всегда, но тут я тебе показал аж до 10.

Дробная часть получилась такой - 0010100011.

Теперь записываешь целую часть, что получил ранее и дробную, что вычислил сейчас. У тебя получается:

11110111,0010100011

ответ: 11110111,0010100011
4,5(64 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ