Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Новая папка / 02 МЕТОДИЧЕСКИЕ УКАЗАНИЯ ЛабРаб ОП та АМ_2.doc
Скачиваний:
3
Добавлен:
28.03.2016
Размер:
294.4 Кб
Скачать

1. Условие задачи:

Даны два вектора (x1,y1) и (x2,y2). Вычислить длины этих векторов и определить, во сколько раз вектор длиннее или короче вектора.

2. Решение задачи в ее предметной области, в данном случае – это высшая математика Если Вы не помните формулу вычисления длины вектора, то в учебнике по высшей математике [1, с. 389] можно обнаружить, что она имеет вид:

(3)

где и проекции вектораa на оси x и y соответственно.

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

(4)

Теперь Вы видите, что нахождение длин векторов труда не составляет и можно переходить к следующему этапу.

Вы должны представить в уме или написать на листе бумаги следующие соотношения:

(a/b) > 1  a длиннее b;

(a/b) = 1  a равно b; (этот случай не рассматриваем)

(a/b) < 1  a короче b.

3. Проводим нисходящую разработку (проектирование) программы методом пошаговой детализации с помощью псевдокода. Воспользуемся примером (рис. 1.1) для получения первой версии алгоритма:

Ввести данные Vectors

Выполнить вычисления Vectors

Вывести результаты Vectors

С учетом требований к «дружественности» интерфейса, псевдокод Вашей программы примет вид:

Вывести на экран приглашение для ввода x1

Ввести x1

. . .

Вывести на экран приглашение для ввода y2

Ввести y2

Вычислить длину вектора

Вычислить длину вектора

Вычислить отношение длины a к b, т.е a/b = ab

ЕСЛИ a/b > 1.0 ТО

Напечатать: «a длиннее b в ab раз»

ИНАЧЕ

Вычислить отношение длины b к a – ab

Напечатать: «a короче b в ab раз»

4. Проектируем структуры данных (их имена и типы). Понятно, что все имена, входящие в (4), нужно описать в программе, т.е. a, x1, y1, b, x2, y2. Кроме того, нам понадобится некоторая переменная, в которой будет храниться отношение a к b. Назовем ее ab. Поскольку все эти величины будут иметь дробную часть, то их тип будет Real.

Значит в разделе описаний программы, назовем ее Vectors, с учетом требований о необходимости обеспечения легкочитаемости программы и размещения необходимых комментариев, поместим следующие описания:

Var

a, { длина вектора a }

x1, { координата x вектора a }

y1, { координата y вектора a }

b, { длина вектора b }

x2, { координата x вектора b }

y2, { координата y вектора b }

ab : Real; { отношение длины вектора a к b }

5. Выполняем структурное программирование с использованием структуры развилка:

BEGIN

ClrScr; { Очищаем экран }

Write(‘Введите координату x1 вектора a = ’);

ReadLn(x1);

Write(‘Введите координату y1 вектора a = ’);

ReadLn(y1);

Write(‘Введите координату x2 вектора b = ’);

ReadLn(x2);

Write(‘Введите координату y2 вектора b = ’);

ReadLn(y2);

a := sqrt(sqr(x1)+ sqr(y1)); {Вычисляем длину вектора a }

b := sqrt(sqr(x2)+ sqr(y2)); {Вычисляем длину вектора b }

ab := a/b; { Вычисляем отношение длины a к b }

if ab > 1.0 then

WrietLn(‘a длиннее b в ’, ab:4:2, ‘ раз’)

else

begin

ab := b/a; { Вычисляем отношение длины b к a }

WriteLn(‘a короче b в ’, ab:4:2, ‘ раз’))

end;

ReadLn

END.

6. Отладка программы. Отладка программы – это процесс поиска и устранения синтаксических ошибок в готовой программе. Обычно отладка предшествует стадии тестирования. В этом пункте необходимо привести скриншот результата работы готовой программы (см. п. 5 Лаб. раб № 1).

7. Тестирование программы. Цель тестирования всякой программы состоит в том, чтобы убедиться, что она решает действительно ту задачу, для которой предназначена, и выдаёт правильный ответ при любых значениях из области решений. Тестовые данные должны обеспечивать проверку всех возможных условий возникновения ошибок. Подготовьте тестовый пример для своей задачи и вычислите конечный результат с помощью калькулятора, имеющегося в среде Windows. Должна быть испытана каждая ветвь алгоритма. Это значит, что если имеются две или три ветви алгоритма, то каждый из возможных путей работы программы необходимо проверить хотя бы по одному разу.

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

1. (0, 9) и (0, 4) – вектор длиннее вектора .

2. (0, 4) и (0, 9) – вектор короче вектора .

Теперь Вам необходимо провести исследование Вашей программы и убедиться, что вычислительный процесс действительно является ветвящимся с помощью дебаггера, то есть отладчика программ (см. п. 7 Лаб. раб № 1). Но, кроме переменной ab Вы должны также исследовать поведение значения условия оператора if-then-else (рис. 2.7, 2.8).

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