упражнение
№9
Масиви
Масивите
представляват
структури от еднотипни
данни,
записани в
една непрекъсната
област от
паметта и обединени
под общо име.
Дефинирането
на масивите
представлява
предварително
заделяне на
памет за
елементите
на масива и в
С++ се
подчинява на
следният
синтаксис:
![]()
![]()
![]()
![]()
име на
тип
име на
масив
[
размер
на масива
]
={
списък
от
стойности
} ;
Име на тип е всеки допустим за С++ тип данни, стандартни или дефинирани от програмиста, включително и класове. Това е типът на елементите на масива.
Името
на масива се формира
по всички
правила за
формиране на
имена на
променливи в
С++.
Размера
на масива е цяла константа,
което задава
максималния
брой
елементи, които
могат да се
запишат в
масива.
Размера на
масива може
да бъде
пропуснат,
когато следва
инициализиране
на масива
(след знака = си
изриждот
стойностите
на масива).
Тогава компилатора
сам изчислява
броя на
елементите
на масива.
G ВНИМАНИЕ!
С++ позволява
да се
записват
повече от
предварително
заявените
елементи на масива.
В такива
случаи се
записва
върху съседни
клетки от
паметта,
които може да
са заделени
за други
променливи,
за
изпълнимия код
на програмата
или дори за
операционната
система. Това
от една
страна дава
голяма свобода
на
програмиста,
а от друга го
задължава да
следи за
коректността
при работата
с масиви.
Списък
от стойности се записва
когато се
извършва
инициализиране
на масива.
Елементите
на списъка се
разделят със
запетаи и трябва
да
съответстват
на зададения
тип на масива.
Примери
за дефиниции
на масиви:
1)
float Data[100];
2)
const int N=200;
int
a[N];
3)
#define MaxInd 350;
int
a[MaxInd];
4)
char B[]={‘a’,’b’,’c’,’d’,’e’,’f’};
5)
int Arr[]={12.5, 41.8, 75.0, 98.9};
Елементите
на масива са
с характер на
проста
променлива
от зададения
тип. Достъп
до елементите
на масива се
осъществява
чрез името на
масива и
индекса на
елемента,
заграден в
квадратни
скоби.
Синтаксис:
име на
масив
[
индекс
]
Индекса
представлява
цяло число
(променлива
или константа),
което
отразява
поредния
номер на
елемента в
масива, като броенато
на
елементите
започва от 0.
Т.е. първият
елемент от
масива е с
индекс 0, вторият-
с индекс 1 и т.н.
Последният
елемент на масив с N
елемента е N-1.
Примери
1) Data[0];
2) a[199];
3)
int i;
i=10;
a[i];
1. Едномерни
масиви
1.1.
Въвеждане,
извеждане,
сумиране.

Зад.1 Да
се въведат
стойности за
елементите
на едномерен
масив от N
реални числа
(N£100).
Решение
Максималният
брой
елементи на
масива е 100. В
променливата
n се
записва и
съхранява
размера на
масива, който
за
различните
задачи е
различен. В
променливата
i се
съхранява
текущия
индекс.
Блоковата схема
на
алгоритъма е
показана на
фиг. 1.
G ВНИМАНИЕ! При
дефинирането
на масива a трябва
да се има
предвид
неговия
възможен максимален
размер. Така
в
оперативната
памет ще се
отдели област
за всички
елементи на
максималния по
размер масив.
Ще
обърнем
внимание на
подсказващото
съобщение за
всеки
елемент от
масива.
Операторът cout<<“a[ i ]=“ би
извеждал на
екрана
символа i на всеки
ред:
a[ i ]=
a[ i ]=
…
Така
няма да е
ясно, за кой
точно елемент
се отнася
подсказващото
съобщение. Затова
изнасяме
променливата
i
извън
апострофите (cout<<“a[ “<<i<<“]=“).
Така ще се
извежда
стойността
на i:
a[ 1 ]=
a[ 2 ]=
…
Ò
#include <iostream.h>
void
main(void)
{
float
a[100];
int i,n;
cout<<“Въведете
броя на
елементите
на масива n (1<=n<=100). n=“;
cin>>n;
cout<<“Въведете
стойности за
елементите
на масива\n”;
for(i=0;i<n;i++)
{
cout<<“a[“<<i<<“]=“;
cin>>a[i];
}
}
За
да сме
сигурни, че
въведената
стойност за n
е в зададения
обхват,
организираме
цикъл с
постусловие,
който ще се
изпълнява
дотогава,
докато за n не се въведе
стойност в
интервала [1,100].
Тогава
програмата
ще придобие
следния вид.
Ò
#include <iostream.h>
void main(void)
{
float
a[100];
int i,n;
do{
cout<<“Въведете
броя на
елементите
на масива n (1<=n<=100). n=“;
cin>>n;
}while (n<1 || n>100);
cout<<“Въведете
стойности за
елементите
на масива\n”;
for(i=0;i<n;i++)
{
cout<<“a[“<<i<<“]=“;
cin>>a[i];
}
}
Зад.2 Да
се изведат на
екрана
стойностите
на елементите
на масива от
задача 1 в
прав ред (от първия
към
последния
елемент).
Зад.3 Да
се изведат на
екрана
стойностите
на
елементите
на масива от
задача 1 в
обратен ред
(от последния
към първия
елемент).
Зад.4 Да се намери
сумата от
всички
елементи на
едномерен
масив от N
реални числа
( N£100).
ад.5 Даден
е масив А от N
цели числа (N£100). Да се
намери
сумата от
всички
елементи на
масива, които
имат
положителни
стойности.
Зад.6 Даден е
масив А от N
реални числа
(N£100). Да се
намери
средноаритметичната
стойност на
всички
елементи на
масива, които
са положителни
числа.
1.2. Намиране
на
максимален(минимален)
елемент на
масив от
числа
Зад.1 Да
се въведат
стойности за
елементите
на едномерен
масив от N
цели числа ( N£100). Да се
намери
максималният
елемент на
масива.
Зад.2 Да
се въведат
стойности за
елементите
на едномерен
масив от N
реални числа
(N£100). Да се
намери максималният
елемент на
масива и
неговият индекс.
1.3.
Обработка
на едномерни
масиви
Зад.1 Даден
е едномерен
масив A от N
реални числа
(N£100). Всеки
елемент на
масива
да се замени
с неговия
квадрат: A[I]=A[I]*A[I].
Зад.2 Даден
е едномерен
масив A от N
реални числа
(N£100). Да се
заменят с 0
всички
елементи на
масива, чиито
стойности
са
отрицателни
числа.
Зад.3 Дадени
са два
целочислени
едномерени
масива А и В,
всеки с N
елемента (N£100). Да се
генерира
масив C от N
елемента, на
който всеки
елемент е
равен на
сумата от
съответните
елементи на А
и В: C[I]=A[I]+B[I] .
![]()
ЗАДАЧИ
ЗА
САМОСТОЯТЕЛНА
РАБОТА
Œ Даден
е масив А от N
реални числа
(N£100). Да се
намери
средноаритметичната
стойност на
всички
елементи на
масива, които
са отрицателни
числа.
Даден
е масив А от N
цели числа (N£100). Да се
намери
средноаритметичната
стойност на
всички
елементи на
масива, които
са по-големи
от
предварително
зададено
число K.
Ž Даден
е масив А от N
цели числа (N£100). Да се
намери
средноаритметичната
стойност на
всички
елементи на
масива, които
са по-големи
от
предварително
зададено
число K и
по-малки от
предварително
зададено
число M.
Даден
е масив А от N
цели числа (N£100). Да се
намери
средноаритметичната
стойност на
всички
елементи на
масива, които
са четни
числа.
Даден
е масив А от N
цели числа (N£100). Да се
намери
средноаритметичната
стойност на
всички
елементи на
масива, които
имат четни
индекси.
Да се
въведат
стойности за
елементите
на едномерен
масив от N
цели числа (N£100). Да се
намери
минималният
елемент на
масива и неговият
индекс.
Даден
е едномерен
масив A от N
реални числа
(N£100). Всеки
елемент на
масива да се
умножи по
неговия
индекс:
A[I]=A[I]*I.
Даден
е едномерен
масив A от N
реални числа
(N£100). Всеки
елемент на
масива да се
умножи по
дадено цяло
число K: A[I]=A[I]*K.
Даден
е едномерен
масив A от N цели
числа (N£100).
Всеки
елемент на
масива да се
раздели на две: A[I]=A[I]/2.
Œ‹ Даден
е едномерен
масив A от N
реални числа
(N£100). Всички
отрицателни
числа на
масива
да се
заменят с -1, а
всички
положителни -
с 1 .
ŒŒ Даден
е целочислен
едномерен
масив A от N
елемента (N£100) и
целочислен
едномерен
масив B от N
елемента. Да
се генерира
масив C, всеки
елемент на
който е равен
на разликата
между съответните
елементи на А
и В: C[I]=A[I]-B[I] .
Œ Даден
е целочислен
едномерен
масив A от N
елемента (N£100) и
целочислен
едномерен
масив B от N
елемента. Да
се генерира
масив C от N
елемента, за
който: C[I]=K*A[I]-P*B[I] . K и P са
цели числа,
които се
въвеждат от
клавиатурата.