При решении задачи на компьютере на этапе отладки программы не выполняется

Обновлено: 05.07.2024

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

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

Термин debugging (с англ – отладка) дословно обозначает «вылавливание жучков». Он появился в 1945 г. после случая, когда компьютер «Марк-1» прекратил работу вследствие попадания в его электрические цепи мотылька, который заблокировал одно из реле вычислительной машины.

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

В современных системах программирования (например, Turbo C, Turbo Pascal, Turbo Basic и др.) отладку осуществляет зачастую специальное программное средство – отладчик, который позволяет исследовать внутреннее поведение программы.

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

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

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

Готовые работы на аналогичную тему

Получить выполненную работу или консультацию специалиста по вашему учебному проекту Узнать стоимость

Тест и тестирование

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

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

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

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

Тестовые данные

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

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

Рассмотрим на примере систему тестовых данных для задачи нахождения корней квадратного уравнения ax^2+bx+c=0:

Этапы процесса тестирования

Процесс тестирования зачастую делится на 3 этапа:

  1. Проверка в нормальных условиях – проведение тестирования на основе данных, характерных для реальных условий функционирования программы.
  2. Проверка в экстремальных условиях. В тестовые данные входят граничные значения области изменения входных переменных, воспринимающиеся программой как правильные данные. Типичные примеры таких значений: очень маленькие или очень большие числа; отсутствие данных; граничные объемы данных (например, массив из слишком малого или слишком большого числа элементов).
  3. Проверка в исключительных ситуациях проводится на значениях данных, которые лежат за пределами допустимой области изменений.

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

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

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

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

На втором этапе описательная информационная модель формализуется, т.е. записывается с помощью некоторого формального языка.

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

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

На четвёртом этапе алгоритм записывается на одном из языков программирования. Вы учитесь записывать программы на языке Паскаль.

На пятом этапе осуществляется отладка и тестирование программы. Этап отладки и тестирования также называют компьютерным экспериментом.

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

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

Рассмотрим последовательность прохождения этапов решения задачи на компьютере (см. рис. 2.1) на примере простой задачи.

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

vx - конечная скорость (равна нулю, так как автомобиль остановился);

Требуется найти: sx — расстояние, которое автомобиль пройдёт до полной остановки.

Второй этап. В данной ситуации мы имеем дело с прямолинейным равноускоренным движением тела. Формула для перемещения при этом имеет вид:


Упростим эту формулу с учётом того, что конечная скорость равна нулю:


Третий этап. Представим алгоритм решения задачи в виде блок-схемы:


Четвёртый этап. Запишем данный алгоритм на языке программирования Паскаль:

writeln('Вычисление длины пути торможения автомобиля');

writeln ('До полной остановки автомобиль пройдёт ', s:8:4, ' м.')

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

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

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

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

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Какими слайдами вы могли бы дополнить презентацию?

2. Перечислите основные этапы решения задачи с использованием компьютера.

3. Что происходит на этапе постановки задачи? Что является результатом этого этапа?

4. Что происходит на этапе формализации? Что является результатом этого этапа?

5. Что происходит на этапе алгоритмизации? Что является результатом этого этапа?

6. Что происходит на этапе программирования? Что является результатом этого этапа?

7. Что происходит на этапе компьютерного эксперимента? Что является результатом этого этапа?

8. Какой этап решения задачи на компьютере, по вашему мнению, является наиболее трудоёмким?

9. Как вы считаете, по силам ли одному специалисту реализация всех этапов решения сложной практической задачи? Обоснуйте свою точку зрения.

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

11. Может ли пригодиться в жизни представление об этапах решения задачи с использованием компьютера? Обоснуйте свою точку зрения.

12. Уличный продавец газет получает а рублей с продажи каждой из первых 50 газет. С продажи каждой из последующих газет он получает на 20% больше. Разработайте программу, которая вычислит заработок продавца, если он продаст за день 200 газет. Зафиксируйте свои действия на каждом из этапов решения этой задачи.

13. В аэробусе, вмещающем 160 пассажиров, три четверти мест находятся в салонах экономического класса и одна четверть мест — в салоне бизнес-класса. Стоимость билета в салоне бизнес-класса составляет х рублей, что в два раза выше стоимости билета в салонах экономического класса. Разработайте программу, которая вычислит сумму денег, полученную авиакомпанией от продажи билетов на этот рейс, если известно, что остались нераспроданными а билетов бизнес-класса и b билетов экономического класса. Выделите все этапы решения этой задачи и опишите свои действия на каждом из них.

Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.

Информатика. 9 класса. Босова Л.Л. Оглавление

Ключевые слова:

  • постановка задачи
  • формализация
  • алгоритмизация
  • программирование
  • отладка и тестирование

Этапы решения задачи на компьютере

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

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

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

На втором этапе описательная информационная модель формализуется, т. е. записывается с помощью некоторого формального языка.


Для этого требуется:

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

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

На четвёртом этапе алгоритм записывается на одном из языков программирования. Вы учитесь записывать программы на языке Паскаль.

На пятом этапе осуществляется отладка и тестирование программы. Этап отладки и тестирования также называют компьютерным экспериментом.

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

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

Задача о пути торможения автомобиля

Рассмотрим последовательность прохождения этапов решения задачи на компьютере (см. рис. 2.1) на примере простой задачи.

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

Первый этап.

  • υ0x — начальная скорость;
  • υx — конечная скорость (равна нулю, так как автомобиль остановился);
  • ах — ускорение (равно -5 м/с).

Требуется найти: sx — расстояние, которое автомобиль пройдёт до полной остановки.

Второй этап. В данной ситуации мы имеем дело с прямолинейным равноускоренным движением тела. Формула для перемещения при этом имеет вид:


Упростим эту формулу с учётом того, что конечная скорость равна нулю:


При аx = -5 м/с получим:


Третий этап. Представим алгоритм решения задачи в виде блок-схемы:


Четвёртый этап. Запишем данный алгоритм на языке программирования Паскаль:

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

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

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

САМОЕ ГЛАВНОЕ

Этапы решения задачи с использованием компьютера:1) постановка задачи;
2) формализация;
3) алгоритмизация;
4) программирование;
5) компьютерный эксперимент.Для решения задач на компьютере необходимо владеть языком программирования, обладать знаниями в области информационного моделирования и алгоритмизации.

Вопросы и задания к § 2.1. Решение задач на компьютере

1. Ознакомьтесь с материалами презентации к параграфу, содержащейся в электронном приложении к учебнику. Какими слайдами вы могли бы дополнить презентацию?

Тест по информатике Решение задач на компьютере 9 класс с ответами. Тест включает в себя 2 варианта. В каждом варианте по 6 заданий.

Вариант 1

1. На этапе постановки задачи:

1) определяются входные и выходные данные
2) проверяется правильность выполнения программы
3) строится алгоритм
4) составляется программа

1) значения корней уравнения
2) значения коэффициентов уравнения
3) формула вычисления дискриминанта
4) график квадратичной функции

3. Синтаксические ошибки в программе помогает обна­ружить:

1) операционная система
2) текстовый редактор
3) система программирования
4) разработка специальных тестов

4. На этапе программирования осуществляется:

1) постановка задачи
2) составление программы на алгоритмическом языке
3) отладка и тестирование
4) описание математической модели

5. Выявление и исправление ошибок в программе осу­ществляется на этапе:

1) алгоритмизации
2) программирования
3) формализации
4) отладки и тестирования

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

Вариант 2

1. На этапе программирования:

1) определяются входные и выходные данные
2) проверяется правильность выполнения программы
3) строится алгоритм
4) составляется программа

2. Математическая модель для программы, вычисляющей корни квадратного уравнения:

1) значения корней уравнения
2) значения коэффициентов уравнения
3) формулы вычисления дискриминанта и корней
4) график квадратичной функции

3. О правильности разработанной программы может свидетельствовать:

1) вывод данных на печать
2) соответствие полученных результатов экспериментальным фактам
3) отсутствие синтаксических ошибок
4) любые результаты

4. Компьютерным экспериментом называют этап:

1) постановки задачи
2) составления программы на алгоритмическом языке
3) отладки и тестирования
4) описания математической модели

5. Для построения математической модели необходимо:

1) описать входные и выходные данные
2) построить алгоритм
3) записать алгоритм на одном из языков программи­рования
4) проанализировать объект или процесс и обработать числовые данные

6. Запишите, как называется процесс проверки работоспособности программы и исправления обнаруженных при этом ошибок.

Ответы на тест по информатике Решение задач на компьютере 9 класс
Вариант 1
1-1
2-2
3-3
4-2
5-4
6. тест
Вариант 2
1-4
2-3
3-2
4-3
5-4
6. отладка программы

Читайте также: