Этапы решения задач на компьютере.
Компьютер (ЭВМ)-это универсальное (многофункциональное) электронно программно – управляемое устройство для хранения, обработки и передачи информации.
Человек использует компьютер для решения самых разнообразных информационных задач : работа с текстами, создание графических изображений, получение справок из базы данных, табличные расчеты, гашения математической задачи, расчет технической конструкции и многое другое. Для их решения в распоряжении пользователя ЭВМ имеется обширное программное обеспечение: системное ПО (ядром которого является операционная система), прикладное ПО (программы, предназначены для пользователя) и системы программирования (средства для создания программ на языках программирования).
Исходя из условия задачи, пользователь решает для себя вопрос о том, каким программным средством он воспользуется. Если в составе доступного прикладного ПО имеется программа, подходящая для решения данной задачи, то пользователь выбирает ее в качестве инструмента (СУБД, табличный процессор, математический пакет и др.). в случае же, если готовым прикладным ПО воспользоваться нельзя, приходится прибегать к программированию на универсальных языках, т. е. выступать в роли программиста.
Принято делить программистов на две категории: системные программисты и прикладные программисты. Системные программисты занимаются разработкой системного программного обеспечения (операционных систем и пр.), систем программирования (трансляторов и пр.), инструментальных средств прикладного ПО (редакторов СУБД и пр.). Прикладные программисты составляют программы для решения практических (прикладных ) задач: технических, экономических, физических и др.
Обсудим технологию решения прикладной задачи на ЭВМ. Часто задача, которую требуется решить, сформулирована не на математическом языке.
Работа по решению прикладной задачи на компьютере проходит через следующие этапы:
· Постановка задачи;
· Математическая формализация;
· Построение алгоритма;
· Составления программы на языке программирования;
· Отладка и тестирование программы;
· Проведение расчетов и анализ полученных результатов.
Эту последовательность называют технологической цепочкой решения задачи на ЭВМ.
В чистом виде программированием, т. е. разработкой алгоритма и программы, здесь является лишь 3-й, 4-й и 5-й этапы. Часто в эту цепочку включают еще один пункт: составление сценария интерфейса (т. е. взаимодействия между пользователем и компьютером во время исполнения программы).
Дадим описание каждого из перечисленных этапов.
Постановка задачи.
На этапе постановке задачи должно быть четко определенно, что дано и что требуется найти. Так, если задача конкретная (например, решить уравнение 2x2+3x+5=0, где коэффициенты уравнения- константы), то под постановкой задачи понимает ответ на два вопроса: какие исходные данные известны и что требуется определить. Если задача обобщенная (например, решить квадратное уравнение ax2+bx+c=0), то при постановке задачи понадобится еще ответ на третий вопрос: какие данные допустимы. Итак, постановка задачи «решить квадратное уравнение ax2+bx+c=0» выглядит следующим образом.
Дано: a, b, c,-коэффициенты уравнения.
Найти: x1, x2- корни уравнения.
Связь: при a=/0 и d=b2-4ac>=0,
Иначе действительных корней нет.
Математическая формализация.
Компьютер решает задачу, выполняя команды нашего алгоритма, выраженные на языке программирования. Но мы знаем, какой вид приняли эти команды, попав в память компьютера. Они имеют вид электрических сигналов, соответствующих двоичному способу кодирования. Поэтому обработка этих сигналов, выполнение требуемых операций происходит в компьютере по законам арифметических действий в двоичной системе счисления и булевой алгебры. Это возможно, если все необходимые для решения задачи действия формализованы, т. е. представлены как математические операции и соотношения между входящими в них переменными. Задача переводится на язык математических формул, управления, отношений. Далеко не всегда эти формулы очевидны. Нередко их приходится выводить самому или отыскивать в специальной литературе. Если решение задачи требует математического описания какого-то реального объекта, явления или процесса, то формализация равносильна получению соответствующей математической модели. В случае большого числа параметров, ограничений, возможных вариантов исходных данных модель явления может иметь очень сложное математическое описание (правда, реальное явление еще более сложно), но если такого описания не будет, то переложить решение задачи на компьютер вряд ли удастся. Поэтому часто построение математической модели требует упрощения требований задачи. Например, для решения квадратного уравнения, когда необходимо получить значения его корней (если они есть), мы можем воспользоваться известными из курса алгебры формулами для x1 и x2. На уроках математики доказывалась правильность метода решения квадратного уравнения путем вычисления по формулам:
Нам уже известно, что этот метод решения дает искомые значения корней при любых доступных значениях исходных данных- коэффициентов A, B, C. Поэтому мы строим алгоритм, основываясь на нем.
Построение алгоритма.
Для этого может быть использован язык блок-схем или какой-нибудь псевдокод, например учебный алгоритмический язык.
Составление алгоритма на языке программирования.
Первые три этапа это работа без компьютера. Дальше следует собственно программирование на определенном языке в определенной системе программирования.
Отладка и тестирование программы.
Под отладкой программы понимается процесс испытания работы программы и исправления обнаруженных при этом ошибок. Обнаружить ошибки, связанные с нарушением правил записи программы на ЯПВУ (синтаксические и семантические ошибки), помогает используемая система программирования. Пользователь получает сообщение об ошибке, исправляет ее и снова повторяет попытку использовать программу.
Проверка на компьютере правильности алгоритма производится с помощью тестов. Тест –это конкретный вариант значений исходных данных, для которого известен ожидаемый результат. Прохождение теста – необходимое условие правильности программы. На тестах проверяется правильность реализации программой запланированного сценария. Например, если это программа решения квадратного уравнения, то нужно проверить ее работоспособность как для варианта значений коэффициентов A, B, C, при которых получается неотрицательный дискриминант D=B2-4AC>=0, так и при таком варианте a, b, c, когда d<0. Анализируя получаемые результаты контрольного расчета, можно сделать вывод о правильности всех предшествующих программированию этапов.
Проведение расчетов и анализ получаемых результатов.
Последний этап –это использование уже разработанной программы для получения искомых результатов. Программы, имеющие большое практическое или научное значение, используется длительное время. Иногда в процессе эксплуатации программы исправляются, дорабатываются.
Билет13
Вопрос2