- •Задание и порядок выполнения работы
- •Задача 3. Составить алгоритм, написать программу, создать консольное приложение для вычисления на пк значения функции, заданной в табл. 4. 2.
- •Вычисление выполнить двумя способами:
- •Запустить на исполнение, проанализировать результат вычисления и сделать выводы.
- •Методические указания по выполнению задания
- •1 Вариант.
- •2 Вариант.
- •Задания на дом для самостоятельного решения.
- •Методические указания по выполнению задачи 5
Методические указания по выполнению задания
Задача 1. Используя оператор for, вычислить на ПК значение функции , при х=0.5. В приведенной формуле сомножитель 5x2 не зависит от параметра n, поэтому расчетную формулу можно упростить как: . Параметром цикла здесь является аргумент n и накопление суммы будет происходить по (1/n).
При вычислении конечных сумм и произведений искомый результат формируется постепенно.
П ри вычислении суммы сначала вычисляется S1 = S0 + S(n1), во втором повторе цикла эта сумма увеличивается на второе слагаемое и получается S2 = S1 + S(n2), в третьем повторе - на третье слагаемое S3 = S2 + S(n3) и т.д. Здесь S0 - начальное значение суммы и т.к. S1 должна быть равна S(n1) , то S0 = 0.
При вычислении произведения сначала вычисляется Р1 = Р0*P(n1), затем Р2 = Р1*P(n2) и т.д. Здесь Р0 - начальное значение произведения и т.к. Р1 должно быть равно P(n1) , то Р0 = 1.
Поскольку сомножитель 5х2 не зависит от параметра n его можно вынести за знак суммы, и в тело цикла это произведение включать не следует. Тем самым сокращается время исполнения программы. Блок-схема алгоритма решения задачи (Рис. 4.1) и соответствующая ей программа будут иметь вид:
static void Main(string[] args) { double
x = 0.5, t = 0, n; for (n = 1; n <= 10;
n++) t
= t + 1/ n;
// накопление суммы в теле цикла t
= 5*Math.Pow(x,2) * t;
Console.WriteLine("Сумма
членов ряда
= {0:#.###}", t);
Console.ReadKey(); }
Результаты работы программы:
Рис. 4.1. Блок- схема алгоритма задачи 1
З адача 2. Вычислить на ПК значения функции
static void Main(string[] args) { int i = 1, k = 1;
double s = 0, t = 1; for (i = 1; i <= 10;
i++) { s
= 0; // обнуление суммы for (k = 1; k <=
5; k++) s
= s + Math.Sin(i*k); // накопление
суммы t
= t * s; // накопление произведения }
Console.WriteLine("t = {0:#.##### }",
t);
Console.ReadKey(); }
Результаты работы программы:
Рис. 4.2. Блок схема алгоритма задачи 2.
Задача 3. Используя операторы while…do и do…, while вычислить значения функции
, в диапазоне изменения x от 0 до 3 с шагом 0.5.
П ри решении данной задачи можно использовать алгоритмы циклической структуры "ДО" и "ПОКА". Параметром данного цикла является х, причем при каждом повторном вычислении его значение следует увеличивать на величину шага. По условию задачи начальным значением х примем 0, а конечным значением – 3.
Рассмотрим разные варианты решения этой задачи.