Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Топ:
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
2019-08-03 | 579 |
5.00
из
|
Заказать работу |
|
|
Цикл с предусловием while (пока условие истинно) | Цикл с постусловием repeat (до истинности условия) |
1) До начала цикла должны быть сделаны начальные установки переменных, управляющих условием цикла, для корректности входа в цикл. | |
2) В теле цикла должны присутствовать операторы,изменяющие переменные условия так,чтобы цикл через некоторое число итераций завершился. | |
3) Цикл работает пока условие истинно | 3) Цикл работает пока условие ложно |
4) Цикл завершается, когда условие становится ложным. | 4) Цикл завершается, когда условие становится истинным. |
5) Цикл может не выполнится н и разу, если исходное значение условия при входе равно false. | 5) Цикл обязательно выполняется как минимум раз. |
6) Если в теле цикла более 1 оператора, то необходим составной оператор. | 6)Независимо от количества операторов в теле цикла использование составного оператора не нужно. |
Цикл со счетчиком for 1) Начальная установка переменной счетчика до заголовка не нужна. 2) Изменение в теле цикла значений переменных из заголовка не допускается 3) Кол-во итераций неизменно и определяется значениями нижней и верхней границ и шага цикла. 4) Нормальный ход работы может быть нарушен оператором goto или процедурами Break и Continue. Цикл может не выполниться ни разу, если шаг цикла будет изменять счетчик от нижней границы в противоположном направлении верхней границы. |
Для наглядности сравнения записи циклов запишем нахождение суммы элементов линейного массива каждым циклом:
s:=0; i:=1; s:=0; i:=1; s:=0;
while i<=n do repeat for i:=1 to n do
|
begin s:=s+a[i]; s:=s+a[i]; s:=s+a[i];
inc(i); inc(i);
end; until i>n;
Возникают ситуации преждевременного выхода из цикла. Для таких случаев в Турбо Паскале существуют процедура BREAK - позволяет досрочно закончить цикл, а процедура CONTINUE -позволяет начать новую итерацию цикла, даже если предыдущая итерация не была завершена.
Разберем несколько задач.
1. Составить алгоритм и его блок-схему вычисления функции:
Y= на промежутке [-20,20] с шагом 0.5
Идея решения:
Необходимо, изменять значение Х от -20 до 20 с шагом 0.5 и вычислять значения У, учитывая, что при х=10 наша функция не существует.
Алгоритм решения:
1. Присвоить Х начальное значение -20
2. Пока Х не более 20 выполнять такие действия:
а) если х не равен 10
то вычисляем у
вывести на экран значения у
иначе выведем на экран «функция не существует»);
|
б) увеличить значение Х
Программа решения:
Program Task1;
var x, y: real;
begin x: = -20; { начальное значение х}
while x<=20 do {пока х не превысил 20}
begin
if x <> 10 then begin {знаменатель не равен 0, вычисляем у}
y: = 2/abs(10-x)+ abs(x-5)
writeln(‘y=’,y,’при х=’, x);
end
else writeln(‘В этой точке функция не сущ-ет’);
x:=x+0.5; {приращение х}
end;
end.
2. Составить алгоритм и его блок-схему вычисления функции:
Y=
на промежутке [-20,20] с шагом 0.5.
Идея решения:
Необходимо пройтись от -20 до 20 с увеличением х на 0.5 с каждым шагом, при этом выполняя проверку, к какому из предложенных промежутков данное значение х принадлежит и вычисляя значение у по соответствующей формуле.
Алгоритм:
1. Присвоить начальное значение х:= -20;
2. пока х<=20 выполняем такие действия
|
а) если х<-10
то у:=2-х
иначе если x<-5 (ведь х уже более -10)
то у:= х-х2
иначе если x<2
то у:=х3
иначе у:= ;
б) вывести значение у;
в) увеличить значение х на 0.5;
Программа имеет вид:
Program Task2;
var x, y: real;
begin x: = -20;
while x<=20 do
begin
if x < - 10 then y: = 2-x
else if x<-5 then y:=x-x*x
else if x<2 then y:=x*x*x
else y:=sqrt(x);
writeln(‘y =’,y,’ при х =’, x);
x:=x+0.5;
end;
End.
Вопросы для самопроверки.
1. Как записывается и исполняется цикл-ДО?
2. Как записывается и исполняется цикл-ПОКА?
3. Какие основные элементы построения циклов, без которых невозможна работа?
4. Как записывается и исполняется цикл-ДЛЯ?
5. Может ли в цикле-ДЛЯ начальное значение быть больше конечного?
6. Может ли в цикле- ДЛЯ использовать шаг?
7. В каких циклах это возможно?
8. Когда используются в циклах операторные скобки?
9. Что такое тело цикла?
10. Можно ли и как заменить команду повторения с параметром другим видом повторения? А наоборот?
11. Является ли оператором цикла:
а) while x<0 do x:=x+0.5;
б) while x<0 do x:=x-100;
в) while 0<y<1 do y:=sqr(y);
г) while a>0 do y:=2*y;
д) while a>b do a:=a-1;b:=b+1;
12. Может ли завершиться выполнение оператора цикла, начало которого выглядит так:
while abs(x)+1>0.793 do...?
13. Для каких начальных значений переменной х завершится выполнение оператора цикла:
а) while x<1.3 do x:=sqr(x);
б) while abs(x)>=1 do x:=x-1;
в) while 2*x>x do x:=x-1;
г) while sqr(x)>= do x:=sin(x)+1.315?
14. Вычисление F=10! описать каждым из трех вариантов оператора цикла.
15. Определить значение переменной s после выполнения следующих
операторов:
а) s:=0; i:=0;
while i<5 do i:=i+1; s:=s+1/i;
б) s:=0; i:=1;
while i>1 do begin s:s+1/i; i:=i-1 end;
в) s:=0; i:=1;
repeat s:=s+1/i; i:=i-1 until i<=1;
г) s:=0;i:=1;
repeat s:=s+1/i;i:=i-1 until i>10;
д) s:=1; n:=1;
for i:=2 to n do s:=s+1/i;
e) s:=1; i:=1;
for i:=10 downto 1 do s:=s+1/i;i:=i-2;
16. Выписать фрагмент программы для решения указанной задачи и обосновать, почему был выбран тот или рой вариант оператора цикла:
|
а) вычислить с-наибольший общий делитель натуральных чисел а и в;
б) найти u-первый отрицательный член последовательности cos(ctg(n)),n=1,2,3,...;
в) вычислить y=cos(1+cos(2+...+cos(39+cos(40)...));
г) вычислить p=(1-1/22)(1-1/32)...(1-1/n2),n>2;
д) вычислить f=1*2*3*...n;
e) вычислить y=sinx +sinx2 +sinx3 +...+sinx30;
Задания.
Вариант 1.
1. Вычислить значения функции
Y =
на промежутке [-2П,2П] с шагом 0,2.
2. Даны натуральные числа n, a1, a2, a3,... an. Определить количество членов ak последовательности a1, a2, a3,..., an, являющихся нечетными числами.
Вариант 2.
1. Вычислить значения функции
y=
на промежутке [-10,10] с шагом 0,5.
2. Даны натуральные числа n, a1, a2, a3,...,an. Определить количество членов последовательности a1, a2, a3,..., an кратных 3 и не кратных 5.
Вариант 3.
1. Вычислить значения функции
y=
на промежутке [-5,5] с шагом 0,2.
2. Даны натуральные числа n, a1, a2, a3,..., an. Определить количество членов последовательности a1, a2, a3,..., an, являющихся квадратами четных чисел.
Вариант 4.
1. Вычислить значения функции
y=
на промежутке [0,4] с шагом 0,5.
2. Даны натуральные числа n, a1, a2, a3,..., an. Определить количество членов последовательности a1, a2, a3,..., an, которые удовлетворяют условию: каждый элемент, начиная со второго является средним арифметическим двух соседних (предыдущего и последующего).
Вариант 5.
1. Вычислить значения функции
y=
на промежутке [-5,10] с шагом 0,5.
2. Даны целые числа n, a1, a2, a3,..., a50. Получить сумму тех чисел данной последовательности, которые кратны 5.
Вариант 6.
1. Вычислить значения функции
y=
на промежутке [-8,8] с шагом 0,3.
2. Даны целые числа a1, a2, a3,...a50. Получить сумму тех чисел данной последовательности, которые нечетные и отрицательные.
Вариант 7.
1. Вычислить значения функции
y=
на промежутке [-10,10] с шагом 0,6.
2. Даны натуральное число N, целые числа a2, a2, a3,..., an. Найти количество и сумму тех членов последовательности, которые делятся на 5 и не делятся на 7.
Вариант 8.
1. Cоставить алгоритм и блок-схему вычисления функции:
|
y=
на промежутке [-10,10] c шагом 1.
2. Даны натуральные числа n, p, целые числа a1, a2, a3,..., an. Получить произведение членов последовательности кратных p.
Вариант 9.
1. Вычислить
на промежутке [-П,П] с шагом П/10.
2. Даны натуральное число N и действительные числа a1, a2, a3,..., an. Получить удвоенную сумму всех положительных членов последовательности.
Вариант 10.
1. Вычислить
на промежутке [-5,5] с шагом 0,5.
2. Даны натуральное число N, действительные числа a1, a2, a3,..., an. В этой последовательности все числа меньшие 2 заменитьКроме того, получить сумму членов, принадлежащих [3,7].
Вариант 11.
1. Вычислить значения функции
на промежутке [-15,15] с шагом 0,5.
2. Даны натуральное число N, действительные числа a1, a2, a3,..., an. Получить наибольшее из этих действительных чисел.
Вариант 12.
1.Вычислить
на промежутке [1,1000] с шагом 1.
Вариант 13.
Напишите в ответе число, которое будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на четырёх языках программирования).
Паскаль |
var a,b,t,M,R:integer; Function F(x:integer):integer; begin F:= 10*x*x-120*abs(x)+320 end; begin a:= -12; b:= 12; M:= a; R:= F(a); for t:= a to b do begin if (F(t) <= R) then begin M:= t; R:= F(t) end end; write(M+9) end. |
Вариант 14.
Определите, какое число будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на четырёх языках):
var a,b,t,M,R:integer; Function F(x:integer):integer; begin F: = 19 * (11 - x) * (11 - x) + 27; end; begin a: = -20; b: = 20; M: = a; R: = F(a); for t: = a to b do begin if (F(t) < R) then begin M: = t; R: = F(t) end end; write(R); end. |
Вариант 15.
Напишите в ответе число, которое будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на четырёх языках).
var a,b,t,M,R:integer; Function F(x:integer):integer; begin F:= (x*x-25)*(x*x-25)+25 end; begin a:= -11; b:= 11; M:= a; R:= F(a); for t:= a to b do begin if (F(t) <= R) then begin M:= t; R:= F(t) end end; write(M+25) end. |
Вариант 16.
Определите, какое число будет напечатано в результате выполнения следующего алгоритма:
var a,b,t,M,R:integer;
Function F(x:integer):integer;
begin
F:= x*x + 6*x + 10;
end;
Begin
a:=-10; b:=10;
M:=a; R:=F(a);
for t:=a to b do begin
if (F(t)> R)then begin
M:=t;
R:=F(t);
end;
end;
write(M);
End.
ОПЕРАТОРЫ ПОВТОРЕНИЯ
7.1. Цель работы:
Закрепление теоретического материала и приобретение практических навыков построения и применения операторов повторения, знать различия в работе различных видов циклов, применение и запись операторов повторения при решении задач и проверка их выполнения на ЭВМ. Формировать творческий подход к решениям задач, развивать дивергентное мышление - различное виденье решения задач.
|
Общие положения.
Разберем несколько задач и их возможные варианты решения.
|
|
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!