Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
39
Добавлен:
28.03.2015
Размер:
188.42 Кб
Скачать

Одномерные массивы 147

Глава 3 Одномерные массивы

Во многих практических ситуациях приходится работать с большим объемом данных. Для этого удобно использовать массивы, которые являются достаточно простой в плане программирования структурой данных. Использование массива приводит к выделению в памяти набора ячеек под определенным именем. Формально определение массиватаково: совокупность однотипных данных, хранящихся в последовательных ячейках памяти и имеющих общее имя. Ячейки называютсяэлементами массива. Все элементы массива пронумерованы по порядку, а номер называетсяиндексомэлемента массива.

Важно отметить, что все элементы массива имеют один и тот же тип данных. Для обращения к конкретному элементу массива необходимо указать имя массива и в квадратных скобках индекс элемента.

Массивы могут быть одномернымиимногомерными. В этой главе мы рассмотрим технологию работы с одномерными массивами. В языке используется следующее описание одномерного массива:

Тип_элементов Имя_массива[размерность_массива];

Здесь Тип элементов— это тип данных, который имеет каждый элемент массива. Пример описания массива:

float a[5]; .

Элементы массива нумеруются с нуля. В дальнейшем часто мы нулевой элемент массива использовать не будем.

Данная глава построена на разнообразных практических примерах, рассмотрение которых позволит вам сформировать навыки практической работы с одномерными массивами.

Нахождение суммы элементов массива

Исходная ситуация традиционна для работы с массивами: дан массив A[J], где индексJпринимает значения от 1 доN. Будем считать, что элементы массива являются целыми числами (имеют типint). Сумма элементов массива вычисляется по следующей формуле:

. (3.1)

Алгоритм вычисления Sпо формуле (3.1) простой и программа, его реализующая, не требует пояснения с использованием блок-схемы. В листинге 3.1 приведена разработка, реализующая решение исходной задачи. Отметим, что для внесения начальной информации мы воспользовались датчиком случайных чисел — стандартной функциейrand. В программе мы обеспечиваем случайное заполнение элементов массива целыми числами от 0 до 99 (включая левую и правую границу интервала). В результате работы мы увидим на экране подсчитанную сумму.

Функция rand()выдает случайное целое число в интервале от0доRAND_MAX.

Листинг 3.1. Вычисление суммы значений элементов массива

#include <iostream>

using namespace std;

#include <conio.h>

#include <math.h>

#define N 10

#define NM 11

void main()

{

int A[NM];

int J,S;

for (J=1; J<= N; J++)

A[J]=rand()%100;

S=0;

for (J=1; J<= N; J++)

S= S + A[J];

cout <<"S="<<S;

_getch();

}

Суммирование элементов массива с учетом условия

Рассмотрим задачу суммирования не всех элементов массива, а только тех, которые удовлетворяют определенному условию. В качестве условия будем считать, что суммироваться должны только те элементы, значения которых кратны 3. В листинге 3.2 приведена необходимая программная разработка. Действия, которые в ней производятся, выглядят так:

  • заполнение элементов массива случайными значениями;

  • организация цикла по количеству элементов массива;

  • проверка условия кратности значения элемента массива 3, и если это условие выполняется, то производится добавление значения рассматриваемого элемента к общей сумме.

Аналогичным образом можно использовать и другие условия при суммировании элементов массива.

Листинг 3.2. Суммирование элементов массива при условии кратности 3

#include <iostream>

using namespace std;

#include <conio.h>

#include <math.h>

#define N 10

#define NM 11

void main()

{

int A[NM];

int J,Summa;

for (J=1; J<= N; J++)

{ A[J]=rand()%100;

cout <<"\n"<<A[J]; }

Summa=0;

for (J=1; J<= N; J++)

{

if (( A[J] % 3) == 0 )

Summa= Summa + A[J];

}

cout <<"\nSumma="<<Summa;

_getch();

}

Соседние файлы в папке файлы по информатике