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


 

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

21826. Возведение зданий методом подъёма перекрытий 136 KB
  Этот метод очень эффективен в сейсмических районах благодаря применению цельных неразрезных плит перекрытий выполняющих роль горизонтальных диафрагм обеспечивающих поперечную жёсткость здания а также при необходимости строительства в стеснённых условиях исключающих применение кранов. 5 а 2 3 б 1 2 в 4 г ...
21827. ВОЗВЕДЕНИЕ ВЫСОТНЫХ ЗДАНИЙ 85 KB
  Конструктивно современные высотные здания являются каркасными это железобетонный стальной или комбинированный каркас с пространственным ядром жёсткости или с плоскими диафрагмамисвязями рис. В большинстве высотных зданий предусмотрено ядро жёсткости которое воспринимает горизонтальные нагрузки от примыкающих частей здания и обеспечивает устойчивость и пространственную жёсткость всего здания в процессе монтажа и эксплуатации. Ядра жёсткости обычно выполняют из железобетона хотя в металлических каркасах ядро может быть стальным....
21828. СТРОИТЕЛЬСТВО ДЕРЕВЯННЫХ ЗДАНИЙ 42 KB
  Технология производства строительномонтажных работ включает в себя следующие основные процессы: земляные работы под фундаменты; устройство фундаментов с гидроизоляцией; установка обвязочного бруса по периметру стен; укладка элементов пола 1 этажа по обвязочному брусу с утеплением и изоляционными слоями; устройство чёрного пола; монтаж стен и перегородок первого этажа; устройство проёмообразователей под окна и двери из пилёного леса перемычек и стоек ; окончательное проектное соединение элементов между собой; монтаж или устройство...
21829. МОНТАЖ БОЛЬШЕПРОЛЁТНЫХ КОНСТРУКЦИЙ 78.5 KB
  Конструктивно покрытия выполняются следующих типов рис.: Металлические фермы и балочные системы иногда предварительно напряжённые с затяжками; Арочные и купольные системы; Перекрёстностержневые системы типа структур; Железобетонные пространственные покрытия оболочки арки складки ; Висячие покрытия мембранные тонколистовые с жесткими нитями подвесные плоскостные и пространственные; Вантовые покрытия вантовые сетки вантовобалочные системы висячие оболочки вантовые фермы комбинированные системы; Пневматические...
21830. МОНТАЖ ВЫСОТНЫХ СООРУЖЕНИЙ – МАЧТ, БАШЕН, ТРУБ 51 KB
  МОНТАЖ ВЫСОТНЫХ СООРУЖЕНИЙ МАЧТ БАШЕН ТРУБ 15. При возведении высотных сооружений наиболее распространены следующие методы: наращивание конструкций в проектном положении поярусное возведение снизу вверх; монтаж поворотом предварительная сборка сооружения на земле в горизонтальном поолжении с последующим поворотом вокруг шарнира в вертикальное проектное положение; подращивание конструкции сборка в вертикальном положении начиная с самых верхних секций их подъём подведение под них последующих секций их общий подъём до...
21831. ВОЗВЕДЕНИЕ МЕТАЛЛИЧЕСКИХ РЕЗЕРВУАРОВ 37.5 KB
  Днище и корпус устраивают из цельносварных рулонированных на заводе полотнищ. Изготавливают рулонные заготовки на специальных двухярусных стендахконвейерах имеющих посты раскроя; сборки и прихватки листов; сварки с одной стороны; сварки с другой стороны; испытания и рулонирования. Готовую заготовку сворачивают в рулон на центральную стойку покрытия или шахтную лестницу и закрепляют от самопроизвольного разворачивания специальными планками на сварке. Готовые к отправке рулоны имеют габариты: высота 3м; длина 12 или 18м; вес 21 или 47т.
21832. СТРОИТЕЛЬСТВО АВТОМОБИЛЬНЫХ ДОРОГ 282 KB
  Профили автомобильной дороги: А Поперечный профиль; Б продольный профиль; 1 разделительная полоса 2 дорожная одежда 3 укрепительная полоса 4 обочина 5 основание под дорожную одежду 6 тело насыпи 7 уклоны поперечный и продольный 8 кювет 9 зона сосредоточенного ведения работ 10 естественный профиль местности. Ознакомимся с терминологией характеризующей основные конструктивные элементы автомобильных дорог: поперечный профиль поперечное сечение автодороги характеризующее составляющие конструктивные...
21833. СТРОИТЕЛЬСТВО ЗДАНИЙ И СООРУЖЕНИЙ В УСЛОЖНЁННЫХ УСЛОВИЯХ СТРОИТЕЛЬСТВА 50.5 KB
  Возведение строительных объектов в условиях плотной городской застройки. При строительстве в условиях плотной городской застройки возникает ряд факторов соблюдение которых обеспечивает качество и долговечность не только непосредственно возводимых объектов но и окружающих их соружений. Для ограничения складских площадей можно организовывать монтаж строительных конструкций с колёс применять максимально укрупнённые элементы применять апробированные в аналогичных условиях передовые строительные технологии.
21834. ОХРАНА ОКРУЖАЮЩЕЙ СРЕДЫ ПРИ СТРОИТЕЛЬСТВЕ ЗДАНИЙ И СООРУЖЕНИЙ 40 KB
  При составлении строительной технологической документации и выборе технологий выполнения тех или иных строительных процессов необходимо учитывать следующие факторы: наличие повышенного шумового фона сопровождающего почти все механизированные строительномонтажные работы; динамическое воздействие работающих механизмов на окружающие строения и грунты; выброс в атмосферу большого количества пылевых частиц различных фракций и газов от двигателей внутреннего сгорания; выработка большого количества строительных отходов в том числе...