{ int i,j,a,b,m,n;
printf("Input dimensions m,n = "); scanf("%d %d",&m,&n);
float** A= new float*[m];
for (i=0;i<m;i++) A[i]= new float[n];
for (i=0;i<m;i++) for (j=0;j<n;j++) A[i][j]=frand(-1,1);
puts("Initial Matrix:");
for (i=0;i<m;i++)
{ for (j=0;j<n;j++) printf("%6.3f ",A[i][j]);
printf("\n");
}
printf("Rows numbers for transposition: a,b= ");
scanf("%d %d",&a,&b);
swp(A[a],A[b]); // переставлення рядків матриці
puts("The Matrix after transposition:");
for (i=0;i<m;i++)
{ for (j=0;j<n;j++) printf("%6.3f ",A[i][j]);
printf("\n");
}
for (i=0;i<m;i++) delete[] A[i];
delete[] A;
}
int cmp(int nx, int ny, Type* x, Type* y);
Лексикографічне порівняння двох масивів, nx, ny - розміри вихідних масивів. Функція повертає значення:
-1, якщо здійснюється відношення x < y ;
0, якщо x == y ;
1, якщо x > y .
Наприклад, при виконанні таких рядків:
char *x= "beta", *y="alfa";
cout << cmp(strlen(x), strlen(y), x, y) << endl;
буде виведено значення 1. Масиви, що порівнюються, можуть мати будь-який тип, для якого операції порівняння "<" та ">" перевантажені відповідним чином.
void errhalt(bool ex, char* mes);
Ця процедура є найпростішим засобом обробки виключної ситуації: якщо ex == true, на екран виводиться повідомлення mes і робота програми завершується. Наприклад, якщо деяка величина x виявляється негативною, потрібно завершити програму аварійно з видачею повідомлення "Величина x негативна!". Відповідний оператор буде мати такий вигляд:
errhalt( x < 0, "Величина х негативна!");
void errhalt(bool ex, char* mes, FILE* f);
Друга версія попередньої процедури, відрізняється тим, що повідомлення mes виводиться не на екран, а у файл, який відповідає значенню покажчика f.
char* about_syst();
Повертає покажчик на рядок, що містить інформацію про розробника модуля syst.h .
Наприклад, при виконанні такого рядка програми
cout << about_syst() << endl;
на екран буде виведений текст:
SYST.H: Kernel Unit of VP/C++ Library