котелев

Формат документа: docx
Размер документа: 0.11 Мб




Прямая ссылка будет доступна
примерно через: 45 сек.




Теги: ВятГУ (бывш. ВятГТУ. КирПИ)
  • Сообщить о нарушении / Abuse
    Все документы на сайте взяты из открытых источников, которые размещаются пользователями. Приносим свои глубочайшие извинения, если Ваш документ был опубликован без Вашего на то согласия.


Вариант 2, выполнил ст. гр. СТ-12 Котелев Д.А.
Пункт 1
1. Постановка задачи: составить программу решения неравенства

При методом последовательного перебора значений в интервале с шагом .
2. Текст программы
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();
Re.Close();
s.Close();
x = x0;
A[0] = x0;
Console.WriteLine();
Console.WriteLine("Корни уравнения ax^2+bx+c=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^2+bx+c=0 в заданном интервале x корней не имеет");
A[i + 1] = xn;
Console.WriteLine();
FileStream u = new FileStream("rez1.txt", FileMode.Create);
StreamWriter Wr = new StreamWriter(u);
Console.WriteLine("Результаты решения неравенства ax^2+bx+c>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 + b * x + c;
}
}
}
3. Протокол выполнения программы

4. Результаты вычислений (содержимое файла “rez1.txt”)
Неравенство неверно на интервале [-5,000 ; -1,429]
Неравенство верно на интервале [-1,429; 2,029]
Неравенство неверно на интервале [2,029 ; 5,000]
Пункт 2
1. Постановка задачи: составить программу решения уравнения

методом последовательного перебора значений с шагом в интервале .
2. Текст программы
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 = 10, 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 x-2+Math.Sin(1/x);
}
}
}
3. Протокол выполнения программы

4. Результаты вычислений (содержимое файла “rez2.txt”)
Корни уравнения и значения y
x=1,30775 y=0,00005
X