Обозначения формируемых массивов:
R0 – массив всех результатов Fm;
R1 – массив результатов Fm, меньших W1;
R2 – массив результатов Fm, не меньших W1;
RЗ – массив отрицательных результатов Fm;
R4 – массив положительных результатов Fm;
R5 – массив модулей результатов Fm, которые по абсолютной величине
больше W2;
R6 – массив модулей результатов F, которые по абсолютной величине меньше W2.
Рекомендации. Для контроля правильности получаемых результатов необходимо предусмотреть в цикле вывод таблицы расчетов функции Fm для всех аргументов в виде «аргумент X – функция Fm», по результатам которой следует производить анализ всех вычисленных значений из списка «Задание на выполнение»
Работа №4. Арифметические циклы с индексной переменной
Арифметическийциклсиндекснойпеременной является частным случаем предыдущего вида цикла с той лишь особенностью, что параметром цикла является индекс элементов некоторого массива.
Задание. Разработать блок-схемы и составить программы для вычисления нижеследующих функций:
1.
где аргумент X функции задан рядом значений: Х = Х1, Х2, ... , X10.
Пояснение. Блок-схема решения задачи представлена в двух вариантах на рис.12 и 13. Таблица исходных чисел Xi вводится в память машины в виде массива в блоке №2. Чтобы взять из таблицы какой-либо элемент, необходимо указать его порядковыйномер, то есть индекс. Таким образом, параметромцикла будет являться индексiэлементов массиваX, изменяющийся по закону арифметической прогрессии от 1 до 10 с шагом 1, а структура блок-схемы соответствует обычной структуре арифметического цикла (сравни с рис. 7, 8).
2. Дан массив чисел Х = X1 , Х2 , ... , Xi , …, Х50.
Положительные значения Х переписать в массив ХР, отрицательные – в массив ХО(нули исключить). Вывести количество положительных и отрицательных элементов.
Пояснение. Блок-схема задачи представлена на рис.14, где i, j, k– индексы элементов массивов X,ХР и ХОсоответственно. Формирование массивов положительных и отрицательных элементов производится по обычным правилам реализации типовых операций (см. приложение). Текущие количества положительных и отрицательных элементов в процессе выполнения программы соответствуют значениям индексов j и kформируемых массивов. После окончания цикла эти индексы представляют итоговые количества элементов, записанных в массивы.
3. ,
где X задан массивом из 50 элементов.
Найти среднее арифметическое СА положительных результатов и среднее геометрическое СГ модулей отрицательных результатов (нули исключить).
Пояснение. Блок-схема решения задачи приведена на рис. 15. В цикле рассчитываются сумма S и количество K положительных результатов, произведение P и количество N отрицательных. Собственно СА и СГ определяются после окончания цикла при условии, что итоговые K и N отличны от нуля.
4.
где аргумент X задан рядом значений: X1, X2, … , X25. Каждый третий результат запомнить в массив, исключив нули. Определить среднее геометрическое модулей ненулевых результатов.
5.
где аргумент X задан рядом значений: X=X1, X2, … , X50. Все результаты запомнить в массив. Найти максимальный результат и минимальный по модулю результат, отличный от нуля, и их порядковые номера.
6. Дан ряд вещественных чисел A1 , A2 , … , A15 , упорядоченных по возрастанию, и вещественное число B. Необходимо:
а) переменной B присвоить ближайшее, большее значение ряда;
б) переменной Вприсвоить ближайшее значение ряда, то есть округлить число В до ближайшего значения ряда.
7. Дан массив вещественных чисел X1 , X2 , … , X100 . Необходимо:
а) переписать массив в обратном порядке;
б) просуммировать чётные и нечётные элементы массива;
в) исключить максимальный элемент, оставшиеся члены уплотнить;
г) определить среднее значение и среднеквадратичное отклонение для первых N элементов массива в соответствии с формулами
д) каждый элемент массива, исключая первый и сотый, заменить следующим значением (“сглаживание” экспериментальных данных, уменьшающее влияние случайных ошибок)
е) исключить из массива члены, кратные семи, переместив остальные члены так, чтобы не было пропусков;
ж) упорядочить элементы в порядке возрастания.
8. Имеется два вектора В1 , … , ВК и С1 , … , СК (К <50). Необходимо:
а) найти скалярное произведение векторов Р = В1 С1 + … + ВК СК ;
б) рассматривая элементы В как координаты одной точки в К-мерном пространстве, а элементы С – координаты другой точки, найти расстояние Р между ними по следующей формуле
Контрольное задание №4. Составить циклическую программу вычисления функции Ym=F(Xi), где m=1-5, а аргумент Хiзадан в виде массива. Вариант задания берется из табл. 4 в соответствии с номером, указанным преподавателем. Вычисляемые функции и массивы аргументов приведены после таблицы. Обозначения искомых переменных и формируемых массивов представлены в контрольном задании №3.
Таблица 4
№
Фун-кцияV1V2W1W2Задание на выполнение1Y10,35-0,5A0,A1,G2,MAX,R3,R4,2Y212,50,15-0,5G0,A3,A4,MAX1,R1,R23Y32,50,35A0,A1,G1,MIN1,R4,R54Y41,82,37G0,A2,A4,MIN1,R0,R65Y5-25,3A0,A1,G3,MAX,R3,R46Y1-0,171,00,21G0,A2,A3,MAX1,R2,R37Y22,15-3,51,25A0,A1,G4,MIN,R5,R68Y30,712-0,863,2G0,A1,A2,MIN1,R1,R29Y44,24,03,6A0,A2,G1,MAX,R5,R010Y5-30,7-0,18G0,A1,A3,MAX1,R1,R311Y11,24,23A0,A2,G2,MIN,R6,R512Y22,56-1,89G0,A1,A4,MIN1,R3,R413Y31,320,220,21A0,A2,G3,MAX,R0,R614Y41,852,752,75G0,A4,G4,MAX1,R1,R615Y5-20,02,00,6A0,G2,G3,MIN,R1,R216Y10,75G0,A3,G1,MIN1,R0,R317Y21,55-0,150,45A0,G1,G4,MAX,R5,R618Y3-0,271,20,2G0,A3,G2,MAX1,R1,R219Y41,27A0,A2,G4,MIN,R3,R420Y52,10,5G0,A3,G3,MIN1,R2,R321Y10-10,97A0,G1,G2,MAX,R5,R622Y2-3,30,33-1,3G0,A3,G4,MAX1,R1,R223Y30,170,5A0,G1,G3,MIN,R0,R524Y4-6,28G0,A4,G2,MIN1,R3,R425Y51,5-1,591,5A0,G2,G3,MAX,R5,R626Y10,361,6-0,65G0,A4,G1,MAX1,R1,R227Y20,150,82A0,G2,G4,MIN,R0,R628Y3-0,320,256-0,7G0,A4,G3,MIN1,R1,R229Y4-4,65,47A0,А1,G4,MAX,R0,R330Y50,7-33,5G0,A3,G2,MIN,R0,R4
Вычисляемые функции и массивы аргументов
гдеX= 4,5 , -0,3 , -1,5 , -0,9 , 0,2 , 0,1 , -1,8 , 3,37 , -4,5 , 4,5 .
гдеX = -2,5 , -2,1 , -0,78 , 0,45 , 0,65 , 1,8 , -0,18 , -0,7 , 4,8 .
гдеX = 0,44 , -1,2 , 2,5 , 12,3 , -1,65 , 0,45 , -3,3 , -0,11 , -0,45 , -7,5 .
гдеX = -8.3 , -10,7 , 7,25 , 4,8 , -5,1 , 0,37 , -1,5 , 1,5 , -1,5 , 2,3 , 0.4 .
гдеX = 0,01 , 0,02 , -0,5 , 2,31 , 0, 1,0 , 0 , -1,25 , -1,0 , -0,77 , 0 .
Рекомендации. При программировании вычисления функций Y следует анализировать возможность возникновения ошибок выполнения таких математических операций, как деление на ноль и вычисление логарифма нуля или отрицательного числа. Последняя ошибка может быть следствием неправомочного применения операции логарифмирования для вычисления целой степени произвольного числа (например, для вычисления cos2X).
Работа №5. Итерационные циклы
Итерационным называется цикл, число повторений в котором заранее определить нельзя. Окончание такого цикла чаще всего происходит при достижении заданной точности расчета, а количество повторений зависит от вида вычисляемой функции, от выбора начального приближения и от точности вычислений.
Задание. Разработать блок-схемы и составить программы для решения нижеследующих задач.
Найти корень уравнения Х– 0,5Аsin(Х/А) + В= 0 методом последовательных приближений (методом итерации) с заданной степенью точности расчёта Епри начальном приближении Х0.
Пояснение. Чтобы воспользоваться методом итерации, необходимо исходное уравнение привести к виду Хi+1 = F(Хi). В простейшем случае это может быть сделано выражением одного из аргументов, например, так: Хi+1 = 0,5Аsin(Хi/А) – В, где обозначения Хi и Хi+1 следует понимать как задаваемое (предыдущее) и расчётное (последующее) значения Х.
В идеальном случае Х=Хi=Xi+1, что соответствует точному значению корня.
Блок-схема решения задачи приведена на рис. 16. Здесь в блоке №3 Хi принимается равным заданному начальному значению Х0 (подготовка цикла), а затем в теле цикла вычисляется значение Хi+1. В блоке №5 производится проверка точности расчёта: если разница между предыдущим Хi и последующим Хi+1 значениями по модулю меньше или равна степени точности расчёта E, то цикл заканчивается; в противном случае Хi получает новое значение в блоке №6 и цикл повторяется заново.
Найти сумму бесконечного ряда
Вычисление закончить, если очередное слагаемое по модулю окажется меньше заданной степени точности расчёта Е.
Пояснение. При вычислении сумм рядов прежде всего необходимо иметь формулу для нахождения очередного члена ряда R. В данном примере каждый новый член ряда Rn+1 можно легко подсчитать по значению предыдущего Rn , а именно: Rn+1 = RnX/(n+1) , где n – номер текущего члена ряда, n = 0,1,2, и т.д. При n=0 имеем начальное значение для первого члена ряда R=1, и начальное значение суммы ряда составляет этот единственный первый член ряда S= R.
Блок-схема решения приведена на рис. 17, причём в представляемом варианте различать Rn и Rn+1 нет необходимости, поэтому индексы у них опущены.
Организовать итерационный цикл для вычисления корня N-й степени
Расчёт вести по итерационной формуле Ньютона
с заданной степенью точности Е. В качестве начального приближения принять подкоренное выражение. Организовать подсчет количества итераций (количества повторений цикла).
Решить уравнение
2АХ – ВХ2 = 0,7е-2Х
относительно Х методом итерации с точностью до Е. Начальное приближение принять равным 0. Ввести ограничение на количество итераций: закончить вычисления при числе итераций больше 100. Вывести все последовательные приближения корня и порядковый номер итерации.
5. Для данного вещественного Хвычислить сумму Y ряда с заданной степенью точности (считать, что требуемая точность достигнута, если очередное слагаемое ряда по модулю меньше Е):
а)
б)
в) (для 0Х2)
г)
|