Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Основные этапы процесса решения задачи на ПК

При решении на ПК любой задачи можно выделить несколько этапов в работе:

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

Математическая постановка задачи

На этом этапе всем физическим величинам, участвующим в задаче, надо дать математические обозначения. Удобнее всего использовать общепринятые обозначения (h - высота, l - длина, s - площадь и т.д.), но допускается обозначать все величины произвольно, на свое усмотрение. Конечно, чтобы самому не забыть об этих обозначениях, необходимо их записать в связи с самими физическими величинами (это действие можно назвать "распределением памяти", т.к. каждая величина будет храниться в памяти ПК).

Следующее действие - определить так называемый "статус" каждой переменной, т.е. определить, к какой из следующих категорий она относится:

  • исходные данные - эти величины известны из условия задачи;
  • результат - эти величины требуется найти;
  • промежуточные данные - эти величины не известны заранее, но определяются в ходе решения задачи для того, чтобы найти результат.

Следующие действия на этом этапе - надо записать известные ограничения для величин и связи между ними в виде неравенств, формул и уравнений, а также определить условия окончания алгоритма.

Выбор метода решения задачи

Как правило, для большинства задач методы решения уже разработаны, и нередко в нескольких вариантах. Остается только выбрать тот, который больше всего отвечает некоторым требованиям (минимальный объем памяти, минимальная трудоемкость, максимальная эффективность, достаточная точность, допустимая погрешность вычислений и т.д.). В математике, например, известны методы точных вычислений и методы приближенных вычислений (для поиска корней нелинейных уравнений, вычисления определенных интегралов и т.п.).

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

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

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

Если к разработке алгоритма отнестись недостаточно внимательно, то в дальнейшем, на этапе программирования появятся трудности, алгоритм потребует дополнительной доработки, затраты новых усилий и т.п. А на этапе отладки программы может выясниться, что, к сожалению, алгоритм дает ошибки или вообще не выполним, и нужно разработать другой.
Удобнее всего сначала записать алгоритм в виде некоторого общего плана, состоящего из крупных этапов. Затем каждый этап разрабатывается более подробно. Изображать алгоритм целесообразнее всего в виде графической схемы. Необходимо продумать, в какой форме будет вводиться исходная информация для решения задачи, какие нужны промежуточные результаты, определить вид и структуру выходных данных (графики, таблицы и т.п.).

Программирование

Это процесс записи алгоритма на одном из алгоритмических языков программирования. Таких языков существует немало. Наиболее распространены Бейсик, Паскаль, СИ и др.

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

Отладка программы

Это процесс поиска (диагностики) и устранения ошибок в программе путем решения ее на контрольных (тестовых) примерах. Надо подобрать разные наборы исходных данных, чтобы проверить правильность работы программы при всех возможных исходах. Вместе с тем, исходные данные должны быть упрощенными настолько, чтобы на каждом этапе сверить значения промежуточных результатов с результатами ручного просчета. Если решение задачи вручную невозможно или требует больших затрат, то для сравнения можно взять результаты решения, полученные по другому алгоритму.

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

Ошибки программы бывают двух видов:

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

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

  • распечатка значений промежуточных данных, помогает найти ошибки в вычислениях;
  • трассировка программы (trace - след) - вывод номеров операторов по мере их фактического выполнения, дает возможность проследить последовательность выполнения отдельных действий и частей программы;
  • пошаговое выполнение с просмотром содержимого памяти, выполняется с помощью специальной программы - диалогового отладчика;
  • дамп (damp - разгрузка) - вывод содержимого памяти для анализа в определенный момент времени, например, в момент останова программы из-за ошибки.

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

В конце этапа отладки рекомендуется выполнить комплексное тестирование программы на контрольных исходных данных, максимально приближенных к реальным. Цель комплексной отладки - проверить правильность схемы организации программы в целом.

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

Исходные данные, особенно очень объемные, могут быть подготовлены отдельно, на внешнем носителе (на жестком диске или дискете). В этом случае экономится время на их оперативный ввод (например, с клавиатуры).
Если все предыдущие этапы завершились благополучно, то выполнение программы происходит почти автоматически, не требует особых затрат (кроме времени) и может быть проведено человеком (оператором), не принимавшим участия в предварительной работе над задачей.

 

 

Процес розв’язку більшості задач з використанням ЕОМ можна розбити на декілька характерних етапів: постановка задачі, описання алгоритму, запис і трансляція програми, налагодження програми, експлуатація програми.

І етап. Постановка задачі

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

ІІ етап. Описання алгоритму

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

ІІ етап. Описання алгоритму

Після того, як математична модель задачі побудована, необхідно знайти та описати спосіб розв’язку цієї задачі. У найпростішому випадку розв’язок задачі можна одержати у явному вигляді, тобто у вигляді формули, яка пов’язує вхідні дані та результати. Але і тоді, крім знаходження відповідної формули, необхідно вирішити ряд інших технологічних питань, враховуючи те, що задача буде розв’язуватися на ЕОМ. Наприклад, якого типу мають бути вхідні дані, у якому порядку їх вводити до ЕОМ, як і з якою точністю одержати проміжні величини, у якій формі і з якою точністю вивести результати тощо. Тому описання алгоритму – наступний етап розв’язку задачі.

Побудова алгоритму ачі. У найпростішому випадку розв’язок задачі можна одержати у явному вигляді, тобто у вигляді формули, яка пов’язує вхідні дані та результати. Але і тоді, крім знаходження відповідної формули, необхідно вирішити ряд інших технологічних питань, враховуючи те, що задача буде розв’язуватися на ЕОМ. Наприклад, якого типу мають бути вхідні дані, у якому порядку їх вводити до ЕОМ, як і з якою точністю одержати проміжні величини, у якій формі і з якою точністю вивести результати тощо. Тому описання алгоритму – наступний етап розв’язку задачі.

Побудова алгоритму носить творчий характер – кожна нова задача вимагає нових підходів і нових способів розв’язку, але для того, щоб побудувати алгоритм, який можна легко зрозуміти, модифікувати й удосконалити, необхідно дотримуватися певної дисципліни та технології його конструювання.

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

ІІІ етап. Запис і трансляція програми

Якщо алгоритм складено, з погляду на розв’язок задачі на ЕОМ користувачу залишається більш технічна, аніж уватися на ЕОМ. Наприклад, якого типу мають бути вхідні дані, у якому порядку їх вводити до ЕОМ, як і з якою точністю одержати проміжні величини, у якій формі і з якою точністю вивести результати тощо. Тому описання алгоритму – наступний етап розв’язку задачі.

Побудова алгоритму носить творчий характер – кожна нова задача вимагає нових підходів і нових способів розв’язку, але для того, щоб побудувати алгоритм, який можна легко зрозуміти, модифікувати й удосконалити, необхідно дотримуватися певної дисципліни та технології його конструювання.

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

ІІІ етап. Запис і трансляція програми

Якщо алгоритм складено, з погляду на розв’язок задачі на ЕОМ користувачу залишається більш технічна, аніж творча робота. Враховуючи характер задачі необхідно вибрати певну мову програмування для запису програми та записати її текст. Зрозуміло, що користувач повинен володіти потрібним обсягом знань з використання команд (операторів) обраної мови.

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

ІV етап. Налагодження програми

На цьому етапі виявляються можливі помилки, які допущені на попередніх етапах. Синтаксичні помилки у тексті програми автоматично виявляються ще на етапі трансляції і користувач вносить відповідні зміни до тексту. Може статися так, що текст програми записано вірно, а помилка допущена при складанні алгоритму - програма працює, але видає неправильні результати. Якщо ж помилку допущено на етапі постановки задачі, то програма працює правильно, але розв’язує іншу задачу.

Отже, метою налагодження є одержання правильної програми, результатам роботи якої можна було б довіряти.

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

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

V етап. Експлуатація програми

Якщо розроблена програма розрахована на тривалу експлуатацію, розрахована на розв’язання серйозних задач, то необхідно її супроводжувати. Адже протягом використання програми можуть змінитися, наприклад, вимоги до розв’язуваної задачі, операційна система, на базі якої виконується дана програма тощо. Це може вимагати внесення змін до програми, а внесені зміни – нового налагодження програми. Такі роботи виконує розробник програми або група супроводу.

II Способи опису та основні властивості алгоритмів

 

Алгоритмом називається деяка заздалегідь визначена послідовність дій, що дозволяє на підставі наявної інформації отримати потрібний результат. Обов'язковою складовою частиною алгоритму є визначення складу і форми подання вхідної та вихідної інформації.

Алгоритм — це послідовність дій, спрямованих на розв’язання поставленої задачі.

<== предыдущая лекция | следующая лекция ==>
Этапы подготовки и решения задач на компьютере | Та способи зображення
Поделиться с друзьями:


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


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



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




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