<<
>>

6.3. Проверка программ на ЭВМ

В экзаменационных задачах и заданиях проверка правильности составленных программ проводится на ЭВМ путем их испытания на специально подбираемых тестах. Эта работа проводится препода­вателями или экзаменаторами по завершении отладки программ на ЭВМ.

Напомним два основных определения, на которых базируется оценка правильности программ по результатам их тестирования:

1) программа объявляется содержащей ошибки, если можно ука­зать тесты, при которых выполнение программы на ЭВМ приводит к отказу, сбою или получению неправильных результатов;

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

Напомним два дополнительных, но весьма существенных опре­деления допустимости исходных данных:

1) исходные данные считаются допустимыми, если для этих данных существует решение поставленных задач;

2) исходные данные недопустимы, если для этих данных постав­ленная задача не имеет решений.

Наконец правильность результатов решения регламентируется следующими двумя определениями:

1) результаты решения правильные, если они соответствуют требованиям поставленной задачи;

2) результаты решения неправильные, если они противоречат требованиям поставленной задачи.

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

1) проверка частных случаев задачи;

2) проверка основных случаев задачи;

3) проверка граничных случаев.

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

Разбор этих понятий проведем на примере типичной экзамена­ционной задачи по информатике.

Задача. «Средняя зарплата».

Среди N сотрудников отдела выделить тех, кто получает зарплату выше средней по данным из следующей таблицы:

Иванов начальник 2500
Петров сотрудник 1800
Сидоров секретарь 900

Типичность этой задачи заключается в том, что она является одной из задач обработки данных, представленных в нашем случае таблицей. Частным случаем в этой задаче является таблица, состо­ящая из одной строки (случай N = 1). Граничным случаем - ситу­ация, когда все сотрудники получают одинаковую зарплату и никто из них не получает зарплату выше средней.

Типичными ошибками в программах решения этой задачи может быть отсутствие обработки частного случая, когда N = 1, либо отсутст­вие ответа на граничную ситуацию, когда все получают одинаковую зарплату.

Приведем примеры тестов, применявшихся при проверке на ЭВМ правильности программ решения этой задачи:

1) тест1 (проверка основного случая):

Иванов начальник 2500
Сидоров секретарь 900

2) тест2 (проверка частного случая):

Иванов начальник 2500

3) тест3 (проверка граничных ситуаций):

Иванов начальник 2000
Петров сотрудник 2000

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

Правильными ответами с точностью до формулировок в этой задаче являются:

ответ1 (основной случай):

Иванов начальник 2500

ответ2 (частный случай):

«никто не получает зарплату выше средней»

ответ3 (граничный случай):

«никто не получает зарплату выше средней»

Приведем правильное решение поставленной задачи в форме про­граммы на языке Basic, в которой исходные данные записываются в списке операторов data.

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

Сценарий

список сотрудников:

*

… … …

средняя з/плата =

з/плата выше средней:

*

… … …

не получает никто

Программа Алгоритм

' выше средней з/платы алг «выше средней з/платы

сls нач

? «сотрудники:» вывод «сотрудники:»

do цикл

read fm$, dl$, zp чтение fm$, dl$, zp

if fm$=«» then exit do если fm$=«» то выход

? fm$, dl$, zp вывод fm$, dl$, zp

sum = sum + zp sum = sum + zp

n = n + 1 n = n + 1

loop кцикл

sr = sum/n sr = sum/n

? «средняя з/плата=»; sr вывод («средняя 3/nлama=»;sr)

? «з/плата выше средней:» вывод(«з/плата выше средней:»)

restore zplts перезагрузка данных

ns = 0 ns = 0

for k = 1 to n от k = 1 до п

read fm$, dl$, zp чтение fm$, dl$, zp

if zp > sr then если zp > sr то

? fni$, zp вывод (fm$, zp)

ns = ns + 1 ns = ns + 1

end if кесли

next k кцикл

if ns = 0 then если ns = 0 то

? «нe получает никто» вывод («не получает никто»)

end if кесли

end кон

zplts: 'данные о зарплате:

data «Иванов», «начальник», 250000

data «Сидоров», «секретарь», 90000

data «», «», 0

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

1) хорошо организованный вывод результатов, совмещенный с выводом исходных данных (свойства, заложенные в сценарий);

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

3) удобная организация исходных данных в тексте программы, позволяющая упростить процедуру тестирования и отладки программы на ЭВМ.

Экзаменационные задачи ГУУ

(Государственный университет управления)

Задача 1

Каждое из N фермерских хозяйств представило свой перечень из М машин разных наименований (марок) на их приобретение в единст­венном экземпляре (N и М заданы). Составить общий перечень необходимых марок машин с указанием их количества, расположив марки в порядке убывания потребности в них.

Задача 2

N сотрудников (известны фамилии) работают в две смены по инди­видуальному графику (1-й день - «утро», 2-й день - «вечер», 3-й день - «выходной»). Все они в свое нерабочее время должны пройти диспансеризацию в медпункте, который работает ежедневно в две смены. В день начала диспансеризации о каждом сотруднике известно в какую смену он работает или то, что он выходной. Со­ставить ежедневные списки посещения сотрудниками медпункта с указанием времени посещения («утро» и «вечер»), учитывая, что в каждой смене медпункта могут быть приняты не более М человек и каждый сотрудник должен посетить медпункт один раз. Числа N и М заданы.

Задача 3

На кинофестивале 35 стран представили свои фильмы. Общее число фильмов не превышает 100. Известны названия стран - участ­ниц и фильмов, а также баллы, полученные каждым из фильмов. Определить фильм, завоевавший первый приз (максимальный балл) и страну, получившую наибольший средний балл за представленные фильмы. Считать, что фильмы в общем списке по странам не упоря­дочены, а фильм и страна, его представляющая, является единствен­ными победителями.

Задача 4

Известны очки, полученные каждым из М спортсменов-много­борцев в каждом из N видов соревнований (N и М заданы). Для каждого из спортсменов определить, в каких видах соревнований он получил результат не хуже других спортсменов и какой конкретно. Фамилия спортсменов и названия видов соревнований известны.

Задача 5

Даны сведения о соревновании N фигуристов ( N - заданное число): фамилия, наименование спортивного общества, 10 оценок за выступление. Требуется по каждому спортивному обществу опре­делить фигуриста, показавшего наивысший результат, считая его единственным. Баллы, полученные фигуристом, подсчитываются следующим образом: максимальная и минимальная оценки отбра­сываются, а из остальных формируется средняя.

<< | >>
Источник: В.А. КАЙМИН. ИНФОРМАТИКА. 2001

Еще по теме 6.3. Проверка программ на ЭВМ:

  1. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ
  2. 3. Использование программ для ЭВМ, баз данных и топологий ИМС третьими лицами
  3. § 6. Авторско-правовая охрана программ для ЭВМ, баз данных и топологий интегральных микросхем
  4. 1. Понятие программы для ЭВМ, базы данных и топологии интегральной микросхемы и основные правила их охраны
  5. 12.2.2. Правовое регулирование информационных отношений при производстве и распространении программ для ЭВМ и баз данных
  6. Проверка содержательности и достоверности информации является более сложным делом и требует другого аппарата и других методов проверки.
  7. Н.В.СТРУМПЭ, В.Д.СИДОРОВ. АППАРАТНОЕ ОБЕСПЕЧЕНИЕ ЭВМ, 2014
  8. В.Д.СИДОРОВ, Н.В.СТРУМП. АППАРАТНОЕ ОБЕСПЕЧЕНИЕ ЭВМ, 2014
  9. 14.2. Реализация моделей клеточных автоматов на ЭВМ
  10. Программа Да и программа Нет
  11. 12.5. Тактика проверки показаний на месте
  12. Статья 162. Аудиторская проверка
  13. § 10. Психология проверки показаний на месте