Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



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 >




Переглядів: 327

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.002 сек.