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

Інформатика — Практика — Практичне заняття    Автори

|

Контакти

|

Підсистема допомоги

|

Методичні вказівки

|

Анотація

|

Назад

   ІнформатикаФункції : Практичне заняттяЗміст курсу

Вступ

Теорія

Визначення й виклик функцій

Передача параметрів

Функції, що не повертають значення

Функції із змінним числом параметрів

Рекурсивні функції

Перевантаження функцій

Передача параметрів за замовчуванням

Масиви як параметри функцій

Шаблони функцій

Практика

Практичне заняття

Лабораторна робота

Поточна перевірка знань

Функції

Висновки

Версія для друку

  Практичне заняття Приклад 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;

     }

}

 © 2008 ХНУРЭ, Інформатики, Сінельнікова Т.Ф., informatika@kture.Kharkov.uaРозроблено за допомогою LERSUS

Соседние файлы в папке content