У нас есть скорость передачи в кбит/с и мбит/с. Нужно определиться, в каких отношениях находятся кбит/с и бит/с, потому что тут есть две трактовки. Первая предполагает, что кбит/с - это системная единица Си и тогда 1кбит/с = 1000 бит/с. Вторая - что кбит/с, как и Кбайт/с - единица внесистемная, и тогда 1 кбит/с = 1024 бит/с. Правильным является первый вариант при написании по стандарту кбит/с, а во втором варианте надо писать Кбит/с. Именно заглавная буква К (и М в мегабитах, мегабайтах) указывают на внесистемность единицы. Однако, 128 кбит/с кратно степени 2, а не 10, что показывает мнение составителя задачи о том, что 1 кбит = 1024 бита. Условно примем эту версию.
1. Определяем количество фрагментов 350 Мбайт / 10 Мбайт = 35 фрагментов 2. Время отправки запроса на сервер 32 Кбайт / 128 кбит/с = 32 Кбайт / (128/8 Кбайт/с) = 2 с 3. Время приема одного фрагмента 10 Мбайт / 4 Мбит/с = 10 Мбайт / (4/8 Мбайт/с) = 20 с 4. Время отправки подтверждения 16 Кбайт / 128 кбит/с = 16 Кбайт / (128/8 Кбайт/с)= 1с 5. Время на каждый пакет, кроме последнего 2+20+1=23 с 6. Общее время на все пакеты, кроме последнего 23 х 34 = 782 с 7. Время на последний пакет (подтверждение можно не передавать) 2+20 = 22 с 8. Общее время 782+22 = 804 с или 13 минут и 24 секунды
#include <iostream> #include <cstdlib> #include <ctime> int main() { using namespace std; cout << "Enter size of array: "; int N; cin >> N; int * ARR = new int[N]; srand(time(0)); int i; for (i = 0; i < N; ++i) ARR[i] = rand() % 100 + 1;
cout << "Here is an original array:\n"; for (i = 0; i < N; ++i) cout << ARR[i] << " "; cout << endl;
int temp = ARR[N - 1]; for (i = N - 1; i > 0; --i) ARR[i] = ARR[i - 1]; ARR[0] = temp;
cout << "\nHere is a new array:\n"; for (i = 0; i < N; ++i) cout << ARR[i] << " "; cout << endl;
Первая предполагает, что кбит/с - это системная единица Си и тогда 1кбит/с = 1000 бит/с. Вторая - что кбит/с, как и Кбайт/с - единица внесистемная, и тогда 1 кбит/с = 1024 бит/с.
Правильным является первый вариант при написании по стандарту кбит/с, а во втором варианте надо писать Кбит/с. Именно заглавная буква К (и М в мегабитах, мегабайтах) указывают на внесистемность единицы.
Однако, 128 кбит/с кратно степени 2, а не 10, что показывает мнение составителя задачи о том, что 1 кбит = 1024 бита. Условно примем эту версию.
1. Определяем количество фрагментов
350 Мбайт / 10 Мбайт = 35 фрагментов
2. Время отправки запроса на сервер
32 Кбайт / 128 кбит/с = 32 Кбайт / (128/8 Кбайт/с) = 2 с
3. Время приема одного фрагмента
10 Мбайт / 4 Мбит/с = 10 Мбайт / (4/8 Мбайт/с) = 20 с
4. Время отправки подтверждения
16 Кбайт / 128 кбит/с = 16 Кбайт / (128/8 Кбайт/с)= 1с
5. Время на каждый пакет, кроме последнего
2+20+1=23 с
6. Общее время на все пакеты, кроме последнего
23 х 34 = 782 с
7. Время на последний пакет (подтверждение можно не передавать)
2+20 = 22 с
8. Общее время
782+22 = 804 с или 13 минут и 24 секунды
#include <cstdlib>
#include <ctime>
int main()
{
using namespace std;
cout << "Enter size of array: ";
int N;
cin >> N;
int * ARR = new int[N];
srand(time(0));
int i;
for (i = 0; i < N; ++i)
ARR[i] = rand() % 100 + 1;
cout << "Here is an original array:\n";
for (i = 0; i < N; ++i)
cout << ARR[i] << " ";
cout << endl;
int temp = ARR[N - 1];
for (i = N - 1; i > 0; --i)
ARR[i] = ARR[i - 1];
ARR[0] = temp;
cout << "\nHere is a new array:\n";
for (i = 0; i < N; ++i)
cout << ARR[i] << " ";
cout << endl;
return 0;
}