Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты по Информатике 1 курс 13 группа.docx
Скачиваний:
5
Добавлен:
15.04.2019
Размер:
134.65 Кб
Скачать

Билет 44. Надежность программы. Организация надежного ввода. Средства Паскаля для повышения надежности.

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

Пример.

Задача: вычислить сумму ряда S для заданного х с точностью eps.

Организация надежного ввода:

Способ 1. Анализ аномалий.

Аномалии: abs(x)>=1, eps<=0, eps>=1.

Входная форма описывает однократный последовательный ввод переменных х и eps.

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

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

Способ 2. Надежный ввод.

Правильность данных проверяется при вводе. Данные повторяются до тех пор, пока не введутся правильные данные.

Реализация повторения с использованием цикла:

а) Метод объединения условий.

Этот метод структурирования состоит в объединении нескольких условий выхода из цикла в одно сложное логическое выражение:

repeat

writeln('Введите правильно х, eps');

readln (x,eps)

until (abs(x)<1) and (eps>0) and (eps<1);

Повторяется ввод данных до тех пор, пока не выполнятся одновременно три условия: abs(х)<1 и 0<eps и eps<1.

б) Метод флажка (метод булева признака).

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

Метод состоит в том, что вводится дополнительная переменная-флажок (булева переменная), имеющая два значения, которая управляет циклом: при одном значении переменной цикл продолжается, при другом - завершается.

flag:=true;

repeat

writeln ('Введите правильно x,eps);

readln (x,eps);

if(abs(x)<=1)then

begin

writeln ('Ошибка в x'); flag:=false

end

else

if ((eps<=0) or (eps>=1)) then

begin

writeln ('Ошибка в eps'); flag:=false

end

until flag;

Повторяется ввод данных с детальным анализом правильности х и eps и выводом сообщений об ошибке.

Для завершения цикла используется переменная-флажок flag, которая принимает значения:

flag = true, если данные правильные и flag = false, если данные неправильные.

При flag = true цикл завершается.

Билет 45. Эргономичность программы. Роль структурного программирования в повышении эргономичности.

Эргономичность — в изначальном смысле это эффективность инструмента производства или системы в эргономике (Эргономика — научная дисциплина, комплексно изучающая производственную деятельность человека и ставящая целью её оптимизацию).

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

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

Важнейшими концепциями структурного программирования, направленными на получение качественных программ, являются:

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

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

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

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

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