Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Программа итерационного цикла
Пример 1 Составить программу вычисления значения функции y = x (π -x), используя равенство с погрешностью E =10-4 и напечатать для контроля значения функции, определяемые выражением в левой части равенства y = x (π -x) и её разложением в ряд косинусов. Программа Program iteracia Const e=0.0001; Var y, s, x: real; { y-функция, s-сумма, x-аргумент } k: longint; slag: real; { слагаемое (i-й член суммы) } Begin writeln('введите x '); readln(x); s: = sqr(pi)/6; k: =1; Repeat slag: =cos(2*k*x)/sqr(k); s: =s+slag; inc(k); until abs(slag)< e; y: =s; writeln(' y(x)= ', y); writeln(' x*(pi-x)= ', x*(pi-x)); end. Описание программы В разделе объявления констант вводится точность вычислений Е=10-4, в разделе переменных вводятся y, s, x – вещественные, k – длинное целое и slag – вещественная. Основной блок программы начинается оператором begin, в нём вводится значение аргумента х, вычисляется значение слагаемого slag=π./ 6 и присваивается переменной k значение 1. Цикл открывается оператором repeat, в нём вычисляется слагаемое slag и прибавляется к предыдущему значению суммы s, затем k увеличивается на 1 (inc (k)). Проверка на окончание цикла выполняется после слова until сравнением модуля slag с заданной точностью е. Если условие выполняется (true), то при k=2 программа возвращается к repeat - на новое вычисление slag и s, если нет (false), то переходит к присвоению у значения накопленной суммы s, выводит на экран у и вычисленное значение x(π -x)для их сравнения (pi – это число π, хранящееся в памяти среды программирования Pascal)
3 Контрольные вопросы 1 Какие циклы называются итерационными? 2 Какие операторы цикла используются в итерационных циклах? 3 Как выполняется проверка на окончание вычислений в цикле? Задание Вычислить сумму членов ряда с точностью Е=10-2 при заданном х=0.75
Содержание отчета 1 Название работы. 2 Цель работы. 3 Содержание работы 4 Задание и программа для своего варианта. 5 Результаты расчёта итерационной суммы 6 Письменные ответы на контрольные вопросы. 7 Выводы по работе.
Лабораторная работа № 5 Сложные алгоритмы Цель работы: разработка программ, реализующих циклические и ветвящиеся вычислительные процессы. Содержание работы: 1 Программа " цикл в цикле" 2 Программа " цикл и ветвление" 3 Программа " цикл в цикле и ветвление" Общие сведения При записи программ со структурой вложенных циклов необходимо обращать внимание на правильность размещения внешнего и внутреннего циклов. Одни постановки задач допускают смену мест внешнего и внутреннего циклов, а в других постановках такая система приводит к неправильным результатам. При записи программ со структурой вложенных циклов зона действия внутреннего цикла должна располагаться в зоне действия охватывающего цикла. 1 Программа " цикл в цикле" Пример 1 Составить таблицу ступенчатой функции где y = sin x + cos a + sin ax при 1< =a< = 3; ∆ a=0.5; 0< = x< =2; ∆ x =0.2 В программе нужно вычислить у для всех возможных сочетаний а и х, сравнить его с 1 и, если у< 1, то вычислить z по первой формуле, если > =1, то по второй.
Const da=0.5; dx=0.2; Var a, x, y, z: real; Begin a: =1; repeat { цикл по a } x: =0; repeat { цикл по x } y: =sin(x)+cos(a)+sin(a*x); if y< 1 then z: =y+sqr(x) Else z: =sin(sqr(y+1))+sqr(cos(x)); writeln(' a=', a: 4: 3, ' x=', x: 4: 3, ' z(x, y)= z(', x: 4: 3, ', ', y: 4: 3, ')=', z: 4: 3); x: =x+dx; until x> 2; a: =a+da; until a> 3; End. Описание программы В разделе объявлений задаются константы da и dx, затем вещественные переменные a, x, y, z. В основном блоке переменной а задаётся начальное значение а=1 и открывается цикл repeat по а, затем задаётся начальное значение х=0 и открывается цикл repeat по х, вложенный в цикл по а. В этом цикле вычисляется значение у и, если оно меньше 1, то вычисляется z=y+x2, в противном случае z вычисляется по формуле z = . Далее выводятся a, x, y, z в формате 4 значащих цифры, из них 3 после запятой. Затем х получает приращение 0, 2, выполняется проверка на достижение им конечного значения 2. Если условие выполняется, то управление передаётся назад, к repeat по х, если нет, то выполняется следующий оператор, где а получает своё приращение 0, 5 и проверяется на достижение конечного значения 3. Если условие выполняется, то программа возвращается к repeat по а, если нет, то конец программы. 2 Программа " цикл и ветвление" Пример 2 Дана функция е1/3ln|z| +1, если z< 0 y = 0, если z=0 tg2x, если z> 0
Написать программу для вычисления значений функции на отрезке x [-1; 1] с шагом 0.1 для z = sin x - 0.1. В примере для каждого значения х сначала нужно определить z, а затем, если z < 0. то у вычислить по первой формуле, если z = 0, то у = 0 и если z > 0, то по третьей формуле. Описание программы В примере 2 использованы циклический и ветвящийся вычислительные процессы. Вначале организуется цикл repeat по параметру х, а внутри цикла проверяются условия, обуславливающие ветвящийся вычислительный процесс, где для каждого значения переменной z =f(x) предусмотрена своя ветвь вычисления значений искомой функции у.
Const dx=0.1; Var x, y, z: real; Begin x: =-1; repeat { цикл по x } z: =sin(x) - 0.1; if z< 0 then y: =exp(1/3*ln(abs(z)))+1 if z=0 then y: =0 Else z: =(sin(x)/cos(x))^2; writeln(' x=', x: 4: 3, 'z(x)= z(', x: 4: 3, ')=', z: 4: 3); x: =x+dx; until x> 1; End. 3 Программа " цикл в цикле и ветвление"
Пример 3 Вычислить сумму S положительных и произведение Р отрицательных значений функции y = cos t -b, в области t [-1; 1] с шагом 0.2 и в области b [-0.1; 0.2] с шагом 0.1.
В примере - две переменные, t и b, нужно для каждого значения t просчитать все b, если y> 0,, то прибавить его значение к предыдущей сумме S, если y< 0, то умножить его на предыдущее произведение Р. В примере 3 встречаются два циклических и ветвящийся вычисли- тельные процессы. Внешний цикл организован по параметру t, внутренний цикл - по параметру b. Внутри цикла после вычисления значения функции у осуществляется проверка условий ветвящегося вычислительного процесса, который реализует вычисление произведения p отрицательных значений функции (в случае выполнения условия у< 0) и вычисление суммы s положительных значений функции, если у> 0. Программа Const dt=0.2; db=0.1; Var t, b, y, s, p: real; Begin t: =-1; repeat { цикл по t } b: =-0.1; repeat { цикл по b } y: =cos(t)-b; if y< 0 then p: =p*y Else s: =s+y; writeln(' t=', t: 2: 1, ' b=', b: 2: 1, 'y(t, b)= y(', t: 2: 1, ', ', b: 2: 1, ')=', y: 4: 2, 's=', s: 4: 2, 'p=', p: 4: 2); t: =t+dt; until t> 1; b: =b+db; until b> 0.2; End.
4 Контрольные вопросы 1 Назовите известные вам структуры алгоритмов. 2 Какие вычислительные процессы реализуются в сложных алгоритмах?. 3 Как организуются программы с вложенными циклами? 4 Какие вычислительные процессы можно выделить в задании по вашему варианту? 5 Охарактеризуйте синтаксис и особенность применения операторов if, repeat. 6 Сколько циклов может быть вложено друг в друга? 7 Как изменится программа примера 3, если оператор repeat заменить на оператор while? Задания
Содержание отчета 1 Название, цель, содержание работы 2 Задание для своего варианта. 3 Схема алгоритма. 4 Программы. 5 Результаты расчётов в среде pascal. 6 Письменные ответы на контрольные вопросы. 7 Выводы по работе.
Лабораторная работа № 6 Обработка массивов Цель работы: разработка программ, реализующих вычислительные процессы.с индексированными переменными Содержание работы: 1 Одномерные массивы 2 Многомерные массивы 3 Обработка массивов Популярное:
|
Последнее изменение этой страницы: 2016-05-03; Просмотров: 652; Нарушение авторского права страницы