Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-1 Программирование С++ / метод_лб_ пз_Інформатика.doc
Скачиваний:
5
Добавлен:
31.01.2021
Размер:
699.9 Кб
Скачать

Приклад 2.4 Обчислити середнє значення додатних елементів одновимірного масиву.

Наведемо кілька варіантів програмної реалізації цієї задачі.

// P2_7.CPP — обчислення середнього значення

// додатних елементів масиву

// програма без використання покажчиків

#include < iostream>

using namespace std;

main( )

{

const int n = 5;

float mas[n], s = 0;

int kol = 0;

for( int i = 0; i < n; i++)

{

cout << "Введіть" << і << "елемент mas" << endl;

cin >> mas[ i ];

if ( mas[ i ] > 0 )

{

s += mas[ i ];

kol ++;

}

}

s/ = kol;

cout << "s=" << s << endl;

return 0;

}

Використовуючи ім'я масиву як покажчик на початок масиву (перший елемент), цю програму можна переписати в такий спосіб:

// P2_8.CPP — обчислення середнього значення

// додатних елементів масиву

// використання імені масиву як покажчика на його початок

#include < iostream>

using namespace std;

main ( )

{

const int n = 5;

float mas[n], s = 0;

int kol = 0;

for ( int i=0; i < n; i++)

{

cout << "Введіть" << і << "елемент mas" << endl;

cin >> *( mas+i);

if(* ( mas+i ) > 0 )

{

s+= *(mas+i);

kol++;

}

}

s/=kol;

cout << "s=" << s << endl;

return 0;

}

Якщо описати покажчик, зв'язати його з масивом (адресувати на початок масиву),то використовуючи арифметику покажчиків, можна написати цю програму у вигляді:

// P2_9. CPP —— обчислення середнього значення

// додатних елементів масиву

// використання арифметики покажчиків

#include < iostream>

using namespace std;

main ( )

{

int kol = 0;

const int n = 5;

float mas[n], s = 0;

float *pm = mas; // припустимий запис pm=&mas[0]

for ( int і = 0; і < n; і++)

{

cout <<"Введіть"<< і <<"елемент mas" << endl;

cin >> *pm++;

cout << mas[i] << endl;

if (mas[i] > 0)

{

s+=mas[i];

kol++;

}

}

s/= kol;

cout << "s=" << s << endl;

return 0;

}

У наведеній програмі при введенні масиву використовувався покажчик *pm , а при роботі з ним ім'я масиву з індексом. Якби при роботі з масивом використовувався покажчик *pm , то результат був би не вірним. Це пояснюється тим, що покажчик *pm в операціях введення він збільшує свою адресу ( pm++) після введення чергового елемента масиву і надалі вказує ще не введений елемент.

Наведемо ще один варіант програмної реалізації цієї ж задачі.

// P2_10.СРР —— обчислення середнього значення

// додатних елементів масиву

// використання покажчиків

#include < iostream>

using namespace std;

main ( )

{

const int n = 5;

float mas[n], s = 0;

float *pm = mas; // *pm=&mas[0]

int kol = 0;

for ( int i = 0 ; i < n ; i++)

{

cin >> *pm;

cout << "Введіть" << і << "елемент mas" << endl;

if (*pm > 0)

{

s += *pm;

kol ++;

}

pm ++;

}

s/= kol;

cout << "s=" << s << endl;

return 0;

}

Приклад 2.5. Скласти програму сортування одновимірного масиву за

зменшенням методом вставки.

// P2_11.CPPсортування методом вставки (за зменшенням)

// застосування покажчиків

#include < iostream.h >

#include < conio.h >

main ( )

{

int stc, mas [6], i, j;