Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичні вказівки до практичних робіт.docx
Скачиваний:
33
Добавлен:
07.06.2015
Размер:
3.36 Mб
Скачать

5. Методичні вказівки

1. При вирішенні завдань використовувати псевдодінаміческіе масиви. Псевдодінаміческіе масиви реалізуються таким чином:

1) при визначенні масиву виділяється досить велика кількість пам'яті:

const int MAX_SIZE = 100 ;/ / іменована константа

int mas [MAX_SIZE];

2) користувач вводить реальна кількість елементів масиву меншу N.

int n;

cout << "\ nEnter the size of array <" << MAX_SIZE << ":"; cin >> n;

3) подальша робота з масивом обмежується заданої користувачем розмірністю n.

2. Формування масиву здійснюється за допомогою датчика випадкових чисел. Для цього можна використовувати функцію int rand (), яка повертає псевдовипадкове число з діапазону 0 .. RAND_MAX = 32767, опис функції знаходиться у файлі <stdlib.h>. У масиві повинні бути записані і позитивні і негативні елементи. Наприклад, оператор a [I] = rand ()% 100-50; формує псевдовипадкове число з діапазону [-50; 49].

3. Висновок результатів повинен виконуватися після виконання кожного завдання. Елементи масиву рекомендується виводити в рядок, розділяючи їх між собою пробілом.

6. Зміст звіту:

1) Постановка завдання (загальна і конкретного варіанту).

2) Аналіз поставленого завдання: визначити до якого класу задач відноситься завдання і пояснити чому.

3) Текст програми.

4) Результати тестів.

5) Рішення одним із завдань з використанням покажчиків для доступу до елементів масиву.

7. Контрольні питання

1. Що таке масив? Дайте визначення.

2. В чому переваги представлення інформації у вигляді масиву?

3. Яким чином визначається довжина масиву при його ініціалізації?

Практична робота № 11

Тема: Створення програм обробки двовимірних масивів

1. Мета роботи:

1) Отримання практичних навичок при роботі з двовимірними масивами.

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

Масив являє собою набір однотипних об’єктів, які мають спільне ім’я і відрізняються місцезнаходженням в цьому наборі (або індексом, присвоєним кожному елементу масиву). Елементи масиву займають одну неперервну область пам’яті комп’ютера і розміщені послідовно один за одним.

Приклад 1. Опис одновимірних масивів

int masl[492];// зовнішній масив з 492 елементів

void main(void)

{

double mas2[250];// масив з 250 чисел типу double

static char mas3[20];//статичний рядок з 20 символів

extern masl[];//зовнішній масив, розмір вказаний вище

int mas4[2][4]; // двовимірний масив з чисел типу int

}

В цьому прикладі квадратні дужки [ ] означають, що всі ідентифікатори, після яких вони стоять, є іменами масивів. Число в дужках визначає кількість елементів масиву. Доступ до окремого елементу масиву організується з використанням номера цього елементу, або індекса. Нумерація елементів масиву починається з нуля і закінчується n-1, де n — кількість елементів масиву.

Ініціалізація масиву означає присвоєння початкових значень його елементам при оголошенні. Масиви можна ініціалізувати списком значень або виразів, відокремлених комою, розташованих у фігурних дужках.

Приклад 2. Ініціалізація масиву, елементи якого містять кількість днів в кожному місяці року:

int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};

Якщо список значень, які ініціалізуються, коротший за довжину масиву, то ініціалізації підлягають перші елементи масиву, а решта ініціалізуються нулем.

Масив також можна ініціалізувати списком без зазначення в дужках довжини масиву. При цьому масиву присвоюється довжина за кількістю ініціалізаторів.

Приклад 3. Визначення довжини масиву при ініціалізації.

char code[] = {'a', 'b', 'c'};

В даному прикладі масив code буде мати довжину 3.

Автоматичні масиви після об'яви нічим не ініціалізуються і містять невідому інформацію.

Приклад

Знайти максимальний елемент та суму всіх від’ємних елементів матриці 3х4.

#include<iostream.h>

#include<conio.h>

int main()

{

int a[3][4];

int i, j, max, s=0;

for(i=0;i<3;i++)

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

cin>>a[i][j];

max=a[0][0];

for(i=0;i<3;i++)

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

{

if(a[i][j]>max)

max=a[i][j];

if(a[i][j]<0)

s=s+a[i][j];

}

cout<<endl;

for(i=0;i<3;i++)

{

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

cout<<a[i][j]<<' ';

cout<<endl;

}

cout<<endl;

cout<<"Max="<<max<<’\t’<<"The summ= "<<s;

getch();

return 0;

}