Вы находитесь на странице: 1из 3

Практическая работа № 4 группы 1-2

Практическая работа № 4
Тема «Массивы»

1 Сформулируйте результат выполнения фрагмента и определите роль переменной-счетчика


a for (i=0,s=0; i< 10; i++) d for (i=1,s=0; i< 10; i++)
if (A[i]> 0) s++; if (A[i]> 0 && A[i-1]< 0) s++;

b for (i=1,s=0,k=0; i< 10; i++) e for (s=0,n=2; n<a; n++)


{ { if (a%n==0) s++; }
if (A[i-1]<A[i]) k++; if (s==0) cout<<"Good\n";
else
{ if (k>s) s=k;
k=0;} }
c int i,j ,cnt; f char *q; int n;
for (i=0; i< n; i++) for (n=0, q=p; *p !='\0'; p++)
{ {
for ( cnt=0,j=0; j<n; j++) if (*p !=' ')
if (in[j] > in[i]) cnt++; { n=0; *q++ = *p; }
else else
if (in[j]==in[i] && j>i) cnt++; { n++; if (n==1) *q++ = *p; }
out[cnt]=in[i]; }считает кол-во пробел до след слова
}определяет количество элементов массива
2 Сформулируйте результат работы фрагмента и назначение переменной-накопителя
a for (s=1, i=1; i< 10; i++) s = s * i; d for (s=1, i=0; i< 10; i++) s = s * 2;

b for (i=0, s=1; s < n; i++) s = s * 2; e for (s=0,i=0; i<n && A[i]>=0; i++) s+=A[i];
cout << i;

c for (s=0,i=0; i<n; i++) f for (s=0, i=0, k=0; i < 10 && k ==0; i++)
if (A[i]> 0) s+=A[i]; { s = s + A[i]; if (A[i]<=0) k=1; }

3 Определить, является ли фрагмент поиском минимума (максимума) и сформулировать


результат работы программы
a for (i=1, k=0; i< 10; i++) d for (i=0,k=-1; i< 10; i++)
if (A[i]>A[k]) k=i; { if (A[i]< 0) continue;
if (k==-1) k=i;
else
if (A[i]<A[k]) k=i;
}
b int i,old,nw; e for (i=0,s=0; i< 10; i++)
for (i=0, old=0, nw=0; c[i] !='\0'; i++){ if (A[i]>s) s=A[i];
if (c[i]==' ') old = 0;
else { if (old==0) nw++; old=1; }
if (c[i]== '\0') break;}
cout<<nw;
c for (i=0,k=-1; i< 10; i++) f for (i=0,s=0; i< 10; i++)
{ if (A[i]< 0) continue; if (A[i]<s) s=A[i];
if (k==-1 || A[i]<A[k]) k=i;}
4 Определите смысл и назначение переменных-признаков.
a int i, k; c int i,old,nw;
for (i=0, k=1; c[i] !='\0'; i++){ for (i=0, old=0, nw=0; c[i] !='\0'; i++){
if (c[i]==‘\0’) k = 1; if (c[i]==' ') old = 0;
if (c[i]>='a' && c[i]<='z' && k==1) else { if (old==0) nw++; old=1; }
{ k=0; c[i]+='A'-'a'; }; if (c[i]== '\0') break;
} }
cout<<nw;

1
Практическая работа № 4 группы 1-2
b int i, k; d int i,j,k,c;
for (i=0, k=1; c[i] !='\0'; i++){ for (i=1; i<n; i++)
if (c[i]==‘\0’) k = 1; { for (k=i; k !=0; k--)
if (c[i]>='a' && c[i]<='z' && k==1) { if (in[k] > in[k-1]) break;
{ k=0; c[i]+='A'-'a'; }; c=in[k]; in[k]=in[k-1]; in[k-1]=c;
} }}

5 Найдите контекст "три стакана" (обмен) и объясните его назначение в программе.


a int i,j; c int i,found;
for (i=0; c[i] !='\0'; i++); do { found =0;
for (j=0,i--; i>j; i--,j++) for (i=0; i<n-1; i++)
{ char s; s=c[i]; c[i]=c[j]; c[j]=s; } if (A[i] > A[i+1])
{ int cc; cc = A[i]; A[i]=A[i+1];
A[i+1]=cc;
found++;
}
} while(found !=0);
b int i,j,k,c; d for (i=0; i< 5; i++)
for (i=1; i<n; i++) { c=A[i]; A[i]=A[9-i]; A[9-i]=c; }
{ for (k=i; k !=0; k--)
{ if (in[k] > in[k-1]) break;
c=in[k]; in[k]=in[k-1]; in[k-1]=c;
}}

6 Сформулируйте условия, проверяемые программой в терминах "текущий, предыдущий,


следующий". Определите переменные, имеющие смысл " текущей" и " предыдущей".
a for (int m=0, k=0, i=1; i<n; i++) d for (int i=0, k=-1, nn=0; i<n; i++){
if (A[i-1]<A[i]) k++; if (A[i]< 0) continue;
else { if (k>m) m=k; k=0; } if (k!=-1 && A[k] < A[i]) nn++;
cout<<m; k=i; }
cout<<nn;

b int i,found; e for (i=0, j=9; i < j; i++, j--)


do { found =0; { c=A[i]; A[i]=A[j]; A[j]=c; }
for (i=0; i<n-1; i++)
if (A[i] > A[i+1])
{ int cc; cc = A[i]; A[i]=A[i+1];
A[i+1]=cc;
found++;
}
} while(found !=0);

c f int i,j;
for (i=0; c[i] !='\0'; i++);
for (j=0,i--; i>j; i--,j++)
{ char s; s=c[i]; c[i]=c[j]; c[j]=s; }

7 Содержательно опишите процесс перемещения элементов массива.


a for (i=0, j=9; i < j; i++, j--) c for (s=A[0], i=1; i < 10; i++) A[i-1] = A[i];
{ c=A[i]; A[i]=A[j]; A[j]=c; } A[9] = s;

b for (i=0; i< 5; i++) d


{ c=A[i]; A[i]=A[9-i]; A[9-i]=c; }

2
Практическая работа № 4 группы 1-2
8 Найдите "пустой" цикл и объясните его назначение.
a int nn,k; b int i,j;
for (nn=n, k=0; nn!=0; k++, nn/=10); for (i=0; c[i] !='\0'; i++);
for ( c[k-- ]=0; k >=0; k--, n /= 10) for (j=0,i--; i>j; i--,j++)
c[k] = n % 10 + '0'; { char s; s=c[i]; c[i]=c[j]; c[j]=s; }

9 Сформулируйте условия, проверяемые циклами.


a for (i=0,a=2; a< 10000; a++){ e for (i=0,a=2; a< 10000; a++) {
for (j=0; j<i; j++) for (n=2; n<a; n++)
{ if (a%A[j]==0) break; } { if (a%n==0) break; }
if (j==i) A[i++]=a; if (n==a) A[i++]=a;
} A[i]=0; } A[i]=0;

b for (i=0; i< 10; i++) { f for (n=a; n!=0; n/=10){


for (j=2; j<A[i]; j++) k=n%10;
if (A[i]%j==0) break; for (i=2; i<k; i++)
if (j==A[i]) break; if ( k%i==0) break;
} if (k!=i) break;
if (i!=10) cout<<"Good\n"; }
if (n==0) cout<<"Good\n";

c for (i=2; i<a; i++) h for (i=0; i< 10; i++)


if (a%i==0) break; if (A[i]< 0) break;
if (i==a) cout<<"Good\n"; if (i==10) cout<<"Good\n»;

d for (s=0, i=0, k=0; i < 10 && k ==0; i++) g


{ s = s + A[i]; if (A[i]<=0) k=1; }

10 Определите условие завершения цикла.


a for (n=a; n%a!=0 || n%b!=0; n++); e for (s=0,n=2; n<a; n++)
cout<<"i="<<n; { if (a%n==0) s++; }
if (s==0) cout<<"Good\n";

b for (i=n1-1; !(n1 % i ==0 && n2 % i ==0); i--); f i = n1; if (i < n2) i=n2;
cout<<"i="<<i; for (; !(i % n1 ==0 && i % n2 ==0); i++);
cout<<"i="<<i;

c for (n=a-1; a%n!=0 || b%n!=0; n--); h for (s=0, i=0; i < 10 && A[i] > 0; i++)
cout<<"i="<<n; s = s + A[i];

d for (n=2; n<a; n++) g for (i=2; n % i !=0; i++);


{ if (a%n==0) break; } cout<<"i="<<i;
if (n==a) cout<<"Good\n";

Вам также может понравиться