Задачи для самостоятельного решения. Лабораторная работа № 7. Операторы цикла

Лабораторная работа № 7. Операторы цикла

Теоретические сведения

Цикл — многократное повторение последовательности действий по некоторому условию. Известны три типа циклических алгоритмических структур: цикл с пред­условием, цикл с постусловием и цикл с параметром. В VBA существуют операторы, реализующие все три типа циклов.

Цикл с предусловием (цикл-пока) — наиболее универсаль­ная циклическая структура. Он организует выполнение операторов, составляющих тело цикла, неизвестное заранее число раз. Реализуется оператором While. Формат оператора:

Do While <условие>

<тело цикла>

Loop

Здесь Do, While, Loop – зарезервированные слова;

<условие> – выражение логического типа;

<тело цикла> – операторы VBA.

Алгоритм работы оператора следующий. Вначале вычисляется значение выражения <условие>. Если <условие> имеет значение True, выполняется <тело цикла>; после чего вычисление значения выражения <условие> повторяется. Если <условие> имеет значение False, оператор прекращает свою работу.

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

Цикл с постусловием (цикл-до) позволяет организовать многократное выполнение операторов, если число повторений заранее неизвестно.

Цикл с постусловием может быть записан в одном из следующих видов:

Do Until <условие>

<тело цикла>

Loop

или

Do

<тело цикла>

Loop Until <условие>

Здесь Do, Until, Loop – зарезервированные слова;

<условие> – выражение логического типа;

<тело цикла> – операторы VBA.

Оператор работает по следующему алгоритму. Вначале выполняется <тело цикла>, после чего вычисляется значение логического выражения <условие>. Если его значение есть False, операторы, образующие <тело цикла>, повторяются. В противном случае оператор завершает свою работу.

То есть выход из цикла осуществляется, если логическое выражение принимает значение True (истина). Поскольку значение логического выражения вычисляется в конце каждого прохождения цикла, тело цикла выполнится хотя бы один раз.

Цикл с параметром (цикл со счетчиком, цикл – для) служит для организации циклов с заранее известным числом повторений.

Синтаксис оператора:

For <параметр> = <начальное значение> To <конечное значение> [Step <шаг>]

<тело цикла>

Next

Здесь For, To, Step, Next – зарезервированные слова VBA;

<параметр> – простая переменная порядкового типа;

<начальное значение> – выражение того же типа что и <параметр>, определяющее начальное значение параметра;

<конечное значение> – выражение того же типа, определяющее конечное зна­чение параметра;

<шаг> – некоторое значение типа <параметр>, задающее, на сколько изменяется значение параметра при каждом проходе цикла;

<тело цикла> – операторы VBA.

Этот оператор организует повторение группы инструкций, образующих <тело цикла>, пока <параметр цикла> изменяется от <начального значения> до <конечного значения> с указанным шагом. Цикл выполняется столько раз, сколько нужно, чтобы <параметр> от <начального значения> достиг <конечного значения>.

При выполнении оператора вначале вычисляется значение выражения <начальное значение> и осуществляется присваивание <параметр> = <начальное значение>. После этого циклически повторяется:

- проверка условия <параметр> <= <конечное значение>, если значение выражения <шаг> задано и имеет положительное значение, или <параметр> >= <конечное значение>, если значение выражения <шаг> задано и имеет отрицательное значение;

- выполнение <тела цикла>;

- изменение значения переменной <параметр> на величину, указанную после слова Step; если <шаг> не указан, он полагается равным 1.

В виде блок-схем эти циклы изображаются следующим образом.

Цикл с предусловием Цикл с постусловием Цикл с параметром

Демонстрационные примеры:

1. Найти сумму десяти случайных чисел.

Напишем программу, воспользовавшись циклами различных видов.

Заметим, что особенностью интерпретатора VBA является то, что значения переменных числовых типов перед выполнением процедуры полагаются равными 0. Поэтому в программе отсутствуют команды присваивания вида: sum1 = 0 и sum2=0.

2. Найти максимальное из n введенных с клавиатуры чисел.

Приведем два варианта решения задачи с использованием циклов разных видов.

Если из текста программ удалить строку: If i = 1 Then Max = k, то программа будет работать корректно только в случае, когда хотя бы одно вводимое число неотрицательно. Это объясняется тем, что начальное значение переменной Max считается равным 0.

3. Найти сумму n первых членов ряда 1, 1/2, 1/3,... 1/n,…

4: Найти сумму всех четных чисел в первой десятке:

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

Задачи для самостоятельного решения

Каждый студент должен решить одну задачу из блока А, две задачи из блока Б, две задачи из блока В, две задачи из блока Г.

А

1. Имеется серия измерений элементов треугольника. Группы элементов пронумерованы. В серии в произвольном порядке могут встречаться такие группы элементов треугольника:
- основание и высота;
- две стороны и угол между ними (угол задан в радианах);
- три стороны.
Разработать программу, которая запрашивает номер группы элементов, вводит соответствующие элементы и вычисляет площадь треугольника. Вычисления прекратить, если в каче­стве номера группы введен 0.

2. Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спорт­смен за 7 дней?

3. Одноклеточная амеба каждые 3 часа делится на 2 клетки. Оп­ределить, сколько амеб будет через 3, б, 9, 12,.... 24 часа.

4. Около стены наклонно стоит палка длиной х м. Один ее конец находится на расстоянии y м от стены. Определить значение синуса угла между палкой и полом для значений y, изме­няющихся от 2 до 3 м с шагом h м.

5. У гусей и кроликов вместе 64 лапы. Сколько могло быть кро­ликов и гусей (указать все сочетания, которые возможны)?

6. Составить алгоритм решения задачи: сколько можно купить быков, коров и телят, платя за быка 10 р., за корову — 5 р., а за теленка — 0,5 р., если на 100 р. надо купить 100 голов скота?

7. Составить программу для проверки утверждения: “Результа­тами вычислений по формуле х2 + х + 17 при 0 < х < 15 явля­ются простые числа”. Все результаты вывести на экран.

8. Составить программу для проверки утверждения: “Результа­тами вычислений по формуле х2 + х + 41 при 0 < х < 40 явля­ются простые числа”. Все результаты вывести на экран.

9. Составить программу – генератор чисел Пифагора а, b, с (с2 = а2 + b2). В основу положить формулы: а = m2 - n2, b = 2m•n, с = m2 + n2 (m, n натуральные, 1 < m < k, 1 < n < k, k данное число). Результат вывести на экран в виде таблицы из пяти столбцов: m, n, а, b, с.

10. Покупатель должен заплатить в кассу S р. У него имеются 1, 2, 5, 10, 50, 100, 500 р. Сколько купюр разного достоинства отдаст покупатель, если он начинает платить с самых круп­ных?

11. Ежемесячная стипендия студента составляет А р., а расходы на проживание превышают стипендию и составляют В р. в месяц. Рост цен ежемесячно увеличивает расходы на 3%. Со­ставьте программу расчета необходимой суммы денег, кото­рую надо единовременно попросить у родителей, чтобы можно было прожить учебный год (10 месяцев), используя только эти деньги и стипендию.

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

13. Составить программу, которая печатает таблицу умножения и сложения натуральных чисел в шестнадцатеричной системе счисления.

14. Найти сумму всех n-значных чисел (1 £ n £ 4).

15. Найти сумму всех n-значных чисел, кратных k (1 £ n £ 4).

16. Покажите, что для всех n = 1, 2, 3, … N
(12+25+... +n5)+(17+27+... +n7)=2 (1 +2+... +n)4.

17. Замените буквы цифрами так, чтобы соотношение оказалось верным (одинаковым буквам соответствуют одинаковые цифры, разным – разные):

ХРУСТ • ГРОХОТ = РРРРРРРРРРР.

18. Составить программу, которая запрашивает пароль (напри­мер, четырехзначное число) до тех пор, пока он не будет пра­вильно введен.

Б

 
   

Составить программу вычисления значений функции F(x) на отрезке [а; b] с шагом h. Результат представить в виде таблицы, первый столбец которой – значения аргумента, вто­рой – соответствующие значения функции:

1. F(x) = х- sinx 2. F(x)=sin2(x)
3. F(x) = 2cosx – 1 4. F(x)=tgx
5. F(x)=ctgx+ 1 6. F(x)=sinx-cosx
7. F(x) = х sinx 8. F(x)=sin +2
9. F(x)=xcos +2 10. F(x)=2sin2x+1
   
   

В

1. Даны два натуральных числа m и n (m £ 9999, n£ 9999). Про­верить, есть ли в записи числа m цифры, одинаковые с цифра­ми в записи числа n.

2. Дано натуральное число n. Проверить, есть ли в записи числа три одинаковые цифры (n < 9999).

3. Даны натуральные числа n, k, m. Проверить, есть ли в записи числа nk цифра m.

4. Найти наибольшую и наименьшую цифры в записи данного натурального числа.

5. Произведение n первых нечетных чисел равно p. Сколько со­множителей взято? Если введенное n не является указанным произведением, сообщить об этом.

6. Найти на отрезке [n;m] натуральное число, имеющее наи­большее количество делителей.

7. Задумано некоторое число x(х < 100). Известны числа k, m, n остатки от деления этого числа на 3, 5, 7. Найти х.

8. Дано натуральное число п. Проверить, будут ли все цифры числа различными.

9. Найти все целые корни уравнения ax3 + bx2 + сх + d = 0, где а, b, с и d заданные целые числа, причем а ¹ 0 и d ¹ 0. Замечание: целыми корнями могут быть только положитель­ные и отрицательные делители коэффициента d.

10. Дано натуральное число n. Поменять порядок следования цифр в этом числе на обратный или сообщить, что это невоз­можно в силу переполнения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: