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

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

1. Пример программы, решения неравенства

при значениях шага решения и постоянных в неравенстве, считываемых из файла «a.txt» :

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

namespace ConsoleApplicationЛаб_3

{

class Program

{

static double a = 0, b = 0, c = 0, d = 0;

static void Main(string[] args)

{

double h = 0.01, x0 = -100,x1,xn=100,x;

double [] A=new double[30];

int i = 0;

string st;

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

StreamReader Re = new StreamReader(s);

// Считывание из файла 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);

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

Re.Close();

s.Close();

x = x0;

A[0] = x0;

while (x <= xn)

{

x1 = x + h;

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

{

i++;

A[i]=x+h/2;

Console.WriteLine("i={0} при x={1:f3} левая часть равн нулю", i,A[i]);

}

x += h;

}

A[i + 1] = xn;

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

{

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

{

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

}

else

{

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

}

}

Console.ReadLine();

}

static double f(double x)

{

return a * Math.Pow(x, 3) + b * Math.Pow(x, 2) + c * x + d;

}

}

}

Результат выполнения программы:

Рис 3.1 Окно консольного приложения на экране.

2. Пример программы, решения системы неравенств

при значениях шага решения и постоянных в неравенстве, считываемых из файла «a.txt» :

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

namespace ConsoleApplicationЛаб_3._1

{

class Program

{

static double a = 0, b = 0, c = 0, d = 0;

static void Main(string[] args)

{

double h = 0.01, x0 = -100,x1,xn=100,x;

double [] A=new double[30];

int i = 0;

string st;

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

StreamReader Re = new StreamReader(s);

// Считывание из файла 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);

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

Re.Close();

s.Close();

x = x0;

A[0] = x0;

while (x <= xn)

{

x1 = x + h;

if(f(x)^f(x1))

{

i++;

A[i]=x+h/2;

Console.WriteLine("i={0} при x={1:f3} система меняет характер выполнения", i, A[i]);

}

x += h;

}

A[i + 1] = xn;

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

{

if (f(A[j] + h / 2))

{

Console.WriteLine("Система неравенств верна на промежутке [{0:f3}; {1:f3}]", A[j], A[j + 1]);

}

else

{

Console.WriteLine("Система неравенств неверна на промежутке [{0:f3}; {1:f3}]", A[j], A[j + 1]);

}

}

Console.ReadLine();

}

static bool f(double x)

{

bool z1 = a * Math.Pow(x, 3) + b * Math.Pow(x, 2) > 0;

bool z2 = c * x + d > 0;

if (z1 && z2)

return true;

else

return false;

}

}

}

Результат выполнения программы:

Рис 3.2 Окно консольного приложения на экране.

Варианты задания

Таблица 3.1

№ варианта Неравенства Уравнения
 
 
 
 
 
 
 
 
 
 
 
 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: