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

Лабораторная работа №2. Цикл с постусловием

.docx
Скачиваний:
28
Добавлен:
23.03.2016
Размер:
72.03 Кб
Скачать
  1. Лабораторная работа № 2

    1. Цикл с постусловием

Задание: Выполнить два задания (простой цикл и ряд Тейлора) по вариантам с использованием циклов с постусловием

        1. Теоретический материал

Цикл с постусловием используется в тех случаях, когда заранее известно, что тело цикла повторится, по меньшей мере, один раз. Оператор цикла do..while особенен тем, что условие проверяется после оче­редного выполнения операторов тела цикла и таким образом гарантируется хотя бы однократное выполнение цикла.

Формат записи:

do

{

команды

}

while (условие);

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

Цикл работает следующим образом: выполняется тело цикла (операторы, заключенные между словами do и while), затем проверяется условие цикла, если оно истинно, то тело цикла выполняется вновь, затем проверяется условие, и т. д. Когда условие, наконец, станет ложным, цикла завершится, и далее будет выполняться следующий за циклом оператор.

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

        1. Пример выполнения лабораторной работы

Для примера рассмотрим функцию у=, разложенную в сумме ряда (количество слагаемых n=40). Заметим, что значения s и y при одинаковых значениях x будут приблизительно равными.

В подсчете суммы s можно увидеть закономерность. Например, следующее слагаемое суммы будет выглядеть: . А сумма для n слагаемых можно записать в виде:

Подобную сумму легко посчитать, используя цикл. На каждом шаге цикла к s будет прибавляться новое слагаемое и по окончанию цикла в s будет храниться итоговая сумма всех n слагаемых

Блок-схема решения:

Код программы будет следующим:

double x = 0; // объявляем переменную x для получения от пользователя числа

cout >> “Введите x: ”; cin << x; // запрашиваем у пользователя значение

double y = log(abs(2.0 * sin(x / 2))) * (-1); // высчитываем значение y по полученному значению x

double s = 0; int i = 1; int n = 40; // задаем начальные значения для цикла

do // начинаем цикл

{

s += cos(i * x) / i;// к s прибавляем слагаемое на i-м шаге

i++; // увеличиваем счетчик i на единицу

} while (i <= n);// условие окончания цикла

cout << “y = ” << y << “ s = ” << s; // выводим что получилось на экран

Разбиение задач по вариантам

Вариант

Задание на простой цикл

Задание по рядам Тейлора

1

5

1

2

1

5

3

9

9

4

8

7

5

4

3

6

6

10

7

2

4

8

7

6

9

3

8

10

10

2

11

9

9

12

4

1

13

3

7

14

1

3

15

10

5

16

6

4

17

5

8

18

8

6

19

2

2

20

7

10

21

4

6

22

8

4

23

6

7

24

2

3

25

1

1

26

5

8

27

9

9

28

10

2

29

7

10

30

3

5

Задание на простой цикл

  1. В начале года в банк положили X рублей. Банк начисляет на вклады  0,95% каждый месяц. Начисленные проценты присоединяются к основному вкладу. Напечатать таблицу увеличения суммы вклада по месяцам на год. Сумма вклада вводится с клавиатуры.

  2. Напечатать таблицу перевода температуры из градусов по шкале Цельсия в градусы по шкале Фаренгейта для значений от 15С до 38С с шагом 1С (перевод осуществляется по формуле F = 1,8C+32).

  3. Население 2-х стран в 2014 году равно N1 и N2 человек соответственно. Прирост населения этих стран составляет P1 и P2 % в год соответственно. Население N1 < N2, а P1 > P2. Определить, в каком году население первой страны превзойдет население второй страны.

  4. Ежегодный прирост рыбы в пруду составляет 15%. Запасы рыбы оценены в A тонн. Ежегодный план отлова B тонн. Наименьший запас рыбы, ниже которого запас уже не восстанавливается, составляет С тонн. Составить алгоритм и программу, подсчитывающую, сколько лет можно выдержать заданный план.

  5. В банк сделали 2 вклада – один вклад 100000 рублей под 10% годовых, второй 200000 рублей под 2% годовых. Вывести изменение суммы вкладов по годам до тех пор, пока сумма на первом вкладе не превысит сумму на втором.

  6. Каждый год выпуск продукции увеличивается на А%, а спрос падает на В%. В первый год выпускалось 100 единицы продукции при спросе в 150000. Подсчитать в каком году производство превысит спрос.

  7. Вместимость новой тюрьмы 15000 арестантов. Каждый год количество заключенных прибавляется на 5% и каждые два года убавляется на 6%. Посчитать, в каком году тюрьма заполнится полностью.

  8. В одном банке % вклада составляет 4% в год, в другом банке 6%. В обоих банках открыли по вкладу и внесли туда по 50000 руб. Выводить разницу между вкладами за каждый год до момента, когда эта разница станет большей, чем вклад в одном из банков. Вывести год, когда это произойдет.

  9. Ежегодно вылавливают 50 т. крабов. Воспроизводство составляет 30 тонн в год. Известно, что на 2013 г. в запасах находилось 4500 тонн краба. Вывести статистику запасов за каждый год до момента, когда она станет ниже 50 т.

  10. Ежегодный прирост населения составляет 7%, смертность – 5%. В 2014 году количество населения равнялось 300 000. Выводить ежегодный прирост населения, пока численность населения не удвоится по сравнению с 2014 годом.

        1. Задание по рядам Тейлора

N

Сумма S

n

Функция Y

30

40

40

10

20

30

50

40

40

20