Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Ученик 11 класса)
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
1

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

14.08.2009, 19:57. Просмотров 1726. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.08.2009, 19:57
Ответы с готовыми решениями:

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

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

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

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

3
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
14.08.2009, 20:08 2
Ты немного опоздал Что делает данный код и зачем такое кому-нибудь может понадобиться? Возможные варианты в комментариях.
1
Эксперт С++
7171 / 3229 / 77
Регистрация: 17.06.2009
Сообщений: 14,166
14.08.2009, 20:16 3
Да
0
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
14.08.2009, 20:18 4
VorobeY1326,написал тебе в личку,проверь.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.08.2009, 20:18

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

SSL и SMTP. Как из программы отправить себе письмо в свой ящик
ОТПРАВЛЯЮ ЧЕРЕЗ СОКЕТЫ ЧЕРЕЗ 25 ПОРТ ЧЕРЕЗ СМТП ПРИХОДИТ 530 СООБЩЕНИЕ ПИШЕТ ЧТО МОЕ СООБЩЕНИЕ НЕ...

Тесты по принципу "чёрный ящик"
Разработать набор тестов для приложения для его тестирования по методологии «черного ящика». ...

черный ящик
Добрый день! помогите пожалуйста написать самое начало : причины и следствия. Есть программа. ниже...


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

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

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