Int main()
{
int i,j,k,s; const n = 10;
int a[n],b[n],c[n];
for (i = 0;i<n;i++) cin>>a[i];
for (i = 0;i<n;i++) cin>>b[i];
for (i = 0;i<n;i++) cin>>c[i];
s = 0;
sum(b, a[n-7]*a[n-3],a,1);
s = s+1;
sum(c, b[n-7]+b[n-2],b,0);
s = s+2;
sum(a, c[n-7]-c[n-1],c,2);
cout<<s;
return 0;
}
Задание 1.3
Int main()
{
int i,j,k;
const n = 10;const M = 5;
int a[n],b[n],c[n];
double d[M],s;
for (i = 0;i<n;i++) cin>>a[i];
for (i = 0;i<n;i++) cin>>b[i];
for (i = 0;i<n;i++) cin>>c[i];
for (i = 0;i<M;i++) cin>>d[i];
s = 0;
for (q = 0;q<M;q++)
{
b[q] = a[n-7]*a[n-3];
for(i = 0;i<n-1; i++)
s = s+a[i+1]+cos(a[q+d[q]]);
d[3] = d[3]+1;
s = s+5;
c[q] = b[n-7]+b[n-2];
for(j = 0;j<n; j++)
s = s+b[j]+sin(b[q+d[q]]);
s = s+3;
a[q] = c[n-7]-c[n-1];
for(k = 0;k<n-2; k++)
s = s+c[k+2]+cos(c[q+d[q]]);
d[3] = d[3]+2;
}
cout<<s;
return 0;
}
В первой строке мы видим что с слева отличие только в названии массива. это параметр-переменная(аналогично 1.2). Справа выражения, в которых не удается проследить закономерность, поэтому обозначим его за новый аргумент. |
Отличие во второй строке в переменной i(j и k), внедряем локальную переменную l1. Oтличии в границе. Заменим этот добавок на аргумент a4. То же отличие в 4-ой строке во втором фрагменте d[3] = d[3]+0(аналог ничего не деланья) |
|
|||||
a1=b a2=a[n-7]*a[n-3] |
a1[q] = a2; for(i = 0;i<n-1; i++) s = s+a[i+1]+cos(a[q+d[q]]); d[3] = d[3]+l |
l1 = i a4=1
|
a1[1] = a2; for(l1 = 0; l1<n-a4; l1++) s = s+a[l1+a4]+cos(a[q+d[q]]); d[3] = d[3]+a4; |
|
|||
a1=c a2= b[n-7]+b[n-2] |
a1[q] = a2; for(j = 0;j<n; j++) s = s+b[j]+sin(b[q+d[q]]); |
l1 = j a4=0 |
a1[1] = a2; for(l1 = 0; l1<n-a4; l1++) s = s+b[l1+a4] +sin(a[q+d[q]]); d[3] = d[3]+a4; |
|
|||
a1=a a2= c[n-7]-c[n-1] |
a1[q] = a2; for(k = 0;k<n-2; k++) s = s+c[k+2]+cos(c[q+d[q]]); d[3] = d[3]+2; |
l1 = k a4=2 |
a1[1] = a2; for(l1 = 0; l1<n-a4; l1++) s = s+c[l1+a4]+cos(a[q+d[q]]); d[3] = d[3]+a4; |
|
|||
|
__ sum (int a1[10],int a2,___) { a1[1] = a2; … } |
|
__ sum (int a1[10],int a2,int a4,_) { int l1 a1[1] = a2; for(l1 = 0; l1<n-a4; l1++) … } |
|
|||
В третьей строке отличие в массиве а(b и c), его мы обозначим за аргумент a3, т.к. зависит от предыдущего и влияет на следующее. Также отличие в функции, заведем булевский аргумент a5, который будет показывать что это sin или cos, и предварительно вычисленное значение функции будем класть в локальную переменную l2. Обратим внимание на тип выражения |
Все различия устранены, теперь можно все оставшиеся переменные передавать как переменные параметры(ставя впереди “&”), т.к. их значения передаются из вне, а изменения важны для последующей программы. Внимание перед n “&” не ставится, т.к. она константа. А возвращаемый тип указывать void. |
||||||
a1=b a2=a[n-7]*a[n-3] l1 = i a3=a a4=1 a5=true l2=cos(a1[q+d[q]]); |
a1[1] = a2; for(l1 = 0; l1<n- a4; l1++) { if (a5) l2 = cos(a1[q+d[q]]); else l2 = sin(a1[q+d[q]]); s=s+a3[l1+a4]+l2 d[3] = d[3]+a4; } |
|
a1[1] = a2; for(l1 = 0; l1<n- a4; l1++) { if (a5) l2 = cos(a1[q+d[q]]); else l2 = sin(a1[q+d[q]]); s=s+a3[l1+a4]+l2 d[3] = d[3]+a4; } |
||||
a1=c a2= b[n-7]+b[n-2] l1 = j a3=b a4=0 a5=false l2=sin(a1[q+d[q]]); |
a1[1] = a2; for(l1 = 0; l1<n- a4; l1++) { if (a5) l2 = cos(a1[q+d[q]]); else l2 = sin(a1[q+d[q]]); s=s+a3[l1+a4]+l2 d[3] = d[3]+a4; } |
|
a1[1] = a2; for(l1 = 0; l1<n- a4; l1++) { if (a5) l2 = cos(a1[q+d[q]]); else l2 = sin(a1[q+d[q]]); s=s+a3[l1+a4]+l2 d[3] = d[3]+a4; } |
||||
a1=a a2= c[n-7]-c[n-1] l1 = k a3=c a4=2 a5=true l2=cos(a1[q+d[q]]); |
a1[1] = a2; for(l1 = 0; l1<n- a4; l1++) { if (a5) l2 = cos(a1[q+d[q]]); else l2 = sin(a1[q+d[q]]); s=s+a3[l1+a4]+l2 d[3] = d[3]+a4; } |
|
a1[1] = a2; for(l1 = 0; l1<n- a4; l1++) { if (a5) l2 = cos(a1[q+d[q]]); else l2 = sin(a1[q+d[q]]); s=s+a3[l1+a4]+l2 d[3] = d[3]+a4; } |
||||
__ sum (int a1[10],int a2, int a3[10],int a4,bool a5,____) { int l1; double l2; a1[1] = a2; for(l1 = 0; l1<n- a4;l1++) { if (a5) l2 = cos(a1[q+d[q]]); else l2 = sin(a1[q+d[q]]); s = s+a3[l1+a4]+ a1[l1]; d[3] = d[3]+a4;} } |
void sum (int a1[10],int a2, int a3[10],int a4,bool a5,double &s, int n, int &q, double d[5]) { int l1; double l2; a1[1] = a2; for(l1 = 0; l1<n- a4;l1++) { if (a5) l2 = cos(a1[q+d[q]]); else l2 = sin(a1[q+d[q]]); s = s+a3[l1+a4]+ a1[l1]; d[3] = d[3]+a4;} } |