Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Стадії рішення завдань на комп'ютері

ОСНОВИ АЛГОРИТМІЗАЦІЇ І ПРОГРАМУВАННЯ

Рішення завдань комп'ютером включає наступні основні стадії, частина, з якої, здійснюється без участі комп'ютера.

· Постановка задачі:

·збір інформації про задачі;

·формулювання умови задачі;

·визначення кінцевої мети рішення задачі;

·визначення форми видачі результатів;

·опис даних (їх типів, діапазонів величин, структури і тому подібне).

· Аналіз і дослідження задачі, моделі:

·аналіз існуючих аналогів;

·аналіз технічних і програмних засобів;

·розробка математичної моделі;

·розробка структур даних.

· Розробка алгоритму:

·вибір методу проектування алгоритму;

·вибір форми запису алгоритму (блок-схеми, псевдокод і ін.);

·вибір тестів і методу тестування;

·проектування алгоритму.

· Програмування:

·вибір мови програмування;

·уточнення способів організації даних;

·запис алгоритму на вибраній мові програмування.

· Тестування і відладка:

·синтаксична відладка;

·відладка семантики і логічної структури;

·тестові розрахунки і аналіз результатів тестування;

·вдосконалення програми.

· Аналіз результатів рішення задачі і уточнення у разі потреби математичної моделі з повторним виконанням етапів 2 — 5.

· Супровід програми:

·доопрацювання програми для вирішення конкретних завдань;

·складання документації до вирішеного завдання, до математичної моделі, до алгоритму, до програми, до набору тестів, до використання.

Математична модель — це система математичних співвідношень — формул, рівнянь, нерівностей і так далі, що відображають істотні властивості об'єкту або явища.

Щоб описати явище, необхідно виявити найістотніші його властивості, закономірності, внутрішні зв'язки, роль окремих характеристик явища. Виділивши найбільш важливі чинники, можна нехтувати менш істотними.

Звичайно, результати обчислювального експерименту можуть опинитися і не відповідними дійсності, якщо в моделі не будуть враховані якісь важливі сторони дійсності.

Отже, створюючи математичну модель для вирішення завдання, потрібно:

· виділити припущення, на яких грунтуватиметься математична модель;

· визначити, що вважати за початкові дані і результати;

· записати математичні співвідношення, що пов'язують результати з початковими даними.

Відладка програми — це процес пошуку і усунення помилок в програмі, вироблюваний за наслідками її прогону на комп'ютері.

Англійський термін debugging ("відладка") буквально означає "вилов жучків". Термін з'явився в 1945 р., коли один з перших комп'ютерів — "Марк-1" припинив роботу через те, що в його електричні ланцюги потрапив метелик і заблокував своїми останками одна з тисяч реле машини.

У сучасних програмних системах відладка здійснюється часто з використанням спеціальних програмних засобів, званих відладчиками. Ці засоби дозволяють досліджувати внутрішню поведінку програми.

Программа-отладчик зазвичай забезпечує наступні можливості:

·покрокового виконання програми із зупинкою після кожної команди (оператора);

·проглядання поточного значення будь-якою змінною або знаходження значення будь-якого виразу, зокрема, з використанням стандартних функцій; при необхідності можна встановити нове значення змінної;

·установку в програмі "Контрольних крапок", тобто крапок, в яких програма тимчасово припиняє своє виконання, так що можна оцінити проміжні результати, і ін.

При відладці програм важливо пам'ятати наступне:

·на початку процесу відладки треба використовувати прості тестові дані;

·виникаючі утруднення слід чітко розділяти і усувати строго по черзі;

·не потрібно вважати за причину помилок машину, оскільки сучасні машини і транслятори володіють надзвичайно високою надійністю.

Тестування (англ. test — випробування) — це випробування, перевірка правильності роботи програми в цілому, або її складових частин.

Як би не була ретельно відладжена програма, вирішальним етапом, що встановлює її придатність для роботи, є контроль програми за наслідками її виконання на системі тестів. Програму умовно можна вважати за правильну, якщо її запуск для вибраної системи тестових початкових даних у всіх випадках дає правильні результати.Але, як справедливо указував відомий теоретик програмування Е. Дейкстра, тестування може показати лише наявність помилок, але не їх відсутність. Нерідкі випадки, коли нові вхідні дані викликають "відмову" або отримання невірних результатів роботи програми, яка вважалася за повністю відладжену.

Для реалізації методу тестів мають бути виготовлені або заздалегідь відомі еталонні результати.

Тестові дані повинні забезпечити перевірку всіх можливих умов виникнення помилок:

·має бути випробувана кожна гілка алгоритму;

·черговий тестовий прогін повинен контролювати щось таке, що ще не було перевірене на попередніх прогонах;

·перший тест має бути максимально простий, щоб перевірити, чи працює програма взагалі;

·арифметичні операції в тестах повинні гранично спрощуватися для зменшення об'єму обчислень;

·кількості елементів послідовностей, точність для ітераційних обчислень, кількість проходів циклу в тестових прикладах повинні задаватися з міркувань скорочення об'єму обчислень;

·мінімізація обчислень не повинна знижувати надійності контролю;

·тестування має бути цілеспрямованим і систематизованим, оскільки випадковий вибір початкових даних привів би до труднощів у визначенні ручним способом очікуваних результатів; крім того, при випадковому виборі тестових даних можуть виявитися неперевіреними багато ситуацій;

·ускладнення тестових даних повинне відбуватися поступово.

Приклад. Система тестів для завдання знаходження коріння квадратного рівняння
ax2 + bx + з = 0:

Випадок, що перевіряється Коефіцієнти Результати
a b c
d >0     -2 x1 = 1, x2 = - 2
d=0       Коренірівні: x1 = - 1, x2 = - 1
d <0       Дійснихкоренівнема
a=0, b=0, c=0       Всікоефіцієнтирівнінулю. х — будь-яке число.
a=0, b=0, c<>0       Невірне рівняння
a=0, b<>0       Лінійне рівняння. Один корінь: x = - 0,5
a <>0, b <>0, с = 0       x1 = 0, x2 = - 0,5

Відладка і тестування — це два різних і несхожих один на одного етапи:

·при відладці відбувається локалізація і усунення синтаксичних помилок і явних помилок кодування;

·у процесі ж тестування перевіряється працездатність програми, що не містить явних помилок.

<== предыдущая лекция | следующая лекция ==>
 | 
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 384; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.