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


 

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

29847. Резервы повышения развития средств хозяйствования 18.46 KB
  В масштабах всего народного хозяйства создаются общегосударственные резервы средств производства и ведется подготовка трудовых резервов т. Это направление анализа резервов имеет очень важное значение для расчета обоснованных норм резервных запасов их ограничения действительно необходимыми для обеспечения непрерывности и ритмичности производства. Выявление резервов в таком понимании и определение реальных путей и сроков их мобилизации являются основными задачами экономического анализа деятельности хозяйствующих субъектов. Для...
29848. Федеральные фонды:порядок формирования и использование средств 18.82 KB
  Законодательные представительные органы не имеют права создавать свои резервные фонды а также выполнять отдельные функции по исполнению бюджетов за исключением органов местного самоуправления совмещающих функции законодательных и исполнительных органов. ФЕДЕРАЛЬНЫЕ ФОНДЫ 1. Фонды военноучебных заведений РГВИА РГВА 8.
29849. Совершенствование кредитования юридических и индивидуальных предпринимателей 19.4 KB
  В банке необходимо будет сориентироваться в процентных ставках и сроках кредита а главное правильно разъяснить цель кредита. Такой формой кредита могут воспользоваться как индивидуальные предприниматели так и юридические лица. Такой вид кредита как овердрафт позволяет бизнесменам осуществлять расчеты со своими партнерами своевременно и бесперебойно что безусловно способствует сохранению хорошей репутации. Процентные ставки на овердрафт как правило очень удобные для заемщика и всегда у заемщика есть возможность договориться с банком об...
29850. НИОКР в системе финансовых приоритетов современной организации 15.98 KB
  НИОКР в системе финансовых приоритетов современной организации Научноисследовательские опытноконструкторские и технологические работы совокупность работ направленных на получение новых знаний и их практическое применение при создании нового изделия или технологии. Виды НИОКР В соответствии с нормативным регулированием по способу учета затрат НИОКР подразделяются на: Товарные НИОКР текущие заказные работы относящиеся к обычному виду деятельности организации результаты которых предназначены для реализации заказчику. Капитальные...
29851. Дефицит и профицит бюджета. Пути оптимизации и достижения сбалансированности 12.93 KB
  Дефицит и профицит бюджета. Дефицит бюджета превышение расходов бюджета над его доходами. Классификация источников финансирования дефицита бюджета ст.23 БК группировка заемных средств привлекаемых РФ субъектами Российской Федерации и муниципальными образованиями для покрытия дефицитов соответствующих бюджетов: внутренние источники применяются для всех уровней бюджета кредиты от кредитных органов гос.
29852. Приоритетные национальные проекты России 14.98 KB
  Приоритетные национальные проекты России Приоритетные национальные проекты программа по росту человеческого капитала в России объявленная президентом России В. Проекты Программа приоритетных национальных проектов была сформулирована президентом России Владимиром Путиным 5 сентября 2005 года в обращении к правительству парламенту и руководителям регионов. Позднее на сайте появился документ Уточненные направления реализации приоритетного национального проекта Доступное и комфортное жилье гражданам России“ на 2009 2012 годы...
29853. Основные виды финансовых стратегии организации 14.33 KB
  Генеральной финансовой стратегией называют финансовую стратегию определяющую деятельность предприятия. Например взаимоотношения с бюджетами всех уровней образование и использование дохода предприятия потребности в финансовых ресурсах и источниках их формирования на год. [4; 322] Главной стратегической целью финансов является обеспечение предприятия необходимыми и достаточными финансовыми ресурсами. Финансовая стратегия предприятия в соответствии с главной стратегической целью обеспечивает: 1 формирование финансовых ресурсов и...
29854. Роль региональных и местных бюджетов в социально-экономическом развитии территорий 15.14 KB
  Роль региональных и местных бюджетов в социальноэкономическом развитии территорий Бюдже́т от старонормандского bougette кошель сумка кожаный мешок схема доходов и расходов определённого лица семьи бизнеса организации государства и т. Бюджет это важнейшая концепция как в микроэкономике так и в макроэкономике государственный бюджет. Изучением бюджета занимается наука финансы. Региональный бюджет совокупность валют правил и норм их использования взаимного обмена применения в качестве платежных средств а также...
29855. Валютные операции коммерческих банков, в России и за рубежом 18.25 KB
  Валютный рынок это вся совокупность конверсионных и кредитнодепозитных операций в иностранных валютах осуществляемых между контрагентами участниками валютного рынка. Валютные рынки можно классифицировать по следующим признакам: по виду операций. Например существует мировой рынок конверсионных операций в нём можно выделить сегменты конверсионных операций типа евро доллар или доллар иена а также мировой рынок кредитнодепозитных операций; по территориальному признаку. Текущие конверсионные операции по обмену одной валюты на другую а...