Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2205 Прог на ЯВУ Павлов.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
2.91 Mб
Скачать

Выполнение лабораторной работы

Для выполнения работы необходимо:

  • формализовать задачу;

  • разработать алгоритм решения задачи;

  • составить блок-схему алгоритма;

  • выбрать и обосновать представление входных, промежуточных и выходных данных;

  • произвести кодирование;

  • разработать набор тестов, на которых будет проверяться программа;

  • продемонстрировать работу программы на наборе тестов;

  • оформить работу и отчитаться по ней.

Методические указания к выполнению лабораторной работы

Задание

Дано число A >1. Вывести наибольшее из целых чисел K, для которых сумма

1 + 1/2 + ... + 1/K будет меньше A, и саму эту сумму.

Выполнение

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

Этап 1. Формализация. В задаче подсчитывается сумма ряда 1 + 1/2 + ... + 1/K. Например, для К=5 получаем 1+1/2+1/3+1/4+1/5=2,283333. За один раз к сумме ряда прибавляется одно слагаемое, равное 1/K. Переменная К каждый раз увеличивается на единицу.

Подсчитать сумму ряда можно, объявив некоторую переменную sum, присвоив ей в качестве начального значения ноль, а затем увеличивать её в цикле на одно слагаемое.

Использовать цикл с параметрами в этом случае невозможно, поскольку неизвестно количество повторений. Для окончания цикла должно использоваться условие sum<A, что возможно в цикле с предусловием.

Таким образом, приходим к следующему решению: в цикле с предусловием сравниваем значение A с переменной sum и если sum< A, то увеличиваем значение переменной на 1/К, а затем делаем повторное сравнение. Если же в результате сравнения оказывается, что sum >A , выводим в качестве результата значение переменной К ,

уменьшенное на единицу. Уменьшать К на единицу необходимо поскольку условие будет ложным только тогда, когда сумма превысит A.

Этап 2. Декомпозиция. Производим декомпозицию задачи — выделяем действия. Определяем, что для решения задачи необходимо выполнить следующие действия:

1. Ввести переменную А.

2. Установить значение переменной sum=0.

3. Установить значение переменной К =0.

4. Проверяем условие sum<A. Если оно истинно, переходим к действию 5, иначе переходим к действию 7.

5. Увеличиваем К на единицу.

6. Увеличиваем переменную на 1/К и переходим к действию 4.

7. Выводим значение К-1.

Этап 3. Алгоритмизация. Составляем алгоритм решения задачи. Используем для записи алгоритма форму блок-схемы.

Оператору цикла с предусловием можно сопоставить следующую последовательность значков:

Блок-схема алгоритма выглядит следующим образом:

Этап 4. Кодирование. Переводим разработанный алгоритм на язык программирования — составляем программу. Новым в задании является оператор цикла с предусловием. Для него в языках программирования предусмотрены специальные ключевые слова и задается специальная последовательность операторов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]