ФрискТок
25.10.2020 14:19

Как сделать д/з по инфе... Задание 21.1, тема: Комплексное использование возможностей MS Excel для создания документов

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
ttttt19
31.08.2022 11:39

#include "stdafx.h"

#include "iostream"

#include "vector"

#include "cmath"

#include "locale.h"

using namespace std;

int main()

{

   // Считываем размер вводимой матрицы

   setlocale(LC_ALL, "rus");

   int size;

   cout << "Введите размер вводимой матрицы: ";

   cin >> size;

   cout << endl;

   

   // Будем хранить матрицу в векторе, состоящем из

   // векторов вещественных чисел

   vector <vector <long double> > matrix;

   

   // Матрица будет иметь размер (size) x (size + 1),

   // c учетом столбца свободных членов    

   matrix.resize (size);

   cout << "Введите элементы матрицы " << size << "x" << size+1 <<":" <<endl;

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

   {

       matrix[i].resize (size + 1);

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

       {

           cin >> matrix[i][j];

       }

   }

   // Считываем необходимую точность решения

   long double eps;

   cout << endl;

   cout << "Введите точность решения: ";

   cin >> eps;

   // Введем вектор значений неизвестных на предыдущей итерации,

   // размер которого равен числу строк в матрице, т.е. size,

   // причем согласно методу изначально заполняем его нулями

   vector <long double> previousVariableValues (size, 0.0);

   // Будем выполнять итерационный процесс до тех пор,

   // пока не будет достигнута необходимая точность    

   while (true)

   {

       // Введем вектор значений неизвестных на текущем шаге      

       vector <long double> currentVariableValues (size);

       // Посчитаем значения неизвестных на текущей итерации

       // в соответствии с теоретическими формулами

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

       {

           // Инициализируем i-ую неизвестную значением

           // свободного члена i-ой строки матрицы

           currentVariableValues[i] = matrix[i][size];

           // Вычитаем сумму по всем отличным от i-ой неизвестным

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

           {

               if (i != j)

               {

                   currentVariableValues[i] -= matrix[i][j] * previousVariableValues[j];

               }

           }

           // Делим на коэффициент при i-ой неизвестной

           currentVariableValues[i] /= matrix[i][i];

       }

       // Посчитаем текущую погрешность относительно предыдущей итерации

       long double error = 0.0;

       

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

       {

           error += abs (currentVariableValues[i] - previousVariableValues[i]);

       }

       // Если необходимая точность достигнута, то завершаем процесс

       if (error < eps)

       {

           break;

       }

       // Переходим к следующей итерации, так

       // что текущие значения неизвестных

       // становятся значениями на предыдущей итерации

       previousVariableValues = currentVariableValues;

   }

   // Выводим найденные значения неизвестных с 8 знаками точности

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

   {

       printf ("%.8llf ", previousVariableValues[i]);

   }

   cout << endl;

   system("pause");

   return 0;  

}

Объяснение:

0,0(0 оценок)
Ответ:
TheNekyTyan
03.02.2020 00:58
Program ZAD00; {} uses crt;
var a,b:array[1..20] of real;
i:integer;
mina,minb,s:real;
Begin
{ заполнение массива А}
for i:=1 to 7 do begin write('введите элементы a[',i,']='); read(a[i]); end;
{ заполнение массива B}
for i:=1 to 9 do begin write('введите элементы b[',i,']='); read(b[i]); end;
{ min в массиве А}
mina:=a[1];
for i:=1 to 7 do begin
a[8]:= 32767 ;
if (a[i]>= a[i+1]) and (a[i+1]<=mina) then mina:=a[i+1]  end;
{ min в массиве B}
minb:=b[1];
for i:=1 to 9 do begin
b[10]:=32767;
if (b[i]>= b[i+1]) and (b[i+1]<=minb) then minb:=b[i+1]  end;
{ сложение minA и minB}
s:=mina+minb;
{ вывод результатов на экран
for i:=1 to 7 do begin write(a[i],' '); writeln; end;
for i:=1 to 9 do begin write(b[i],' '); writeln; end;
writeln('minA=',mina);
writeln('minB=',minb);
writeln('сумма их s=', s);
End.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота