Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VorobeY1326
Ученик 11 класса)
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
#1

Черный ящик..) - C++

14.08.2009, 19:57. Просмотров 829. Ответов 3
Метки нет (Все метки)

Доброго времени суток, форумчане!
Читая Страуструпа наткнулся на упражнение - понять, что делает функция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void send(int* to,int* from,int count)
//Черный ящик. Полезные комментарии умышленно удалены.
{
 int n = (count+7)/8;
 switch(count%8) {
 case 0: do{ *to++=*from++;
 case 7:       *to++=*from++;
 case 6:       *to++=*from++;
 case 5:       *to++=*from++;
 case 4:       *to++=*from++;
 case 3:       *to++=*from++;
 case 2:       *to++=*from++;
 case 1:       *to++=*from++;
         } while (--n>0);
    }
}
Для проверки черного ящика создал похожую функцию(которая считает количество " *to++=*from++ " ):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
int bbox(int count)
{
 int result = 0;
 int n = (count+7)/8;
 switch(count%8) {
 case 0: do{ result++;
 case 7:     result++;
 case 6:     result++;
 case 5:     result++;
 case 4:     result++;
 case 3:     result++;
 case 2:     result++;
 case 1:     result++;
        } while (--n>0);
    }
    return result;
}
 
int main()
{
        for (int i=-26; i<=26; i++)
        {
                cout << i << " - " << bbox(i) << endl;
        }
        cin.get();
        return 0;
}
И получил на выходе:
Код
-26 - 0
-25 - 0
-24 - 8
-23 - 0
-22 - 0
-21 - 0
-20 - 0
-19 - 0
-17 - 0
-16 - 8
-15 - 0
-14 - 0
-13 - 0
-12 - 0
-11 - 0
-10 - 0
-9 - 0
-8 - 8
-7 - 0
-6 - 0
-5 - 0
-4 - 0
-3 - 0
-2 - 0
-1 - 0
-0 - 8
1 - 1
2 - 2
3 - 3
4 - 4
5 - 5
6 - 6
7 - 7
8 - 8
9 - 9
10 - 10
11 - 11
12 - 12
13 - 13
14 - 14
15 - 15
16 - 16
17 - 17
18 - 18
19 - 19
20 - 20
21 - 21
22 - 22
23 - 23
24 - 24
25 - 25
26 - 26
ТО есть получается, что этот код просто копирует count элементов из from в to (массивы int)??
(Если не рассматривать случаи с отрицательным count)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2009, 19:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Черный ящик..) (C++):

"Черный ящик" тестирование - C++
Задали сделать &quot;черный ящик&quot; в виде таблицыю Можете объяснить на примере какой то программы что такое черный ящик и как она делается. В...

Чёрный ящик или белый ящик - C++
Всем привет. Задали программу написать a + b и сумму вывести в файл, а птом протестировать либо на чёрный ящик, либо на белый ящик. Я...

Чёрный ящик с гарантией - C++
о языке C++ и его возможностях имею минимальное представление потому заранее извиняюсь за &quot;детский&quot; вопрос есть некий алгоритм...

Передача матрицы через почтовый ящик - C++
Добрый день всем участникам форума. Идея моя такова. Клиент: Генерируется прямоугольная матрица с введенным пользователем числом...

Найти минимальный ящик, содержащий данный эллипсоид - C++
Нужна помощь! Найти минимальный ящик, содержащий данный эллипсоид

Тесты по принципу "чёрный ящик" - C++
Разработать набор тестов для приложения для его тестирования по методологии «черного ящика». #include &lt;iostream&gt; using namespace...

3
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
14.08.2009, 20:08 #2
Ты немного опоздал Что делает данный код и зачем такое кому-нибудь может понадобиться? Возможные варианты в комментариях.
1
odip
Эксперт С++
7158 / 3220 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
14.08.2009, 20:16 #3
Да
0
#pragma
Временно недоступен
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
14.08.2009, 20:18 #4
VorobeY1326,написал тебе в личку,проверь.
0
14.08.2009, 20:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2009, 20:18
Привет! Вот еще темы с ответами:

Описание классов. Классы "Шар" и "Ящик для шаров" - C++
1.Опишите класс &quot;шар&quot;, описывающий габариты и вес. Данные класса: радиус шара,вес. Методы класса: должны обеспечить минимальную...

программа выдает только черный экран - C++
программа по идее должна реализовать функцию обмена местами для переменных типа int, double, float, int* , но в результате работы выводит...

Изобразить этот эллипс, чтобы он мигал — желтый/черный - C++
Здравствуйте, вот есть код, задача: изобразить этот эллипс, чтобы он мигал - желтый/черный, в общем такая мигающая &quot;растровая&quot; лампочка....

Черный экран при запуске любого кода в любом компиляторе - C++
Устанавливаю себе любой компилятор с++ и при копировании туда заведомо рабочих программ типа hello world и запуске этого кода открывается...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru