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


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


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


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


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


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


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


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


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


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



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

Приведемо кілька варіантів програмної реалізації цього завдання.

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

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

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

#include <iostream.h>

main( )

{

const int n = 5;

float mas[n], s = 0;

int kol = 0;

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

{

cout << "Уведіть" << i << "елемент 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.h>

main ( )

 

{

const int n = 5;

float mas[n], s = 0;

int kol = 0;

 

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

{

cout << "Уведіть" << i << "елемент 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.h>

main ( )

{

int kol = 0;

const int n = 5;

float mas[n], s = 0;

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

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

{

cout << "Уведіть" << i << "елемент 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.h >

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 << "Уведіть" << i << "елемент mas" << endl;

if (*pm > 0)

{

s += *pm;

kol ++;

*pm ++;

}

}

s/= kol;

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

return 0;

}

 

 

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

// P2_11.CPP — сортування методом вставки (по убуванню)

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

#include < iostream.h >

#include < conio.h >

main ( )

{

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

int *pmas;

 

pmas = mas;

cout << "Уведіть 6 елементів масиву" << endl;

for ( i = 0; i < 6; i++) cin >>*pmas++;

// Наступний оператор знову встановлює покажчик на початок масиву

// (інакше він буде вказувати на наступний за масивом адреса)

pmas = mas;

for ( i =1; i < 6; i++)

{

stc = *(pmas + i);

j = i - 1;

while ( j >= 0 && stc > *(pmas+j))

{

*(pmas+j+1) = *(pmas+j);

j - - ;

}

*(pmas+j+1) = stc;

}

cout << "Результат" << endl;

for ( i = 0; i < 6; i++)

cout << i << " елемент " << *(pmas + i ) << endl;

//Можна використати й таку конструкцію оператора

// cout << i << " елемент " << * pmas++ << endl;

getch ( ); //Для затримки екрана виводу результату

return 0;

}


Читайте також:

  1. DIMCLRE (РЗМЦВЛ) - колір виносних ліній (номер кольору). Може приймати значенняBYBLOCK (ПОБЛОКУ) і BYLAYER (ПОСЛОЮ).
  2. I визначення впливу окремих факторів
  3. II. Визначення мети запровадження конкретної ВЕЗ з ураху­ванням її виду.
  4. II. За зміною ступенів окиснення елементів, які входять до складу реагуючих речовин
  5. II. Мотивація навчальної діяльності. Визначення теми і мети уроку
  6. Iсторичне значення революції.
  7. Ne і ne – поточне значення потужності і частоти обертання колінчастого вала.
  8. Ocнoвнi визначення здоров'я
  9. Аварійно-рятувальні підрозділи Оперативно-рятувальної служби цивільного захисту, їх призначення і склад.
  10. Автокореляція залишків – це залежність між послідовними значеннями стохастичної складової моделі.
  11. Автоматизація процесу призначення IP-адрес
  12. Алгебраїчний спосіб визначення точки беззбитковості




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

<== попередня сторінка | наступна сторінка ==>
Лекція №6 | Лекція №8

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

  

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


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