Курсовая работа: Генерация полиномов

6. После окончания работы цикла произвести перемножение введенных корней генерируемого полинома в соответствии с правилами перемножения полиномов (см. пункт 1.1.3.2)

7. Вывести получившийся полином в порядке убывания степеней переменной на экран.


2.2 Написание программы, реализующей алгоритм генерации полиномов

2.2.1 Преодоление проблем, возникших при написании программы

При написании кода программы, реализующей алгоритм генерации полиномов, столкнулись с рядом трудностей.

Во-первых, необходимо было реализовать проверку вводимых данных, чтобы вводимые значениями были только цифры и числа. Для преодоления первой проблемы был разработан следующий алгоритм, реализация которого будет приведена ниже.

1. Инициализировать цикл с постусловием.

2. Ввести значение в виде строки.

3. Инициализировать цикл (количество итераций равно длине введенной пользователем строки).

4. Перемещаться во введенной строке посимвольно.

5. Если символ цифра перейти к пункту 6, иначе перейти к пункту 8.

6. Переводим символ в цифру.

7. Прибавляем цифру к числу, которое будет являться переводом введенной строки, если она число, предварительно умноженное его на десять.

8. Выдаем сообщение об ошибке и переходим к пункту 2.

9. Запоминаем получившееся число при корректном вводе.

Второй проблемой явилось переполнение типа данных – longпри перемножении (в данной программе, написанной на языке С). Однако она была решена при написании функций проверки при перемножении и общей проверки коэффициентов генерируемого полинома, которые будут приведены ниже.

Третья проблема – переполнение буфера. При написании программы пришлось увеличить буфер для ввода значений, но при считывании рассматривать только первые девять символов, чтобы заведомо не превысить максимальное значение используемого типа, и, если было введено более девяти символов, то выдать сообщение об ошибке и попросить пользователя заново ввести значение.

Четвертая проблема – хранение введенных данных. Для ее преодоления было использовано четыре массива; в первом (массив m)будут храниться все корни генерируемого полинома (его размер – 2∙n, где n – степень генерируемого полинома), второй и третий – вспомогательные (участвуют в перемножении), в третьем (массив b) будет храниться корень генерируемого многочлена, взятый из первого массива, (его размер – 2); во втором (массив a) вначале храниться корень генерируемого многочлена из первого массива, а после первого перемножения в него будет перезаписываться результат перемножения для следующего выполнения этой операции (размер – n+1); последний массив (массив c) – результирующий, содержит все коэффициенты генерируемого многочлена после перемножения (размер n+1).

2.2.2 Описание и пояснение некоторых частей программы

В данном пункте будут приведены некоторые части программы, реализующей алгоритм генерации полиномов, с пояснениями.

1. Функция реализующая нахождение модуля числа типа long

long Modul(long a)

{

if (a<0)

return (-a);

else

return (a);

}

Если функция получила отрицательное число, то она возвращает число с противоположным знаком, в противном случае само число.

Входные данные – число типа long.

Выходные данные – число типа long.

К-во Просмотров: 612
Бесплатно скачать Курсовая работа: Генерация полиномов