КАТЕГОРИИ: Архитектура-(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; Просмотров: 1396; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |