Программирование на языке C++

Содержание

Слайд 2

Что такое массив? Массив – это группа переменных одного типа, расположенных

Что такое массив?

Массив – это группа переменных одного типа, расположенных в

памяти рядом (в соседних ячейках) и имеющих общее имя. Каждая ячейка в массиве имеет уникальный номер (индекс).

Надо:

выделять память
записывать данные в нужную ячейку
читать данные из ячейки

Слайд 3

Выделение памяти (объявление) int A[5]; double V[8]; bool L[10]; char S[80];

Выделение памяти (объявление)

int A[5];
double V[8];
bool L[10];
char S[80];

число элементов

const int N =

10;
int A[N];

размер через константу

A[0], A[1], A[2], A[3], A[4]

Слайд 4

Обращение к элементу массива A массив 2 15 НОМЕР элемента массива

Обращение к элементу массива

A

массив

2

15

НОМЕР элемента массива
(ИНДЕКС)

A[0]

A[1]

A[2]

A[3]

A[4]

ЗНАЧЕНИЕ элемента массива

A[2]

НОМЕР (ИНДЕКС) элемента массива:

2

ЗНАЧЕНИЕ элемента массива: 15

Слайд 5

Как обработать все элементы массива? Объявление: Обработка: const int N =

Как обработать все элементы массива?

Объявление:
Обработка:

const int N = 5;
int A[N];

// обработать

A[0]
// обработать A[1]
// обработать A[2]
// обработать A[3]
// обработать A[4]
Слайд 6

Как обработать все элементы массива? Обработка с переменной: i = 0;

Как обработать все элементы массива?

Обработка с переменной:

i = 0;
// обработать A[i]
i

++;
// обработать A[i]
i ++;
// обработать A[i]
i ++;
// обработать A[i]
i ++;
// обработать A[i]

i ++;

Обработка в цикле:

i = 0;
while ( i < N )
{
// обработать A[i]
i ++;
}

Цикл с переменной:

for( i = 0; i < N; i++ )
{
// обработать A[i]
}

Слайд 7

Заполнение массива main() { const int N = 10; int A[N];

Заполнение массива

main()
{
const int N = 10;
int A[N];
int i;

for ( i = 0; i < N; i++ )
A[i] = i*i;
}
Слайд 8

Ввод с клавиатуры и вывод на экран Объявление: Ввод с клавиатуры:

Ввод с клавиатуры и вывод на экран

Объявление:
Ввод с клавиатуры:
Вывод на экран:

const

int N = 10;
int A[N];

for ( i = 0; i < N; i++ )
{
cout << "A[" << i << "]=";
cin >> A[i];
}

A[1] =
A[2] =
A[3] =
A[4] =
A[5] =

5
12
34
56
13

cout >> "Массив A:\n";
for ( i = 0; i < N; i++ )
cout << A[i] << " ";

Слайд 9

Заполнение случайными числами for ( i = 0; i { A[i]

Заполнение случайными числами

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

)
{
A[i] = irand ( 20, 100 );
cout << A[i] << " ";
}

Задача. Заполнить массив (псевдо)случайными целыми числами в диапазоне от 20 до 100.

int irand ( int a, int b )
{
return a + rand()% (b - a + 1);
}

Слайд 10

Перебор элементов Общая схема: for ( i = 0; i {

Перебор элементов

Общая схема:

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

)
{
... // сделать что-то с A[i]
}

Подсчёт нужных элементов:

Задача. В массиве записаны данные о росте баскетболистов. Сколько из них имеет рост больше 180 см, но меньше 190 см?

count = 0;
for ( i = 0; i < N; i++ )
if ( 180 < A[i] && A[i] < 190 )
count ++;

Слайд 11

Перебор элементов Среднее арифметическое: int count, sum; count = 0; sum

Перебор элементов

Среднее арифметическое:

int count, sum;
count = 0;
sum = 0;
for ( i

= 0; i < N; i++ )
if ( 180 < A[i] && A[i] < 190 ) {
count ++;
sum += A[i];
}
cout << (float)sum / count;

среднее арифметическое

Слайд 12

Программирование на языке C++ Алгоритмы обработки массивов

Программирование на языке C++

Алгоритмы обработки массивов

Слайд 13

Поиск в массиве Найти элемент, равный X: i = 0; while

Поиск в массиве

Найти элемент, равный X:

i = 0;
while ( A[i] !=

X )
i ++;
cout << "A[" << i << "]=" << X;

i = 0;
while ( i < N && A[i] != X )
i ++;
if ( i < N )
cout << "A[" << i << "]=" << X;
else
cout << "Не нашли!";

i < N

Слайд 14

Поиск в массиве nX = -1; for ( i = 0;

Поиск в массиве

nX = -1;
for ( i = 0; i <

N; i++ )
if ( A[i] == X )
{
nX = i;
break;
}
if ( nX >= 0 )
cout << "A[" << nX << "]=" << X;
else
cout << "Не нашли!";

Вариант с досрочным выходом:

break;

досрочный выход из цикла

Слайд 15

Максимальный элемент M = A[0]; for ( i = 1; i

Максимальный элемент

M = A[0];
for ( i = 1; i < N;

i++ )
if ( A[i]> M )
M = A[i];
cout << M;
Слайд 16

Максимальный элемент и его номер

Максимальный элемент и его номер

Слайд 17

Реверс массива «Простое» решение: for( i = 0; i { //

Реверс массива

«Простое» решение:

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

)
{
// поменять местами A[i] и A[N+1-i]
}

N/2

остановиться на середине!

Слайд 18

Реверс массива for ( i = 0; i { c =

Реверс массива

for ( i = 0; i < (N/2); i++ )


{
c = A[i];
A[i] = A[N-1-i];
A[N-1-i] = c;
}
Слайд 19

Циклический сдвиг элементов «Простое» решение: c = A[0]; for ( i

Циклический сдвиг элементов

«Простое» решение:

c = A[0];
for ( i = 0; i

< N-1; i++ )
A[i] = A[i+1];
A[N-1] = c;
Слайд 20

Отбор нужных элементов «Простое» решение: Задача. Отобрать элементы массива A, удовлетворяющие

Отбор нужных элементов

«Простое» решение:

Задача. Отобрать элементы массива A, удовлетворяющие некоторому условию,

в массив B.

сделать для i от 0 до N-1
если условие выполняется для A[i] то
B[i]:= A[i]

A

B

выбрать чётные элементы