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

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

Вычислить значение конечной суммы:

.

(3.1)

2. Решение задачи в ее предметной области, в данном случае – это высшая математика. Например, при n = 3 выражение (3.1) будет иметь вид:

.

(3.2)

Здесь Вы должны обратить внимание на то, что каждое последующее слагаемое в (3.2) получается из предыдущего домножением на a предыдущего.

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

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

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

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

С учетом требований к «дружественности» интерфейса, детализация псевдокода Ввести данные Summa дает следующее:

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

Ввести a

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

Ввести n

Детализация псевдокода Выполнить вычисления Summa дает следующее:

power присвоить 1

ЦИКЛ ОТ i=1 ДО n

power умножить на а

к S добавить power

Детализация псевдокода Вывести результаты Summa дает следующее:

Вывести название и содержимое ячейки S

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

BEGIN

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

Write(‘Введите значение a = ’);

ReadLn(a);

Write(‘Введите значение n = ’);

ReadLn(n);

{ Подготовка к циклу }

power := 1; { Начальное значение перед умножением на a }

for i:=1 to n do

begin

power := power*a; { Получаем степень а }

S := S+power; { Суммируем в S }

end;

WriteLn(‘S = ’, S:4:2);

ReadLn

END.

5. Проектируем структуры данных (их имена и типы). Понятно, что все имена, входящие в (3.1), нужно описать в программе, т.е. S, a, i, n. Кроме того, нам понадобится некоторая переменная, в которой будет храниться текущее значение степени a. Назовем ее power. Поскольку S, a, power могут иметь дробную часть, то их тип выбираем Real. Поскольку i – переменная цикла, n – конечное значение, то их тип не может быть Real, а только перечислимым, поэтому выбираем Integer.

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

Var

S, { сумма }

a, { значение a }

power : Real; { текущее значение степени a }

i, { переменная цикла }

n : Integer; { конечное значение цикла }

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

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

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

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

S = 2+22+23 = 14.

Теперь Вам необходимо провести исследование Вашей программы и убедиться, что вычислительный процесс действительно является циклическим с помощью дебаггера, то есть отладчика программ (см. п. 7 Лаб. раб № 1). Здесь Вы должны исследовать поведение переменных S, power, i структуры for-to-do (рис. 3.5).

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