1) 1000 байт; 2) 2,197 КБ
Объяснение:
1) Алфавит мощностью 32, т.е. каждый символ кодируется log2(32) = 5 битами
На экране 20 * 80 = 1600 символов
Поскольку 1 символ = 5 бит
Размер текста на экране: 1600 * 5 = 8000 бит
Поскольку 1 байт = 8 бит
8000 / 8 = 1000 байт
Результат: 1000 байт
2) Размер изображения 180 х 100 точек, следовательно 180 * 100 = 18000 точек
2 градации цвета (чёрный, белый) = 1 бит
18000 точек = 18000 бит
18000 бит в байтах = 18000 / 8 = 2250 байт
2250 байт в КБ = 2250 / 1024 = 2,197 КБ
#include <iostream>
#include <Windows.h> //локализация
using namespace std;
int main()
{
SetConsoleCP(1251); //локализация
SetConsoleOutputCP(1251);
short size{};
cout << "Введите размер массивов: ";
cin >> size;
int* arrA = new int[size];
int* arrB = new int[size];
cout << "\nВведите элементы первого массива:\n";
for (int i = 0; i < size; i++)
cin >> arrA[i];
cout << "\nВведите элементы второго массива:\n";
cin >> arrB[i];
for (int j = 0; j < size; j++)
if (arrB[i] == arrA[j]) //если значение элемента в массиве B найдётся в массиве A
int numOfRepeatsA{}, numOfRepeatsB{};
for (int l = 0; l < size; l++) //подсчитываем количество повторений этих элементов
if (arrB[i] == arrB[l])
numOfRepeatsB++;
if (arrB[i] == arrA[l])
numOfRepeatsA++;
}
if (numOfRepeatsA == numOfRepeatsB) //если элемент повторяется в массиве A столько же раз, сколько и в массиве B
break; //переходим к проверке следующего элемента
else //иначе очищаем память и завершаем программу, т.к. если хотя бы 1 элемент не проверку == дальше проверять нет смысла
cout << "\nМассивы не входят друг в друга";
delete[] arrA;
delete[] arrB;
return 0;
cout << "\nМассивы входят друг в друга"; //если в цикле программа не завершилась, значит ответ положительный
1) 1000 байт; 2) 2,197 КБ
Объяснение:
1) Алфавит мощностью 32, т.е. каждый символ кодируется log2(32) = 5 битами
На экране 20 * 80 = 1600 символов
Поскольку 1 символ = 5 бит
Размер текста на экране: 1600 * 5 = 8000 бит
Поскольку 1 байт = 8 бит
8000 / 8 = 1000 байт
Результат: 1000 байт
2) Размер изображения 180 х 100 точек, следовательно 180 * 100 = 18000 точек
2 градации цвета (чёрный, белый) = 1 бит
18000 точек = 18000 бит
18000 бит в байтах = 18000 / 8 = 2250 байт
2250 байт в КБ = 2250 / 1024 = 2,197 КБ
#include <iostream>
#include <Windows.h> //локализация
using namespace std;
int main()
{
SetConsoleCP(1251); //локализация
SetConsoleOutputCP(1251);
short size{};
cout << "Введите размер массивов: ";
cin >> size;
int* arrA = new int[size];
int* arrB = new int[size];
cout << "\nВведите элементы первого массива:\n";
for (int i = 0; i < size; i++)
cin >> arrA[i];
cout << "\nВведите элементы второго массива:\n";
for (int i = 0; i < size; i++)
cin >> arrB[i];
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
if (arrB[i] == arrA[j]) //если значение элемента в массиве B найдётся в массиве A
{
int numOfRepeatsA{}, numOfRepeatsB{};
for (int l = 0; l < size; l++) //подсчитываем количество повторений этих элементов
{
if (arrB[i] == arrB[l])
numOfRepeatsB++;
if (arrB[i] == arrA[l])
numOfRepeatsA++;
}
if (numOfRepeatsA == numOfRepeatsB) //если элемент повторяется в массиве A столько же раз, сколько и в массиве B
break; //переходим к проверке следующего элемента
else //иначе очищаем память и завершаем программу, т.к. если хотя бы 1 элемент не проверку == дальше проверять нет смысла
{
cout << "\nМассивы не входят друг в друга";
delete[] arrA;
delete[] arrB;
return 0;
}
}
}
}
cout << "\nМассивы входят друг в друга"; //если в цикле программа не завершилась, значит ответ положительный
delete[] arrA;
delete[] arrB;
return 0;
}