Veronika509
27.10.2022 16:08

Мне нужно написать блок схему по этой программе

#include
#include
#include
#include
#include
#include
#include
char rus[256];
using namespace std;
class matr
{
private:
int size;
double **mas;
double *mas1;
public:
matr()
{
size = 0;
mas = null;
mas1 = null;
}
matr(int l)
{
size = l;
mas = new double*[l];
for (int i = 0; i < l; i++)
mas[i] = new double[l];
mas1 = new double[l];
}
void add()
{
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
cin > > mas[i][j];
for (int i = 0; i < size; i++)
{
cin > > mas1[i];
}
}
void print()
{
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
cout < < setw(4) < < mas[i][j] < < " ";
}
cout < < " " < < mas1[i] < < endl;
}
}
void preob()
{
double temp = 0;
for (int k = 0; k < size; k++)
{
for (int i = 0; i < size; i++)
{
temp = mas[i][i] * (-1);
mas1[i] /= temp;
for (int j = 0; j < = size; j++)
{
mas[i][j] /= temp;
}
}
}
for (int i = 0; i < size; i++)
{
mas1[i] *= -1;
for (int j = 0; j < size; j++)
mas[i][i] = 0;
}
}
double pogr(double **mas, double epsilon)
{
double eps = 0; double sum = 0, max = 0;
double norm1 = 0, norm2 = 0;
for (int i = 0; i < size; i++)
{
for (int j = 0; j < i; j++)
{
sum += fabs(mas[i][j]);
if (sum > norm1) norm1 = sum;
}
sum = 0;
for (int j = i + 1; j < size; j++)
{
sum += fabs(mas[i][j]);
if (sum > norm2) norm2 = sum;
}
sum = 0;
}
if (norm1 > = 1 || norm2 > = 1)
{ chartooem( "норма матрицы больше или равна 1.",rus);
cerr< sleep(1);
exit(1) ;

}
eps = ((1 - norm1) / norm2)*epsilon;
return eps;
}
void itera(double epsilon)
{
double *x = new double[size];
double *p = new double[size];
double *a = new double[size];
double *e = new double[size];
double per = pogr(mas, epsilon), max = 0;
for (int i = 0; i < size; i++)
{
x[i] = mas1[i];
p[i] = 0;
}
double var = 0;
for (int i = 0; i < size; i++)
{
var = 0;
for (int k = 0; k < size; k++)
var = mas[i][k] * mas1[k];
x[i] = var;
}
for (int i = 0; i < size; i++)
p[i] = x[i] + mas1[i];
int counter = 0;
do
{
counter++;
chartooem( "итерация № ",rus);
cout< for (int i = 0; i < size; i++)
{
var = 0;
for (int j = 0; j < i; j++)
var += (mas[i][j] * p[j]);
for (int j = i + 1; j < size; j++)
var += (mas[i][j] * x[j]);
a[i] = var;
x[i] = mas1[i] + a[i];
}
max = 0;
for (int i = 0; i < size; i++)
{
e[i] = fabs(x[i] - p[i]);
if (max < e[i]) max = e[i];
p[i] = x[i];
cout < < "x" < < i + 1 < < "=" < < x[i] < < " " < < endl;
}
cout < < endl;
cout < < "max =" < < max < < endl < < endl;
} while (max > per);
chartooem( "результат: \n\n",rus);
cout< for (int i = 0; i < size; i++)
cout < < "x" < < i + 1 < < "=" < < x[i] < < " " < < endl;
delete[] x;
delete[] p;
delete[] e;
delete[] a;
}
~matr()
{
for (int i = 0; i < size; i++)
delete mas;
}
};
void main()
{
int n; double epsi;
chartooem(" программа решения систем линейных уравнений методом зейделя",rus);
cout< while(true)
{
chartooem("введите количество уравнений: ",rus);
cout< cin > > n;
if(! cin)
{
chartooem("вы ввели не число\n" ,rus);
cout< cin.clear();
while (cin.get() ! = '\n');
}
else break;
}
while(true)
{
chartooem("введите желаемую точность(число): " ,rus);
cout< cin > > epsi;
if(! cin)
{
chartooem("вы ввели не число\n" ,rus);
cout< cin.clear();
while (cin.get() ! = '\n');
}
else break;
}
matr a(n);
while(true)
{
chartooem("введите левую часть,а потом правую(только числа): " ,rus);
cout< a.add();
if(! cin)
{
chartooem("вы ввели не число\n" ,rus);
cout< cin.clear();
while (cin.get() ! = '\n');
}
else break;
}
chartooem( "расширенная матрица: " ,rus);
cout< a.print();
a.preob();
chartooem("преображенная матрица" ,rus);
cout< a.print();
cout < < endl;
a.itera(epsi);
cout < < endl;
system("pause");
}

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
valeraKRUT05
18.02.2020 00:49
Пронумеруем дни недели числами от 0 до 6 (0-Вс, 1-Пн, .. 6-Сб).

var
  dow:0..6;
begin
  Write('Введите номер дня недели (0-Вс, 6-сб): ');
  Read(dow);
  case dow of
  0:Writeln('Воскресенье, выходной');
  1:Writeln('Понедельник, 6 уроков');
  2:Writeln('Вторник, 6 уроков');
  3:Writeln('Среда, 7 уроков');
  4:Writeln('Четверг, 6 уроков');
  5:Writeln('Пятница, 6 уроков');
  6:Writeln('Суббота, 6 уроков');
  else Writeln('Введено неверное значение')
  end
end.

Тестовое решение:
Введите номер дня недели (0-Вс, 6-сб): 5
Пятница, 6 уроков
0,0(0 оценок)
Ответ:
MRSinn
18.09.2022 08:25
Держи VBA-версию в Excel 2003.

Delphi у меня 7-й версии. будет чем проект открыть? Код модуля в файле Unit1.pas.

P.S. Что-то zip не грузится, код  - ниже:

procedure TForm1.Button1Click(Sender: TObject);
var
N1, N2, N3: Real;
begin
//Проверок на введённе значения для простоты не делаю
N1:=StrToFloat(Edit1.Text);
N2:=StrToFloat(Edit2.Text);
N3:=StrToFloat(Edit3.Text);

if N1<0 then N1:=N1*N1*N1*N1 else N1:=N1*N1;
if N2<0 then N2:=N2*N2*N2*N2 else N2:=N2*N2;
if N3<0 then N3:=N3*N3*N3*N3 else N3:=N3*N3;

Edit4.Text:=FloatToStr(N1);
Edit5.Text:=FloatToStr(N2);
Edit6.Text:=FloatToStr(N3);
end;
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота