4354

РЕШЕНИЕ ЗАДАЧ С ПОМОЩЬЮ КОМПЬЮТЕРА

Лекция

Информатика, кибернетика и программирование

РЕШЕНИЕ ЗАДАЧ С ПОМОЩЬЮ КОМПЬЮТЕРА Решение задач с помощью компьютера включает в себя следующие основные этапы, часть из которых осуществляется без участия компьютера.

Русский

2012-11-16

175.69 KB

7 чел.

ËÅÊÖÈÈ

1

РЕШЕНИЕ ЗАДАЧ С ПОМОЩЬЮ КОМПЬЮТЕРА

Решение задач с помощью компьютера включает в себя следующие основные этапы, часть из

которых осуществляется без участия компьютера.

1. Постановка задачи:

сбоp инфоpмации о задаче;

фоpмулиpовка условия задачи;

опpеделение конечных целей pешения задачи;

определение формы выдачи результатов;

описание данных (их типов, диапазонов величин, структуры и т.п. ).

2. Анализ и исследование задачи, модели:

анализ существующих аналогов;

анализ технических и программных средств;

разработка математической модели;

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

3. Разработка алгоритма:

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

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

выбоp тестов и метода тестиpования;

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

4. Пpогpаммиpование:

выбор языка программирования;

уточнение способов организации данных;

запись алгоpитма на выбpанном языке пpогpаммиpования.

5. Тестиpование и отладка:

синтаксическая отладка;

отладка семантики и логической стpуктуpы;

тестовые pасчеты и анализ pезультатов тестиpования;

совершенствование пpогpаммы.

6. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2 - 5.

7. Сопровождение программы:

доработка программы для решения конкретных задач;

составление документации к pешенной задаче, к математической модели, к алгоpитму, к пpогpамме, к набору тестов, к использованию.

Математическая модель

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

роль отдельных характеристик явления. Выделив наиболее важные факторы, можно пренебречь

менее существенными.

Математическая модель — это система математических соотношений — формул, уравнений, неравенств и т.д., отражающих существенные свойства объекта или явления.

Создавая математическую модель для решения задачи, нужно:

выделить предположения, на которых будет основываться математическая модель;

определить, что считать исходными данными и результатами;

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

Отладка и тестирование программы

Отладка программы — это процесс поиска и устранения ошибок в программе, производимый по результатам её прогона на компьютере.

Тестирование — это испытание, проверка правильности работы программы в целом, либо

её составных частей. Отладка и тестирование (англ. test — испытание) — это два четко различимых и непохожих друг на друга этапа:


ËÅÊÖÈÈ

2

При отладке происходит локализация и устранение синтаксических ошибок и явных ошибок

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

ее причину.

В современных программных системах (Turbo Pascal, Turbo C и др.) отладка осуществляется

с использованием специальных программных средств, называемых отладчиками, позволяющими

исследовать внутреннее поведение программы.

Программа-отладчик обычно обеспечивает следующие возможности:

пошаговое исполнение программы с остановкой после каждой команды (оператора);

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

можно установить новое значение переменной;

установку в программе "контрольных точек", т.е. точек, в которых программа временно

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

При отладке программ важно помнить следующее:

в начале процесса отладки надо использовать простые тестовые данные;

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

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

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

всех результатов, которые должна выработать программа на этих данных, в том виде, в котором

их должна выдать программа.

Как бы ни была тщательно отлажена программа, решающим этапом, устанавливающим ее

пригодность для работы, является контроль программы по результатам ее выполнения на системе

тестов.

Программу условно можно считать правильной, если её запуск для выбранной системы тестовых исходных данных во всех случаях дает правильные результаты. Но, как справедливо указывал известный теоретик программирования Э. Дейкстра, тестирование может показать лишь наличие ошибок, но не их отсутствие.

Процесс тестирования можно разделить на три этапа:

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

2. Проверка в экстремальных условиях. Тестовые данные включают граничные значения

области изменения входных переменных, которые должны восприниматься программой

как правильные данные. Типичными примерами таких значений являются очень маленькие или очень большие числа и отсутствие данных. Еще один тип экстремальных

условий — это граничные объемы данных, когда массивы состоят из слишком малого

или слишком большого числа элементов.

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

Поэтому важно получить ответ на следующие вопросы:

Что произойдет, если программе, не рассчитанной на обработку отрицательных и нулевых значений переменных, в результате какой-либо ошибки придется иметь дело как раз

с такими данными?

Как будет вести себя программа, работающая с массивами, если количество их элементов певысит величину, указанную в объявлении массива?

Что произойдет, если числа будут слишком малыми или слишком большими?

Наихудшая ситуация складывается тогда, когда программа воспринимает неверные данные

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

Для реализации метода тестов должны быть изготовлены или заранее известны эталонные

результаты. Вычислять эталонные результаты нужно обязательно до, а не после получения ма-


ËÅÊÖÈÈ

3

шинных результатов. В противном случае имеется опасность невольной подгонки вычисляемых

значений под желаемые, полученные ранее на машине.

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

ошибок:

должна быть испытана каждая ветвь алгоритма;

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

первый тест должен быть максимально прост, чтобы проверить, работает ли программа

вообще;

арифметические операции в тестах должны предельно упрощаться для уменьшения объема вычислений;

количества элементов последовательностей, точность для итерационных вычислений,

количество проходов цикла в тестовых примерах должны задаваться из соображений

сокращения объема вычислений;

минимизация вычислений не должна снижать надежности контроля;

тестирование должно быть целенаправленным и систематизированным, так как случайный выбор исходных данных привел бы к трудностям в определении ручным способом

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

усложнение тестовых данных должно происходить постепенно.

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

Номер

теста

1

2

3

4

5

6

7

Проверяемый

случай

d>0

d=0

d<0

a = 0, b = 0, c = 0

a = 0, b = 0, c 0

a = 0, b 0

a 0, b 0, c = 0

Коэффициенты

a

b

c

1

1

-2

1

2

1

2

1

2

0

0

0

0

0

2

0

2

1

2

1

0

Результаты

x1 = 1, x2 = -2

Корни равны: x1 = -1, x2 = -1

Действительных корней нет

Все коэффициенты равны нулю. x — любое число

Неправильное уравнение

Линейное уравнение; один корень: x = -0.5

x1 = 0, x2 = -0.5

Характерные ошибки программирования

Вид ошибки

Неправильная постановка задачи

Неверный алгоритм

Пример

Правильное решение неверно сформулированной задачи

Выбор алгоритма, приводящего к неточному или эффективному решению задачи

Ошибка анализа

Неполный учет ситуаций, которые могут возникнуть; логические ошибки

Семантические ошибки

Непонимание порядка выполнения оператора

Синтаксические ошибки

Нарушение правил, определяемых языком программирования

Ошибки при выполнении опера- Слишком большое число, деление на ноль, извлечение квадратного

ций

корня из отрицательного числа и т. п.

Ошибки в данных

Неудачное определение возможного диапазона изменения данных

Опечатки

Перепутаны близкие по написанию символы, например, цифра 1 и буквы I, l

Ошибки ввода-вывода

Неверное считывание входных данных, неверное задание форматов

данных

Примеры синтаксических ошибок: пропуск знака пунктуации; несогласованность скобок;

неправильное формирование оператора; неверное образование имен переменных; неверное написание служебных слов; отсутствие условий окончания цикла; отсутствие описания массива и т.п.

Отсутствие сообщений машины о синтаксических ошибках является необходимым , но не

достаточным условием, чтобы считать программу правильной.


ËÅÊÖÈÈ

4

Ошибки не обнаруживаемые транслятором

Существует множество ошибок, которые транслятор выявить не в состоянии, если используемые в программе операторы сформированы верно. Эти ошибки обнаруживаются с помощью

тестирования.

Примеры таких ошибок.

Логические ошибки:

неверное указание ветви алгоритма после проверки некоторого условия;

неполный учет возможных условий;

пропуск в программе одного или более блоков алгоритма.

Ошибки в циклах:

неправильное указание начала цикла;

неправильное указание условий окончания цикла;

неправильное указание числа повторений цикла;

бесконечный цикл.

Ошибки ввода-вывода; ошибки при работе с данными:

неправильное задание тип данных;

организация считывания меньшего или большего объёма данных, чем требуется;

неправильное редактирование данных.

Ошибки в использовании переменных:

использование переменных без указания их начальных значений;

ошибочное указание одной переменной вместо другой.

Ошибки при работе с массивами:

массивы предварительно не обнулены;

массивы неправильно описаны;

индексы следуют в неправильном порядке.

Ошибки арифметических операций:

неверное указание типа переменной (например, целочисленного вместо вещественного);

неверное определение порядка действий;

деление на нуль;

извлечение квадратного корня из отрицательного числа;

потеря значащих разрядов числа.



 

А также другие работы, которые могут Вас заинтересовать

27237. Дайте порівняльну характеристику основних ринкових структур (моделей ринку) 18.7 KB
  Під яку з цих ринкових класифікацій підлягає: комунальне господарство міста метрополітен кабельне TV районна лікарня комерційний банк кавярня перукарня Характерні риси основних типів ринку Чиста конкуренція Монополія Монополістична конкуренція Олігополія Кількість фірм Дуже багато Одна Багато Декілька Тип продукту Однорідний Унікальний немає замінювачів Диференційо ваний Однорідний або стандартизов Контроль за ціною Відсутній Значний Деякий Обмежений взаємозалежи Умови входу і виходу Дуже легкі Заблоковано Досить легкі Істотні...
27238. Охарактеризуйте досконалу (чисту) конкуренцію. В чому полягає специфіка ціноутворення в умовах досконалої конкуренції 14.55 KB
  У другому випадку мінімізує збитки якщо виробляє продукцію. У третьому фірма мінімізує збитки якщо закриває підприємство. Фірма мінімізує свої збитки коли виробляє обсяг продукції за якого загальні витрати перевищують загальний виторг на мінімальну величину. Якщо загальний виторг не перевищує загальних змінних витрат за будьякого обсягу виробництва фірма мінімізує збитки призупинивши виробництво продукту.
27239. Поясніть формування загального (TR), середнього (AR) та граничного (MR) доходу і відобразіть їх графічно 118.37 KB
  Звичайний дохід фірми формується за рахунок грошових надходжень від основної діяльності.Капітальний дохід це дохід фірми від перепродажу виробничих фондів землі майна та фінансових активів.Дивідендний дохід це дохід від акцій інших фірм яким володіє фірма. Основним видом доходу фірми є звичайний дохід.
27240. Обґрунтуйте теоретично, алгебраїчно та графічно правило граничного випуску і правило закриття. Охарактеризуйте механізм їх дії на ринку досконалої конкуренції 39.34 KB
  конкурентної фірми для монополії існують також умова беззбитковості коли і умова закриття коли . Тому правило граничного випускуMR = MC яке ми визначили для конкурентної фірми є універсальною не обхідною умовою максимізації прибутку для всіх типів ринкових структур. Як і для конкурентної фірми для монополії існує закриття .Зясувавши таким чином як зростає доход конкурентної фірми по мірі продажу додаткової одиниці товару можна перейти до розгляду того якими є умови визначення конкурентною фірмою обсягу пропозиції її продукції що...
27241. Виведіть рівновагу конкурентної фірми в короткому періоді при загальному та граничному підходах. За яких умов конкурентна фірма максимізує прибуток 33.33 KB
  Максимізація прибуткуконкурентною фірмою Мета фірми максимізація прибутку. Максимізація прибутку це максимізація різниці між валовим доходом і валовими витратами: ТК ТС. Передбачається що фірма враховує зміни величини витрат у процесі випуску продукції і вибирає той його обсяг який дасть максимум прибутку що і буде відповідати максимальній різниці ТR ТС. Основні підходидо визначеннямаксимізаціі прибутку Сукупнийаналіз використовує зіставлення сукупних величин.
27242. Проаналізуйте наступні варіанти вибору конкурентною фірмою оптимального випуску та оптимальної ціни: а) максимізації прибутку; б) мінімізації збитків; в) випадок незбитковості 32.41 KB
  Якщо ціна не менше від середніх змінних витрат Р =АVС то фірма повинна виробляти оптимальний рівень випуску. графік Максимізації прибутку конкурентною фірмою Максимізація прибутку досягається коли відрізок між TR і ТС найбільший відрізок АВ TR TC обсяг випуску Q. Точки С і D точки критичного обсягу випуску продукції коли ТС = TR.
27243. Виведіть рівновагу на ринку досконалої конкуренції в довгому періоді. Яка умова цієї рівноваги? Як співвідносяться досконала конкуренція та ефективність 31.98 KB
  Вільний вхід і вихід з галузі; 5. Якщо умови діяльності несприятливі для фірми то вона може піти з ринку галузіДосконала конкуренція припускає рівний доступ всіх фірм до ресурсів у тому числі і до технологічної інформації. Тому в довгостроковому періоді кожна фірма може вибрати і реалізувати найефектніший варіант виробництва внаслідок чого криві загальних витрат всіх фірм однієї галузі буде ідентичний і можна говорити що в довгостроковому періоді галузь складається з однакових або типових фірм. Довгострокова крива галузі в цьому...
27244. Охарактеризуйте ознаки і причини існування монополії. Визначте ціну і обсяг виробництва в умовах чистої монополії 15.67 KB
  Визначте ціну і обсяг виробництва в умовах чистої монополії Економічна монополія є найпоширенішою. Коли монополіст вирішує підвищите ціну продукту йому нема чого турбуватися про конкурентів які знизивши ціну можуть захопити більшу частину ринку. Але це не означає що монополіст може призначати ціну яку він захоче. Призначаючи ціну нижче ціниконкуруючих фірм той або інший продавець може розраховувати на деякийзбільшення обсягу продажів.