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


 

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

79203. Общая характеристика преступлений против половой неприкосновенности и половой свободы личности 32.66 KB
  Разновидностью преступлений против личности являются общественно опасные посягательства на половую неприкосновенность и половую свободу человека. Видовым объектом преступлений являются общественные отношения обеспечивающие половую неприкосновенность и половую свободу личности. Непосредственным объектом выступают отношения связанные с посягательством на половую неприкосновенность и половую свободу конкретной личности нарушенные общественно опасным действием. Половые преступления в зависимости от непосредственного объекта можно подразделить...
79204. Изнасилование. Состав и виды 31.04 KB
  Беспомощное состояние потерпевшей при изнасиловании может выражаться в том что она: 1 не могла понимать характера и значения совершаемых действий в силу своего физического или психического состояния малолетства душевного расстройства беспамятства или иного болезненного состояния; 2 понимала характер совершаемых в отношении ее действий но не могла оказать сопротивления виновному физические недостатки сильное опьянение и т. Виновный же должен осознавать беспомощное состояние потерпевшей вне зависимости от того привел ли он сам...
79205. Насильственные действия сексуального характера. Состав и виды 29.74 KB
  Насильственные действия сексуального характера ст. Состав преступления предусмотренный этой статьей охватывает насильственное мужеложство и лесбиянство а также иные насильственные действия сексуального характера с применением или угрозой применения насилия либо с использованием беспомощного состояния потерпевшей потерпевшего. Под иными действиями сексуального характера понимаются любые кроме мужеложства и лесбиянства способы удовлетворения полового желания в извращенной форме.
79206. Общая характеристика преступлений против конституционных прав и свобод 33.74 KB
  В главе 19 УК РФ объединены уголовноправовые нормы о преступлениях посягающих на конституционные права и свободы человека и гражданина. Безусловно в данной главе помещены не все нормы охраняющие права и свободы человека и гражданина поскольку например жизнь здоровье охраняются нормами включенными в гл. Все охраняемые уголовным законом конституционные права и свободы человека и гражданина несмотря на их разобщенность по главам образуют видовой объект преступления совокупность конституционных прав и свобод. Субъективная сторона...
79207. Нарушение неприкосновенности частной жизни 29.9 KB
  Нарушения неприкосновенности частной жизни ст. собирать и распространять сведения о частной жизни человека без его согласия.
79208. Нарушение неприкосновенности жилища 34.29 KB
  Конституции РФ никто не вправе проникать в жилище против воли проживающих в нем лиц иначе как в случаях установленных федеральным законом или на основании судебного решения. 139 выражается в незаконном проникновении в жилище против воли проживающего в нем лица. 139 под жилищем понимаются индивидуальный жилой дом с входящими в него жилыми и нежилыми помещениями жилое помещение независимо от формы собственности входящее в жилищный фонд и пригодное для постоянного или временного проживания а равно иное помещение или строение не входящие...
79209. Нарушение авторских и смежных прав 30.8 KB
  Преступление небольшой тяжести состав основной сложный материальный Объект общественные отношения обеспечивающие реализацию авторских и иных смежных прав Общественные отношения собственности Предмет чужое научное литературное музыкальное или художественное произведение Потерпевший другое лицо Объективная сторона характеризуется: Деянием в форме действия присвоение авторства плагиат т.
79210. Общая характеристика преступлений против семьи и несовершеннолетних 33.68 KB
  Преступления против семьи и несовершеннолетних включенная в раздел VII Преступления против личности УК РФ 1996 г. Эта Конвенция развивает и детализирует общепризнанные положения международного права о приоритетности всех необходимых мер защиты которые должны быть обеспечены любому ребенку в его статусе как несовершеннолетнего со стороны семьи общества и государства. 20 УК РФ на две группы: преступления против несовершеннолетних и преступления против семьи.
79211. Вовлечение несовершеннолетних в совершении преступления. Состав и виды 33.82 KB
  Состав и виды Вовлечение несовершеннолетнего в совершение преступления ст. Вовлечением в совершение преступления признаются действия взрослого лица которые направлены на возбуждение желания несовершеннолетнего совершить активные противоправные действия. Обман может выражаться в убеждении несовершеннолетнего взрослым в безнаказанности за содеянное. Более серьезный вид вовлечения несовершеннолетнего в совершение преступления его вовлечение путем угроз.