1.1 Розробка методу виконання основного завдання
Розглянемо один з найпростіших методів уточнення відділеного кореня – метод половинного ділення.
Обчислюємо значення f(x) в середині відрізка [a;b], тобто в точці . Залежно від значення вибираємо ту частину інтервалу [a;b], де знаки функції f(x) є різними. Отже, інтервал, у якому є корінь, зменшився удвічі. Продовживши процес, ми звужуємо інтервал до такої величини, поки його розмір (який дорівнює абсолютній похибці) не стане меншим від потрібної нам величини.
Зрозуміло, що другий етап наближеного відшукання кореня бажано виконувати за допомогою комп’ютера.
Алгоритм методу половинного ділення, з використанням шкільних конструкцій алгоритмічної мови, можна записати так:
ввід інтервалу (a;b) та потрібної точності (D)
поки |a-b| < D виконувати
пц
якщо f(a)×f(b) > 0
то a:=c
інакше b:=c
кц
вивід значення кореня
1.2 Структура даних і функцій
Згідно завдання наш проект складається з 4 додаткових модулів, та основного модуля, в якому міститься головна функція main() нашого проекту.
Коротко охарактеризуємо кожен з модулів. Почнемо з основного. Названий він відповідно - main.cpp. Містить дві функції void avtor() та void main(). Перша з них виводить інформацію про автора проекту, є невеликою, має опис двох локальних змінних int xmax, ymax. Друга функція – головна. Вона є фактично монітором нашого проекту, спочатку запускає електронну титульну сторінку курсової роботи, потім будує графік функції, корені якої нам потрібно знайти, використовуючи метод дихотомії знаходить корінь на вказаному з клавіатури проміжку з вказаною точністю, демонструє метод дихотомії графічно та зрештою виводить головне меню на екран. Всі ці дії, крім виводу головного меню на екран, виконуються лише запуском відповідних функцій з додаткових модулів. Крім того, функція void main() ініціалізує графічний режим, підключаючи BGI драйвер EGAVGA.BGI.
У головному модулі оголошено такі локальні змінні:
int k=0 – для збереження пункту головного меню, яке обирає користувач,
int gdriver = DETECT, gmode, errorcode – додаткові змінні для ініціалізації графічного режиму.
Тепер перейдемо до додаткових модулів.
Модуль tytulka.cpp містить лише одну функцію void tytulka(), що виводить на екран електронну титульну сторінку розробника курсової роботи. Оголошено такі локальні змінні: int a=5 – значення відступів від краю екрану до рамки, xmax=getmaxx(), ymax=getmaxy() – значення роздільної здатності екрану у графічному режимі.
Модуль grafik.cpp містить функцію void grafik(), що будує Декартову систему координат та графік функції на ній. Оголошено такі локальні змінні:
int dec, sign; - допоміжні змінні для виклику функції fcvt – перетворення з дійсного числа у стрічку;
int i; - лічильник циклу;
float x1,x2,y1,y2,xx1,xx2,yy1,yy2; - містять координати точок на площині.
Модуль dyhotom.cpp містить дві функції: double f(double x) – обчислення значення вказаної в завданні функції для певного значення х, void dyhotom() – реалізація чисельного методу знаходження кореня рівняння на вказаному проміжку з вказаною точністю. Оголошено такі локальні змінні:
FILE *fp1,*fp2; - вказівники на файли, що містять проміжні результати обчислень;
int k=0; - лічильник ітерацій;
double a, b, c, epsilon; - межі проміжку, середина проміжку та точність.
Модуль demon.cpp містить одну функцію void demon(), що графічно демонструє роботу функції void dyhotom(). Оголошено такі локальні змінні:
int xmax=getmaxx(),ymax=getmaxy(); - значення роздільної здатності екрану у графічному режимі
FILE *fp1,*fp2; - вказівники на файли, що містять проміжні результати обчислень;
float x, a, b; - значення кореня рівняння та межі проміжку;
int i = 7; - кількість знаків після коми, які виводить функція gcvt();
char *buf; - допоміжна змінна для роботи функції gcvt().
2. ОПИС СТРУКТУРИ ПРОГРАМНОГО ПРОЕКТУ
Як зазначалося вище, наш проект складається з 4 додаткових модулів, та основного модуля, в якому міститься головна функція main() нашого проекту. Додаткові модулі не зв’язані один з одним, а лише з головним модулем.
Єдиним зв’язком (неявним) між модулями dyhotom.cpp та demon.cpp є спільне використання файлів KORENI.TXT та MEGI.TXT.
Загальна схема проекту із способами взаємодії між модулями наведена на рисунку 2.1.
Рисунок 2.1 - Загальна схема проекту
Розбиття програми на різні файли визначається логічною структурою програми. Використання додаткових модулів дозволило спростити реалізацію нашого проекту та більш наочно показати взаємодію одних частин проекту з іншими та значно зменшити час на від лагодження та компіляцію цілого проекту.
... В АБС АКБ «ПРОМІНВЕСТБАНК» ТА ОЦІНКА РІВНЯ ВРАЗЛИВОСТІ БАНКІВСЬКОЇ ІНФОРМАЦІЇ 3.1 Постановка алгоритму задачі формування та опис елементів матриці контролю комплексної системи захисту інформації (КСЗІ) інформаційних об’єктів комерційного банку В дипломному дослідженні матриця контролю стану побудови та експлуатації комплексної системи захисту інформації в комерційному банку представлена у вигляді ...
... – відпускна ціна i-го заводу j-й продукції; - закупівельна ціна i-го заводу j-й продукції, - шуканий обсяг закупівель на i-м заводі j-й продукції. 2.5 Перевірка моделі оптимізації на контрольному прикладі В цьому підрозділі на прикладі підприємства ТОВ "Гермес-Груп" розрахуємо модель (2.4.5) за допомогою електроних таблиць MSEcxel. Цільова функція має вигляд: де - об’єм закупівлі; ...
к само даних про споживання електричної енергії, опис можливої діяльності офісу і працівниках. 1 ГРАФІЧНЕ МОДЕЛЮВАННЯ ОФІСУ САПР-ОДЯГ 1.1 Початкові дані для проектування офісу Вихідні дані: Діяльність офісу САПР - одяг Кількість комп'ютерів 2 Кількість принтерів 2 Блоки безперебійного живлення 2 Кількість сканерів 1 Модем + Телевізор (підключення до ЕОМ) + ...
... Перевірка гіпотез; - Формулювання понять, узагальнень, висновків; - Впровадження висновків. На сьогодні існують кілька національних, регіональних і міжнародних програм, які впроваджують використання нових інформаційних технологій для створення різноманітних проектів, у яких беруть участь учні й вчителя середніх шкіл. Це такі програми як EuroSchoolNet, Orilla Orilla, GLOBE. Висновок ...
0 комментариев