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

>Ф А Й Л Ы

>С Т А Т Ь И

>Р Е Ф Е Р А Т Ы

>Ф О Р У М

>О Т З Ы В Ы

>Т Е С Т Ы

>F l a s h И Г Р Ы

>Ф О Т О Ш О П


Советуем...
Оптика, атомная физика - Савельев И.В.
Очень хороший учебник по физике, все подробно и понятно описывается, все темы по Оптике и атомной физике. Советую качать тем, кто начал учить только за день до экзамена.

XVI32 2.51
Шестнадцатеричный редактор для программистов. Помимо стандартных для такого рода программ возможностей редактирования, предлагает подсчет контрольных сумм CRC16 и CRC32, поиск, замену и подсчет числа вхождений байтов в файл.

Работа с массивами с++ (2)
Заменить наименьшие элементы в массиве на среднее арифметическое его значений. Создать функции для вычисления среднего арифметического элементов массива и определения его минимума.

Программа для создания шпор
Программа для автоматического создания шпор. Закладываете текст, рисунки и прочее, печатаете нужное количество копий - получаете всей группой зачет.


Опрос
Зацените дизайн сайта
Всего ответов: 372

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


код кнопки:


Связь с админом
395799449
Написать админу
Оставить отзыв


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

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

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

Дата добавления: 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 Каталог сайтов OpenLinks.RU Каталог сайтов iLinks.RU Каталог сайтов :: Развлекательный портал iTotal.RU Каталог сайтов Bi0 Каталог сайтов Всего.RU