
- •2. Текст программы
- •3. Протокол выполнения программы
- •4. Результаты вычислений (содержимое файла “rez1.Txt”)
- •Пункт 2
- •2. Текст программы
- •3. Протокол выполнения программы
- •4. Результаты вычислений (содержимое файла “rez2.Txt”)
- •Пример выполнения пункта 1 при решении системы неравенств
- •2. Текст программы
- •3. Протокол выполнения программы
- •4. Результаты вычислений (содержимое файла “rez1.Txt”)
ЗАДАНИЕ 3
Решение уравнений и неравенств
Цель задания
Получение навыков использования условного оператора и операторов цикла.
Постановка задачи
1. Составить программу решения неравенства
или системы неравенств с постоянными
,
считываемыми из файла, в интервале
в соответствии с вариантом:
1)
2)
3)
4)
5)
6)
7)
8)
9)
10)
11)
12)
Методические указания к выполнению пункта 1:
При решении неравенства или системы
двух неравенств сначала необходимо
решить одно или два уравнения, полученные
из них, методом последовательного
перебора значений
с шагом
в заданном интервале.
2. Составить программу решения уравнения
в заданном интервале
в соответствии с вариантом:
-
№ вар.
Уравнение
Интервал
1
2
3
4
5
6
7
8
9
10
11
12
Методические указания к выполнению пункта 2:
Уравнение решать методом последовательного перебора значений с шагом в указанном интервале . При отсутствии решения программа должна печатать соответствующие комментарии.
Содержание отчета
По каждому пункту задания дать:
1. Постановку задачи;
2. Текст программы;
3. Протокол выполнения программы;
4. Результаты вычислений.
Пример оформления отчета
Вариант 21, выполнил ст. гр. СТ-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();
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;
}
}
}
3. Протокол выполнения программы
4. Результаты вычислений (содержимое файла “rez1.Txt”)
Неравенство неверно на интервале [-5,000 ; -1,711]
Неравенство верно на интервале [-1,711 ; 0,624]
Неравенство неверно на интервале [0,624 ; 1,687]
Неравенство верно на интервале [1,687 ; 5,000]