Словом «задача» называют проблему, которая требует решения. Решение задачи начинается с ее постановки. На этапе постановки задачи в терминах предметной области (физики, экономики, биологии и др.) определяются исходные данные и результаты, которые надо получить.
Следующий этап — формализация задачи. Чаще всего процесс формализации означает перевод задачи на язык математики: формул, уравнений, неравенств, систем уравнений, систем неравенств и т. п.
Подробнее о формализации будет рассказано в разделе, посвященном информационному моделированию (в 11 классе). Некоторые представления об этом вы уже имеете из курса информатики для 7-9 классов.
Решение полученной математической задачи требует знания математики, умения выполнять анализ математической задачи. Такой анализ необходим для того, чтобы построить правильный алгоритм решения, обладающий всеми свойствами алгоритма.
Анализ математической задачи
Пусть в результате формализации некоторой задачи было получено квадратное уравнение: ах 2 + bх + с = 0, где коэффициенты а, Ь, с являются исходными данными. Требуется решить это уравнение, т. е. найти его корни. Проведем анализ этой математической задачи.
Разработка обобщенного плана системы заданий для поэтапного формирования математической грамотности
Рассмотрим различные варианты значений исходных данных, которые приводят к разным результатам для решающего ее алгоритма. Ограничимся только поиском вещественных корней уравнения. Проанализируем все возможные варианты множества значений коэффициентов а, Ь, с:
Построение алгоритма
Построим блок-схему алгоритма решения квадратного уравнения (рис. 3.15), учитывающего все ситуации, описанные в анализе задачи. Здесь вместо слов «да» и «нет» использованы знаки «+» и «—».
Рис. 3.15. Блок-схема алгоритма решения квадратного уравнения
Построенный алгоритм, несомненно, удовлетворяет свойству универсальности по отношению к исходным данным. Запишем этот же алгоритм на учебном Алгоритмическом языке.
Обратите внимание на смещения строк в тексте алгоритма — соблюдается принцип структуризации внешнего вида (§ 13). Повторим его: запись всякой вложенной структуры должна быть смещена на несколько позиций вправо относительно записи внешней структуры, а конструкции одного уровня вложенности записываются на одном вертикальном уровне.
Программирование
Алгоритмический язык (АЯ) — это язык описания алгоритмов с русскими служебными словами. После того как алгоритм записан на АЯ, составление программы на Паскале становится несложной задачей. Основное внимание следует уделять строгому соблюдению синтаксических правил языка. Правило смещения строк в тексте программы то же, что было сформулировано в § 13 для АЯ. Соответствующие друг другу служебные слова Begin и End должны располагаться друг под другом.
Решение задачи на компьютере. Последовательное конструирование алгоритма
Чем больше текст программы, тем больше вероятность совершения ошибок при ее записи и вводе в компьютер. Ошибки, нарушающие правила грамматики языка, называются синтаксическими ошибками. Поиск и устранение синтаксических ошибок в программе называются отладкой. Отладить программу программисту помогает система программирования на данном языке, которая автоматически обнаруживает ошибки и сообщает о них программисту.
Тестирование программы
Тестирование — это этап, на котором экспериментально доказывается правильность алгоритма, заключенного в программе, и работоспособность программы. Тест — это вариант решения задачи с заданными исходными данными, для которых известен результат.
Предварительно должен быть составлен план тестирования. Для ветвящегося алгоритма должны быть протестированы все его ветви. В нашем примере пять ветвей, пять вариантов ответа. Значит, в плане тестирования должно быть не менее пяти вариантов теста.
В таблице 3.5 представлен план тестирования программы Roots и результаты проведенного тестирования.
Таблица 3.5. План и результаты тестирования
Теперь, анализируя результаты тестирования, делаем вывод: правильность алгоритма и работоспособность программы доказаны.
Если какой-то из вариантов теста не дает ожидаемого результата, то в программе есть ошибки. Например, пусть программист ошибочно записал следующие операторы присваивания для вычисления корней:
Результаты всех тестов, кроме 4-го, совпали с ожидаемыми, а в 4-м тесте получилось: х1=4, х2=-6. После этого программист обратит внимание на выражения для вычисления корней и исправит ошибки: либо заменит знак умножения на знак деления, либо заключит в скобки выражение 2*а.
Система основных понятий
Вопросы и задания
- Сформулируйте основные цели этапов алгоритмического решения задачи.
- Проанализируйте задачу решения биквадратного уравнения, составьте алгоритм и напишите программу на Паскале.
Источник: tepka.ru
Пример поэтапной разработки программы решения задачи
Словом «задача» называют проблему, которая требует решения. Решение задачи начинается с ее постановки. На этапе постановки задачи в терминах предметной области (физики, экономики, биологии и др.) определяются исходные данные и результаты, которые надо получить.
Следующий этап — формализация задачи. Чаще всего процесс формализации означает перевод задачи на язык математики: формул, уравнений, неравенств, систем уравнений, систем неравенств и т. п.
Анализ математической задачи
Пусть в результате формализации некоторой задачи было получено квадратное уравнение: ах 2 + bх + с = 0, где коэффициенты а, b, с являются исходными данными. Требуется решить это уравнение, т. е. найти его корни. Проведем анализ этой математической задачи.
Рассмотрим различные варианты значений исходных данных, которые приводят к разным результатам для решающего ее алгоритма. Ограничимся только поиском вещественных корней уравнения.
Проанализируем все возможные варианты множества значений коэффициентов а, b, с:
Построение алгоритма
Построим блок-схему алгоритма решения квадратного уравнения (рис. 3.15), учитывающего все ситуации, описанные в анализе задачи. Здесь вместо слов «да» и «нет» использованы знаки « + » и « — ».
Построенный алгоритм, несомненно, удовлетворяет свойству универсальности по отношению к исходным данным. Запишем этот же алгоритм на учебном Алгоритмическом языке.
Обратите внимание на смещения строк в тексте алгоритма — соблюдается принцип структуризации внешнего вида («Программирование линейных алгоритмов»). Повторим его: запись всякой вложенной структуры должна быть смещена на несколько позиций вправо относительно записи внешней структуры, а конструкции одного уровня вложенности записываются на одном вертикальном уровне.
Программирование
Алгоритмический язык (АЯ) — это язык описания алгоритмов с русскими служебными словами. После того как алгоритм записан на АЯ, составление программы на Паскале становится несложной задачей. Основное внимание следует уделять строгому соблюдению синтаксических правил языка. Правило смещения строк в тексте программы то же, что было сформулировано (в «Программирование линейных алгоритмов») для АЯ. Соответствующие друг другу служебные слова Begin и End должны располагаться друг под другом.
Чем больше текст программы, тем больше вероятность совершения ошибок при ее записи и вводе в компьютер. Ошибки, нарушающие правила грамматики языка, называются синтаксическими ошибками. Поиск и устранение синтаксических ошибок в программе называются отладкой. Отладить программу программисту помогает система программирования на данном языке, которая автоматически обнаруживает ошибки и сообщает о них программисту.
Тестирование программы
Тестирование — это этап, на котором экспериментально доказывается правильность алгоритма, заключенного в программе, и работоспособность программы. Тест — это вариант решения задачи с заданными исходными данными, для которых известен результат.
Предварительно должен быть составлен план тестирования. Для ветвящегося алгоритма должны быть протестированы все его ветви. В нашем примере пять ветвей, пять вариантов ответа. Значит, в плане тестирования должно быть не менее пяти вариантов теста.
В таблице 3.5 представлен план тестирования программы Roots и результаты проведенного тестирования.
Теперь, анализируя результаты тестирования, делаем вывод: правильность алгоритма и работоспособность программы доказаны.
Если какой-то из вариантов теста не дает ожидаемого результата, то в программе есть ошибки. Например, пусть программист ошибочно записал следующие операторы присваивания для вычисления корней:
Результаты всех тестов, кроме 4-го, совпали с ожидаемыми, а в 4-м тесте получилось: х1 = 4, х2 = -6. После этого программист обратит внимание на выражения для вычисления корней и исправит ошибки: либо заменит знак умножения на знак деления, либо заключит в скобки выражение 2*а.
Вопросы и задания
1. Сформулируйте основные цели этапов алгоритмического решения задачи.
2. Проанализируйте задачу решения биквадратного уравнения, составьте алгоритм и напишите программу на Паскале.
Дата добавления: 2020-11-23 ; просмотров: 276 ; Мы поможем в написании вашей работы!
Поделиться с друзьями:
Источник: studopedia.net
Презентация на тему «Пример поэтапной разработки программы решения задач.» 10 класс
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.
Добавить свой комментарий
Аннотация к презентации
Презентация для 10 класса на тему «Пример поэтапной разработки программы решения задач.» по информатике. Состоит из 14 слайдов. Размер файла 0.67 Мб. Каталог презентаций в формате powerpoint. Можно бесплатно скачать материал к себе на компьютер или смотреть его онлайн с анимацией.
Источник: pptcloud.ru