Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
14.05.2015
Размер:
44.03 Кб
Скачать

Лабораторная работа № 3 Технология структурного программирования

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

Задание

  1. Изучить этапы подготовки и реализации программ решения задач.

  2. В соответствие с вариантом, заданным в документе Var03.doc, разработать алгоритм и программу решения задачи.

  3. Оформить отчет о работе по стандартной форме. В раздел "Выполнение" включить:

  • словесную формулировку задачи;

  • формализованную постановку задачи типа "Дано:", "Найти:" (см. пример);

  • контрольный пример для тестирования задачи;

  • блок-схему алгоритма решения задачи (нарисовать вручную);

  • таблицу с тестом алгоритма справа от блок-схемы (нарисовать вручную);

  • листинг программы с комментариями.

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

Учебная информация

Можно выделить следующие основные этапы разработки программы для решения некоторой задачи на ЭВМ:

    1. постановка задачи;

    2. моделирование задачи и подготовка контрольного примера;

    3. формализация задачи;

    4. разработка алгоритма решения задачи;

    5. тестирование алгоритма;

    6. программирование алгоритма;

    7. отладка программы;

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

Этапы с 1-го по 6-й составляют стадию проектирования программы, а 7-й и 8-й - стадию реализации программы.

Пример

Словесная постановка задачи:

Вычислить сумму .

Обозначим искомую сумму как S.

Формальная постановка задачи: дано: n, x; найти S.

Моделирование задачи

Моделирование задачи показывает, что для вычисления суммы можно использовать цикл For-Next, поскольку заранее известно количество слагаемых. Кроме того, не следует вычислять заново факториал для очередного слагаемого: гораздо проще вычислить факториал, опираясь на значение факториала для предыдущего слагаемого. Аналогично организуется чередование знаков слагаемых: введем целую переменную Z=1 и будем в цикле выполнять команду Z=-Z.

Для решения задачи, кроме S, введем следующие величины:

  • F – значение факториала;

  • C – значение числителя;

  • Z – знак слагаемого (+1 или –1).

Контрольный пример: при N=4 и X=3 получим S = -0.125.

Алгоритм решения задачи

N

4

X

3

S

0

Z

1

C

1

F

1

i

1

2

3

4

5

F

1

2

6

24

S

1

-0.5

1

-0.125

Z

-1

1

-1

1

C

3

9

27

81

S

-0.125

Листинг программы

#include <iostream>

using namespace std;

void main() {

double S,C,X;

int i,N,Z,F;

cin>>N>>X;

S=0; Z=1; C=1; F=1;

for (i=1; i<=N; i++) {

F*=i;

S+=Z*C/F;

Z=-Z;

C*=X;

}

cout<<S<<endl;

}

Контрольные вопросы

1. Какова сравнительная трудоемкость (приблизительно и в среднем) отдельных этапов решения задач на ЭВМ?

2. В чем опасность программирования без подготовленного алгоритма решения задачи?

3. Назовите способы моделирования задачи.

4. Каковы цели моделирования задачи?

5. В каких ситуациях тестирование алгоритма вручную весьма трудоемко?

6. Назовите основные приемы разработки надежных программ.

Соседние файлы в папке ПрограммированиеCPP