Практичне заняття
Приклад 1. Створити функцію підрахунку кількості негативних елементів у масиві.
#include <iostream.h>
//функція підрахунку кількості негативних елементів в одномірному масиві
int Kol(int *mas,int n)
{
int s=0;
for(int i=0;i<n;i++)
if(mas[i]<0) s++;
return s;
}
void main()
{
const m=5;
int mas[m]={4,7,-8,4,-9};
cout<<Kol(mas,m)<<endl;
cin.get();
}
Приклад 2. Функція транспонування матриці.
#include <iostream.h>
void t(int n, int*a[])
{
int s;
for (int i=0;i<n-1;i++)
for (int j=i+1;j<n;j++)
{
s=a[i][j];
a[i][j]=a[j][i];
a[j][i]=s;
}
}
void main()
{
const int k=3;
int m[k][k]={1,2,3,4,5,6,7,8,9};
int*p[]={(int*)&m[0],(int*)&m[1],(int*)&m[2]};
t(k,p);
for (int i=0;i<k;i++)
{
for (int j=0;j<k;j++)
cout<<m[i][j]<<' ';
cout<<"\n";
}
cin>>i;
}
Результатом буде
1 4 7
2 5 8
3 6 9
Приклад 3. Функція заповнення матриці.
#include <iostream.h>
void t(int n, int**a)
{
int k=0;
for (int i=0;i<n;i++)
for (int j=0;j<n;j++)
a[i][j]=k++;
void main()
{
int **p;
const int n1=3;
int m[n1][n1]={0};
int* p1[n1]={(int*)&m[0],(int*)&m[1],(int*)&m[2]};
p=(int**)&p1;
t(n1,p);
for (int i=0;i<n1;i++)
{
for (int j=0;j<n1;j++)
cout<<p[i][j]<<" ";
cout<<"\n";
}
cin>>i;
}
Результатом буде
0 1 2
3 4 5
6 7 8
Приклад 4. Створити функцію для підсумовування елементів одномірного масиву, функцію для сортування одномірного масиву й відсортувати у двовимірному масиві другий рядок. Створення динамічних масивів, видалення їх, заповнення , вивід на екран також організований у вигляді функцій.
#include <iostream.h>
#include <stdlib.h> //rand
#include <iomanip.h> //setw
void MySwap(int &a,int&b); //функція обміну елементів місцями
void MySort(int *mas, int n); //функція сортування одномірного масиву
int sum(int *mas,int n); //підсумовування одномірного масиву
int** createMas(int n, int m); //Створення двовимірного динамічного масиву
void deleteMas(int** mas,int n); //Видалення двовимірного динамічного масиву
void RandomMas(int** mas, int n, int m, int k); //заповнення двовимірного масиву випадковим образом від 0 до k
void outputMas(int** mas, int n, int m); //виведення масиву на екран
void main()
{
int x[5]={3,5,4,7,8};
cout<<"\n сума одномірного масиву = "<<sum(x,5)<<endl;
int v=4,b=5;
int **Matr=createMas(v,b); //створюємо двовимірний масив
RandomMas(Matr, v,b,10); //заповнюємо випадковим образом від 0 до 10
cout<<"\n двовимірний масив: ";
outputMas(Matr, v,b); //друкуємо масив на екран
//сума елементів рядків матриці
for (int i=0; i<v; i++)
cout<<"\n Cумма "<<i<<" рядка ="<<sum(Matr[i], b);
//сортуємо другий рядок
MySort(Matr[1],v,b);
cout<<"\n результуючий масив (сортований 2-я рядок): ";
outputMas(Matr, v,b); //друкуємо масив на екран
deleteMas(intMas,n); //видаляємо динамічний масив
cin.get();
} //кінець головної функції main
void MySwap(int&a,int&b) //функція обміну елементів місцями
{
int t=a;
a=b;
b=t;
}
void MySort(int *mas, int n) //функція сортування одномірного масиву
{
for(int i=0;i<n;i++)
for(int j=0;j<n-1-i;j++)
if(mas[j]>mas[j+1])
MySwap(mas[j],mas[j+1]);
}
int sum(int *mas,int n) //підсумовування одномірного масиву
{
int s=0;
for(int i=0;i<n;i++)
s+=mas[i];
return s;
}
int** createMas(int n, int m) //створення динамічного масиву
{
int**mas=new int*[n];
for(int i=0;i<n;i++)
mas[i]=new int [m];
return mas;
}
void deleteMas(int**mas,int n) // видалення динамічного масиву
{
for(int i=0;i<n;i++)
delete []mas[i];
delete []mas;
}
void RandomMas(int** mas, int n, int m, int k)
{
srand(time(NULL));
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
mas[i][j]= rand()%k+1;
}
void outputMas(int** mas, int n, int m) // вивід матриці на екран
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cout<<setw(10)<<mas[i][j]
//setw(10)- відступ : наступна печaть із 10 позиції;
cout<<endl;
}
}