Современное программирование предлагает пользователям использовать самые разнообразные языки программирования. Но основой основ является Паскаль.Данный язык был разработан в 1971 году в Университете Цюриха профессором Никлаусом Виртом. Его предназначение изначально было учебным. Имея достаточно четко выраженную структуру и систему предоставления данных Паскаль имел ограничения в функциях ввода - вывода, при создании подпрограмм.

Управляющие операторы языка

Тестирование программы

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

Соответственно, хорошим тестом считается обнаруживающий ошибку. Для формирования таких тестов определены 2 стратегии:

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

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

На практике лучше использовать обе стратегии.

Пример: Даны длины треугольника, определить вид треугольника и его площадь.

Задача решается просто: вид треугольника определим сравнивая стороны, а площадь вычислим по формуле Герона. Задание "выполнить контроль вводимых чисел" означает, что программа в случае ввода чисел, которые не могут интерпретироваться как стороны треугольника, должно выдаваться сообщение об ошибках данных. Три числа нельзя интерпретировать как стороны трегуольника, если хотя бы одно из них меньше или равно 0 или сумма двух любых чисел больше третьего.

Схема алгоритма данной программы

Текст программы примет следующий вид:

Program ex;

Var A, B, C, P, S:real;

Begin

Write (`Введите длины сторон треугольника:`)

ReadLn (A, B, C);

if (A<=0) or (B<=0) or (c<=0) then

WriteLn (`Числа должны быть положительными!`)

else

if (A+B<=C) or (A+C<=B) or (B+c<=A) then

WriteLn (`Треугольник с такими сторонами не существует!`)

else

begin

if (A=B) and (B=C) then

WriteLn (`Треугольник равносторонний`)

else

if (A=B) or (A=C) or (B=C) then

WriteLn (`Треугольник равнобедренный`)

P:=(A+B+C)/2

S:=sqrt(P*(P-A)*(P-B)*(P-C))

WriteLn (`Площадь треугольника:`, S:8:2 `единиц.`);

end

End.

В таблице представлен примерный набор тестов для обнаружения ошибок в рассматриваемой программе:

ABCОжидаемый результатОбъект проверки
111Равносторонний, S=0.43Маршрут
223Равнобедренный, S=1.98Маршрут
434Равнобедренный, S=5.56Маршрут
2.52.54Равнобедренный, S=3.00Тип данных и результата
3.142.6Разносторонний, S=4.03Тип данных и результата
000Числа должны быть > 0Недопустимые данные
1-1.51Числа должны быть > 0Недопустимые данные
011Числа должны быть > 0Недопустимые данные
120Числа должны быть > 0Недопустимые данные
843Треугольника не существуетНедопустимые данные
825Треугольника не существуетНедопустимые данные
394Треугольника не существуетНедопустимые данные

Hosted by uCoz