Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ИП 2010-04-04 doc.doc
Скачиваний:
108
Добавлен:
13.05.2015
Размер:
5.96 Mб
Скачать

16.4. Алгоритмы циклической структуры

Часто при решении задач приходится многократно вычислять значение по одним и тем же алгоритмам. Такие многократно повторяемые алгоритмы называются циклами. Различаютциклыс заданныминеизвестным числом повторений. К последним относятся итерационные циклы, характеризующиеся последовательным приближением к искомому значению с заданной точностью.

Для организации цикла необходимо выполнить следующие действия: 1) задать перед циклом начальное значение переменной, изменяющейся в цикле; 2) изменять переменную перед каждым новым повторением цикла; 3) проверять условие окончания или повторения цикла; 4) управлять циклом, т.е. переходить к его началу, если он не закончен, или выходить из него по окончании. Последние три функции выполняются многократно.

Переменная, изменяющаяся в цикле, называется параметром цикла.

Пример.Вычислить и вывести на печать значения функциипри значении х, изменяющемся от 0 до 3 с шагом 0,1.

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

Перед первым выполнением цикла необходимо задать начальное значение аргумента х, равное 0, а затем 31 раз выполнять вычисление и печать значений функции у. При каждом новом выполнении цикла необходимо изменять аргумент на величину шага, равного 0,1. Чтобы процесс не был бесконечным, необходимо задать условия повторения или окончания цикла.

Схема алгоритма приведена на рис.16.4.1, а. На схеме блок 3 вы­пол­ня­ет первую функцию, необходимую для организации цикла, блок 6 ‑ вторую, блок 7 ‑ третью и четвертую. Эта схема получается более ком­пакт­­ной и наглядной, если для ее построения использовать блок цикла (п. 2.4.5), который выполняет все функции, необходимые для организации цикла (рис. 16.4.1, б].

Текст программы варианта “A

Private Sub Command1_Click() ‘процедура решения примера

Dim a As Single, x As Single, y As Single 'объявления переменных

a=Text1.Text‘формирование значенияA

x= 0 ‘присвоение начального значения перменнойX

m:y=a^3/(a^2+x^2) ‘формирование значенияY

Debug.Printy; ‘вывод в окно отладки значения У

x=x+ 0.1 ‘увеличениеXна величину приращения 0.1

Ifx<= 3ThenGoTom‘еслиX<=3, то продолжить вычислениеcметкиM

EndSub‘конец процедуры

Текст программы варианта “Б”

Private Sub Command1_Click() ‘процедура решения примера

Dim a As Single, x As Single, y As Single 'объявления переменных

a=Text1.Text‘формирование значенияA

For x = 0 To 3 Step 0.1 ‘заголовок цикла

y=a^ 3 / (a^ 2 +x^ 2) ‘формирование значенияY

Debug.Printy; ‘вывод в окно отладки значения У

Next‘конец тела цикла

End Sub ‘конец процедуры

Задачи для программирования

  1. Вычислить значения функции , если Х задано массивом, состоящим из 40 элементов.

  2. Вычислить и вывести на печать положительные значения функции у=sin (nx) ‑ cos (n/x) при n = 1, 2, …, 50.

  3. Вычислить значения функции z = xk/k, большие а, если k=1, 2, ….

  4. Вычислить значения функции у = а3/(а2+ х2) при х, изменяющемся от 0 до 3 с шагом 0,1.

  5. Напечатать таблицу значений аргумента х и функции

у(х) = а3/(а2+ х2) при значении х, изменяющихся от 0 до 3 с шагом 0,1.

  1. Составить программу для вычисления значения функции у = при одновременном изменении аргументов t от 2 до 3 с шагом 0,2 и х от 1 до 2 для а = ‑2,1.

  2. Составить программу вычисления n! (1 . 2. 3. 4..... n):

  3. Составить программу, вычисляющую экстремальное значение функции при изменении аргумента х от 0 до 4 с шагом h.

  4. Вычислить:

а) у = (2n ‑1)! = , n >0;

б) у = (2n)! = , n >0;

в) у = n!, n > 0.

  1. Вычислить: у = .

  2. Определить, является ли заданное натуральное число со­вер­шен­ным, т.е. равным сумме всех своих делителей, кроме самого этого числа (на­­пример, число 6 совершенно: 6=1+2+3).

  3. Дано целое n >2. Напечатать простые числа из диапазона [2, n].

  4. Найти сумму цифр заданного натурального числа.

  5. Вычислить k ‑ количество точек с целочисленными коорди­на­та­ми, попадающих в круг радиуса R (R>0) с центром в начале координат.

  6. Напечатать в возрастающем порядке все трехзначные числа, в де­­сятичной записи которых нет одинаковых цифр.

2

3

4

5

6

7

8

Начало

Конец

а

y

x = x+0,1

x  3

ДА

НЕТ

y = a3/(a2+x2)

1

2

1

4

5

6

3

Начало

Конец

а

y

y = a3/(a2+x2)

x=0

Рис. 16.4.1. Блок‑схема алгоритма

For x = 0 to 3 step 0.1

а)

б)

X>3

  1. Даны целое n и вещественные числа Рассматривая парыкак координаты точек на плоскости, определить радиус наименьшего круга (с центром в начале координат), внутрь которого попадают все эти точки.

  2. Напечатать все простые делители натурального числа.

18. Уравнение (предложена М.В. Дякиным).

Дана последовательность , ‑ натуральное число. Квадратные скобкиобозначают в формуле взятие целой части (округление до ближайшего меньшего целого числа). Обозначим .

Написать программу, которая для заданного натурального решает уравнение,

где - обозначение числа- факториал:.

Программа должна найти и сообщить:

1) точное значение xв виде несократимой дроби;

2) сумму цифр числителя и сумму цифр знаменателя этой дроби.

Образец вывода результата:

Число 6, числитель дроби X=10, знаменатель дробиX=63.

Сумма цифр числителя =1, сумма цифр знаменателя =9.

19. ЗадачаКучи и яма” (предложена А.Б. Дернятиным).

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

Образец вывода результатов:

К1=150001 К2=81234 Я=70000 было

К1=150001 К2=11234 Я=140000 в яму из кучи 2‑й

К1=10001 К2=11234 Я=280000 в яму из кучи 1‑й

20. Представления натурального числа (предложена Д.Я.Шараевым).

Известно, что любое натуральное число N(0<N1000) может быть пред­­ста­вле­но в виде суммы квадратов не более четырех поло­жи­тель­ных целых чисел. Составьте программу, которая в ответ на ввод числаNвы­водит ко­ли­чествоSвсех различных представлений этого числа. Пред­­став­ления, отличающиеся лишь порядком слагаемых, считаются одинаковыми.

Пример.N=4.S=2. (12+12+12+12=4, 22=4)

21. Задача “Многоугольник” (предложена Н.Ю. Лукояновым).

На плоскости декартовыми координатами своих вершин дан вы­пук­лый -угольник. Его вершины пронумерованы от 1 доnв порядке следо­ва­ния против часовой стрелки. Задан номер. Требуется провести че­рез-вершину-угольника два луча (назовем ихaиb) так, чтобы эти лучи делили-угольник на три равновеликие по площади части.

Входные данные: - число вершин; (х1,y1), (x2,y2), … , (xn,yn) - координаты 1-й, 2-й, и т.д.-й вершины соответственно;- номер выделенной вершины.

Выходные величины: координаты (ха,ya) и (xb,yb) точек пересечения лучейaиbс границей-угольника.