Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Арифметические циклы




Вопросы для проверки знаний.

1. Какие виды вычислений называют циклическими?

2. Какие группы операторов называют циклами?

3. Что называют “телом цикла”, “итерацией”?

4. Какие существуют два вида циклов в Паскале?

5. Назовите разновидности арифметических циклов в Паскале.

6. Что называют управляющей переменной или параметром цикла?

7. Назовите разновидности итерационных циклов в Паскале.

В данных циклах для задания итераций используется управляющая переменная (параметр цикла), которая может автоматически изменяться на (+1) или (-1) и по которой проверяется условие выполнения цикла.

В разновидности арифметического цикла с возрастанием параметра синтаксис имеет вид:

for переменная:= значение 1 to значение 2 do оператор

При убывании параметра синтаксис арифметического цикла следующий:

for переменная:= значение 1 downto значение 2 do оператор

Переменная - параметр цикла (переменная), начальное и конечное значения (значение 1, значение 2) должны иметь порядковый тип. Со словом to, значение переменной цикла увеличивается на 1 при каждой итерации цикла. Со словом downto, значение переменной цикла уменьшается на 1 при каждой итерации цикла. Изменять значение управляющей переменной внутри цикла не рекомендуется. В синтаксисе арифметического цикла заложена проверка логического условия окончания цикла. Блок-схема арифметического цикла с возрастанием управляющей переменной (со словом to) приведена на рис.6.2. Логика цикла с убыванием управляющей переменной (со словом downto) отличается тем, что переменная на каждом шаге изменяется на (-1) и в проверка завершения цикла неравенство направлено в обратную сторону.

Рис.6.2. Блок-схема арифметического цикла с возрастанием управляющей переменной

Оператор for вызывает оператор, находящийся после слова do, по одному разу для каждого значения в диапазоне от значения 1 до значения 2. Если при возрастании переменной значение 1 больше значения 2, то цикл выполняться не будет. Аналогичная ситуация при убывании переменной, когда значение 1 меньше значения 2. Если после do требуется выполнить группу операторов, их обязательно нужно поместить в составной оператор.

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

Примеры 1 применения арифметического цикла:

1) for i:=5 to 9 do WriteLn(2*i+3); {Расчет и вывод значений формулы (2 i +3) при целых 5£ i £9}

2) for ch:='A' to 'Z' do Writeln(ch); {Вывод всех букв латинского алфавита "в столбик"}

3) S:=0;for i:=1 to n do S:=S+1/i; {Расчет суммы первых n членов гармонического ряда}

4) for i:=10 downto -10 do WriteLn(2*i); {Вывод на экран всех целых четных чисел, убывающих от 2*10=20 до -2*10=-20}

5) for i:=0 to 10 do begin {Применение составного оператора в теле цикла}

y:=i*i+i+1;

WriteLn('f(',i,')=',y);

end;

Рассмотрим также пример типовой задачи, которая решается с помощью оператора арифметического цикла.

Пример 2. С использованием арифметического цикла написать программу, которая определяет для функции f (x) = x 3- 3 x 2 x + 3 на отрезке [-2;3] экстремумы: точку минимума (imin, min = f (imin)) и максимума (imax, max = f (imax)) с целочисленными значениями imin и imax аргумента х.

Решение. Логика решения является типичной для задач данного вида: вначале в качестве текущих экстремальных точек (и минимума и максимума) принимаем начальную точку графика функции с целочисленным значением аргумента x =-2, а затем, проходя по всем остальным целочисленным значениям аргумента x от (-1) до 3, сравниваем значения f (x) функции в них с текущими (найденными ранее) значениями минимума и максимума и при необходимости корректируем координаты текущего минимума и максимума.

Для иллюстрации поведения графика функции в исследуемых точках в программе дополнительно организован вывод:

1) начальных значений координат точек минимума и максимума,

2)координат текущих точек графика и новых координат точек минимума и максимума в случае их коррекции.

Ниже приведена программа с подробными комментариями.

program EXTREMUM;

uses Crt; {подключение библиотеки CRT для работы с экраном}

var min,max,f:real; {описание вещественных переменных программы}

imin,imax,x:integer; {описание целочисленных переменных программы}

begin {начало раздела операторов}

ClrScr; { очистка экрана }

x:=-2; {задание начального значения аргумента }

f:=x*x*x-3*x*x-x+3; {вычисление функции при начальном значении аргумента }

imin:=-2; min:=f; { начальное задание текущего положения точки минимума}

WriteLn('first: imin=',imin,' min=',min); {вывод начальной точки минимума}

imax:=-2; max:=f; { начальное задание текущего положения точки максимума}

WriteLn('first: imax=',imax,' max=',max); {вывод начальной точки максимума}

For x:=-1 to 3 do {арифметический цикл по аргументу от -1 до 3}

Begin {начало тела арифметического цикла}

f:=x*x*x-3*x*x-x+3; {вычисление функции при текущем значении аргумента }

WriteLn('argument=',x,' function=',f); {вывод координат текущей точки графика}

if(f<min)then {сравнение текущей точки графика с минимумом и коррекция последнего }




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 1363; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.