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

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

Восстановить пароль Регистрация
 
VorobeY1326
Ученик 11 класса)
 Аватар для VorobeY1326
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
14.08.2009, 19:57     Черный ящик..) #1
Доброго времени суток, форумчане!
Читая Страуструпа наткнулся на упражнение - понять, что делает функция:
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)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2009, 19:57     Черный ящик..)
Посмотрите здесь:

C++ Передача матрицы через почтовый ящик
C++ Чёрный ящик с гарантией
программа выдает только черный экран C++
C++ Чёрный ящик или белый ящик
C++ Тесты по принципу "чёрный ящик"
C++ "Черный ящик" тестирование
C++ Определить, какими пешками можно совершить ход, чтобы черный король не был под ударом ферзей
Изобразить этот эллипс, чтобы он мигал — желтый/черный C++
C++ Найти минимальный ящик, содержащий данный эллипсоид
C++ Описание классов. Классы "Шар" и "Ящик для шаров"
C++ Определить, может ли черный ферзь сбить всех белых ферзей за пять ходов
Черный экран при запуске любого кода в любом компиляторе C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
14.08.2009, 20:08     Черный ящик..) #2
Ты немного опоздал Что делает данный код и зачем такое кому-нибудь может понадобиться? Возможные варианты в комментариях.
odip
Эксперт C++
 Аватар для odip
7226 / 3288 / 59
Регистрация: 17.06.2009
Сообщений: 14,165
14.08.2009, 20:16     Черный ящик..) #3
Да
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
14.08.2009, 20:18     Черный ящик..) #4
VorobeY1326,написал тебе в личку,проверь.
Yandex
Объявления
14.08.2009, 20:18     Черный ящик..)
Ответ Создать тему
Опции темы

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