17112

Масиви. Селективна обробка масивів

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

Информатика, кибернетика и программирование

Лабораторна робота № 21 Тема: Масиви. Селективна обробка масивів Ціль роботи: вивчити роботу з масивом як зі складеним типом даних прийоми введення і виведення даних обробку одномірних масивів. Обладнання: ПКПО Borland C Теоретичні відомості Масив це набір...

Украинкский

2013-06-29

74 KB

5 чел.

Лабораторна робота № 21

Тема: Масиви. Селективна обробка масивів

 Ціль роботи: вивчити роботу з масивом як зі складеним типом даних, прийоми введення і виведення  даних, обробку одномірних масивів.

Обладнання: ПК,ПО Borland C++

Теоретичні відомості

Масив - це набір об'єктів (елементів) однакового типу, доступ до яких здійснюється прямо по індексу в масиві. Звертання до масивів у Среалізовано за допомогою покажчиків (pointers).

Масив у Сможна оголосити в такий спосіб:

[Клас_пам'яті] Тип_даних Ім'я_масиву> [<Розмір_масиву>];

Розмір_масиву може бути заданий константним вираженням.

Доступ до елементів масиву відбувається в такий спосіб:

<Ім'я_масиву>[<Значення_індексу>], тобто, використовуючи ім'я масиву й індекс від 0 до (Розмір_масиву -1), тобто на одиницю менше, ніж <Розмір_масиву>.

Приклад оголошення масиву:

char name[20];

int grad[125];

float b[30];

Масив має ім'я (name), що є покажчиком на тип елементів масиву й адресує перший елемент з індексом (). Ім'я масиву фактично є константним покажчиком, що посилається на початкову адресу даних, з якого розташований сам масив і може бути використане як покажчик. Звертання до елементів може здійснюватися в такий спосіб name[0] -1-ий елемент масиву, name[1]- 2-ий елемент, name[19] – останній 20-ий елемент.

При трансляції програми компілятор відводить місце під оголошений масив статично, тобто в області даних ділянка пам'яті, виділена для масиву, не може бути динамічно змінений. Розмір виділюваної пам'яті під масив можна визначити по наступній формулі:

(sizeof(тип)*Розмір_масиву) байтів.

Масив розміщається послідовно в пам'яті, тобто кожна наступна осередок розташований відразу після попередньої.

У С++ не включені стандартні оператори, що здійснюють роботу з масивами, як стандартними типами даних. Щоб скопіювати дані з одного масиву в інший необхідно організувати функцію, тіло якої повинно мати приблизно наступний вид:

for(i=0; i<rasm; i++) mas2[i] = mas1[i];

де rasm - розмір масивів, що відповідає зазначеному в їхньому оголошенні

# define rasm 20

int mas2[rasm], mas1[rasm];

Приклад

/*    ЗАНЯТТЯ N 9

Виконав студент групи .........   Петров Ю.В.

Застосування масивів при роботі з перемінними

різних типів (int,float), зміна значень

перемінних. Приклади прийомів роботи з масивами  */

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#define N 15

#define M 10

int p[N],   x[N], i, j, j1, count=0;

int y[N*2], z[N]={15,37,10,-20,-10,25,27,30,89,67,\

   24,-6,22};

int   *pi=y;        //Два останніх елементи z[N] рівні 0

float *pf, mf[N];

void main()

{ clrscr();   randomize();

  pf=mf;

  printf("Вихідний масив p[]: \n");

  for (і=0;і<N;і++)

   { p[і]=random(81)-40;  //Ініціалізація за допомогою функції

     printf("%4d",p[і]);  //random() в інтервалі +40...-40

     if (p[і]>0)     //Вибір елементів >0 у масив х[]

  { x[count]=p[i];

    mf[count]=x[count]/5.5;

    count++;

  }

    }

   printf("\n");

   printf("Вихідний масив z[j]: \n");

   for (і=0;і<N;і++) printf("%4d",z[і]);

   printf("\nрабочий масив x[count]>0 з p[і]: \n");

   for (і=0;і<count;і++) printf("%4d",x[і]);

   j=0;//Вибір елементів у масив у[] з z[] і р[] за умовами

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

    {if (z[i]>=-M && z[i]<=(M+N) && (z[i]%2==0))

 { *pi = z[i];  pi++; j++;}

     if (p[i]>=-M && p[i]<=(M+N) && (p[i]%2==0))

 { *(y+j)=p[i]; pi++; j++;}

    }

   j1=j;

   printf("\nрабочий масив y[j] з z[і] і р[і] за умовами \n");

   printf(" -M<y[j]<(M+N) і парне:\n");

   for (і=0;і<j1;і++)  printf("%4d",y[і]);

   printf("\nрабочий масив mf[j]=x[j]/5.5 \n");

   for (і=0;і<count;і++)  printf("%6.4f ",*(pf+і));

      //Сортування масиву x[]

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

     for (j=i;j<count;j++)

if (x[i]<x[j])

  {int c=x[i];x[i]=x[j];x[j]=c;

  }

else continue;

     //Сортування масиву в[]

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

     for (j=i;j<j1;j++)

if (y[i]<y[j])

  {int c=y[i];y[i]=y[j];y[j]=c;

  }

else continue;

   printf("\nсортированный масив x[]: \n");

   for (і=0;і<count;і++)

      printf("%4d",x[і]);

   printf("\nсортированный масив y[]: \n");

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

      printf("%4d",y[i]);

   getch();

}

/*Вихідний масив p[]:

 32  37 -34  11  30   8 -11 -38   6 -21 -27 -23 -30 -19 -29

Вихідний масив z[j]:

 15  37  10 -20 -10  25  27  30  89  67  24  -6  22   0   0

Робочий масив x[count]>0 з p[і]:

 32  37  11  30   8   6

Робочий масив y[j] з z[і] і р[і] за умовами

      -M<y[j]<(M+N) і парне:

 10 -10   8   6  24  -6  22   0   0

Робочий масив mf[j]=x[j]/5.5

 5.8182 6.7273 2.0000 5.4545 1.4545 1.0909

Сортований масив x[]:

 37  32  30  11   8   6

Сортований масив y[]:

 24  22  10   8   6   0   0  -6  -10    */

Приклад програми на С++

Скласти програму для обробки масиву відповідно до індивідуального завдання приведеному в таблиці 9.1.

Вар.

Умова задачі

6

Обчислити добуток позитивних чисел масиву

#include<iostream.h>

#define COUT cout<<"s="<<s

void main()

{int i;

double x[10],s;

cout<<"input array x:\n";

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

cin>>x[i];

s=1.0;

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

{if(x[i]>0) s=s*x[i];

}

COUT;

}

Хід роботи

1.Вивчити теоретичні відомості.

2.Відповідно до індивідуального завдання розробити алгоритм ініціалізації масиву, селективної обробки масиву.

3.Розробити і набрати програму, налагодити її на комп'ютері, вивчити роботу операторів.

4.Одержати результати.

5.Оформити звіт.

6.Підготуватися до захисту лабораторної роботи, вивчивши контрольні питання по даній темі.

Вимоги до змісту звіту приведені в лабораторній   роботі   №1

Індивідуальне завдання

Скласти програму для обробки масиву відповідно до індивідуального завдання приведеному в таблиці 9.1.

Таблиця 9.1 - індивідуальне завдання

Вар.

Умова задачі

1

Знайти суму парних чисел масиву

2

Обчислити добуток негативних чисел масиву

3

Визначити кількість непарних чисел масиву

4

Знайти суму негативних чисел масиву

5

Визначити кількість негативних чисел масиву

6

Обчислити добуток позитивних чисел масиву

7

Знайти суму позитивних чисел масиву

8

Визначити кількість парних чисел масиву

9

Обчислити добуток парних чисел масиву

10

Знайти суму непарних чисел масиву

11

Визначити кількість кратних 3 чисел масиву

12

Обчислити добуток непарних чисел масиву

13

Знайти суму кратних 3 чисел масиву

14

Визначити кількість не кратних 3 чисел масиву

15

Обчислити добуток кратних 3 чисел масиву

16

Знайти суму не кратних 3 чисел масиву

17

Визначити кількість кратних 4 чисел масиву

18

Обчислити добуток не кратних 3 чисел масиву

19

Знайти суму кратних 4 чисел масиву

20

Визначити кількість не кратних 4 чисел масиву

21

Обчислити добуток кратних 4 чисел масиву

22

Знайти суму не кратних 4 чисел масиву

23

Визначити кількість кратних 5 чисел масиву

24

Обчислити добуток не кратних 4 чисел масиву

25

Знайти суму кратних 5 чисел масиву

26

Обчислити середнє арифметичне позитивних парних елементів масиву

27

Знайти середнє геометричне негативних непарних елементів масиву

28

Знайти добуток негативних не кратних п'яти елементів масиву

29

Знайти середнє арифметичне елементів масиву, що знаходяться в інтервалі [-10,20]

30

Знайти середнє геометричне елементів масиву, що знаходяться в інтервалі [5,20]

Контрольні запитання

1.З якого числа починається індексація масивів у мові З?

2.Як з'являється 1-но мірний масив?

3.Які типи мови С можна і не можна вказувати як тип при оголошенні масиву?

4.У яких випадках розмірність масиву при оголошенні можна не вказувати?

5.Який тип має ім'я масиву?

6.Як здійснюється ініціалізація елементів масиву?

7.Як можна ініціювати масив з елементами типу char?

8.Чи можна використовувати засіб typedef для оголошення типу “масив”?

9.Які альтернативні форми запису елементів масиву можна використовувати? Приведіть приклади.

10.Які правила використання індексних виражень?

11.Чи існують операції роботи з масивами?

12.Які класи пам'яті можна використовувати при оголошенні масивів?


 

А также другие работы, которые могут Вас заинтересовать

83544. Поняття та правовий режим прилеглої зони 36.05 KB
  Сстановлює що прилегла зона не може пролягати далі ніж на 12 морських миль від вихідної лінії від якої відміряється ширина територіального моря проте Конвенція з морського права 1982 р. містить положення що прилегла зона не може пролягати за межі 24 морських миль від цієї лінії Розвитком інституту прилеглої зони стала практика встановлення прибережними державами за межами свого територіального морязон виключного рибальства. Ширина морських зон виключного рибальства в практиці держав різниться.
83545. Виключна економічна зона та її правовий режим 33.18 KB
  Ширина виключної економічної зони не повинна перевищувати 200 морських миль що відраховуються від вихідних ліній від яких відмірюється ширина територіального моря. Прибережна держава в межах виключної економічної зони має суверенні права на розвідку розробку і збереження природних ресурсів як живих так і неживих що знаходяться у її водах на морському дні або його надрах. Прибережна держава в межах своєї виключної економічної зони користується не тільки економічними повноваженнями але й юрисдикцією щодо створення і використання штучних...
83546. Континентальний шельф і його правовий режим. Межі континентального шельфу. Делімітація континентального шельфу 36.65 KB
  Межі континентального шельфу. Делімітація континентального шельфу Відповідно до Конвенції ООН з морського права 1982 р. Підводна околиця материка включає продовження континентального масиву прибережної держави що знаходиться під водоюі складається з поверхні і надр шельфу схилу і підйому. внутрішнім кордоном континентального шельфу є зовнішня межа територіального моря лінії на відстані 12 морських миль від вихідної лінії.
83547. Відкрите море І його правовий режим. Свободи відкритого моря 37.48 KB
  Свободи відкритого моря За зовнішньою межею територіального моря знаходяться простори морів і океанів які не входять до складу територіальних вод будьякої держави і утворюють відкрите море. відкрите море визначено як усі частини моря які не входять ані до територіального моря ані до внутрішніх вод будьякої держави. встановила що положення Частини VII Відкрите море застосовуються до всіх частин моряякі не входять ані до виключної економічної зони ані до територіальною моря або внутрішніх вод будьякої держави ані до архіпелажних...
83548. Правовий статус Міжнародного району морського дна. Використання ресурсів Міжнародного району морського дна. Міжнародний орган з морського дна 35.92 KB
  Використання ресурсів Міжнародного району морського дна. Міжнародний орган з морського дна Морське дно за межами континентального шельфу і економічної зони є територією з міжнародним режимом і утворює міжнародний район морського дна далі Район. 1 Конвенції ООН з морського права 1982 р.
83549. Поняття і види міжнародних проток. Правовий статус і режим міжнародних проток 36.7 KB
  Берега протоки можуть належати одній державі або двом чи більше державам. Якщо ширина протоки перевищує подвійну ширину територіального моря прибережної держави або держав на тій частини протоки що знаходиться поза межами територіального моря діє принцип свободи судноплавства. Якщо ж ширина протоки не є більшою ніж подвійна ширина територіального моря міжнародноправовий статус протоки є подібним до статусу територіального моря так звані територіальні протоки. Традиційно на підставі звичаєвої норми міжнародного морського права в водах...
83550. Правовий режим Чорноморських проток 36.39 KB
  Відносно проходу через протоки військових кораблів Конвенція встановила ряд загальних положень: обов\'язкове повідомлення про прохід обмеження кількості та тоннажу кораблів що проходять через протоки та ін. Конвенція проводить чітку різницю між проходом через протоки кораблів чорноморських та нечорноморських держав. Чорноморським державам дозволяється проводити через протоки кораблі будьякого тоннажу а також підводні човни.
83551. Правовий режим міжнародних каналів. Режим Суецького каналу 37.45 KB
  Режим Суецького каналу Міжнародні канали це штучні морські шляхи що поєднують морські простори та використовуються для інтересів морського судноплавства. Особливістю правового режиму міжнародних каналів є те що вони будучи частиною території державивласника каналу підпадають під дію відповідних міжнародних договорів що істотно обмежують правомочність даної держави. До принципів правового режиму міжнародних каналів відносяться: повага суверенних прав власника каналу і невтручання в його внутрішні справи; свобода судноплавства по каналу...
83552. Поняття міжнародно-правової відповідальності 38.1 KB
  Комісія міжнародного права ООН визначила зміст міжнародної відповідальності як ті наслідки які те або інше міжнароднопротиправне діяння може мати відповідно до норм міжнародного права в різних випадках наприклад наслідки діяння в плані відшкодування збитків та відповідних санкцій 1. У науці міжнародного права під міжнародноправовою відповідальністю розуміють конкретні негативні юридичні наслідки що настають для суб\'єкта міжнародного права в результаті порушення ним міжнародноправового зобов\'язання. У цілому можна зазначити що поняття...