Программирование на C / C++ / Лабораторные работы3 / Лаба 2 / лаба
.docГОУ ВПО
Уфимский Государственный Авиационный Технический Университет
Кафедра технической кибернетики
ОТЧЕТ
По лабораторной работе №1
«Функции»
Уфа 2008
Задание:
Заданы квадратные матрицы А,В,С и векторы x,y,z. Вычислить вектор P=Ax+By+Cz.
Фунции:
1) вычисление произведения матрицы на вектор
2) вычисление суммы двух векторов
Текст программы:
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
const int N=2;
void inputv (int x[N]);
void input (int x[N][N]);
void proiz (int x[N][N], int y[N][N], int z[N][N]);
void sum (int x[N][N], int y[N][N], int z[N][N]);
void inputv (int x[N])
{
int i;
for (i=0;i<N;i++)
cin>>x[i];
}
void input (int x[N][N])
{
int i,j;
for (i=0;i<N;i++)
for (j=0;j<N;j++)
cin>>x[i][j];
}
void proiz (int x[N][N], int y[N], int z[N])
{
int i,j,k,S;
for (i=0;i<N;i++)
for (j=0;j<N;j++)
z[i]=x[i][j]*y[i];
}
void sum (int x[N], int y[N], int z[N])
{
int i;
for (i=0;i<N;i++)
z[i]=x[i]+y[i];
}
void main()
{
clrscr();
int A[N][N], B[N][N], C[N][N], X[N], Y[N], Z[N], P1[N], P2[N], P3[N],
S1[N], S2[N],i,j;
cout<<"Vvedite A\n";
input(A);
cout<<"Vvedite B\n";
input(B);
cout<<"Vvedite C\n";
input(C);
cout<<"Vvedite x\n";
inputv(X);
cout<<"Vvedite y\n";
inputv(Y);
cout<<"Vvedite z\n";
inputv(Z);
proiz (A,X,P1);
proiz (B,Y,P2);
proiz (C,Z,P3);
sum(P1,P2,S1);
sum(S1,P3,S2);
for (i=0;i<N;i++)
cout<<"\n"<<S2[i];
getch();
}
Результат работы программы:
Блок-схема:
j++
i++
i++
j++
z[i]=x[i][j]*y[i]
z[i]=x[i]+y[i]
i++
i++
i++