#include <stdio.h>
//*****************************************************
#include <stdlib.h>
// mnoży tablicę t1 przez tablicę t2
#include <conio.h>
// o rozmiarach r2 x r2
#include <time.h>
// wynik zapisuje do tablicy t3
//*****************************************************
//*****************************************************
#define r1 4
void iloczyn(int t1[][r2], int t2[][r2], int t3[][r2], int k){
#define r2 4
int i;
//*****************************************************
int j;
void koniec();
if(r2!=k)
int los(int, int);
{
void wypelnij(int t[][r2], int); printf("\n\n\n");
void drukuj(int t[][r2], int); printf("PROGRAM mnozy tylko macierze kwadratowe ! ! !"); void suma(int t1[][r2], int t2[][r2], int); printf("\n\n\n");
void iloczyn(int t1[][r2], int t2[][r2], int t3[][r2], int);
}
int mnoz(int t1[][r2], int t2[][r2], int, int); else
//*****************************************************
{
// wyświetla napis
for(i=0;i<k;i++)
// T H E E N D
for(j=0;j<r2;j++)
// i czeka na wciśnięcie klawisza t3[i][j]=mnoz(t1,t2,i,j);
//*****************************************************
}
void koniec(){
}
printf("\n\n\nT H E E N D\n\n");
//*****************************************************
fflush(stdin);
// mnoży i-ty wiersz tablicy t1 przez j-tą kolumnę tablicy t2
getch();
//*****************************************************
}
int mnoz(int t1[][r2], int t2[][r2], int i, int j)
//*****************************************************
{
// zwraca liczbę losową
int ii;
// z przedziału [a,b]
int pom;
//*****************************************************
pom=0;
int los(int a, int b){
for(ii=0;ii<r2;ii++) int pp;
pom=pom+t1[i][ii]*t2[ii][j];
pp=(int)((rand()*(b-a+1))/(RAND_MAX+0.0))+a; return pom;
return pp;
}
}
//*****************************************************
// wypełnia tablicę t o rozmiarach k x r2 danymi losowymi
//*****************************************************
//*****************************************************
//*****************************************************
void wypelnij(int t[][r2], int k){
//*****************************************************
int i;
int main(){
int j;
for(i=0;i<k;i++)
int t1[r1][r2];
for(j=0;j<r2;j++)
int t2[r1][r2];
t[i][j]=los(0,4);
int t3[r1][r2];
}
int t4[r1][r2];
//*****************************************************
// drukuje tablicę t o rozmiarach k x r2
int i;
//*****************************************************
void drukuj(int t[][r2], int k){
srand(time(0));
int i;
wypelnij(t1,r1);
int j;
wypelnij(t2,r1);
for(i=0;i<k;i++)
wypelnij(t3,r1);
{
printf("\n\ntablica 1\n\n"); for(j=0;j<r2;j++)
drukuj(t1,r1);
printf("%3d ",t[i][j]); printf("\n\ntablica 2\n\n"); printf("\n");
drukuj(t2,r1);
}
}
suma(t3,t2,r1);
//*****************************************************
printf("\n\nSUMA\n\n");
// dodaje do tablicy t1 tablicę t2 o rozmiarach k x r2
drukuj(t3,r1);
//*****************************************************
void suma(int t1[][r2], int t2[][r2], int k){
iloczyn(t1,t2,t4,r1);
int i;
printf("\n\nILOCZYN\n\n"); int j;
drukuj(t4,r1);
for(i=0;i<k;i++)
for(j=0;j<r2;j++)
koniec();
t1[i][j]+=t2[i][j];
return 0;
}
}