Помощь студентуФайлыЛабы по С++Основные функции работы с матрицами С++
07 Января 2026, Среда
19:33
>>> Качественная веб-разработка <<<
19:33
Меню сайта
>Г Л А В Н А Я

>Ф А Й Л Ы

>С Т А Т Ь И

>Р Е Ф Е Р А Т Ы

>Ф О Р У М

>О Т З Ы В Ы

>Т Е С Т Ы

>F l a s h И Г Р Ы

>Ф О Т О Ш О П


Советуем...
Crack для AnyLogic

AnyLogic - программное обеспечение для имитационного моделирования сложных систем и процессов, разработанное российской компанией «Экс Джей Текнолоджис» ( XJ Technologies). Программа обладает графической средой пользователя и использует язык Java для разработки моделей.


Основы работы с CSS
Курс посвящен практике применения языка гипертекстовой разметки с применением каскадных таблиц стилей (Cascade Style Sheets). На большом количестве примеров рассматриваются основные приемы использования CSS.

В. А. Артамонов Лекции по алгебре,1 семестр
Хороший учебник по Высшей математике. Все описывается кратко, но понятно. Так что, если Вы прогуляли лекцию, то этот учебник поможет Вам.

WinDjView 0.4.3
WinDjView 0.4.3 - программа необходима для просмотра файлов формата djvu. Очень удобная, нет ничего лишнего. Я сам ей пользуюсь. Не требуется установка.


Опрос
Вы учитесь в ...
Всего ответов: 670

Сотрудничество
Поставьте себе на сайт и сообщите мне


код кнопки:



Файлы
Главная » Файлы » Учебные материалы » Лабы по С++

Основные функции работы с матрицами С++

Название: Основные функции работы с матрицами С++
Категория: Лабы по С++
Формат файла: *.cpp
Размер: 3.8 Kb
Просмотров: 14999
Загрузок: 2598

Дата добавления: 18 Августа 2009, 09:55
Поделиться:
Скачать:

Скачать Основные функции работы с матрицами С++ бесплатно и без регистрации


Внимание! Если ссылка не работает, файл не найден или просто возникают какие-либо вопросы, напишите об этом, пожалуйста, мне на почту: xdypx@yandex.ru. В письме достаточно указать ссылку на эту страницу и описание проблемы или свой вопрос.


Описание:
Приемы и примеры работы с матрицами на С++. Это и транспонирование матрицы на с++, и возведение матрицы в квадрат на с++, и приведение матрицы к диагональному виду на с++. Готовая программа на с++ для работы с матрицами, транспонирование, возведение в квадрат, приведение к ступенчатому виду скачать бесплатно и без регистрации.

Исходный код:

Code
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>

//transponirovannaja matrica
int transponir(int **A,int n)
{
    int **BB;
    int i,j;
    BB =new int*[n];
     for (i=0; i<n; i++)
     {
        BB[i]=new int [n];
     }
        for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            BB[j][i]=A[i][j];
        }
    }
    cout<<"Transponirovannajaj matrica :"<<endl;
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            cout<<BB[i][j]<<" ";
        }
        cout<<endl;
    }
    return **BB;
}

//Vozvedenie matrici v kvadrat
int Kvadrat(int **A, int n)
{
    int **CC;
    int i,j;
    CC =new int*[n];
     for (i=0; i<n; i++)
     {
        CC[i]=new int [n];
     }

        for(i=0;i<n;i++)
         {
            for(j=0;j<n;j++)
             {
                int Sum=0;
                for (int q=0; q<n; n++)
                {
                Sum+=A[i][n]* A[n][j];
                }
                CC[i][j]=Sum;
             }
         }
            cout<<"Matrica v kvadrate :"<<endl;
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            cout<<CC[i][j]<<" ";
        }
        cout<<endl;
    }
    return **CC;
}
//privedenie k dagonalnomu vidu
int slau(int **A,int n)
{
        int ma,c,max;
        int **a,r,k,i,j,f;
        a=new int *[n];
         for (i=0;i<n;i++)               //pamjat dlja matricy
        {
            a[i]=new int [n];
        }
        for (i=0;i<n;i++)
        {
            for (j=0;j<n;j++)
            {
    a[i][j]=A[i][j];
            }
        }

        f=0;
        for (k=0;k<n;k++)         //nahoczdenie max elementa
        {
            max=fabs(a[k][k]);
            r=k;
            for (i=k+1;i<n;i++)
            {
    if (fabs(a[i][k])>max) {
                 max=fabs(a[i][k]);
                 r=i;
                         }
            }

    if (i!=r) f=f+1;

    for (j=0;j<n;j++)
    {
        c=a[k][j];
        a[k][j]=a[r][j];
        a[r][j]=c;
    }
    for (i=k+1;i<n;i++)
    {
        for (ma=a[i][k]/a[k][k],j=k;j<n;j++)
        a[i][j]-=ma*a[k][j];
    }
         }
         int det,fl;
         fl=1;
         det=1;
         for (i=0;i<n;i++)
         {
             if (a[i][i]!=0) det=det*a[i][i];    //determinant
             else {fl=0;break;}                  //esli raven 0
         }
                            //osvoboczdenie pamjati
         if (fl==0) {for (i=0;i<n;i++)  delete[]a[i];delete[]a; return 0;}
         else  {for (i=0;i<n;i++)  delete[]a[i];delete[]a;return det;}
}


//glavnaja
int main()
{
    clrscr();
    int **A,*Y;
    int n,i,j;
    A=new int *[n];
    Y=new int [n];
    cout<<"Vvedite razmer kvadratnoi matricy:"<<endl;
    cin>>n;
    for (i=0;i<n;i++)              //pamjat dlja matrici A
    {
        A[i]=new int [n];
    }
    cout<<"Vvedite elementy matricy:"<<endl;
    for(i=0;i<n;i++)           //vvod matricy A
    {
        for(j=0;j<n;j++)
        {
            cin>>A[i][j];
        }
    }
    cout<<endl;
    cout<<"Poluchennaja matrica:"<<endl;
    for(i=0;i<n;i++)             //vyvod
    {
        for(j=0;j<n;j++)
        {
            cout<<A[i][j]<<" ";
        }
        cout<<endl;
    }
    transponir(A,n);
    Kvadrat(A,n); //transponirovannaja
    int det;
    det=slau(A,n);   //determinant
    if (det==0) { //esli determinant raven nulju
        for(i=0;i<n;i++) delete[]A[i];delete[]A;
        for(i=0;i<n;i++) ;delete[]Y;
        cout<<"opredelitel raven 0!"<<endl;
        getch();
        return 0;
                }
    else { //inache
     double **C;
     C=new double *[n];
     for (i=0;i<n;i++)  //pamjat dlja nowoj matricy
     {
       C[i] = new double  [n];
     }
     for (i=0;i<n;i++)            //obratnaja
     {
       for (j=0;j<n;j++)
       {
         C[i][j]=((double)Y[i])/double(det);
       }
     }
  cout<<"Poluchennaja obratnaja matrica:"<<endl;
  for(i=0;i<n;i++)
  {
    for(j=0;j<n;j++)
    {
      cout<<C[i][j]<<" ";
    }
    cout<<endl;
  }
  int fll;
  fll=1;
  for(i=0;i<n;i++)  //sravnenie transponirovannoj s obratmoj
  {
    for(j=0;j<n;j++)
    {
      if (A[i][j]==C[i][j])  fll=1;
      else { fll=0;break;}
    }
  }
    /* if (fll==1)            { cout<<"Da,matrica ortogonalna."<<endl;
                         //osvoboczdenie
                         for(i=0;i<n;i++) delete[]A[i];delete[]A;
                         for(i=0;i<n;i++) delete[]B[i];delete[]B;
                         for(i=0;i<n;i++) delete[]C[i];delete[]C;
                         getch();
                         return 0;
                 }
                 else  {
                        cout<<"Net,matrica ne ortogonalna."<<endl;
                        //osvoboczdenie
                        for(i=0;i<n;i++) delete[]A[i];delete[]A;
                        for(i=0;i<n;i++) delete[]B[i];delete[]B;
                        for(i=0;i<n;i++) delete[]C[i];delete[]C;*/
                        getch ();
                        return 0;
                    }
    }


Комментарии:
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Разделы новостей
Образование [4]
лабы на Паскале [11]
Шпоры [10]
Учебники [19]
Лабы по физике [3]
Лабы по С++ [7]

Статистика

Яндекс.Метрика


Онлайн всего: 1
Гостей: 1
Пользователей: 0

Все пользователи

Яндекс цитирования Rambler's Top100

Сайт работает с 2008 года