Класи мови С++: Інтеграл
Мова С підтримує модульне програмування, суть якого полягає в можливості роздільної компіляції і компоновки різних частин програми. Наприклад, можна виконати компіляцію тільки тієї частини програми, яка була змінена в ході останнього сеансу редагування. Це значно прискорює процес розробки великих і навіть середнього розміру проектів, особливо якщо доводиться працювати на повільних машинах. Якщо б… Читати ще >
Класи мови С++: Інтеграл (реферат, курсова, диплом, контрольна)
Міністерство освіти, науки, молоді та спорту України Чернівецький національний університет імені Юрія Федьковича Факультет комп’ютерних наук Кафедра комп’ютерних систем та мереж Курсовий проект Тема:
Класи мови С++: Інтеграл Карасьов Олексій Чернівці, 2012 р.
Анотація
Програма «Інтеграл» має за мету обчислення таблиці значень заданих інтегралів.
Програма написана мовою програмування С++ у програмному середовищі Borland C++ версії 6.0.
Опис мови містить загальні відомості про мову написання «ІНТЕГРАЛ», її основні елементи, способи структуризації програми, засоби обміну даними, вбудовані елементи та список використаних джерел.
Для обчислення значення інтеграла програма використовує метод трапецій. У метод обчислення інтеграла за вказаною формулою, підінтегральна функція передається як параметр.
Технічне завдання містить короткі відомості про підстави для розробки «ІНТЕГРАЛ», її призначення, основні вимоги до неї, техніко-економічні показники, стадії і етапи розробки програми.
Пояснювальна записка містить короткі відомості про призначення та область застосування продукту «ІНТЕГРАЛ», його технічні характеристики, очікуванні техніко-економічні показники та джерела використані при розробці програми.
Ключові слова: клас інтеграл, клас трапеція.
Документ складається з 8 розділів і містить 1 таблицю, 1 схему, джерела літератури.
Технічне завдання
Позначення | Найменування | |
482.362.6 050 102 — 53 81 12 — 1 | Класи мови С++: | |
ІНТЕГРАЛ. Варіант 12. | ||
Технічне завдання. | ||
482.362. 6 050 102 — 53 81 12 — 1 | Класи мови С++: | |
ІНТЕГРАЛ. Варіант 12. | ||
Пояснювальна записка. | ||
482.362. 6 050 102 — 53 35 12 — 1 | Класи мови С++: | |
ІНТЕГРАЛ. Варіант 12. | ||
Опис мови. | ||
482.362.6 050 102 — 53 13 12 — 1 | Класи мови С++: | |
ІНТЕГРАЛ. Варіант 12. | ||
Опис програми. | ||
482.362. 6 050 102 — 53 12 12 — 1 | Класи мови С++: | |
ІНТЕГРАЛ. Варіант 12. | ||
Текст програми. | ||
482.362. 6 050 102 — 53 51 12 — 1 | Класи мови С++: | |
ІНТЕГРАЛ. Варіант 12. | ||
Програма та методика | ||
випробувань. | ||
Зміст
Анотація Технічне завдання Вступ
1. Підстави до розробки
2. Призначення та область застосування
3. Вимоги до програми або програмного продукту
3.1 Вимоги до функціональних характеристик
3.2 Вимоги до складу і параметрів технічних засобів
4. Стадії і етапи розробки
5. Технічні характеристики
5.1. Постановка задачі на розробку програми
5.2 Опис алгоритму і функціонування програми
5.3 Опис і обґрунтування вибору методу організації вхідних і вихідних даних
5.4 Опис і обґрунтування вибору складу технічних і програмних засобів
6. Елементи мови
6.1 Символи, лексеми, вирази та оператори
6.2 Класи мови С++
6.3 Мови програмування, на яких написана програма
6.4 Засоби обміну даними
6.5 Засоби відладки програми
7. Опис логічної структури
7.2 Виклик і завантаження програми
7.3 Вхідні дані
7.4 Вихідні дані
7.4 Текст програми
7.5 Результати випробувань Список використаних джерел
Вступ
Загальні відомості
Інтерес до програмування постійно зростає. Це пов’язано з розвитком і впровадженням у повсякденне життя інформаційних технологій. Якщо людина має справу з комп’ютером, то рано чи пізно у неї виникає бажання, а іноді і необхідність, навчитися програмувати.
Серед користувачів персональних комп’ютерів у даний час найпопулярнішим є сімейство операційних систем Windows і, природно, що той, хто збирається програмувати, прагне писати програми, які будуть працювати в цих системах.
С++ - універсальна алгоритмічна мова, яка використовується для розробки системних і складних прикладних програм. У теперішній час С++ - не тільки найпоширеніша мова програмування, але і мова спілкування програмістів, оскільки більшість алгоритмів, що публікуються, записуються на С++.
Першу версію мови С++ запропонував Б’ярн Страуструп у 1981 році. З тих пір мова цікаво розвиватися. У 1995 році автором мови разом із організаціями ANSI та ISO був розроблений стандарт мови (Standart C++), котрим повинні керуватися усі розробники компіляторів.
С++ включає мову С як підмножину, має строгу типізацію, модель об'єктно-орієнтованого програмування і розвинені засоби розширення та адаптації мови до різних видів задач.
Програма «ІНТЕГРАЛ» має за мету обчислення трьох інтегралів відповідно до вказаних параметрів методом трапецій.
Метою розробки «ІНТЕГРАЛ» є спрощення та автоматизація роботи з інтегралами, що часто використовуються.
Програма дозволяє обчислювати інтеграл методом трапецій у визначених межах інтегрування і з заданою точністю.
1. Підстави до розробки
Підставою до розробки «ІНТЕГРАЛ» було технічне завдання, одержане від керівника і затверджене на засіданні кафедри «Комп'ютерні системи та мережі» від 30 серпня 2005 року, протокол № 1.
Також підставою до розробки був «Витяг із протоколу № 9 Вченої ради Чернівецького національного університету ім. Ю. Федьковича від 22.12.05», основними положеннями якого є наступні:
1. Положення розроблено на основі Закону України «Про вищу освіту» від 17 січня 2002 р. № 2984, Закону України «Про оплату праці» № 108/1995р., Постанови КМУ від 30.08.2002 р. № 1248 зі змінами та доповненнями, наказу Міністерства освіти і науки № 557 від 26.09.2005 р. зі змінами та доповненнями.
2. Основна мета встановлення надбавок до заробітної плати — моральне та матеріальне заохочення професорсько-викладацького складу з метою вдосконалення навчального процесу, стимулювання наукової діяльності, впровадження в навчально-виховний процес передових досягнень науки, а також стимулювання якості виховання студентів.
3. Індивідуальні надбавки встановлюються за високі творчі і трудові досягнення, використання у викладацькій та виховній діяльності сучасних передових методів праці, за складність та напруженість у роботі.
Надбавки встановлюються в межах фонду заробітної плати, затвердженого Міністерством освіти і науки на фінансовий рік.
4. Надбавки встановлюються на основі результатів рейтингових оцінок тим викладачам, які набрали найбільшу кількість балів і увійшли у групу 30% від усієї чисельності працюючих за окремими категоріями: професори, доценти та асистенти.
— 10% викладачів — 30% до посадового окладу;
— 10% викладачів — 20% до посадового окладу;
— 10% викладачів — 10% до посадового окладу;
5. Оцінювання робота проводиться роздільно серед професорів, доцентів та асистентів.
6. Кожен працівник оцінюється індивідуально за відповідями, поданими у запитальнику. (Додаток 1−3).
7. Запитальник заповнюється особисто кожним викладачем.
8. До одержаної суми додаються бали адміністративної оцінки:
— завідуючим кафедрою — від 0 до 4 балів (в межах кафедри);
— деканом — від 0 до 6 балів (в межах факультету);
— ректором — від 0 до 8−12 балів (в межах університету).
9. Додані бали сумуються і заносяться у «Зведену відомість з оцінки роботи професорсько-викладацького складу» (Додаток 4).
10. На основі зведеної відомості з урахуванням наявних коштів, що визначаються п. 2 цього Положення, приймається рішення, щодо суми надбавки (у відсотках до заробітної плати) за категоріями працюючих і оформляється відповідним наказом по університету.
11. Надбавки зменшуються або повністю відміняються наказом ректора університету при погіршенні якості роботи та невиконанні внутрішнього трудового розпорядку університету.
12. Зміни до Положення та анкет вносяться щорічно і оформляються додатками.
2. Призначення розробки та область застосування
Основне призначення даної розробки — спрощення роботи людей за допомогою програми, що виконує обчислення швидше і автоматично.
Призначення цієї розробки полягає в тому, щоб максимально спростити процес роботи із заданими інтегралами. Оскільки процес обробки та проведення арифметичних обчислень одних і тих же інтегралів з різними значеннями досить трудомісткий — слід застосувати програму, яка виконуватиме такі обчислення із заданою точністю, швидше і автоматично.
Даний програмний продукт допомагає також працювати з декількома інтегралами одразу, тобто програма виводить таблицю результатів обчислень трьох інтегралів.
3. Вимоги до програми або програмного продукту
3.1 Вимоги до функціональних характеристик
До «ІНТЕГРАЛ» висуваються наступні вимоги:
· забезпечити точність обчислення не нижчу ніж вказана у завданні;
· можливість введення інших вхідних даних;
3.2 Вимоги до складу і параметрів технічних засобів
Для нормального функціонування програми «Розробка підсистеми аналізу наукової діяльності викладачів і наукових співробітників» потрібен комп’ютер з такими характеристиками:
— процесор Pentium з тактовою частотою не нижче 200 МГц;
— оперативний запам’ятовуючий пристій — 32 Мб;
— 2 Мб вільного місця на жорсткому диску (не враховуючи розмір СКБД MS SQL).
4. Стадії і етапи розробки
Розробка програмного продукту складалася зі стадій наведених в таблиці 4.1.
Таблиця 4.1
Стадії розробки програмного продукту
№ п./п. | Назва етапів магістерської роботи | Примітка | |
1. | Одержання технічного завдання | 16.12.2011 | |
2. | Аналіз літератури | 16.12.2011 | |
3. | Розробка схеми бази даних. Створення структури бази даних | 16.12.2011 | |
4. | Розробка алгоритму роботи програми. Вибір програмних засобів | 16.12.2011 | |
5. | Розробка інтерфейсу програми | 20.12.2011 | |
6. | Тестування та відладка програми | 20.12.2011 | |
7. | Оформлення програмної документації | 21.12.2011 | |
8. | Представлення готової роботи | 21.12.2011 | |
9. | Попередній захист | 21.12.2011 | |
10. | Коректування програмної документації | 21.12.2011 | |
11. | Захист роботи | 21.12.2011 | |
5. Технічні характеристики
5.1 Опис алгоритму і функціонування програми
В основу програми покладено наступна структурна схема:
Структурна схема 1
5.2 Опис і обґрунтування вибору методу організації вхідних і вихідних даних
Вхідні дані описуються за допомогою конструктора Integral і зчитуються в головній функції main при виклику функції обчислення інтеграла методом трапецій.
Окрім цього вхідними даними є інформація яка вводиться конструктором за замовчуванням.
Обробка вхідних даних основним чином полягає в поділі відрізка (між межами інтегрування) на будь-яку (кратну двійці) кількість відрізків. Після цього обчислюється значення інтеграла на кожному з відрізків і визначається точність виконаних дій. Якщо отримана точність не менша заданої, то результат виводиться на екран.
5.3 Опис і обґрунтування вибору складу технічних і програмних засобів
Програма «ІНТЕГРАЛ» написана мовою С++ з використанням програмного середовища Borland С++ 6.0. Вибір цього середовища зумовлений зручністю та легкістю розробки програм такого типу.
С++ - це комбінація декількох найважливіших технологій:
1. Високопродуктивний компілятор у машинний код.
2. Об'єктно-орієнтована модель компонент.
мова алгоритм автоматизація інтеграл
6. Елементи мови
Мова С++ має такі типи даних які вказані у таблиці 2.1
Таблиця 6.1
Тип даних | Назва | Розмір, біт | Діапазон значень | |
unsigned char | Беззнаковий цілий довжиною не менше 8 біт | 0.. 255 | ||
сhar | Цілий довжиною не менше 8 біт | — 128.. 127 | ||
unsigned int | Без знаковий цілий | 0.. 65 535 | ||
short int (short) | Короткий цілий | — 32 768.. 32 767 | ||
unsigned short | Беззнаковий короткий цілий | 0.. 65 535 | ||
int | Цілий | — 32 768.. 32 767 | ||
unsigned long | Беззнаковий довгий цілий | 0.. 4 294 967 295 | ||
long int (long) | Довгий цілий | — 214 748 348.. 2 147 483 647 | ||
float | Дійсний одинарної точності | 3.4Е-38.. 3.4Е+38 | ||
double | Дійсний подвійної точності | 1.7Е-308.. 1.7Е+308 | ||
long double | Дійсний максимальної точності | 3.4Е-4932.. 1.1Е+4932 | ||
6.1 Символи, лексеми, вирази та оператори
Елементами мови С++ є символи, лексеми, вирази та оператори.
Лексеми поділяються на:
1. Ідентифікатори — імена об'єктів програми, під які виділяється місце у пам’яті. При створенні імен можуть використовуватися великі і малі латинські літери цифри та позначки нижнього підкреслення. Ідентифікатор не повинен починатися з цифри. Великі і малі літери в іменах об'єктів розрізняються.
2. Ключові слова — слова, які мають спеціальне значення для компілятора (void, include, main).
3. Коментарі - зауваження або пояснення, які уточнюються програмістом до тексту програми і ігноруються компілятором.
4. Константи — величини, які не змінюють свое значення протягом програми. Серед символьних констант є особливий вид констант, які називаються escape-символами, вони починаються з символу оберненого слеша і використовуються для відображення кодів, що не мають графічного зображення
5. Позначки операцій Стандартні операції мови С++ вказані у таблиці 6.2
6. Розділювачі
Таблиця 6.2
Операція | Короткий опис | |
Унарні операції | ||
& | Операція одержання адреси операнда | |
* | Звернення за адресою (розіменування) | |
; | Унарний мінус — змінює знак арифметичного операнда | |
~ | Порозрядове інвертування внутрішнього двійкового коду (побітове заперечення) | |
! | Логічне заперечення (НЕ) значення операнда. Цілочисельний результат 0 (якщо операнд ненульовий, тобто істинний) або 1 (якщо операнд нульовий, тобто хибний). Таким чином: !1 дорівнює 0; !2 дорівнює 0; !(-5)=0; !0 дорівнює 1. | |
Операція | Короткий опис | |
++ | Інкремент (збільшення на одиницю): Префіксна операція (++х) збільшує операнд на 1 до його використання. Постфіксна операція (х++) збільшує операнд на 1 після його використання. int m=1, n=2; int a=(m++)+n; // a=3, m=2, n=2 int b=m+(++n);// b=6, m=2, n=3 | |
— ; | Декремент (зменшення на одиницю): Префіксна операція (—х) зменшує операнд на 1 до його використання. Постфіксна операція (х—) зменшує операнд на 1 після його використання. | |
sizeof | Обчислення розміру (в байтах) обєкта того типу, який має операнд. Має дві форми: 1) sizeof (вираз); sizeof (1.0); // Результат — 8, Дійсні константи за замовчуванням мають тип double; 2) sizeof (тип) sizeof (char); // Результат — 1. | |
Бінарні операції | ||
Арифметичні операції | ||
Бінарний плюс (додавання арифметичних операндів) | ||
; | Бінарний мінус (віднімання арифметичних операндів) | |
Мультиплікативні | ||
* | Добуток операндів арифметичного типу | |
Операція | Короткий опис | |
Ділення операндів арифметичного типу (якщо операнди цілочисельні, абсолютне значення результату заокруглюється до цілого, тобто 20/3 дорівнює 6) | ||
% | Одержання залишку від ділення целочисельних операндів (13%4 = 1) | |
Операції зсуву (визначені лише для цілочисельних операндів) | ||
<< | Зсув вліво бітового представлення значення лівого цілочисельного операнда на кількість розрядів, рівну значенню правого операнда (4<<2 дорівнює 16, т.я. код 4 100, а звільнені розряду обнуляються, 10 000 — код 16) | |
>> | Зсув вправо бітового представлення значення правого цілочисельного операнда на кількість розрядів, рівну значенню правого операнда | |
Порозрядні операції | ||
& | Порозрядна кон’юнкція (І) бітових представлень значень цілочисельних операндів | |
| | Порозрядна диз’юнкція (АБО) бітових представлень значень цілочисельних операндів | |
^ | Порозрядне виключне АБО бітових представлень значень цілочисельних операндів | |
Операції порівняння | ||
< | Менше, ніж | |
> | Більше, ніж | |
<= | Менше або рівне | |
>= | Більше або рівне | |
= = | Рівне | |
≠ | Не рівне | |
Операція | Короткий опис | |
Логічні бінарні операції | ||
&& | Кон’юнкція (І) цілочисельних операндів або відношень, цілочисельний результат (0) або (1) | |
|| | Диз’юнкція (АБО) цілочисельних операндів або відношень, цілочисельний результат (0) або (1) (умова 0<1) | |
Тернарна операція | ||
Умовна операція | ||
? : | Вираз1? Вираз2: Вираз3; Першим вираховується значення Виразу1. Якщо воно істинне, тоді обчислюється значення Виразу2, яке стає результатом. Якщо при обчисленні Виразу1 одержуємо 0, тоді в якості результату береться значення Виразу3. Наприклад: х<0? -x: x; //обчислюється абсолютна величина x. | |
6.2 Класи мови С++
Клас — це структурований тип даних, який вводиться програмістом на базі існуючих типів, моделює закінчений об'єкт програми шляхом поєднання властивостей об'єкта із методами їх обробки.
До полів класу належать змінні, масиви, вказівники, посилання, структури тощо. Методи класу — це функції класу, які обробляють поля класу.
Формат визначення класу Ключ_класу назва_класу
{тіло класу};
Після визначення об'єктів класів кожен із них буде містити компоненти, визначені для даного класу, зокрема, ті поля і функції, які існують і новому структурному типів. Після створення об'єктів класу необхідно заповнити поля для кожного з них, після цього можна звертатися до методів класу.
Для звернення до елементів класу використовуються:
· Кваліфіковані імена
Ім'я_об'єкта. ім'я_компонента:ім'я_поля
· Уточнені імена
Ім'я_об'єкта. ім'я_елемента
· Через вказівник і оператор «->»
Ім'я_вказіника-> ім'я_елемента Розрізняють три рівні доступу до компонент класу, які позначаються ключовими словами:
1. Public — загальнодоступний. Дані та методи цього статусу є доступними всередині класу для методів класу і для зовнішнього звернення
2. Private — власні компоненти. Доступ до власних компонент класу мають тільки методи класу, а звернення зовні неможливе.
3. Protected — захищений. Захищені компоненти класу доступні методам класу, а також методам класів-нащадків.
За принципом інкапсуляції всередині класу необхідно захищати від зовнішнього втручання поля класу. Натомість функції класу необхідно зробити загальнодоступними, адже саме через функції об'єкт класу взаємодіє із зовнішньою програмою.
Для ініціалізації полів об'єктів класів, для цього у С++ є спеціальна функція — конструктор. Розрізняють декілька видів конструкторів: конструктор довільного значення, конструктор за замовчуванням, конструктор копіювання.
Деструктор функція, яка автоматично викликається для звільнення місця з-під об'єкта класу.
Функції: визначення, опис, виклик
Функцію в С++ можна розглядати:
як один з похідних типів даних (поряд з масивами і вказівниками);
як мінімальний виконуваний модуль програми (підпрограму).
Всі функції мають однаковий формат визначення:
<�тип><�ім'я_функції>(<�список_формальних_параметрів>)
<�тіло_функції>,
де <�тип> — тип результату, який повертається функцією; в разі, якщо функція не повертає ніякого значення, її специфікують типом void і називають «порожньою». Найчастіше, це функції, які виводять на екран повідомлення чи виконують деякі зміни параметрів, проте не можуть передати певний результат іншим змінним при виклику.
<�ім'я_функції> — або main для головної функції, або довільний ідентифікатор;
<�список_формальних_параметрів> — або порожній (), або список, кожен елемент якого записується як:
<�тип> <�ім'я_формального_параметру>
Наприклад:
(int k)
(char i, char j, int z)
<�тіло_функції> - це набір операторів, що виконуються у фігурних дужках {} при виклику функції. Тіло функції може бути складовим оператором або блоком. Визначення функцій не можуть бути вкладеними.
Для передачі результату з функції у функцію, що її викликала, використовується оператор return. Його можна використовувати у двох формах:
1) return 0; - завершує функцію, яка не повертає ніякого значення (тобто перед її іменем вказано тип void);
2) return <�вираз>; - повертає значення виразу, тип виразу повинен співпадати з типом функції.
6.3 Мови програмування, на яких написана програма
Способи структуризації програми
Мова С підтримує модульне програмування, суть якого полягає в можливості роздільної компіляції і компоновки різних частин програми. Наприклад, можна виконати компіляцію тільки тієї частини програми, яка була змінена в ході останнього сеансу редагування. Це значно прискорює процес розробки великих і навіть середнього розміру проектів, особливо якщо доводиться працювати на повільних машинах. Якщо б мова С не підтримувала модульне програмування, то після внесення невеликих змін в програмний код довелося б компілювати повністю всю програму, що могло б зайняти дуже багато часу.
Найбільш істотна відмінність C++ від мови С полягає у використанні концепції об'єктно-орієнтованого програмування. Класи є фундаментальною концепцією об'єктно-орієнтованого програмування. Визначення класу включає оголошення всіх полів, можливо, з початковими значеннями, а також описи функцій, призначених для маніпулювання значеннями полів — методів. Об'єкти є змінними типу класу. Кожен об'єкт може містити власні набори закритих і відкритих даних .
Унікальні особливості функцій
Мова C++ дозволяє задавати імена і типи параметрів функції прямо всередині круглих дужок, що слідують за ім'ям функції. Наприклад:
void* vfunc (void *dest, int з, unsigned count)
{…}
Транслятор мови C++ перевірить відповідність фактичних типів значень, переданих у функцію, формальним типам аргументів функції. Також буде перевірена відповідність типу значення типу змінної, якій привласнюється це значення, що повертається.
Перевантаження функцій
У C++ можна використовувати однакові імена для декількох функцій. Звичайно різні функції мають різні імена, але іноді вимагається, щоб одна і та ж функція виконувала схожі дії над об'єктами різних типів. В цьому випадку є зміст визначити декілька функцій з однаковим ім'ям, але різним тілом. Такі функції повинні мати відмінні набори аргументів, щоб компілятор міг розрізняти їх. Не дивлячись на те, що різні функції мають одне ім'я, по типу аргументів компілятор легко зможе визначити, яку версію функції слід викликати у кожному конкретному випадку.
Стандартні значення параметрів функцій
У C++ можна задавати параметрам функцій значення за замовчуванням. У такому випадку при виклику функції можуть бути вказані значення тільки деяких параметрів, тоді як іншим вони будуть призначені автоматично.
Списки аргументів змінного розміру
У C++ за допомогою трьокрапки (…) можуть бути описані функції з невизначеним набором параметрів. Контроль за типами параметрів таких функцій не ведеться, що підвищує гнучкість їх використовування.
Використання посилань на аргументи функцій
За допомогою оператора & можна задати передачу аргументів функції по посиланню, а не по значенню. Наприклад:
void increment (int &variable_reference)
{ variable_reference++; }
Оскільки параметр variable_reference визначений як посилання, його адреса привласнюється адресі змінної i при виклику функції increment (). Остання виконує приріст значення параметра.
Покажчики типу void
У C++ тип void використовується для позначення того, що функція не повертає ніяких значень. Покажчик, що має тип void, може бути привласнений будь-якому іншому покажчику базового типу.
6.4 Засоби обміну даними
C++ має в своєму розпорядженні свій власний файл заголовків IOSTREAM. H, що містить набір засобів введення-виведення, специфічних для цієї мови. Потокове введення-виведення в C++ організовується за допомогою комплекту стандартних класів, що підключаються за допомогою файлу IOSTREAM.H. Ці класи містять перевантажені оператори введення >> і виведення <<, які підтримують роботу з даними різних типів. Щоб краще зрозуміти, чому легше працювати з потоками в C++, давайте пригадаємо, як взагалі в мові С реалізується введення і виведення даних. Перш за все мова С не має вбудованих засобів введення-виведення. Всі функції, такі як printf () або scanf (), надаються через зовнішні бібліотеки, хоча і вважаються стандартними, але не є частиною самої мови. У принципі, це дозволяє гнучко вирішувати проблеми, що виникають в різних додатках. Труднощі з’являються у зв’язку з тим, що подібного роду функцій дуже багато, вони по-різному повертають значення і приймають різні аргументи. Програмісти покладаються головним чином на функції введення-виведення формату printf (), scanf () і їм подібні, особливо якщо доводиться працювати з числами, а не з текстом. Ці функції достатньо універсальні, але часто, через велику кількість різних специфікаторів форматування, стають надто громіздкими і важко читаними. Мова C++ так само не має в своєму розпорядженні вбудованих засобів введення-виведення, але пропонує модульний підхід до рішення даної проблеми, групуючи можливості введення-виведення в двох основних потокових класах: istream — містить засоби введення, ostream — містить засоби виведення. У всіх цих класах реалізовані оператори << і >>, оптимізовані для роботи з конкретними даними. Бібліотека IOSTREAM. H містить також класи, за допомогою яких можна керувати введенням-виведенням даних з файлів: ifstream — породжений від istream і підключає
до програми файл, призначений для введення даних, а ofstream — породжений від ostream і підключає до програми файл, призначений для виведення даних.
6.5 Засоби відладки програми
Команди відладки викликаються з меню Debug. Вбудований відладчик дозволяє покроково виконувати програму, переглядати і змінювати значення змінних та багато іншого.
Точки зупинки застосовуються в програмі при необхідності перервати її виконання в певних місцях. Значення використовування точок зупики полягає у тому, що відладчик не витрачає часу на покрокове виконання програми аж до вказаної точки, після досягнення якої переходить в покроковий режим. Точки зупики найпростіше розставляти за допомогою кнопки Breakpoint панелі інструментів Build. Для цього достатньо встановити курсор на потрібному рядку програми і натиснути кнопкою миші на вказаній кнопці. Якщо ж виділений рядок вже містить точку зупики, то вона буде видалена. При виборі команди Go програма виконуватиметься від поточного місцезнаходження курсора до найближчої точки зупики.
Коли розпочинається процес відладки, з’являється панель інструментів Debug. З безлічі представлених на ній кнопок найчастіше задіюються StepInto і StepOver. У обох випадках програма буде запущена на виконання в покроковому режимі, а в тексті програми виділяється той рядок, який зараз буде виконаний. Відмінності між командами StepInto і StepOver виявляються тільки тоді, коли в програмі зустрічається виклик функції. Якщо вибрати команду StepInto, то відладчик увійде до функції і почне виконувати крок за кроком всі її оператори. При виборі команди StepOver відладчик виконає функцію як єдине ціле і перейде до рядка, наступного за викликом функції. Цю команду зручно застосовувати в тих випадках, коли в програмі робиться звернення до стандартної функції або створеної вами підпрограми, яка вже була протестована.
7. Опис логічної структури
Даний програмний продукт призначений для обчислення заданих інтегралів методом трапецій при заданих межах інтегрування і точності обчислень.
Для функціонування програми необхідна наявність встановленої на комп’ютер операційної системи сімейства Windows, рекомендовано версії ХР або вище.
Дана програма написана мовою програмування С++ і скомпільована за допомогою середовища програмування Borland С++ Builder 6.0.
В основу програми покладено наступна структурна схема:
Схема 2
7.1 Виклик і завантаження програми
Для запуску програми необхідно всього лише запустити вже скомпільований файл формату exe. Після його запуску на екрані комп’ютера з’явиться вікно з виведеними результатами обчислень для трьох інтегралів відповідно до заданих вхідних параметрів.
7.2 Вхідні дані
Вхідні дані визначені одразу в програмі, хоча при незначних змінах програма дозволяє зчитувати дані для обчислення як з клавіатури, так і з файла чи іншого джерела.
Рис. 1
7.3 Вихідні дані
Вихідними даними програми є сформована таблиця результатів обчислення інтегралів відповідно до введених вхідних даних. (Після внесення незначних змін є можливість виводити результати обчислень на інші пристрої)
7.4 Текст програми
//————————————-;
#include
#include
#include
#pragma hdrstop
//————————————-;
#pragma argsused
typedef double (*funct)(int, double); // вказівник на ф-цію з 1 параметром типу
double і повертаючу double
//клас Integral
class Integral
{
public:
funct f;
double eps;
double a, b;
int t1, t2,h;
Integral (funct, double, double, double, int, int, int);
~Integral ();
double MTrap (int);
void PrintRezTrap ();
};
//конструктор Integral
Integral:Integral (funct ff, double e, double aa, double bb, int T0, int T, int
ht)
{
eps=e;
a=aa;
b=bb;
t1=T0;
t2=T;
h=ht;
f=ff;
}
//деструктор Integral
Integral:~Integral ()
{
}
//обчислення і перевірка точності
double Integral: MTrap (int t)
{
int n=1;
double x, h, sn=0, s2n=0, d;
do
{
sn=s2n;
n*=2;
h=(b-a)/n;
s2n=(f (t, a)+f (t, b))/2.0;
x=a+h;
while (x
{
s2n+=f (t, x);
x+=h;
}
s2n*=h;
if (n==2)
d=eps+1;
else
d=fabs (s2n-sn);
}
while (d>eps);
return s2n;
}
//виведення результату
void Integral: PrintRezTrap ()
{
int t=t1;
while (t<=t2)
{
cout<<" t = «<<»; I = «<<
t+=h;
}
}
//————————————————————————;
//нижче описані підінтегральні функції
double f1(int t, double x)
{
double rez=1;
rez=log (cos (x))*cos (2*t*x);
return rez;
}
double f2(int t, double x)
{
int i;
double rez=1;
for (i=0;i
rez*=cos (x);
rez=rez*cos (t*x);
return rez;
}
double f3(int t, double x)
{ const e=2.1 718 281 828;
int i;
double rez=1;
for (i=0;i
rez*=x;
rez*=pow (e,(-t)*x);
return rez;
}
//———————————————;
//головна функція
int main (int argc, char* argv[])
{
cout<<" 1 integral" <
Integral Integ1(f1,0.0001,0.0,1.5707,2,20,2);
Integ1.PrintRezTrap ();
cout<<" 2 integral" <
Integral Integ2(f2,0.0001,0.0,1.5707,1,18,3);
Integ2.PrintRezTrap ();
cout<<" 3 integral" <
Integral Integ3(f3,0.001,1.0,2.0,1,10,1);
Integ3.PrintRezTrap ();
system («pause»);
return 0;
}//—————————————————;
Об'єкт випробувань
Об'єктом випробувань є «ІНТЕГРАЛ».
Дана програма може застосовуватися звичайним користувачем для ефективного та швидкого обчислення інтегралів.
Мета випробувань
Метою проведення випробувань є перевірка коректності роботи програми, виявлення похибок та неточностей.
Вимоги до програми
Вимоги до програми визначаються технічним завданням виданим на кафедрі КСМ. Програмний продукт повинен володіти наступними особливостями:
— цілісність даних;
— достовірність даних;
— зручність інтерфейсу.
Засоби і порядок випробувань
Під час проведення випробувань використовувались наступні технічні засоби:
ЕОМ з наступними характеристиками:
— процесор AMD Athlon II Dual-Core P340 (2.2 ГГц);
— жорсткий диск об'ємом 250 Гб
— оперативна пам’ять — 3 Гб Випробування проводились в такому порядку:
— завантаження програми;
— отримання результатів;
— перевірка відповідності інформації;
7.5 Результати випробувань
Після запуску програми вона автоматично обчислює значення трьох інтегралів і виводить обчислення на екран.
Рис. 2. Вивід даних
Список використаних джерел
1. Бужак Л. Розробка підсистеми аналізу наукової діяльності викладачів і наукових співробітників. // Матеріали студентської наукової конференції, 11−12 травня, 2006. — С. 263−264.
2. Бьерн Страуструп. Язык программирования С++
3. Коплиен Дж. Программирование на С++. Классика CS.-СПб. Питер, 2005.-479 с.
4. Мунтяну Р. П. Програмування мовою С++ Конспект лекцій. Чернівці, Рута 1999.
5. Павловская Т. А. С/С++. Программирование на языке високого уровня. Учебник для ВУЗов, 2003, Питер.
6. Прата C. Язык программирования С++: Лекции и упражнения. Учебник: перев. с англ. — спб ДляСофт, 2003
7. Энго Ф. Как программировать на Delphi 4.0: Пер. с англ. — К.: ДиаСофт, 1999. — 430 с. Керниган, Ричи. Язык C