Дослідження індексованого типу (багатовимірні масиви)

Автор работы: Пользователь скрыл имя, 21 Декабря 2010 в 06:45, лабораторная работа

Краткое описание

Об’єкт типу масив характеризується числом індексів (кількістю вимірів масиву). Один індекс визначає один вимір масиву. Одновимірний масив називають також „вектором”. Двовимірний масив представляє матрицю (перший індекс визначає рядок, другий - колонку). Трьохвимірний масив представляє куб, який включає компоненти з трьома індексами. Масив також може мати більш ніж три виміри.

Содержимое работы - 1 файл

Лабораторна робота 3.doc

— 81.00 Кб (Скачать файл)

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

ДОСЛІДЖЕННЯ ІНДЕКСОВАНОГО ТИПУ

(БАГАТОВИМІРНІ  МАСИВИ) 

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

   Об’єкт  типу масив характеризується числом індексів (кількістю вимірів масиву). Один індекс визначає один вимір масиву. Одновимірний масив називають також  „вектором”. Двовимірний масив представляє матрицю (перший індекс визначає рядок, другий - колонку). Трьохвимірний масив представляє куб, який включає компоненти з трьома індексами. Масив також може мати більш ніж три виміри. 

   Наприклад:

Паскаль:

Dim_1 = array [ 1..3 ] of integer;           { визначення типу вектора }

{ визначення  типу матриці }

var_2 : array [ ‘A’..’B’] of  Dim_1 = ((10, 20, 30),(40, 50, 60)) ; 

Dim_3 = array [ 1..5, 1..5, 1..10 ] of char;   { визначення типу куба } 

C:

char dim_1 [ 10 ];  // одновимірний масив

int dim_2 [ 3 ] [ 5 ] ={{11, 11, 11, 11, 11} ,

                 {12,  12}, { 13}};       // двовимірний масив

float dim_3 [ 5 ] [ 2 ] [ 5 ];  // трьохвимірний масив 

    Завдання 

    Написати  програми на мовах Паскаль та Сі, які складаються з наступних  дій:

  1. Опису змінної індексованого типу (двовимірний масив) згідно з варіантом (табл.1).
  2. Ініціювання змінної, що описана в п.1 даного завдання.
  3. Створення нової змінної індексованого типу (одновимірний масив) та її ініціювання значеннями, що обчислюються згідно з варіантом (табл.1).

Таблиця 1

№ варіанта Мова Вимірність Тип

даних

Обчислення  значень елементів 

одновимірного масиву

1 Паскаль 4 х 4 Цілий Із значень  елементів головної діагоналі двовимірного масиву
Сі 4 х 5 Дійсний Із середнього арифметичного значення елементів рядків двовимірного масиву
2 Паскаль 4 х 5 Дійсний Із суми значень  елементів рядків двовимірного масиву
Сі 4 х 4 Цілий Із мінімальних  значень елементів стовпців двовимірного масиву
3 Паскаль 5 х 4 Цілий Із суми значень  елементів стовпців двовимірного масиву
Сі 4 х 5 Дійсний Із максимальних значень елементів рядків двовимірного масиву
4 Паскаль 4 х 5 Дійсний Із добутку  значень елементів рядків двовимірного масиву
Сі 4 х 4 Цілий Із максимальних значень елементів стовпців двовимірного масиву
5 Паскаль 4 х 4 Цілий Із додатних значень елементів головної діагоналі  двовимірного масиву
Сі 4 х 5 Дійсний Із мінімальних  значень елементів стовпців двовимірного масиву
6 Паскаль 4 х 5 Дійсний Із суми від’ємних  значень елементів рядків двовимірного масиву
Сі 5 х 4 Цілий Із максимальних значень елементів рядків двовимірного масиву
7 Паскаль 4 х 4 Цілий Із додатних значень елементів головної діагоналі  двовимірного масиву
Сі 4 х 5 Дійсний Із добутку  від’ємних значень елементів  стовпців двовимірного масиву
8 Паскаль 4 х 5 Дійсний Із суми додатних значень елементів рядків двовимірного масиву
Сі 5 х 4 Цілий Із середнього арифметичного від’ємних  значень  елементів стовпців двовимірного масиву
9 Паскаль 5 х 4 Цілий Із суми додатних значень елементів стовпців двовимірного масиву
Сі 5 х 5 Дійсний Із від’ємних  значень елементів побічної діагоналі  двовимірного масиву
10 Паскаль 4 х 5 Дійсний Із добутку  значень елементів стовпців двовимірного масиву
Сі 5 х 4 Цілий Із середнього арифметичного від’ємних значень  елементів стовпців двовимірного масиву
11 Паскаль 4 х 5 Цілий Із добутку  додатних значень елементів рядків двовимірного масиву
Сі 5 х 4 Дійсний Із середнього арифметичного додатних значень  елементів стовпців двовимірного масиву
12 Паскаль 5 х 4 Дійсний Із добутку  від’ємних значень елементів  стовпців двовимірного масиву
Сі 5 х 5 Цілий Із значень  елементів побічної діагоналі двовимірного масиву
13 Паскаль 5 х 4 Цілий Із добутку  додатних значень елементів стовпців двовимірного масиву
Сі 4 х 5 Дійсний Із середнього арифметичного від’ємних значень  елементів рядків двовимірного масиву
14 Паскаль 5 х 4 Дійсний Із добутку  від’ємних значень елементів  рядків двовимірного масиву
Сі 5 х 5 Цілий Із додатних значень елементів головної діагоналі  двовимірного масиву
15 Паскаль 5 х 4 Цілий Із мінімальних  значень елементів стовпців двовимірного масиву
Сі 4 х 5 Дійсний Із добутку  від’ємних значень елементів  рядків двовимірного масиву
 

Приклад виконання завдання 

{Паскаль}

Program lab3;

const

{кількість рядків та  стовпців у двовимірному масиві }

     N = 5;

     M = 4;

{ опис та ініціалізація змінної mas індексованого типу (двовимірний масив)}

     mas : array [1..N, 1..M] of integer = ((456, -78,  5,   0),

                                          (781, -7,   543, 10987),

                                           (123, 5,    -8,  3),

                                           (7,   -543,  9,  821),

                                           (907, 12,   -6,  -1022)); 

var

{ опис змінної mas_new індексованого типу (одновимірний масив) }

{кількість  елементів одновимірного масиву дорівнює кількості стовпців двовимірного масиву }

     mas_new : array [1..M] of integer;

     i, j : integer;

begin

{ ініціювання змінної mas_new мінімальними значеннями елементів стовпців } 
{ двовимірного масиву }

     for j := 1 to M do

     begin

         mas_new [j] := mas [1] [j];

         for i := 2 to N do

           if mas[i][j] < mas_new[j] then

             mas_new[j] := mas[i][j];

     end;

{ mas_new :  (7, -543, -8, -1022)}

end. 

// Сі

void main()

{

// N – кількість рядків, M – кількість стовпців у двовимірному масиві

     const int N = 4, M = 5;

// опис  та ініціалізація змінної mas індексованого типу (двовимірний масив)

  double mas [N][M] =   {{-30.234,  4.0997,   56.45,    0.99,   67.34},

                                    {1234.1,   -45.76,   3456.082, -1.33,  987.12},

                                    {89.456,  0.788,   9011.4,   1.23,  7.541 },

                                    {-0.4,      -3.912,   -435.01,  79.054, 8.6   }};

/* опис  змінної mas_new індексованого типу (одновимірний масив)

 кількість  елементів одновимірного масиву дорівнює кількості рядків двовимірного масиву */

     double mas_new [N];

       int i, j;

/* flag – змінна булевського типу, яка буде показувати, чи є у рядку від’ємні елементи */

  bool flag;

// ініціювання  змінної mas_new

// кожний  елемент масиву mas_new повинен дорівнювати добутку від’ємних значень елементів рядків двовимірного масиву

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

         mas_new [i] = 1;

         flag = false;

         for (j = 0; j < M; j++)

           if (mas [i][j] < 0) {

                         mas_new [i] = mas_new [i] * mas [i][j];

                    flag = true;

              }

/* якщо  у i-му рядку немає від’ємних елементів, то i-ий елемент одновимірного масиву     буде дорівнювати 0.0  */

         if (!flag)

                  mas_new [i] = 0.0; 

      }

} 

Информация о работе Дослідження індексованого типу (багатовимірні масиви)