C++

Векторы

#include "stdafx.h"
#include <iostream>
using namespace std;
#include <ctime>
#include <iomanip>
//////////////////////////////////////////////////////////////////////////
void out(double *a,int n);
void out(double *a,int n,int k);
void vin(double *a,int n);
void mult(double *a,double *x,int n);
void oper(double *a,double *b,double *x,double *y,int n);
//////////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
    setlocale(0,"");
    int n;
    double *x,*y,
        *a,*b;
    cout << "Введите порядок матрицы: ";
    wcin >> n;
    _flushall();
    x = new double[n];
    y = new double[n];
    a = new double[n*n];
    b = new double[n*n];
    srand(time(0));
    oper(a,b,x,y,n);
    getchar();
    delete[]x;
    delete[]y;
    delete[]a;
    delete[]b;
    return 0;
}
//////////////////////////////////////////////////////////////////////////
void out(double *a,int n,int k)
{
    int x = n-1;
    for(int i = 0;i < n*k;i++)
    {
        cout << setprecision(3)
             << a[i] << "  ";
        if(i == x)
        {
            cout << endl;
            x += n;
        }
    }
    cout << "\n\n";
}
//////////////////////////////////////////////////////////////////////////
void out(double *a,int n)
{
    for(int i = 0; i < n;i++)
    {
        cout << setprecision(3)
             << a[i] << "  ";
    }
    cout << "\n\n";
}
//////////////////////////////////////////////////////////////////////////
void vin(double *a,int n)
{
    for(int i = 0; i < n;i++)
        a[i] = (1.0*(rand()%401-200))/11;
}
//////////////////////////////////////////////////////////////////////////
void mult(double *a,double *x,int n)
{
    int y = n-1,
        k = 0;
    for(int i = 0;i < n*n;i++)
    {
        a[i] *= x[k];
        if(i == y)
        {
            k++;
            y += n;
        }
    }
}
void oper(double *a,double *b,double *x,double *y,int n)
{
    vin(x,n);
    vin(y,n);
    vin(a,n*n);
    vin(b,n*n);
    cout << "Матрица А:" << endl;
    out(a,n,n);
    cout << "Вектор Х:" << endl;
    out(x,n);
    cout << "Матрица В:" << endl;
    out(b,n,n);
    cout << "Вектор Y:" << endl;
    out(y,n);
    mult(a,x,n);
    mult(b,y,n);
    cout << "Матрица А после умножения на вектор Х:" << endl;
    out(a,n,n);
    cout << "Матрица В после умножения на вектор Y:" << endl;
    out(b,n,n);
}
Теги:
матрица, вектор
Похожие новости:
Добавлено: 23 Сентября 2013 12:29:29 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...