- •Реферат
- •Нормативные ссылки
- •Введение
- •1 Задание №1
- •1.1 Формулировка задачи
- •1.2 Спецификации задачи
- •1.3 Математическая постановка задачи
- •1.4 Описание вычислительных методов
- •1.5 Схема алгоритма. Описание
- •1.6 Текст программы
- •1.7 Ручной подсчёт отладочного варианта
- •1.8 Результат машинного тестирования программы
- •2 Задание №2
- •2.1 Формулировка задачи
- •2.2 Спецификации задачи
- •2.3 Математическая постановка задачи
- •2.4 Схема алгоритма. Описание
- •2.5 Текст программы
- •2.6 Результат машинного тестирования программы
- •Заключение
1.7 Ручной подсчёт отладочного варианта
Пусть задано кубическое уравнение следующего вида:
В данном уравнении:
,
,
,
Приведем уравнение к каноническому виду. Делаем замену переменных, от переменной x переходим к переменной y через равенство:
Получим новое уравнение от переменной y:
где:
,
и
Определим еще одну переменную Q:
Число действительных корней кубического уравнения зависит от знака Q:
Q > 0 - один действительный корень и два сопряженных комплексных корня. Q < 0 - три действительных корня. Q = 0 - один однократный действительный корень и два двукратных комплексных, или, если p = q = 0, то один трехкратный действительный корень.
По формуле Кардано, корни кубического уравнения в канонической форме равны:
где:
,
Применяя данные формулы, для одного из трёх значений α необходимо брать такое β, для которого выполняется условие αβ = - p / 3 (такое значение β всегда существует). Рассмотрим все возможные значения α и β (кубический корень всегда дает 3
значения!):
Итак, берем первое значение α и подбираем к нему β. В результате перебора приходим к паре α1и β2 Записываем все 3 корня сразу для переменной x:
Полная запись:
Приближенное
значение:
,
,
Тогда пересечение с осью ОХ - -1, с осью ОY - -1³+(-1)²-1+1 = 0
1.8 Результат машинного тестирования программы
Результат работы программы показан на рисунке 1.
Рисунок 1 – Результат работы программы
2 Задание №2
2.1 Формулировка задачи
Элементами динамического списка являются записи, в которых хранится информация о студентах ФКТАС: имя, фамилия, группа и оценки за последнюю сессию. Обеспечить ввод этих данных и разбить всех студентов в новые списки по группам, элементами которых являются записи с полями: группа, количество студентов в группе, массив с фамилиями студентов (отсортированный по алфавиту), средний балл группы за сессию. Найти лучшую по успеваемости группу.
2.2 Спецификации задачи
Входные данные:
имя,
фамилия,
группа,
оценки за последнюю сессию.
Выходные данные:
Группа;
Количество студентов;
Список студентов;
Средний балл группы,
Лучшая по успеваемости группа.
2.3 Математическая постановка задачи
В таблице 2 приведен ряд переменных, представляющих исходные данные и результаты работы программы. Этот ряд будет дополнен на стадии разработки алгоритма.
Таблица 2 – Характеристика переменных
Имя |
Смысл переменной |
Назначение |
Ограничения |
fname |
Имя студента |
Исходная |
Строковый тип данных |
lname |
Фамилия студента |
Исходная |
Строковый тип данных |
group |
Группа |
Исходная |
|
mark |
Оценка |
Исходная |
Целочисленный тип данных |
students |
Массив, хранящий информацию о студентах |
Промежуточная |
|
count |
Число студентов в группе |
Промежуточная |
|
sum |
Сумма оценок студентов в группе |
Промежуточная |
|
i |
Счётчик цикла |
Промежуточная |
|
j |
Счётчик цикла |
Промежуточная |
|
