Главная Обратная связь

Дисциплины:






Протокол выполнения программы. Решение уравнений и неравенств



ЗАДАНИЕ 3

Решение уравнений и неравенств

 

Цель задания

Получение навыков использования условного оператора и операторов цикла.

 

Постановка задачи

1. Составить программу решения неравенства или системы неравенств с постоянными , считываемыми из файла, в интервале в соответствии с вариантом:

1)

2)

3)

4)

5)

6)

7)

8)

9)

10)

11)

12)

 

Методические указания к выполнению пункта 1:

При решении неравенства или системы двух неравенств сначала необходимо решить одно или два уравнения, полученные из них, методом последовательного перебора значений с шагом в заданном интервале.

 

 

2. Составить программу решения уравнения в заданном интервале в соответствии с вариантом:

 

№ вар. Уравнение Интервал

 

Методические указания к выполнению пункта 2:

Уравнение решать методом последовательного перебора значений с шагом в указанном интервале . При отсутствии решения программа должна печатать соответствующие комментарии.

 

Содержание отчета

По каждому пункту задания дать:

1. Постановку задачи;

2. Текст программы;

3. Протокол выполнения программы;

4. Результаты вычислений.

 

Пример оформления отчета

Вариант 21, выполнил ст. гр. СТ-12 Иванов А.И.

 

Пункт 1

1. Постановка задачи:составить программу решения неравенства

при методом последовательного перебора значений в интервале с шагом .

 

Текст программы

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

 

namespace ConsoleApplication_Lab3_1

{

class Program

{

static double a, b, c, d;

static void Main(string[] args)

{

double h = 0.0005, x0 = -5, xh, xn = 5, x;

double[] A = new double[10];

int i = 0;

string st;

FileStream s = new FileStream("a.txt", FileMode.Open);

StreamReader Re = new StreamReader(s);

//Считывание из файла "a.txt" постоянных a,b,c,d

st = Re.ReadLine();

a = Convert.ToDouble(st);

Console.WriteLine("a= {0:f2}", a);

st = Re.ReadLine();

b = Convert.ToDouble(st);

Console.WriteLine("b= {0:f2}", b);

st = Re.ReadLine();

c = Convert.ToDouble(st);

Console.WriteLine("c= {0:f2}", c);

st = Re.ReadLine();



d = Convert.ToDouble(st);

Console.WriteLine("d= {0:f2}", d);

Re.Close();

s.Close();

x = x0;

A[0] = x0;

Console.WriteLine();

Console.WriteLine("Корни уравнения ax^3+bx^2+cx+d=0");

while (x <= xn)

{

xh = x + h;

if (f(x) * f(xh) <= 0)

{

i++;

A[i] = x + h / 2;

Console.WriteLine("i={0} x={1:f3}", i, A[i]);

}

x += h;

}

if (i == 0)

Console.WriteLine("Уравнение ax^3+bx^2+cx+d=0 в заданном интервале x корней не имеет");

A[i + 1] = xn;

Console.WriteLine();

FileStream u = new FileStream("rez1.txt", FileMode.Create);

StreamWriter Wr = new StreamWriter(u);

Console.WriteLine("Результаты решения неравенства ax^3+bx^2+cx+d>0");

for (int j = 0; j <= i; j++)

{

if (f(A[j] + h) > 0)

{

Console.WriteLine("Неравенство верно на интервале [{0:f3} ; {1:f3}]", A[j], A[j + 1]);

Wr.WriteLine("Неравенство верно на интервале [{0:f3} ; {1:f3}]", A[j], A[j + 1]);

}

else

{

Console.WriteLine("Неравенство неверно на интервале [{0:f3} ; {1:f3}]", A[j], A[j + 1]);

Wr.WriteLine("Неравенство неверно на интервале [{0:f3} ; {1:f3}]", A[j], A[j + 1]);

}

}

Console.ReadLine();

Wr.Close();

u.Close();

}

static double f(double x)

{

return a * x * x * x + b * x * x + c * x + d;

}

}

}

Протокол выполнения программы

 

4. Результаты вычислений (содержимое файла “rez1.txt”)

Неравенство неверно на интервале [-5,000 ; -1,711]

Неравенство верно на интервале [-1,711 ; 0,624]

Неравенство неверно на интервале [0,624 ; 1,687]

Неравенство верно на интервале [1,687 ; 5,000]

 

 

Пункт 2

1. Постановка задачи:составить программу решения уравнения

методом последовательного перебора значений с шагом в интервале .

Текст программы

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

 

namespace ConsoleApplication_Lab3_2

{

class Program

{

static void Main(string[] args)

{

double h = 0.0005, a = 0, b = 6, x, xh, xk, yk;

int i = 0;

x = a;

FileStream u = new FileStream("rez2.txt", FileMode.Create);

StreamWriter Wr = new StreamWriter(u);

Console.WriteLine("Корни уравнения и значения y");

Wr.WriteLine("Корни уравнения и значения y");

while (x <= b)

{

xh = x + h;

if (f(x) * f(xh) <= 0)

{

i++;

xk = x + h / 2;

yk = f(xk);

Console.WriteLine("x={0:f5} y={1:f5}", xk, yk);

Wr.WriteLine("x={0:f5} y={1:f5}", xk, yk);

}

x += h;

}

if (i == 0)

{

Console.WriteLine("Уравнение в заданном интервале x корней не имеет");

Wr.WriteLine("Уравнение в заданном интервале x корней не имеет");

}

Console.ReadLine();

Wr.Close();

u.Close();

}

static double f(double x)

{

return Math.Pow(Math.Sin(x), 2) - 0.15 * x + 0.2;

}

}

}





sdamzavas.net - 2019 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...