Масиви

Задача 1. Да се състави програма, която въвежда данни за отсъствията на учениците от един клас за едноседмичен период с цел обработката им.

Структурен тип данни – масив

Масивът е структурен тип данни, представляващ крайна редица от еднотипни елементи с пряк достъп до всеки елемент. Масивът е статична структура от данни, защото в процеса на обработване е невъзможно да се изключват или добавят нови елементи.

За решаването на задача 1 е подходящо използването на масив. Т.е. ще бъде необходима само една променлива (името на масива), чрез която ще можем да въведем и обработим отсъствията за цялата седмица. Нека името на масива е arr. Този масив ще бъде съставен от 5 елемента (отговарящи на броя на учебните дни в седмицата), като всеки елемент ще бъде означен чрез името на масива, който го съдържа и неговия пореден номер в масива (с уговорката, че номерацията на елементите на масива започва от нула). Или получаваме следната структура:

Масивът представлява поредица от клетки, последователно разположени в оперативната памет. Във всяка от тях може да се запише едно реално число.

Деклариране на масив

За изграждането на един масив определящи са броят на елементите му и техният тип. Максималният брой елементи и техният тип се задават при декларацията на масива

Синтаксис: <тип> <име_на_масив> [<брой_елементи>];
където:
<тип> – стандартен или структурен тип. Нарича се базов тип на масива;
<име_на_масив> – идентификатор, който се задава от програмиста;
<брой_елементи> – константа от дискретен тип, която задава максималния брой елементи на масива.
Семантика: В оперативната памет се заделят <брой_елементи> на брой последователни клетки, като големината на всяка клетка зависи от базовия тип на масива.

Пример: int arr[5]; //декларира масив от 5 елемента, които са от целочислен тип int.

Броят елементи може да бъде зададен и с константа, която е предварително зададена:
const int n = 5;
float myArr[n];

достъпът до всеки елемент на масива се осъществява посредством индексирана променлива, в която са указани името на масива и индексът (номерът) на съответния елемент, поставен в квадратни скоби. Индексите на елементите на масива имат номерация започваща от нула и са задължително от дискретен тип – целочислен, символен или логически.

Инициализация на масив

Първи начин

int arr[5];
arr[0]=5;
arr[1]=12;
arr[2]=-32;
arr[3]=6;
arr[4]=-6;

Втори начин

int arr[5]={5, 12, -32, 6, -6};

Трети начин

int arr[]={10, 99, 77};

Четвърти начин – един масив може да се инициализира и със стойности въведени от клавиатурата.

double arr[5];
for(int i=0; i<5; i++) cin>>arr[i];

Допустими операции

Операции над цели масиви не са допустими.

Операции се извършват над елементите на масиви и те трябва да са допустими за базовия тип на масива.

Въвеждане и извеждане елементи на масив

Въвеждане стойности на елементите на масив:

int arr[5];
for(int i=0; i<5; i++){
  cout<<"arr[" + i + "] = ";
  cin>>arr[i];
}

В много задачи броят на използваните елементи се въвежда от клавиатурата. За целта се декларира масив с достатъчно голям брой елементи.

int arr[100], n;
cout<<"Въведи брой на елементите:";
cin>>n;
for(int i=0; i<n; i++){
  cout<<"arr[" + i + "] = ";
  cin>>arr[i];
}

Извеждане стойностите на елементите на масив:

int arr[5];
for(int i=0; i<5; i++){
  cout<<"arr["<<i<<"] = "<<arr[i]<<"\n";
}

Основни алгоритми за работа с масиви

Сумиране елементите на масив

Задача 1. Да се напише програма, която въвежда от клавиатурата стойностите на целочислен масив от 5 елемента. Да се изведе сборът им.

Преброяване елементите на масив, отговарящи на дадено условие.

Задача 2. Да се състави програма, която въвежда в масив среднодневните температури за предварително зададен период. Да се преброят дните, в които средната температура е по-голяма или равна на предварително зададено число k.

Намиране на максимален/минимален елемент в масив

Задача 3. Да се състави програма, която въвежда в масив средния годишен успех на всеки ученик от един клас. Да се изведе най-високият успех.

Търсене на елемент в масив

Задача 4. Да се състави програма, която въвежда в масив средния годишен успех на всеки ученик от един клас. Да се провери съществува ли ученик с успех х.

Размяна стойностите на два елемента от масив

Като размяна стойности на две променливи.
Трябва да се декларира помощна променлива от базовия тип на масива. Или ако помощната променлива е swap и искаме да разменим k-тия и p-тия елементи:

swap = arr[k];
arr[k] = arr[p];
arr[p] = swap;

Задача 5. Да се напише програма, която намира всички елементи в масив от цели числа, за които могат да се намерят поне два елемента, които са по-големи от тях.
Вход: 3, 24, 12, 32, 56, 7, 43, 43, 43 > Изход: 3, 24, 12, 32, 7

Задача 6. Да се напише програма, която въвежда масив от n реални числа (5<=n<=10), намира максималния и минимални елемент на масива и разменя местата им. Да се приеме, че в масива няма повтарящи се елементи.

Задача 7. Да се напише програма, която въвежда масив, чиито елементи са естествени числа. Програмата намира средноаритметичната стойност на елементите му и преброява колко от елементите са по-големи от нея.

Задача 8. Да се напише програма, която въвежда масив, чиито елементи са цели числа. Програмата намира броя елементи на масива, сумата от цифрите на които е по-малка от -9, или по-голяма от 9.

Задача 9. Да се напише програма, която въвежда масив, чиито елементи са естествени числа. Програмата проверява има ли в масива поне едно просто число и извежда съобщение. (Програмата шрекратява действието си при първото срещнато просто число.)

Реклами