初音ミクこんばんは Опубликовано 16 сентября, 2016 Жалоба Поделиться Опубликовано 16 сентября, 2016 Написал на компьютере программу для решения биквадратного уравнения. Прошу придумать тесты для проверки работы этой программы. Биквадратное уравнение – это частный случай уравнения четвёртой степени вида:ax4 + bx2 + c = 0.Условия такие. Коэффициенты a, b, c должны быть целыми числами. Решения xi могут быть как целыми, так и иррациональными числами. В программе возможны следующие варианты решений:решение – любое числорешений нетодин кореньдва корнятри корнячетыре корня Короче, я перебрал все варианты. Нужны тройки чисел a, b, c для тестирования программы. Решения xi можно не приводить (хотя можно и с ними).А я, пока вы пишете, поиграю в Disgaea. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Jabberwocker Опубликовано 16 сентября, 2016 Жалоба Поделиться Опубликовано 16 сентября, 2016 а тебе что мешает написать другую программу, которая возьмет случайные корни и вычислит коэффициенты исходного уравнения? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
初音ミクこんばんは Опубликовано 16 сентября, 2016 Автор Жалоба Поделиться Опубликовано 16 сентября, 2016 ленья думал, может ваши мозги наконец-то поработают Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Jabberwocker Опубликовано 16 сентября, 2016 Жалоба Поделиться Опубликовано 16 сентября, 2016 господи, открой эксель.две колонки под корни, через RAND(), остальные колонки -- вбить формулу для коэффициентов. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
初音ミクこんばんは Опубликовано 16 сентября, 2016 Автор Жалоба Поделиться Опубликовано 16 сентября, 2016 Так просто не получится. Корней может быть от 0 до 4. Тут фантазия нужна. Тестирование – творческий процесс, нужно человеческое воображение. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
初音ミクこんばんは Опубликовано 16 сентября, 2016 Автор Жалоба Поделиться Опубликовано 16 сентября, 2016 (изменено) Цитирую Юркин задачник:"Набор тестов называется полным, если он позволяет активизировать все ветви алгоритма. Набор тестов назовём не избыточным, если удаление из него любого теста лишает его полноты.Таким образом, искусство тестирования сводится к разработке полного и не избыточного набора тестов, а технология – к испытанию программы на всём наборе после внесения в неё каждого исправления. Удачно подобранные тесты позволяют не только констатировать факт наличия ошибок, но и локализовать их, то есть найти место в программе, виновное в получении неверных результатов." Ну и там ещё куча текста.Это, конечно, формальный подход, и придерживаться его необязательно. Любое тестирование, основанное на "методе тыка", наверняка будет избыточным. Изменено 16 сентября, 2016 пользователем 初音ミクこんばんは (смотреть историю редактирования) Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
初音ミクこんばんは Опубликовано 22 сентября, 2016 Автор Жалоба Поделиться Опубликовано 22 сентября, 2016 2. Решить квадратное уравнение.6. Решить биквадратное уравнение. /* p11 Язык Turbo C Основы программирования Теория. Задачи */ /* p11 (15k), p13 (22k), p16, p18, p19 (23k) p21 (24k), p53 (25k), p54, p55 */ #include <conio.h> #include <math.h> #include <stdio.h> j (); /* Решение - любое число. */ k (); /* Решений нет. */ l (float); /* Один корень. */ m (float, float); /* Два корня. */ n (int, int); /* n = a ^ b. */ o (float, float, float); /* Три корня. */ p (float, float, float, float); /* Четыре корня. */ main () { int a, b, c, d; int g, h; float s, t; printf ("Введите четыре целых числа: "); scanf ("%i%i%i%i", &a, &b, &c, &d); printf ("p13 - 2. "); if (a == 0) if (b == 0) if (c == 0) j (); else k (); else l ((float) -c / B); else { g = b * b - 4 * a * c; if (g < 0) k (); else if (g == 0) l (-b / 2. / a); else m ((-b + sqrt (g)) / 2 / a, (-b - sqrt (g)) / 2 / a); } printf ("p21 - 6. "); if (a == 0) if (b == 0) if (c == 0) j (); else k (); else { s = (float) -c / b; if (s < 0) k (); else if (s == 0) l (0); else m (sqrt (s), -sqrt (s)); } else { g = b * b - 4 * a * c; if (g < 0) k (); else if (g == 0) { s = -b / 2. / a; if (s < 0) k (); else if (s == 0) l (0); else m (sqrt (s), -sqrt (s)); } else { s = (-b + sqrt (g)) / 2 / a; t = (-b - sqrt (g)) / 2 / a; if (s < 0) if (t < 0) k (); else if (t == 0) l (0); else m (-sqrt (t), sqrt (t)); else if (s == 0) if (t < 0) l (0); else o (-sqrt (t), 0, sqrt (t)); else if (t < 0) m (-sqrt (s), sqrt (s)); else if (t == 0) o (-sqrt (s), 0, sqrt (s)); else p (-sqrt (s), -sqrt (t), sqrt (t), sqrt (s)); } } getch (); printf ("\n"); } j () {printf ("Решение - любое число.\n");} k () {printf ("Решений нет.\n");} l (float a) {printf ("x = %.4g.\n", a);} m (float a, float B) {printf ("x1 = %.4g, x2 = %.4g.\n", a, B);} o (float a, float b, float c) {printf ("x1 = %.4g, x2 = %.4g, x3 = %.4g.\n", a, b, c);} p (float a, float b, float c, float d) {printf ("x1 = %.4g, x2 = %.4g, x3 = %.4g, x4 = %.4g.\n", a, b, c, d);} Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.