Классы
Предметы
Важное замечание:

С помощью наших видеоуроков вы сможете:
1. Подготовиться к завтрашнему уроку в школе.
2. Научиться грамотно пользоваться компьютером на домашнем уровне.
3. Понять основные тенденции и логическую основу этой отрасли.

Но если вы хотите стать специалистом, обратитесь к таким сайтам, как Codecademy.com, Teamtreehouse.com, www.piktomir.ru.

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

Если вы специалист и хотите добавить актуальную информацию, снять дополнение к уроку, пишите нам на info@univertv.ru.

Основные этапы решения задач. Тестирование и отладка. Виды ошибок

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

Конспект

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

1. Постановка задачи. Включает в себя:

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

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

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

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

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

3. Построение алгоритма.

Включает в себя:

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

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

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

Включает в себя:

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

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

5. Отладка и тестирование программы. Тестирование программ является одной из составных частей более общего понятия – «отладка программ».

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

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

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

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

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

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

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

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

Составим таблицу с тестовыми коэффициентами и ожидаемыми результатами, а также целью тестирования:

Проверяемый случай

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

Результаты

a

b

c

1

,

2

Корни равны

3

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

4

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

5

Неправильное уравнение, корней нет.

6

Линейное уравнение. Один корень: .

7

,

Таблица 1. Тестирование

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

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

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

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

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

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

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

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

Основные виды ошибок:

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

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

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

Например: неправильное использование оператора из-за непонимания его работы; неправильное описание данных и т. п.

  • синтаксические ошибки;
  • ошибки при выполнении операций;

Например: слишком большое число, деление на ноль, извлечение квадратного корня из отрицательного числа и т. п.

  • ошибки в данных;

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

  • опечатки;
  • ошибки ввода-вывода.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Все эти ошибки обнаруживаются с помощью тестирования.

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

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

 

Список литературы

  1. Угринович Н.Д. Информатика-9. – М.: БИНОМ. Лаборатория знаний, 2012.
  2. Гейн А.Г., Юнерман Н.А. Информатика-9. – М.: Просвещение, 2012.
  3. Соловьёва Л.Ф. Информатика и ИКТ. Учебник для 9 класса. – СПб.: БХВ-Петербург, 2007.

 

Дополнительные рекомендованные ссылки на ресурсы сети Интернет

  1. Интернет-портал «Фестиваль педагогических идей» (Источник).
  2. Интернет-портал «Coolreferat.com» (Источник).
  3. Интернет-портал «5fan.ru» (Источник). 

 

Домашнее задание

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