Ctrl+V
guardian_angel33
16 May 2015
Да простят меня боги -_-
#include <stdio.h>
#include <stdlib.h>
int horizontal(int ii,int jj,int v, int g, int *mas )
{
int s=0;
int prom;
int k;
int i;
for (i=ii;i>=0;i--)
{
k=i*v+jj;
prom = *(mas+k);
s=s+prom;
}
return s;
}
int vertical(int ii,int jj,int v, int g, int *mas )
{
int s=0;
int prom;
int k;
int j;
for(j=jj+1;j<g;j++)
{
k=ii*v+j;
prom = *(mas+k);
s=s+prom;
}
return s;
}
int diagonal(int ii,int jj,int v, int g, int *mas )
{
int s=0;
int prom, pron;
int k;
int js=jj+1,is=ii+1;
int i;
if(js<=is) pron=v;
else pron = v - (js-is);
for(i=is;i<pron;i++)
{
k=i*v+js;
prom = *(mas+k);
s=s+prom;
js++;
}
return s;
}
int obrabotka(int v, int g,int vv,int gg, int *mas)
{
int i,j,k;
int s1=0,s2=0,s3=0, s=0;
int ii,jj;
for(j=0;j<gg;j++)
{
for(i=vv;i>=0;i--)
{
ii=i;
jj=j;
k=i*v+j;
s1 = horizontal(ii,jj,vv,gg,mas);
s2 = vertical(ii,jj,vv,gg,mas);
s3 = diagonal(ii,jj,vv,gg,mas);
s = s1+s2+s3;
*(mas+k) = s;
}
}
return mas;
}
void zapolnenie(int v, int g, int *mas)
{
int i,j,k;
for(i=0;i<v;i++)
{
for(j=0;j<g;j++)
{
k=i*v+j;
*(mas+k)=i+j;
}
}
}
void zapolnenieBmass(int v, int g, int *mas)
{
int i,j,k;
for(i=0;i<v;i++)
{
for(j=0;j<g;j++)
{
k=i*v+j;
*(mas+k)=i-j;
}
}
}
void vivod(int v, int g, int *mas)
{
int i,j,k;
for(i=0;i<v;i++)
{
for(j=0;j<g;j++)
{
k=i*v+j;
printf("%5d", *(mas+k));
}
printf("\n");
}
}
int main()
{
int g,v;
int mas[20][20];
int i,j;
const int a=11;
int mg,mv;
printf("Enter horizontal limiter\n");
scanf("%d",&g);
printf("Enter vertical limiter\n");
scanf("%d",&v);
printf("Enter mini horizontal limiter\n");
scanf("%d",&mg);
printf("Enter mini vertical limiter\n");
scanf("%d",&mv);
printf("\nMatrix A\n");
zapolnenie(v,g,*mas);
printf("\n");
vivod(v,g,*mas);
printf("\n");
obrabotka(v,g,v,g,*mas);
printf("Result\n");
vivod(v,g,*mas);
printf("\n");
printf("Matrix B\n");
zapolnenieBmass(a,a,*mas);
printf("\n");
vivod(a,a,*mas);
printf("\n");
obrabotka(a,a,a,a,*mas);
printf("Result\n");
vivod(a,a,*mas);
printf("\n");
printf("Mini matrix result\n");
obrabotka(mv,mg,mv,mg,*mas);
vivod(mv,mg,*mas);
printf("\nMatrix B corner\n");
zapolnenieBmass(a,a,*mas);
obrabotka(a,a,a,a,*mas);
vivod(a,a,*mas);
obrabotka(a,a,mv-1,mg,*mas);
printf("Result\n");
vivod(a,a,*mas);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int horizontal(int ii,int jj,int v, int g, int *mas )
{
int s=0;
int prom;
int k;
int i;
for (i=ii;i>=0;i--)
{
k=i*v+jj;
prom = *(mas+k);
s=s+prom;
}
return s;
}
int vertical(int ii,int jj,int v, int g, int *mas )
{
int s=0;
int prom;
int k;
int j;
for(j=jj+1;j<g;j++)
{
k=ii*v+j;
prom = *(mas+k);
s=s+prom;
}
return s;
}
int diagonal(int ii,int jj,int v, int g, int *mas )
{
int s=0;
int prom, pron;
int k;
int js=jj+1,is=ii+1;
int i;
if(js<=is) pron=v;
else pron = v - (js-is);
for(i=is;i<pron;i++)
{
k=i*v+js;
prom = *(mas+k);
s=s+prom;
js++;
}
return s;
}
int obrabotka(int v, int g,int vv,int gg, int *mas)
{
int i,j,k;
int s1=0,s2=0,s3=0, s=0;
int ii,jj;
for(j=0;j<gg;j++)
{
for(i=vv;i>=0;i--)
{
ii=i;
jj=j;
k=i*v+j;
s1 = horizontal(ii,jj,vv,gg,mas);
s2 = vertical(ii,jj,vv,gg,mas);
s3 = diagonal(ii,jj,vv,gg,mas);
s = s1+s2+s3;
*(mas+k) = s;
}
}
return mas;
}
void zapolnenie(int v, int g, int *mas)
{
int i,j,k;
for(i=0;i<v;i++)
{
for(j=0;j<g;j++)
{
k=i*v+j;
*(mas+k)=i+j;
}
}
}
void zapolnenieBmass(int v, int g, int *mas)
{
int i,j,k;
for(i=0;i<v;i++)
{
for(j=0;j<g;j++)
{
k=i*v+j;
*(mas+k)=i-j;
}
}
}
void vivod(int v, int g, int *mas)
{
int i,j,k;
for(i=0;i<v;i++)
{
for(j=0;j<g;j++)
{
k=i*v+j;
printf("%5d", *(mas+k));
}
printf("\n");
}
}
int main()
{
int g,v;
int mas[20][20];
int i,j;
const int a=11;
int mg,mv;
printf("Enter horizontal limiter\n");
scanf("%d",&g);
printf("Enter vertical limiter\n");
scanf("%d",&v);
printf("Enter mini horizontal limiter\n");
scanf("%d",&mg);
printf("Enter mini vertical limiter\n");
scanf("%d",&mv);
printf("\nMatrix A\n");
zapolnenie(v,g,*mas);
printf("\n");
vivod(v,g,*mas);
printf("\n");
obrabotka(v,g,v,g,*mas);
printf("Result\n");
vivod(v,g,*mas);
printf("\n");
printf("Matrix B\n");
zapolnenieBmass(a,a,*mas);
printf("\n");
vivod(a,a,*mas);
printf("\n");
obrabotka(a,a,a,a,*mas);
printf("Result\n");
vivod(a,a,*mas);
printf("\n");
printf("Mini matrix result\n");
obrabotka(mv,mg,mv,mg,*mas);
vivod(mv,mg,*mas);
printf("\nMatrix B corner\n");
zapolnenieBmass(a,a,*mas);
obrabotka(a,a,a,a,*mas);
vivod(a,a,*mas);
obrabotka(a,a,mv-1,mg,*mas);
printf("Result\n");
vivod(a,a,*mas);
return 0;
}