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.Які класи пам'яті можна використовувати при оголошенні масивів?


 

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

83581. Захист цивільних об’єктів та культурних цінностей в період збройного конфлікту 37.56 KB
  Згідно з Додатковим протоколом І цивільні обєкти не повинні бути обєктом нападу або репресалій. До військових об\' єктів Протокол відносить такі обєкти які через свій характер розташування призначення або використання роблять ефективний ї несок у військові дії і повне або часткове руйнування захоплення або нейтралізація яких при існуючих в даний момент обставинах надає явну військову перевагу ст. Отже обєкти що не підпадають під вищенаведене визначення повинні розглядатися як цивільні і їх знищення є забороненим методом ведення...
83582. Закінчення війни і його міжнародно-правові наслідки 36.35 KB
  Розрізняють припинення стану війни і припинення військових дій. Припинення військових дій не завжди автоматично супроводжується припиненням стану війни. Перемиря тимчасове припинення військових дій на умовах узгоджених воюючими сторонами. Подруге загальне перемиря при певних обставинах наприклад якщо сторони в конфлікті формально не заявили про наявність стану війни між ними здатне не тільки призупинити військові дії але і привести до їх припинення.
83583. Поняття та принципи міжнародного повітряного права 32.8 KB
  Міжнародне повітряне право - це система міжнародно-правових норм, які регулюють відносини між суб\'єктами міжнародного права у зв\'язку з використанням повітряного простору та визначають його правовий режим.
83584. Міжнародна організація цивільної авіації 36.37 KB
  Міжнародна організація цивільної авіації ІКАО була створена відповідно до Конвенції про міжнародну цивільну авіацію 1944 р.: забезпечувати безпечний і впорядкований розвиток міжнародної цивільної авіації в усьому світі; заохочувати мистецтво конструювання й експлуатації повітряних суден у мирних цілях; заохочувати розвиток повітряних трас аеропортів і аеронавігаційних засобів для міжнародної цивільної авіації; задовольняти потреби народів світу у безпечному регулярному ефективному й економічному повітряному транспорті; запобігати...
83585. Правовий режим повітряного простору. Свобода повітря 37.43 KB
  Згідно з принципом свободи польотів у міжнародному повітряному просторі повітряні судна підпорядковуються в даній сфері юрисдикції держави прапору держави реєстрації Порядок реєстрації повітряних суден визначається внутрішнім правом. Держави зобов\'язані здійснювати контроль за відповідністю зареєстрованих в них повітряних суден вимогам безпеки польотів та за дотриманням ними міжнародних норм. Юрисдикція держави у власному повітряному просторі визначається її територіальним верховенством. Повітряний простір є частиною території держави.
83586. Боротьба з актами незаконного втручання у діяльність цивільної авіації 32.4 KB
  містить цілий ряд статей що відносяться до повітряного піратства під яким розуміють будьякий неправомірний акт насильства затримання що здійснюється в особистих цілях екіпажем або пасажирами приватного літального апарату. У міжнародному просторі урядові судна будьякої держави можуть захопити піратський літальний апарат заарештувати осіб що захопили його та віддати суду своєї держави. Будьяка держава зобовязана або судити або видавати осіб що скоїли їх.
83587. Поняття і принципи міжнародного космічного права 35.11 KB
  Його основними джерелами є: Договір про принципи діяльності держав з дослідження та використання космічного простору включаючи Місяць та інші небесні тіла 1967 р. Угода про діяльність держав на Місяці та інших небесних тілах 1979 р. Принципи міжнародного космічного права закріплені у Договорі про принципи діяльності держав з дослідження та використання космічного простору включаючи Місяць та інші небесні тіла 1967 р. До них відносяться: дослідження та використання космосу на благо всього людства; рівне право всіх держав на дослідження та...
83588. Правовий режим космічного простору і небесних тіл 35.9 KB
  Розмежування повітряного простору держав на який поширюється їх суверенітет та відкритого космічного простору проходить на висоті 100110 км над рівнем Світового океану. Основоположною особливістю сучасного правового статусу космічного простору та небесних тіл є їх міжнародноправова кваліфікація як надбання всього людства. встановлює що ніяка частина космічного простору включаючи небесні тіла не підлягає національному привласненню ані шляхом проголошення над ними суверенітету ані шляхом використання або окупації; ані будьякими...
83589. Правовий режим космічних обєктів і екіпажів 37.05 KB
  Згідно з Конвенцією про реєстрацію об\'єктів що запускаються В космічний простір 1975 р. держава що здійснює такий запуск реєструє космічний об\'єкт у національному реєстрі. Кожна запускаюча держава представляє Генеральному секретарю ООН у найкоротший строк необхідну інформацію про кожний космічний об\'єкт занесений в її реєстр.