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

Составить программу на С++ Не сталкивался с этимхлп

Создать целочисленный массив типа short int размером n. Элементы массива инициализируются по следующему алгоритму:
1) сгенерировать случайное целое число А в диапазоне значений от 10 до 20;
2) используя битовые операции, поменять 2-й бит значением 13-го бита, а у остальных сохранить значения.
3) присвоить преобразованное число А текшему элементу массива.
Инициализированный массив вывести на печать и, используя битовые операции, найти в нём количество чётных элементов.

Создать целочисленный массив типа short int размером n. Элементы массива инициализируются по следующему алгоритму:
1) сгенерировать случайное целое число А в диапазоне значений от 10 до 20;
2) используя битовые операции, поменять 2-й бит значением 13-го бита, а у остальных сохранить значения.
3) присвоить преобразованное число А текшему элементу массива.
Инициализированный массив вывести на печать и, используя битовые операции, найти в нём количество чётных элементов.

Показать ответ
Ответ:
botejijofo
botejijofo
10.01.2024 15:51
Хорошо, давайте разберемся с поставленной задачей.

Для начала нам нужно создать целочисленный массив типа short int размером n. Для этого объявим переменную n и заполним ее значением. Например, пусть n = 10.

```c++
#include
#include // для функции rand()

int main() {
const int n = 10;
short int arr[n]; // объявляем массив размером n

// ваш код будет здесь

return 0;
}
```

Далее нам необходимо выполнить следующий алгоритм для инициализации элементов массива:

1) Сгенерировать случайное целое число А в диапазоне значений от 10 до 20. Для этого воспользуемся функцией `rand()`, которая генерирует псевдослучайное число. Чтобы получить число в указанном диапазоне, разделим результат на 11 (20 - 10 + 1) и прибавим 10:

```c++
int A = rand() % 11 + 10;
```

2) Используя битовые операции, поменять 2-й бит значением 13-го бита, а у остальных сохранить значения. Для этого нам понадобятся операторы битовых сдвигов `>>` и `<<`. Для простоты обозначим второй бит как B2 и 13-й бит как B13:

```c++
int B2 = (A >> 1) & 1; // сохраняем значение 2-го бита
int B13 = (A >> 12) & 1; // сохраняем значение 13-го бита

A = (A & ~(1 << 1)) | (B13 << 1); // меняем 2-й бит значением 13-го бита
```

3) Присвоить преобразованное число А текущему элементу массива:

```c++
arr[i] = A;
```

Теперь, чтобы вывести инициализированный массив на печать и найти количество четных элементов, давайте выполним следующие действия:

```c++
int countEven = 0; // переменная для подсчета четных элементов

for (int i = 0; i < n; i++) {
std::cout << arr[i] << " "; // выводим элемент массива на печать

if (arr[i] % 2 == 0) { // проверяем, является ли элемент четным
countEven++; // увеличиваем счетчик четных элементов
}
}

std::cout << std::endl;
std::cout << "Количество четных элементов: " << countEven << std::endl;
```

В итоге, полная программа будет выглядеть следующим образом:

```c++
#include
#include // для функции rand()

int main() {
const int n = 10;
short int arr[n]; // объявляем массив размером n

for (int i = 0; i < n; i++) {
int A = rand() % 11 + 10; // генерируем случайное число в диапазоне от 10 до 20

int B2 = (A >> 1) & 1; // сохраняем значение 2-го бита
int B13 = (A >> 12) & 1; // сохраняем значение 13-го бита

A = (A & ~(1 << 1)) | (B13 << 1); // меняем 2-й бит значением 13-го бита

arr[i] = A; // присваиваем преобразованное число А текущему элементу массива
}

int countEven = 0; // переменная для подсчета четных элементов

for (int i = 0; i < n; i++) {
std::cout << arr[i] << " "; // выводим элемент массива на печать

if (arr[i] % 2 == 0) { // проверяем, является ли элемент четным
countEven++; // увеличиваем счетчик четных элементов
}
}

std::cout << std::endl;
std::cout << "Количество четных элементов: " << countEven << std::endl;

return 0;
}
```

Теперь код готов к выполнению. Программа создаст массив, заполнит его элементы в соответствии с указанным алгоритмом, выведет массив на печать и подсчитает количество четных элементов.

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