Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
hw3.doc
Скачиваний:
2
Добавлен:
03.08.2019
Размер:
137.73 Кб
Скачать

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;

b[1] = a[n-7]*a[n-3];

for(i = 0;i<n-1; i++)

s = s+a[i+1] +b[i];

s = s+1;

c[1] = b[n-7]+b[n-2];

for(j = 0;j<n; j++)

s = s+b[j] +c[j];

s = s+2;

a[1] = c[n-7]-c[n-1];

for(k = 0;k<n-2; k++)

s = s+c[k+2]+a[k];

cout<<s;

return 0;

}

Решение:

В первой строке мы видим что с слева отличие только в названии массива. Значение его зависит от предыдущих и влияет на следующие значит это параметр-переменная(однако любой массив-параметр является параметром переменной). Справа выражения, в которых не удается проследить закономерность, поэтому обозначим его за новый аргумент, т.к. его значение зависит от предыдущей программы.

Отличие во второй строке в переменной i(j и k), внедряем локальную переменную l1, т.к. она не зависит от предыдущей программы и не влияет на следующую часть программы. Обязательно сразу же заменяем i(j и k) на l1 во всем фрагменте. Oтличии в границе, аналогично в индексе, можно сказать, что в первом случае он l1+1, во втором l1+0, а в третьем l1+2 и для гораницы n-1, во втором n-0, а в третьем n-2. Заменим этот добавок на новый аргумент a4.

a1=b

a2=a[n-7]*a[n-3]

a1[1] = a2;

for(i = 0;i<n-1; i++)

s = s+a[i+1]+ a1[i];

l1 = i

a4=1

a1[1] = a2;

for(l1 = 0; l1<n-a4; l1++)

s = s+a[l1+a4]+ a1[l1];

a1=c

a2= b[n-7]+b[n-2]

a1[1] = a2;

for(j = 0;j<n; j++)

s = s+b[j] + a1[j];

l1 = j

a4=0

a1[1] = a2;

for(l1 = 0; l1<n-a4; l1++)

s = s+b[l1+a4] + a1[l1];

a1=a

a2= c[n-7]-c[n-1]

a1[1] = a2;

for(k = 0;k<n-2; k++)

s = s+c[k+2]+a1[k];

l1 = k

a4=2

a1[1] = a2;

for(l1 = 0; l1<n-a4; l1++)

s = s+c[l1+a4]+a1[l1];

__ 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, т.к. зависит от предыдущего и влияет на следующее.

Все различия устранены, теперь можно все оставшиеся переменные передавать как переменные параметры(ставя впереди “&”), т.к. их значения передаются из вне, а изменения важны для последующей программы. Внимание перед n “&” не ставится, т.к. она константа. А возвращаемый тип указывать void.

a1=b

a2=a[n-7]*a[n-3]

l1 = i

a3=a

a4=1

a1[1] = a2;

for(l1 = 0; l1<n- a4; l1++)

s = s+a3[l1+a4]+ a1[l1];

a1[1] = a2;

for(l1 = 0; l1<n-1; l1++)

s = s+a3[l1+a4]+ a1[l1];

a1=c

a2= b[n-7]+b[n-2]

l1 = j

a3=b

a4=0

a1[1] = a2;

for(l1 = 0; l1<n- a4; l1++)

s = s+a3[l1+a4]+ a1[l1];

a1[1] = a2;

for(l1 = 0; l1<n-1; l1++)

s = s+a3[l1+a4]+ a1[l1];

a1=a

a2= c[n-7]-c[n-1]

l1 = k

a3=c

a4=2

a1[1] = a2;

for(l1 = 0; l1<n-a4; l1++)

s = s+a3[l1+a4]+ a1[l1];

a1[1] = a2;

for(l1 = 0; l1<n-1; l1++)

s = s+a3[l1+a4]+ a1[l1];

__ sum (int a1[10],int a2, int a3[10],int a4,____)

{

int l1

a1[1] = a2;

for(l1 = 0; l1<n- a4;l1++)

s = s+a3[l1+a4]+ a1[l1];

}

void sum (int a1[10],int a2, int a3[10],int a4,int n, int &s)

{

int l1

a1[1] = a2;

for(l1 = 0; l1<n-a4;l1++)

s = s+a3[l1+a4]+ a1[l1];

}

Сама программа:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]