Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab2(final).doc
Скачиваний:
10
Добавлен:
12.09.2019
Размер:
1.21 Mб
Скачать

Пример решения варианта 0. Задание 1.

  1. Условие

Вычислить и вывести на экран в виде таблицы значения функции, заданной графически на интервале xнач до xкон c шагом dx. Интервал и шаг задать таким образом, чтобы проверить все ветви программы. Таблицу снабдить заголовком и шапкой.

  1. UML

Рисунок 2.6 – UML диаграмма к заданию 1

  1. Листинг 2.5 – Задание 1.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace lab2

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Лабораторная работа №2");

Console.WriteLine("Выполнил студент XXX группы XXX");

Console.WriteLine("Задание №1");

Console.WriteLine("Вычислить и вывести на экран в виде таблицы значения функции, заданной графически на интервале xнач до xкон c шагом dx. Интервал и шаг задать таким образом, чтобы проверить все ветви программы. Таблицу снабдить заголовком и шапкой.");

int xn = -9, xk = 9, dx = 2, R = 3;

Console.WriteLine("| x | y |");

for (int x = xn; x <= xk; x += dx)

{

double y;

if (x >= -9 && x <= -6)

y = -Math.Sqrt(R * R - Math.Pow(x + 6.0, 2.0));

else if (x > -6 && x <= -3)

y = x + 3;

else if (x > -3 && x <= 0)

y = Math.Sqrt(R * R - x * x + 0.0);

else if (x > 0 && x <= 3)

y = -x + 3;

else

y = (x - 3) / 2.0;

Console.WriteLine("| {0,5} | {1,5:F2} |", x, y);

}

}

}

}

  1. Результат выполнения

Рисунок 2.7 – Результат выполнения задания 1

  1. Анализ программы

Определились с выбором функции на каждом из участков:

Интервал [-9; 9] и шаг 2 были выбраны таким образом, чтобы рассмотреть все ветви программы, в результате чего были получены значения функции на каждом из участков.

Задание 2.

  1. Условие

Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале xнач до xкон c шагом dx и точностью ε. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значения аргумента, значение функции и количество просуммированных элементов ряда.

  1. UML

Рисунок 2.8 – UML диаграмма к заданию 2

  1. Листинг 2.6 – Задание 2

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace lab2

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Лабораторная работа №2");

Console.WriteLine("Выполнил студент XXX группы XXX");

Console.WriteLine("Задание №2");

Console.WriteLine("Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на интервале xнач до xкон c шагом dx и точностью ε. Таблицу снабдить заголовком и шапкой. Каждая строка таблицы должна содержать значения аргумента, значение функции и количество просуммированных элементов ряда.\n");

const double MaxIter = 50;

double e; // точность

Console.WriteLine("Введите x_начальное( |x| > 1 ):");

string buf = Console.ReadLine();

double xn = Convert.ToDouble(buf);

Console.WriteLine("Введите x_конечное( |x| > 1 ):");

buf = Console.ReadLine();

double xk = Convert.ToDouble(buf);

Console.WriteLine("Введите точность:");

buf = Console.ReadLine();

e = Convert.ToDouble(buf);

Console.WriteLine("Введите шаг:");

buf = Console.ReadLine();

double dx = Convert.ToDouble(buf);

Console.WriteLine("Таблица значения функции, заданной с помощью ряда Тейлора");

Console.WriteLine("| X | Y | Iter |");

for (; xn < xk; xn += dx)

{

bool done = true;

int cnt = 0;

double tmp = 1.0, y = 0.0;

for (int n = 1; Math.Abs(tmp) > e; n += 2, cnt++)

{

tmp = 2.0 * (1.0 / (n * Math.Pow(xn, (double)n)));

y += tmp;

if (cnt <= MaxIter)

continue;

done = false;

break;

}

if (done)

Console.WriteLine("| {0,6:F3} | {1,6:F3} | {2,4} |", xn, y, cnt);

else

Console.WriteLine("| {0,6:F3} | Ряд не сошелся|", xn);

}

}

}

}

  1. Результат выполения

Рисунок 2.9 – Результат выполнения задания 2

  1. Анализ программы

В теоретической части было дано подробное описание решения данной задачи. В листинге 2.6 приведен пример решения.

Необходимо заметить, что на x накладываются ограничения. При не соблюдении этих ограничений будет выведено сообщение о не сходимости ряда в этой точке. При соблюдении ограничений, считается корректный ответ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]