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

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

Войти
Регистрация
Восстановить пароль
 
WindChaiser47
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 7
#1

Что такое тестирующая программа и зачем она нужна? - C++

06.07.2013, 17:55. Просмотров 878. Ответов 12
Метки нет (Все метки)

Есть задание, Написать функцию для перевода переменной типа long в символьную строку в двоичном представлении ( ltoab( long num, char s[]) ) и тестирующую программу к ней.

Лабу я написал, она работает, не пойму, что за тестирующая программа?
Зачем она нужна и что это такое?

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "intsafe.h"
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
 
 
char* fun_1(long k)
{long x, r, i,j;
 char* a;
 char b[64];
 char mass[64];
 a=&mass[0];//указатель на результат
 i=0;//указываем на первый символ
  //printf("%i\n",k); //исходное число
 while (k/2!=0) //цикл преобразования в двоичное представление 
 {
r=k/2;//частное
x=k%2;//остаток от деления
b[i]=0x30+x;//преобразование в символ
i++;//увеличение индекса 
k=r;
 }//конец цикла
b[i]=0x30+r;//преобразование последнего символа
for (j=0;j<=i;j++)//отобрежение результата
{
 mass[j]=b[i-j];
}
i++;
mass[i]=0;//признак конца строки
printf ("%d \n",i);//выводим число двоичных разрядов
return a;
}
void main(void)
{
 char* s;
 char Res; //результат
 long N;
 s = &Res;
 scanf ("%d", &N);
 //N = 512000; // Преобразуемое число
  s = fun_1(n); //вызов функции, преобразование в двоичный вид
  printf(s);
 printf("\n");
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2013, 17:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Что такое тестирующая программа и зачем она нужна? (C++):

Что такое рекурсия? Зачем она нужна? - C++
Объясните пож человеческим языком, что такое Рекурсия. Я знаю что это вызов функции самой себя. Но всё равно не могу догнать зачем...

Что такое виртуальная функция и зачем она нужна? - C++
Мне с трудом пришлось понять, пока не прочитал книгу и не проработал код на виртуальных функциях. В этой теме хочу новичкам рассказать,...

Что делает функция compare в коде и зачем она нужна в qsort - C++
Объясните, пожалуйста, что делает функция compare (17 строка) в данном случае и зачем она нужна в qsort? #include &lt;stdio.h&gt; ...

Явная специализация, зачем она нужна?(Шаблоны функций) - C++
Какой смысл в явной специализации, когда есть перегрузка? если можно, и примерчик) я себе уже в голову вбил, и тут надо чем-то тяжелым...

сегодня наконец то понял что такое КЛАСС, и ОБЪЕКТ. понято всё, кроме одного - зачем всё это? в смысле, можно же без этого? так зачем жизнь усложнять? - C++
сегодня наконец то понял что такое КЛАСС, и ОБЪЕКТ. понято всё, кроме одного - зачем всё это? в смысле, можно же без этого? так зачем жизнь...

Кто-нибудь может подробно объяснить, что такое allocators, зачем это и что с ними делать? Нигде не нашёл инфы - C++
Заранее спасибо.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
06.07.2013, 18:13 #2
Цитата Сообщение от WindChaiser47 Посмотреть сообщение
Лабу я написал, она работает, не пойму, что за тестирующая программа
начиная с 33-й строки и до конца - это и есть тестирующая программа
1
WindChaiser47
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 7
06.07.2013, 18:21  [ТС] #3
Цитата Сообщение от Jupiter Посмотреть сообщение
начиная с 33-й строки и до конца - это и есть тестирующая программа
Спасибо,получается тестирующая программа - грубо говоря,просто пример того как все это работает?
0
Jupiter
Каратель
Эксперт С++
6554 / 3975 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
06.07.2013, 18:24 #4
грубо говоря да. не грубо - то хорошо бы показать разные варианты использования, какие ошибки могут возникнуть и как программа будет на них реагировать
1
WindChaiser47
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 7
06.07.2013, 18:33  [ТС] #5
Вот теперь стало максимально понятно, спасибо большое!
0
Kastaneda
Форумчанин
Эксперт С++
4653 / 2862 / 228
Регистрация: 12.12.2009
Сообщений: 7,271
Записей в блоге: 2
Завершенные тесты: 1
06.07.2013, 22:06 #6
Думаю имелось ввиду немного другое (хотя может я просто "с другой колокольни" сужу). Я бы сделал что-нибудь такое
C++
1
2
3
4
5
6
7
8
9
10
11
const char *expected = "1101";
char actual[64] = {0};
long n = 13;
 
ltoab(n, actual);
 
if (!strcmp(actual, expected)) {
    printf ("PASS");
} else {
    printf ("FAIL");
}
только эталонных данных нагенерил бы по больше.
0
WindChaiser47
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 7
07.07.2013, 02:26  [ТС] #7
Цитата Сообщение от Kastaneda Посмотреть сообщение
Думаю имелось ввиду немного другое (хотя может я просто "с другой колокольни" сужу). Я бы сделал что-нибудь такое
C++
1
2
3
4
5
6
7
8
9
10
11
const char *expected = "1101";
char actual[64] = {0};
long n = 13;
 
ltoab(n, actual);
 
if (!strcmp(actual, expected)) {
    printf ("PASS");
} else {
    printf ("FAIL");
}
только эталонных данных нагенерил бы по больше.

Слушай, подскажи, что это? я что-то не пойму..я программировать сам стал, довольно недавно и многого не понимаю
0
zewer
1152 / 843 / 85
Регистрация: 07.01.2011
Сообщений: 6,114
07.07.2013, 02:43 #8
Обьясню по поводу тест проги детально.
У вас задание
Написать функцию для перевода переменной типа long в символьную строку в двоичном представлении ( ltoab( long num, char s[]) ) и тестирующую программу к ней.
Т.е. если выходить чисто реально из поставленой задачи. Вы должны сделать только функцию, и отдельно сделать программу, с помощю которой вы будете вызывать функцию, и работать с ней, проще говоря тестировать ее. А реально это выглядит - написал, работает, не буду трогать DDD
0
WindChaiser47
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 7
07.07.2013, 02:44  [ТС] #9
Цитата Сообщение от zewer Посмотреть сообщение
Обьясню по поводу тест проги детально.
У вас задание

Т.е. если выходить чисто реально из поставленой задачи. Вы должны сделать только функцию, и отдельно сделать программу, с помощю которой вы будете вызывать функцию, и работать с ней, проще говоря тестировать ее
Спасибо, я просто когда пытался сдать эту программу, мне преподаватель ничего не сказал по этому поводу..и я решил что так будет нормально
0
zewer
1152 / 843 / 85
Регистрация: 07.01.2011
Сообщений: 6,114
07.07.2013, 02:48 #10
Цитата Сообщение от WindChaiser47 Посмотреть сообщение
Слушай, подскажи, что это? я что-то не пойму..я программировать сам стал, довольно недавно и многого не понимаю
И тут обьясню вам
Есть 2 числа, первое - "13", второе - его двоичная аналогия "1101". При вызове фукнкции, ваше число должно превратится из "13" в "1101", т.е. из 10 системы выичсления станет в двоичной.
Потом функцией strcmp() делается проверка на совпадение константы "1101" с полученым результатом. Если все совпало - то printf("PASS")//все отлично, в другом случае - ошибка
0
WindChaiser47
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 7
07.07.2013, 02:48  [ТС] #11
zewer, так я же написал что только начинаю самостоятельно программировать..

поработал чуть чуть ее..

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "intsafe.h"
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
 
 
char* fun_1(long k)
{long x, r, i,j;
    char* a;
    char b[64];
    char mass[64];
    a=&mass[0];//указатель на результат
    i=0;//указываем на первый символ
     //printf("%i\n",k); //исходное число
    while (k/2!=0) //цикл преобразования в двоичное представление 
    {
r=k/2;//частное
x=k%2;//остаток от деления
b[i]=0x30+x;//преобразование в символ
i++;//увеличение индекса 
k=r;
    }//конец цикла
b[i]=0x30+r;//преобразование последнего символа
for (j=0;j<=i;j++)//отобрежение результата
{
    mass[j]=b[i-j];
}
i++;
mass[i]=0;//признак конца строки
printf ("%d \n",i);//выводим число двоичных разрядов
return a;
}
void main(void)
{
    char* s;
    char Res; //результат
    long N;
    s = &Res;
    scanf ("%d", &N);
    //N = 512000; // Преобразуемое число
        s = fun_1(N); //вызов функции, преобразование в двоичный вид
        printf(s);
    printf("\n");
}
0
zewer
1152 / 843 / 85
Регистрация: 07.01.2011
Сообщений: 6,114
07.07.2013, 02:48 #12
Если я все правильно понял
0
WindChaiser47
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 7
07.07.2013, 02:50  [ТС] #13
Цитата Сообщение от zewer Посмотреть сообщение
Есть 2 числа, первое - "13", второе - его двоичная аналогия "1101". При вызове фукнкции, ваше число должно превратится из "13" в "1101", т.е. из 10 системы выичсления станет в двоичной.
Потом функцией strcmp() делается проверка на совпадение константы "1101" с полученым результатом. Если все совпало - то printf("PASS")//все отлично, в другом случае - ошибка

Вооо...теперь вообще понятно, так просто и понятно еще никто мне не объяснял)
Спасибо!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2013, 02:50
Привет! Вот еще темы с ответами:

Что такое hash-таблицы, и зачем они нужны? - C++
Обьясните пожалуста по простому что такое хеш таблици и зачем они надо... пытался разобратся с ними сам, но ничего не получилось....

Битовые поля структур: что такое и зачем они нужны? - C++
Собственно, вопрос в заголовке. Читал Шилдта, но там эта тема довольно расплывчата. Надеюсь, кто-нибудь сможет доходчиво объяснить.

Что делает данный код и зачем такое кому-нибудь может понадобиться? - C++
Я ответил на вопрос,но точной формулировки не нашёл,хотел бы свериться(приложения с ответами нет).Задание: Чёрный ящик.Что делается в...

Объясните человеческим языком мне чайнику что такое singleton, статический класс. Зачем они нужны. Что рекомендуете прочитать мне для начала - C++
Объясните человеческим языком мне чайнику что такое singleton, статический класс. Зачем они нужны. Что рекомендуете прочитать мне для...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.07.2013, 02:50
Ответ Создать тему
Опции темы

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