
4. Сложные циклы
К сложным циклическим относятся задачи, в которых изменяется не
сколько переменных, входящих в одно и тоже выражение, например."
Р = 2cos(ax) + е, где
0,5<а<2,5; Ла=0,3и
- 0 , 4 < х < 3 , 6 ; Лх=0,6.
Здесь с заданным шагом и в заданном интервале изменяется две пе
ременные а и х , и они входят в формулу для вычисления Р.
В таких задачах циклы делятся на внешний и внутренний.
Какой цикл принимать за внешний может быть специально оговорено
в условии задачи. Если это не сделано, как в нашем случае, то выбор делает
ся произвольно.
Выберем переменную а за переменную внешнего цикла, а х за пере-
мешгую внутреннего цикла.
При составлении алгоритма следует помнить, что внешний цикл от
крывается первым, а закрывается последним.
Иными словами, если это представить структурно, то внутренний
цикл должен полиостью располагаться внутри внешнего.
Начало цикла по А
Начало цикла по X
Конец цикла по X
Конец цикла по А
Для реализации этой задачи удобно использовать конструкции Repeat
. until или While ... do ... , поскольку переменные цикла являются вещест
венными.
Порядок вычислений будет следующий: первый раз при Аг4),5 в Р бу
дут последовательно подставляться все значения X (8 значений),
второй раз при А=0,8 в Р будут последовательно подставляться вес
значения X (8 значений),
третий раз при А=1,1 в Р будут последовательно подставляться все
значения X (8 значений),
и т.д.
седьмой раз при А~1,1 в Р будут последовательно подставляться все
значения X (8 значений).
Составим алгоритм и программу решения данной задачи:
PROGRAM N 5 ;
f Начало J
VAR
1 т
P , A , X : R E A L ;
Л.Х
B E G I N
A : - = 0 . 5 ;
*пока а < 2,5
WHILE h<=2.b DO
BEGIN
пока x < 3,6
X:=-0.4;
WHILE X<-3.6 DO
BEGIN
P:=2*COS(A*X)+EXP(l) ;
WRITELN('A=',A:4:1,' X=',X:4:1,
вывод р
' P=',P:10:3);
X:-X+0.6;
( Конец J
END;
A:=A+0.3;
END;
END.
Описание алгоритма:
В блоке 3 организуем внешний цикл по А.
В блоке 4 организуем внутренний цикл по X.
В блоке 5 вычисляем значение Р.
В блоке 6 выводим значения А, X и Р на экран.
Этот блок является последним как во внутреннем, так и во внешнем
циклах.
В этой пр01рамме группа операторов заключенных в операторные
скобки BEGIN...END для каждого оператора WHILE повторяется до тех
пор, пока выполняется условие заданное в этом операторе. Как только усло
вие не выполнится машина переходит на оператор следующий за оператором
end соответствующей операторной скобки.
Перед каждым оператором цикла WHILE переменной цикла при
сваивается ее начальное значение: А:=0.5 и Х:=-0.4.
Перед концом цикла, переменная цикла увеличивается на величину
шага Х:=Х+0.6 и А:=А+0.5.
Примечание. В программе могут быть организованы циклы по трем и
более переменным, но всегда надо помнить о принципе вложенности циклов
Цикл 1 начало
Цикл 2 начало
и т.д.
Цикл 6 начало
Цикл 6 конец
Цикл 2 конец
Цикл 1 конец
Вопросы для самоконтроля
1. Что такое цикл?
2. Какие группы циклов Вы знаете?
3. Что такое параметр цикла?
4. Какие циклические конструкции Вы знаете?
5. В чем разница между конструкциям
FOR...TO...D
и
O и
FOR...DOWNTO...DO?
6. В чем различие между конструкциями REPEAT...TJNT1L и
WHILE...DO?
7. В каких случаях применяются конструкции перечисленные в пунк
те 6?
8. Чем отличается вычисления суммы от вычисления произведения?
9. Что такое сложный цикл?
СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
1. Турбо Паскаль 7.0. К.:Торгово-издательскре бюро BHV, 1996. - 448 с.
2. Нпанешников А., Епанепшиков В. Программирование в среде Turbo Pascal 7.0. - М: Диалог-МИФИ, 1993. - 288 с.
3. Зуев Е.А. Язык программирования Turbo Pascal 6.0. М.: Унитех, 1992.-298 с.
4. Зубов B.C. Программируем на языке TURBO PASCAL (версии 6.0 и
7.0). Изд. 2-е, перераб. и доп. - М.: Информационно-издательский дом
"Фигиг5-1" 1007 » 420 С
5. Марченко А.И., Марченко Л.А. Программирование в среде Borland Pascal 7.0: Под ред. Тарасенко В.П. - К.: ЮНИОР, 1996. - 479 с.
13
6. Мизрохи С В . TURBO PASCAL и объектно-ориентированное про
граммирование. - М: Финансы и статистика, 1992. - 192 с.
Задание для выполнения лабораторной работы
1. Составить алгоритм и программу с простым циклом для задания из
таблицы 1. Предварительно подсчитать количество повторений цикла по со
ответствующей переменной.
2. Составить алгоритм и программу со сложным циклом для задания
из таблицы 1, выбрав значение а из таблицы 2. Подсчитать количество по
вторений циклов.
3. Составить алгоритм и программу для задания 3.
Таблица 1
№
Задание
№.
Задание
вар.
вар.
ех
S = sin p, если а = 0,6;
у =
у , если
,
1
2ах
2
2ах
р= -Ja + lnx;
а = -2,6; 1,2<х<4,
;
6
1 < х < 2; Ах = 0,4
Ах
А = 0,
= 8
0,
v =
v lnx
=
; b
;
= —
=
;
t = х -г, если
4а
3
4
с = е
= ,
е
если
г - Ц1а - х; Й = 1,4;
а =
а 0,8
=
;
0,8 0,4<х<1,6
;
;
- 1 < х < 1 , 6 ; А = 0,3
Ах
А =
х 0,
=
2
0,
у- 1пх + а,Ь= у | а - х
z = 2a-ex'a, если
5
если а - 1,8
6
а=0,3; 0,9<х<1,8
1 < л < 2,5; Ах = 0,3
Ах = 0,2
d = cos(a + х); с = У а + х,
S = t + -[а, если
7
если а = 2,4;
8
t-tglxa-2,4;
1<х<2,6; Ах = 0,4
1,7<х<3; Ах = 0,2
а
z =
z cos(
=
a - х)
-
; у -
- sin(a
a - х),
еа+х
9
10
1
если а
если
=
а
= 1
,
16;
9
6
а = 1,2: Ь 4 < х < 2 Д
0,3
0, <
3 х <
х
< 1
,
18;
8 Ах
;
~ 0,
~ 2
0,
2
Ах = 0,2
14
Таблица 1
№
Задание
№
Задание
вар.
вар.
к = е2+х; р=Ж+1х-х,
т = ax;t = 2cos| — L
11
если а = 1,5;
12
если а - 2,8;
0,5<х<1,8;Ах = 0,3
0,2<х<1,4; Ах = 0,3
1
/ = ctg(ax); к ••
^,если а = 1,72;
а + х
13
14
V I й - x
если а = 2,3;
1 < x < 3,2; Ax = 0,4
0,4<х<1,6; Ах = 0,2
г = лДх; Ь =
& = 21n(a + xY, / =
а + х
x
15
16
если • а = 2,3;
если a = 2,86;
0,4 < х < 1,6; Ах = 0,2
0,1 < x < 1,7; Ax = 0,2
I a
e = Vx -a; / = sin ax,
z = cost ax I ; p=
если а = 2Д;
lnx
2 < х < 4 ; Ах = 0,5
r = р+Ыа, если а = 1,42;
:
# = s i n x - a ; p=x-a;
1,4 < x < 2,8; Ax = ОД
b = cos ax; z = vl + x,
19
k = S + p, если а = 1,7;
20
если a = 2,75;
0,4 < х < 1,9; Ах = 0,2
1,4<х<2,8; Ax = 0,2
/ = ( а + х ) " ; Ь~л1а + х,
J - xl + x
21
/ = -— ,если a = 1,5;
если а — 4,6;
22
Aex In a
2 < х < 4,5; Ах = 0,5
0,5<x<2,5; Ax =0,3
2sin а + 4х - ,
c-ig ax; z = - x | ,
23
т = , если а =. 2,6;
24
ах
если а = 0,46;
0,3<х<2,8; Ах = 0,5
- 0 , 2 < x < l , 8 ; Ax = 0,4
z = 2а- х'
>=ax;
lnx
25
26
если а = 1,25;
"5 x
t -la e , если а = 1,6;
1 о<; <• v < ч A- A v - n i
15
Таблица 1
№
Задание
№
Задание
вар.
вар.
z = cos ах; р = - = ,
? - 1 + х 2 -, если а = 1,7'5;
i~x
27
4 sin
28
3 a
если а = 2,5; •
1,4<х<2,6; Ах = 0,3
0,3 < х < 1,8; х = 0,3
ах'
мл, I
j !•. а+х
a = ~e
/ = ; т = ыа+х,
29
а+х
30
если а — 1,8;
если а = 1,86;
0,4 < х < 1,2; Ах = 0,2
0,4<х<2,6; ЛХ = 0,3
Таблица 2
№
№
Задание
Задание
вар.
вар.
1
- 2 , 6 < Й < 1 , 6 ; Да = 0,4
2
0,5<а<1,5; Да = 0,3
3
1,1<а<2,1; Да = 0,2
4
0,8<а<1,6; Да = 0,2
5
0,8<а<3,6; Да = 0,6
6
0,1<а<0,8; Да = 0,1
7
1,6<а<2,4; Да = 0,3
8
1,8 < а < 3,7; Да = 0,4
9
1,2 < а < 1,5; Да = 0,4
10
0,4 < а < 1,6; Да = 0,3
11
0,5<а<1,5; Да = 0,2
12
1,2<а<2,6; Да = 0,4
13
0 1 2 < а < 1 Д Да = 0,2
14
1,4<а<2,4; Да = 0,3
15
2,1<а<3,8; /кг = 0,4
16
1,1<а<1,6; Да = 0,1
17
1,6<а<2,8; Да = 0,3
18
1,6<а<2,7; Да = 0,2
19
0,9<а<2,5; Да = 0,2
20
1,8<а<2,8; Да = 0,5
21
2,4<а<4,6; Да = 0,5
22
0,5<а<1,5; Да = 0,3
23
1,6<а<2,6; Да = 0,4
24
-1<а<1,7; Да = 0,4
25
-1 < а < 1Д Да = 0,3
26
0,4 < а < 1,7; аа = 0,2
16
Таблица 2
№
№
Задание
Задание
вар.
вар.
27
- 2 < а < 1,8; Ад = 0,6
28
1 < а < 2,5; Ад = 0,5
29
0,4 < а < 1,2; До = 0,2
30
-0,2<а<1,6; Да = 0,3
Задание 3
1. Составить программу ввода 3 коэффициентов квадратного уравне
ния (а,Ь,с) и найти их решение (xl,x2).
2. Вводятся координаты точек на плоскости х и у. Подсчитать коли
чество введенных точек, если признаком завершения ввода является условие
х=1111.
3. Вводить числа до тех пор, пока не встретится отрицательное число.
Найти произведение введенных чисел.
4. Вводится натуральное число N<10. Найти факториал этого числа.
Расчеты выполнять до тех пор, пока не будет введено N=33.
5. Вводится N чисел. Найти среднее арифметическое и среднее гео
метрическое этих чисел.
6. В машину вводятся попарно два положительных числа XI и Х2.
Найти сумму квадратов разности этих чисел. Вычисления производить до
тех пор, пока сумма не превысит число 3500.
7. Вводятся произвольные целые числа. Определить, сколько будет
введено таких чисел, пока не будет введено число 22?
8. Найти сумму натуральных чисел от 4 до 25.
9. Найти произведение нечетных натуральных чисел (1, 3, 5 ...). Вы
числения производить до тех пор, пока произведение не превысит число
42000.
10. Вводятся произвольные числа, до тех пор, пока не будет введено
число 555. Найти сумму и количество введенных чисел.
11. Найти произведение натуральных чисел от 2 до 15.
12. Вводятся отрицательные числа, до тех пор, пока не будет введено
неотрицательное число. Найти среднее арифметическое введённых чисел.
13. Вводятся коэффициенты квадратного уравнения (а,Ь,с). Найти
действительные корни уравнения. Ввод коэффициентов заканчивается когда
любой из введённых коэффициентов будет равен 777.
17
14. Вводятся пары чисел. Найти количество введенных пар, если ввод
заканчивается, когда сумма введённой пары чисел окажется больше 100.
15. Вводятся целые числа до тех пор, пока не встретится число 0.
Подсчитать произведение введенных чисел.
16. Вводятся 15 пар чисел (х,у). Вычислить
15
ы
17. Вводится пять значений натуральных чисел меньше 30. Найти
факториалы введенных чисел.
18. Вводятся произвольные числа до тех пор, пока очередное число не
окажется равным 999. Найти среднее арифметическое этих чисел.
19. Вводятся нары чисел (а,Ь) до тех пор, пока а не окажется равным
66. Вычислить | а - й).
20. Найти произведение и количество нечетных натуральных чисел в
интервале от 3 до 45 включительно.
21. Вводятся числа больше 0 до тех пор, пока очередное число не
окажется больше 15. Найти среднее геометрическое этих чисел.
22. Найти сумму произвольных четных чисел, которые вводятся с
клавиатуры. Ввод прекратить, когда сумма превысит число 3200.
23. Вводятся пара чисел (g,t). Найти произведение сумм этих чисел.
Вычисления производить до тех пор, пока произведение не станет больше
16000.
24. Найти сумму четных натуральных чисел в интервале от 4 до 36
включительно.
25. Вычислить среднее арифметическое нечетных чисел в интервале
от 3 до 25 включительно.
26. Вводятся произвольные числа х. Вычислить^ sinx. Вычисления
производить до тех пор, пока sin x не окажется меньше 0,1.
27. Вводится 10 пар произвольных чисел (а,Ь). Найти произведение
Р=П(а+Ь).
28. Вводятся произвольные числа меньше 40. Вычислять факториалы
этих чисел до тех пор, пока один из них не окажется >42000.
29. Найти сумму четных чисел в интервале от 4 до 36 включительно.
30. Вводятся произвольные целые четные числа. Найти их произведе
ние. Вычисления производить до тех пор, нежа произведение <68000.
18